적응형 파비콘 빌드

적응형 파비콘을 빌드하는 방법에 관한 기본 개요입니다.

이 게시물에서는 SVG를 사용하여 적응형 파비콘을 빌드하는 방법에 관한 생각을 공유하고자 합니다. 데모를 사용해 보세요.

macOS 시스템 밝은 테마 및 어두운 테마 변경에 따라 조정되는 브라우저 탭이 표시됩니다. 데모 사용해 보기

동영상을 선호하는 경우 이 게시물의 YouTube 버전을 확인하세요.

개요

맞춤 파비콘은 웹 프로젝트를 다듬는 좋은 방법입니다. 데스크톱 브라우저 탭에 표시되며 '나중에 저장' 리더, 내 사이트로 연결되는 다른 블로그 게시물 등에도 표시됩니다. 전통적으로는 .ico 파일 유형을 사용했지만 최근에는 브라우저에서 벡터 형식인 SVG를 사용할 수 있도록 허용했습니다. 점진적 개선을 사용하면 잘 지원되는 .ico 파비콘을 제공하고 사용 가능한 경우 .svg으로 업그레이드할 수 있습니다.

SVG는 품질 손실 없이 확대 및 축소할 수 있으며 크기가 매우 작을 수 있습니다. 또한 CSS를 삽입할 수 있으며 미디어 쿼리도 삽입할 수 있습니다. 즉, SVG 파비콘이 리더 앱이나 북마크 표시줄에 사용되는 경우 사용자가 SVG 내에 제공된 어두운 모드 선호도 스타일로 인해 테마 관련 (밝은 또는 어두운) 아이콘을 받을 수 있습니다. 그러면 SVG가 밝은 테마와 어두운 테마 사용자 환경설정을 위해 삽입된 스타일을 사용하여 적응합니다.

쉽게 구분할 수 있는 밝은색과 어두운색의 파비콘 예시

각 브라우저의 밝은 탭과 어두운 탭에 적응형 아이콘이 위에서 아래로 표시됩니다. Safari, Firefox, Chrome
각 브라우저의 밝은 탭과 어두운 탭에 적응형 아이콘이 위에서 아래로 표시됩니다. Safari, Firefox, Chrome

마크업

SVG 마크업은 .svg 파일 형식 확장자를 사용하는 XML로, 더 동적인 유형의 코드를 보유할 수 있습니다.

favicon.svg를 만들어 시작하세요.

favicon.svg이라는 새 파일을 만들고 다음을 추가합니다.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400">

</svg>

다음은 SVG 파일입니다. 내 작품과 관련된 viewBox의 크기를 조정했습니다.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">

</svg>

도형 및 경로 추가

다음으로 SVG 경로 코드를 추가합니다. 일반적으로 이는 코드 편집기에서 SVG를 여는 것을 의미하지만 해당 코드는 일반적으로 사람이 읽기 쉽지 않습니다. 디자인 도구에서 SVG를 내보내고 최적화하는 방법을 안내하는 유용한 가이드를 참고하세요.

GUI 챌린지의 아트는 Adobe Illustrator로 만든 디자이너가 제공했습니다. 많이 최적화했습니다. SVGOMG를 통해 실행한 다음 불필요한 부분을 수동으로 수정했습니다.

다음은 정리한 후 내 skull 아트워크 경로 그룹의 예입니다.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
  <g id="skull">
    <path id="skull-outline" class="favicon-stroke" stroke-linejoin="round" d="M19.62 188.39A166.62 166.62 0 0 1 186.24 21.77c115.25 0 166.61 74.59 166.61 166.62 0 1.83-.08 3.64-.13 5.46h.13s.68 175.09.68 178.65c0 30.11-16.26 41.67-36.32 41.67-12.7 0-35.22-3.93-36.22-32.69h-.2c-1 28.76-16.81 32.69-36.22 32.69-18 0-32.87-6.78-35.77-32.53-2.9 25.75-17.8 32.53-35.8 32.53-20.06 0-36.32-11.56-36.32-41.67 0-2.48.36-24.88.36-24.88A166.68 166.68 0 0 1 19.62 188.39Z" />
    <path id="eyes-and-nose" d="M180.77 205.76c0 23.64 12.84 42.81 28.68 42.81s28.68-19.17 28.68-42.81-12.84-42.82-28.68-42.82-28.68 19.17-28.68 42.82M275 205.76c0 23.64 12.84 42.81 28.68 42.81s28.68-19.17 28.68-42.81-12.84-42.82-28.68-42.82S275 182.11 275 205.76M264.51 276.85s-29.26 43.53-20.12 49.23c7.07 4.41 20.49-16.71 20.49-16.71s12.82 22.58 16.76 20c16.24-10.71-17.13-52.5-17.13-52.5"/>
    <path id="jawline" class="favicon-stroke" fill="none" stroke-linecap="round" d="M114.92 284.33c22.54-1 22 7 22 62.48" />
  </g>
</svg>

#eyes-and-nose와 같은 사람이 읽을 수 있는 ID 선택기.favicon-stroke와 같은 클래스를 확인하세요. CSS를 준비하기 위해 수동으로 수정한 것입니다. SVG가 적응형 파비콘이 되기 위해 클래스와 ID를 추가할 필요는 없습니다.

HTML의 <head> 태그에서 .ico 파비콘 뒤에 다음을 추가합니다.

<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">

새 아이콘이 .ico 버전과 동일해 보일 수 있으므로 새 아이콘이 사용되고 있는지 확인하세요. DevTools의 네트워크 패널을 엽니다. 이미지로 필터링하고 파비콘을 검색합니다.

파비콘이 검색된 필터와 favicon.svg 리소스가 강조 표시된 DevTools의 네트워크 창 스크린샷

스타일

HTML과 마찬가지로 해당 문서 범위에 대해 사용할 마크업에 <style> 태그를 추가할 수 있습니다.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
  <style>
    
  </style>
  …
</svg>

밝은 테마 버전이 내 파비콘 SVG의 기본 색상이 됩니다. 이 경우에 작성한 스타일은 주로 획과 채우기 색상입니다.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
  <style>
    .favicon-stroke {
      stroke-width: 8px;
      stroke: #8929ff;
    }
    #skull-outline { fill: white }
    #eyes-and-nose, #hat-outline { fill: #8929ff }
    #hat-fill, #hat-bill { fill: #e662e6 }
  </style>
  
</svg>

밝은 테마의 파비콘 미리보기 예시

다음은 가장 재미있는 부분인 어두운 테마 버전의 파비콘 스타일 지정입니다. 이 스타일은 스타일 태그 내의 미디어 쿼리로 이동합니다.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
  <style>
    
    @media (prefers-color-scheme: dark) {
      /* dark theme styles */
    }
  </style>
  
</svg>

어두운 테마 미디어 쿼리가 SVG의 눈과 코의 채우기 색상을 덮어쓰는 것을 보여주는 DevTools 스크린샷

내 코드는 다음과 같이 완성되었습니다.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
  <style>
    
    @media (prefers-color-scheme: dark) {
      .favicon-stroke { stroke: #343a40 }
      #skull-outline { fill: #adb5bd }
      #hat-outline { fill: #343a40 }
      #eyes-and-nose { fill: #343a40 }
    }
  </style>
  
</svg>

어두운 테마의 파비콘 미리보기 예시

밝은 보라색 테두리를 멋진 차가운 진한 회색 (#343a40)으로 바꾸고, 해골 뼈 색상을 흰색에서 차가운 밝은 회색 (#adb5bd)으로 변경했지만, 핑크색 강조 모자는 그대로 두었습니다.

밝은 파비콘과 어두운 파비콘이 나란히 표시된 미리보기

결론

이제 제가 어떻게 했는지 아셨으니, 어떻게 하시겠어요? 🙂

다양한 접근 방식을 사용하고 웹에서 빌드하는 모든 방법을 알아보세요. 데모를 만들고 트윗으로 링크를 보내주세요. 아래 커뮤니티 리믹스 섹션에 추가해 드리겠습니다.

커뮤니티 리믹스