nicklima/strapi-blog-frontend-next

View on GitHub
icons/index.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import { ReactNode, SVGProps } from "react"

interface ISVG {
  children: ReactNode
  width?: string
  height?: string
  color?: string
  viewBox?: string
}

const SVG = ({
  children,
  color = "#fff",
  height = "15",
  viewBox,
  width = "15",
}: SVGProps<SVGSVGElement> & ISVG) => (
  <svg fill={color} width={width} height={height} viewBox={viewBox}>
    {children}
  </svg>
)

const SVGIcon = ({ children }: SVGProps<SVGSVGElement> & ISVG) => (
  <SVG viewBox="0 0 448 512">{children}</SVG>
)

export const BlogLogo = () => (
  <SVG width="180" height="32">
    <g fill="#FFF" opacity={0.975}>
      <path d="M17.3 22.345v-7.779a.502.502 0 0 0-.502-.501H9.06V6.037h15.729a.5.5 0 0 1 .501.501v15.808H17.3z" />
      <path
        opacity={0.405}
        d="M9.06 6.036v8.028H1.672a.25.25 0 0 1-.177-.427L9.06 6.036zM17.3 29.765v-7.42h7.99l-7.562 7.598a.253.253 0 0 1-.355.002.26.26 0 0 1-.073-.18z"
      />
      <path
        opacity={0.405}
        d="M9.06 14.064h7.99a.25.25 0 0 1 .251.251v8.03H9.562a.504.504 0 0 1-.502-.502v-7.779z"
      />
    </g>
    <path
      fill="#FFF"
      d="M56.073 11.577h-3.16v5.988c0 .5.125.865.374 1.096s.612.359 1.091.387a15.609 15.609 0 0 0 1.691-.01.087.087 0 0 1 .09.081V22.327c0 .043-.033.08-.076.084a1.643 1.643 0 0 0-.059.006c-2.476.266-4.226.021-5.251-.734-1.043-.768-1.565-2.139-1.565-4.117v-5.988h-2.414a.085.085 0 0 1-.085-.085V8.091c0-.047.038-.085.085-.085h2.414V5.628a.17.17 0 0 1 .101-.155l3.485-1.538a.085.085 0 0 1 .119.077v3.994h3.16c.047 0 .085.038.085.085v3.401a.085.085 0 0 1-.085.085zm6.802-1.094c.345-.921.915-1.613 1.709-2.073a5.143 5.143 0 0 1 2.571-.69c.046 0 .085.036.085.084V11.71a.14.14 0 0 1-.14.139h-.012c-1.068-.097-2.027.139-2.878.708-.89.595-1.335 1.583-1.335 2.964v6.797a.084.084 0 0 1-.085.084h-3.535a.084.084 0 0 1-.085-.084V8.091c0-.047.038-.085.085-.085h3.535c.047 0 .085.038.085.085v2.392zm17.518-2.477h3.535c.047 0 .085.038.085.085v14.226a.084.084 0 0 1-.085.084h-3.535a.084.084 0 0 1-.085-.084v-1.613c-1.111 1.4-2.671 2.104-4.681 2.104-1.915 0-3.556-.736-4.926-2.203-1.369-1.47-2.053-3.268-2.053-5.399 0-2.131.684-3.931 2.053-5.399 1.37-1.469 3.011-2.203 4.926-2.203 2.01 0 3.57.701 4.681 2.102V8.091c0-.047.038-.085.085-.085zm-6.921 10.136c.747.75 1.695 1.123 2.843 1.123s2.101-.378 2.858-1.139c.756-.758 1.134-1.73 1.134-2.921s-.378-2.164-1.134-2.923c-.757-.758-1.709-1.137-2.858-1.137s-2.096.379-2.843 1.137c-.746.759-1.12 1.732-1.12 2.923s.374 2.169 1.12 2.937zM95.148 7.604c1.934 0 3.586.734 4.955 2.203 1.369 1.468 2.053 3.268 2.053 5.399 0 2.132-.684 3.93-2.053 5.399-1.369 1.467-3.021 2.203-4.955 2.203-2.01 0-3.56-.703-4.651-2.104v7.373a.085.085 0 0 1-.086.084h-3.534a.084.084 0 0 1-.085-.084V8.091c0-.047.038-.085.085-.085h3.534c.047 0 .086.038.086.085v1.614c1.092-1.401 2.642-2.101 4.651-2.101zm-3.532 10.538c.748.75 1.694 1.123 2.843 1.123 1.15 0 2.102-.378 2.857-1.139.758-.758 1.135-1.73 1.135-2.921s-.377-2.164-1.135-2.923c-.756-.758-1.707-1.137-2.857-1.137-1.148 0-2.095.379-2.843 1.137-.746.759-1.119 1.732-1.119 2.923s.373 2.169 1.119 2.937zm14.585-11.863c-.613 0-1.145-.226-1.594-.677-.451-.451-.676-.983-.676-1.598 0-.615.225-1.152.676-1.613.449-.46.98-.691 1.594-.691.633 0 1.172.23 1.623.691.449.461.674.998.674 1.613 0 .614-.225 1.146-.674 1.598a2.21 2.21 0 0 1-1.623.677zm-1.838 16.038V8.091c0-.047.037-.085.084-.085h3.535c.047 0 .086.038.086.085v14.226a.085.085 0 0 1-.086.084h-3.535a.083.083 0 0 1-.084-.084zM38.008 12.095c0 .384.254.696.761.936.508.24 1.125.451 1.853.633.728.183 1.455.414 2.183.691.728.278 1.345.745 1.852 1.397.508.65.761 1.467.761 2.447 0 1.476-.55 2.614-1.651 3.41-1.101.799-2.475 1.197-4.121 1.197-2.882 0-4.869-1.092-5.958-3.277l-.036-.071a.086.086 0 0 1 .04-.114h.002l3.116-1.385a.171.171 0 0 1 .22.076l.001.003c.485.933 1.357 1.397 2.615 1.397 1.321 0 1.981-.411 1.981-1.236 0-.385-.254-.695-.762-.938a10.93 10.93 0 0 0-1.852-.648 19.055 19.055 0 0 1-2.183-.718 4.494 4.494 0 0 1-1.853-1.368c-.507-.625-.761-1.406-.761-2.347 0-1.42.521-2.539 1.565-3.354 1.043-.816 2.34-1.224 3.892-1.224 1.168 0 2.23.264 3.188.792a5.62 5.62 0 0 1 2.098 1.953c.028.043.064.104.111.182a.086.086 0 0 1-.03.116c-.002.002-.005.003-.009.004l-3.124 1.386a.124.124 0 0 1-.153-.045c-.469-.717-1.162-1.076-2.08-1.076-.479 0-.876.105-1.192.317s-.474.499-.474.864zM144.381 9.32h8.547v.679h-7.764v5.112h7.301v.68h-7.301v5.612h7.854v.68h-8.637V9.32zm9.31 0h.908l4.023 5.612 4.113-5.612 5.594-7.129-9.189 13.332 4.736 6.561h-.943l-4.311-5.97-4.324 5.97h-.926l4.77-6.561-4.451-6.203zm10.524.679V9.32h9.738v.679h-4.486v12.084h-.783V9.999h-4.469zm-30.526-.679h.979l13.504 20.207-5.58-7.443-8.084-11.798-.035 11.798h-.783V9.32zm40.186 11.879c-.16 0-.279-.123-.279-.284s.119-.284.279-.284c.162 0 .281.123.281.284s-.119.284-.281.284zm.771-.747h.418c.004.226.172.378.416.378.27 0 .424-.163.424-.47v-1.947h.428v1.947c0 .555-.32.872-.85.872-.496 0-.836-.308-.836-.78zm2.245-.027h.424c.035.262.291.428.66.428.342 0 .594-.177.594-.42 0-.211-.16-.336-.525-.422l-.354-.086c-.498-.117-.725-.355-.725-.761 0-.492.4-.816 1-.816.559 0 .967.324.994.79h-.416c-.041-.256-.262-.414-.582-.414-.338 0-.563.163-.563.411 0 .196.145.309.502.394l.305.074c.563.132.795.359.795.773 0 .527-.406.856-1.059.856-.609 0-1.019-.315-1.05-.807z"
    />
    <g fill="#FFF">
      <path d="M124.705 15.364a.734.734 0 0 0-.08.006.587.587 0 0 1-.195-.004l-.02-.004.02.008c.02.014.033.031.031.045 0 .005-.006.016-.016.023-.035.034-.12.038-.2.011a.508.508 0 0 1-.12-.057.445.445 0 0 0-.16-.073.207.207 0 0 0-.09-.009.48.48 0 0 0-.168.044c-.111.043-.184.055-.252.04-.027-.008-.049-.008-.11 0-.044.003-.044.003-.095-.008a1.15 1.15 0 0 0-.277-.022c-.026 0-.184.009-.352.018-.3.02-.383.022-.521.022-.123 0-.182.016-.38.11-.08.036-.097.04-.224.032a.416.416 0 0 0-.144.004.73.73 0 0 0-.258.107l.088-.031c.123-.045.21-.072.224-.065.01.006.004.027-.013.051a.412.412 0 0 1-.092.09.154.154 0 0 1-.035-.02c-.018-.011-.034-.023-.04-.023-.007-.002-.039.009-.056.02a.964.964 0 0 0-.047.039c-.02.015-.035.029-.04.026-.001 0-.01-.009-.017-.023l-.02-.021c-.013-.003-.038.023-.06.073-.017.033-.027.047-.037.052-.004.002-.035 0-.07-.002-.086-.008-.1-.006-.121.021-.01.01-.049.06-.092.108a.857.857 0 0 0-.082.103l-.01.008.03.012c.015.007.035.016.046.018l.02.01-.059.019c-.133.047-.32.121-.511.203-.077.034-.1.047-.1.052s.002.005.008 0l.01-.007.021.014c.014.01.03.017.037.02.01.005.01.005.01-.003-.004-.024-.006-.024.023-.017s.055.003.069-.007c.011-.009.025-.033.021-.036 0-.002.053-.013.123-.027.123-.022.123-.022.127-.012.006.007.006.007.03 0l.023-.008-.014-.004c-.01-.004.02-.01.205-.045.116-.02.453-.082.748-.139l.534-.095.066.002c.197.003.371.015.512.029.078.009.261.035.617.087.137.022.144.022.205.026.125.01.277.003.463-.017.06-.01.156-.02.21-.028a2.92 2.92 0 0 1 .608-.02c.08.008.137.005.207-.01.117-.022.254-.07.416-.147.11-.055.104-.05.11-.073.015-.049.007-.097-.034-.15-.052-.075-.154-.147-.314-.225-.026-.011-.045-.023-.045-.023-.002-.002.002-.004.008-.008l.011-.008-.017.005-.02.003-.047-.023a.654.654 0 0 0-.226-.067zm-3.941.656.023.012-.012.016c-.025.027-.056.034-.097.018l-.018-.006-.006.015-.004.018-.017-.016a.205.205 0 0 1-.028-.02l-.01-.01.012-.005a.2.2 0 0 1 .12-.01c.019.005.023.005.015 0-.01-.006-.012-.015-.008-.023.006-.008.006-.008.03.01zM120.547 15.831a1.572 1.572 0 0 0-.219.139l-.05.074c-.028.035-.05.07-.055.072a.062.062 0 0 1-.028.01c-.025.008-.021.008.037.008a.166.166 0 0 0 .053-.005c.008-.005.008-.019.012-.081 0-.018.002-.027.01-.035l.007-.012.028.019c.015.01.031.02.033.02.004 0 .012-.012.018-.027.015-.035.029-.054.048-.063.016-.01.02-.01.075.014.027.01.029.01.033.006.011-.008.025-.047.031-.087.006-.031.006-.038 0-.044-.008-.014-.012-.014-.033-.008z" />
      <path d="M123.022 13.237c-.003.02-.008.061-.01.094a.714.714 0 0 1-.043.223l-.01.023.015-.018c.018-.02.04-.028.053-.02a.102.102 0 0 1 .02.028c.029.054.02.156-.026.239a.475.475 0 0 1-.088.114.412.412 0 0 0-.105.155.325.325 0 0 0-.03.1.837.837 0 0 0 .016.213c.024.149.022.236-.01.31a.53.53 0 0 0-.021.125c-.004.054-.004.056-.026.11a1.319 1.319 0 0 0-.078.312c-.006.03-.027.217-.05.416-.038.354-.051.453-.079.612-.023.142-.019.217.041.482.024.108.022.13-.011.276a.664.664 0 0 0-.022.168 1.112 1.112 0 0 0 .063.343l-.016-.115c-.025-.162-.033-.273-.023-.285.008-.008.027.005.049.036.035.045.08.128.08.144 0 .003-.016.017-.03.03a.34.34 0 0 0-.03.034c-.007.012.001.054.007.078a1.785 1.785 0 0 1 .055.123c0 .005-.014.012-.028.014-.013.007-.027.012-.027.014-.006.015.018.052.064.1a.209.209 0 0 1 .051.065c0 .004-.008.04-.02.08-.023.094-.023.112-.001.147l.1.152a2.4 2.4 0 0 0 .093.137l.006.014.018-.027.029-.047.012-.02.011.076c.022.174.067.422.116.678.021.098.029.136.033.136.008 0 .008-.002.004-.01l-.008-.015.02-.02a.344.344 0 0 0 .029-.03c.007-.012.007-.014 0-.016-.026-.006-.026-.003-.016-.031a.123.123 0 0 0 .008-.086c-.01-.016-.03-.04-.037-.037 0 0-.002-.07-.002-.153 0-.152 0-.152.01-.154.011-.005.011-.005.007-.034l-.004-.028-.005.01c-.008.011-.008-.024-.008-.253V16.666l.015-.079c.045-.222.092-.422.135-.578.026-.086.088-.289.215-.678.049-.152.05-.159.066-.226a2.93 2.93 0 0 0 .073-.544l.015-.259a3.69 3.69 0 0 1 .096-.711.869.869 0 0 0 .031-.244 2.625 2.625 0 0 0-.078-.542c-.033-.15-.031-.14-.053-.158a.159.159 0 0 0-.166-.023c-.09.034-.185.12-.302.273l-.033.044a.037.037 0 0 1-.006-.015l-.008-.015v.022l.002.023-.033.046a.676.676 0 0 0-.115.235zm-.082 4.833.021-.018.014.02c.023.04.025.077.002.119l-.012.02.016.01.015.012-.017.016a.108.108 0 0 1-.03.023l-.011.006-.002-.015a.227.227 0 0 1 .011-.139c.01-.025.012-.027.004-.022-.008.008-.02.008-.027 0-.006-.01-.006-.007.016-.032zM122.701 18.247c.006.049.084.286.104.31l.068.092c.031.043.063.085.065.09.005.006.007.022.007.037 0 .032.002.028.014-.039.004-.031.006-.058.004-.065-.002-.009-.016-.016-.082-.045-.02-.009-.03-.016-.037-.026l-.01-.014.026-.026c.013-.012.027-.026.027-.03a.111.111 0 0 0-.026-.032c-.033-.033-.05-.055-.056-.08-.008-.025-.008-.025.03-.08.015-.028.017-.032.01-.04-.005-.015-.042-.048-.083-.07-.033-.018-.041-.023-.049-.018-.016.005-.016.009-.012.036z" />
    </g>
  </SVG>
)

export const AuthorIcon = () => (
  <SVGIcon>
    <path d="M224 256c70.7 0 128-57.31 128-128S294.7 0 224 0 96 57.31 96 128s57.3 128 128 128zm50.7 48H173.3C77.61 304 0 381.6 0 477.3c0 19.14 15.52 34.67 34.66 34.67h378.7C432.5 512 448 496.5 448 477.3c0-95.7-77.6-173.3-173.3-173.3z" />
  </SVGIcon>
)

export const CalendarIcon = () => (
  <SVGIcon>
    <path d="M160 32v32h128V32c0-17.67 14.3-32 32-32s32 14.33 32 32v32h48c26.5 0 48 21.49 48 48v48H0v-48c0-26.51 21.49-48 48-48h48V32c0-17.67 14.3-32 32-32s32 14.33 32 32zM0 192h448v272c0 26.5-21.5 48-48 48H48c-26.51 0-48-21.5-48-48V192zm64 112c0 8.8 7.16 16 16 16h32c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H80c-8.84 0-16 7.2-16 16v32zm128 0c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v32zm144-48c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-32zM64 432c0 8.8 7.16 16 16 16h32c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H80c-8.84 0-16 7.2-16 16v32zm144-48c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-32zm112 48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v32z" />
  </SVGIcon>
)

export const Linkedin = () => (
  <SVGIcon>
    <path d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z" />
  </SVGIcon>
)

export const Instagram = () => (
  <SVGIcon>
    <path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z" />
  </SVGIcon>
)

export const Twitter = () => (
  <SVGIcon>
    <path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z" />
  </SVGIcon>
)

export const Facebook = () => (
  <SVGIcon>
    <path d="m279.14 288 14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z" />
  </SVGIcon>
)

export const Email = () => (
  <SVGIcon>
    <path d="M207.8 20.73c-93.45 18.32-168.7 93.66-187 187.1-27.64 140.9 68.65 266.2 199.1 285.1 19.01 2.888 36.17-12.26 36.17-31.49v-.663c0-15.74-11.44-28.88-26.84-31.24-84.35-12.98-149.2-86.13-149.2-174.2 0-102.9 88.61-185.5 193.4-175.4 91.54 8.869 158.6 91.25 158.6 183.2v16.16c0 22.09-17.94 40.05-40 40.05s-40.01-17.96-40.01-40.05v-120.1c0-8.847-7.16-16.02-16.01-16.02l-31.98.003c-7.299 0-13.2 4.992-15.12 11.68-24.85-12.15-54.24-16.38-86.06-5.106-38.75 13.73-68.12 48.91-73.72 89.64-9.483 69.01 43.81 128 110.9 128 26.44 0 50.43-9.544 69.59-24.88 24 31.3 65.23 48.69 109.4 37.49C465.2 369.3 496 324.1 495.1 277.2v-20.9c0-149.2-133.9-265.632-287.3-235.57zm31.3 283.57c-26.47 0-48-21.56-48-48.05s21.53-48.05 48-48.05 48 21.56 48 48.05-20.6 48.05-48 48.05z" />
  </SVGIcon>
)