Podstawowe informacje o tworzeniu favikony adaptacyjnej.
W tym poście pokażę, jak utworzyć favikonę adaptacyjną w przypadku SVG. Zobacz prezentację.
Jeśli wolisz film, oto wersja tego posta na YouTube:
Przegląd
Własna favikona to świetny sposób na dopracowanie projektu internetowego. Wyświetla się on na kartach przeglądarki na komputerze, a także w czytnikach „zapisz na później”, innych postach na blogu z linkami do Twojej witryny i nie tylko. Tradycyjnie robiło się to w przypadku plików typu .ico
, ale ostatnio przeglądarki umożliwiały korzystanie z formatu wektorowego SVG. Dzięki ulepszaniu progresywnego możesz wyświetlać dobrze obsługiwane favikony .ico
i przejść na .svg
, jeśli to możliwe.
SVG jest w stanie skalować się w górę i w dół bez utraty jakości oraz może być bardzo małe – może mieć też osadzony kod CSS, a nawet zapytania o multimedia. Oznacza to, że jeśli w aplikacji czytnika lub na paskach zakładek używana jest favikona SVG, istnieje ryzyko, że użytkownik zobaczy ikonę odpowiedniego motywu (jasnego lub ciemnego) na podstawie ciemnych stylów preferencji dostępnych w SVG. Następnie plik SVG dostosowuje się do ustawień użytkownika jasnego i ciemnego, korzystając z wbudowanego stylu.
![Jasne i ciemne karty w każdej przeglądarce przedstawiające przegląd ikony adaptacyjnej (od góry do dołu): Safari, Firefox, Chrome.](https://web.dev/static/articles/building/an-adaptive-favicon/image/light-dark-tabs-each-br-1bd458c8c5743.png?authuser=7&hl=pl)
Markup
Znaczniki SVG to XML z rozszerzeniem typu pliku .svg
, które umożliwia przechowywanie bardziej dynamicznych typów kodu.
Zacznij od utworzenia pliku favicon.svg
Utwórz nowy plik o nazwie favicon.svg
i dodaj do niego:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400">
</svg>
Oto mój plik SVG. Rozmiar viewBox
pasuje do grafiki:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
</svg>
Dodawanie kształtów i ścieżek
Następnie dodaj kod ścieżki SVG. Często wymaga to otwarcia pliku SVG w edytorze kodu, ale zwykle nie jest on przyjazny dla człowieka. Oto świetny przewodnik, który poprowadzi Cię przez eksportowanie i optymalizowanie plików SVG za pomocą narzędzi do projektowania.
Grafika powiązana z tym wyzwaniem GUI pochodzi od projektanta w Adobe Illustrator. jest mocno zoptymalizowana. Obejrzałam ją w SVGOMG i ręcznie wyedytowałam zawartość kuchenki.
Oto przykład po wyczyszczeniu grupy ścieżek grafiki skull
z mojej:
<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>
Zwróć uwagę na czytelne selektory identyfikatorów, takie jak #eyes-and-nose
i klasy, takie jak .favicon-stroke
. Pochodzę z edycji ręcznej, przygotowując się do CSS.
Aby obraz SVG mógł stać się favikoną adaptacyjną, nie musisz dodawać klas i identyfikatorów.
Dodaj link do favikony SVG z kodu HTML
W tagu <head>
kodu HTML po favikonie .ico
dodaj ten fragment kodu:
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
Nowa ikona może wyglądać identycznie jak wersja .ico
, więc sprawdź, czy jest używana. Otwórz panel Network (Sieć) w Narzędziach deweloperskich. Filtruj według obrazów i wyszukaj favikonę:
Style
Podobnie jak w przypadku HTML, do znaczników możesz dodać tag <style>
, który będzie używany w danym zakresie dokumentu:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
<style>
</style>
…
</svg>
Wersja z jasnym motywem będzie domyślnym kolorem mojej favikony SVG. Stylizowane przeze mnie style to głównie kolory kreski i wypełnienia:
<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>
Następnym krokiem jest określenie stylu favikony z ciemnym motywem. Odpowiadające im style zostaną umieszczone w zapytaniu o multimedia w tagu stylu:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
<style>
…
@media (prefers-color-scheme: dark) {
/* dark theme styles */
}
</style>
…
</svg>
Moja sytuacja wygląda tak:
<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>
Jasnofioletowe obramowanie zostało zastąpione ładnym chłodnym, ciemnym szarym kolorem (#343a40
), kolor kości czaszki zmienił się z białego na jasnoszary (#adb5bd
), ale zostawiłem różową czapkę z akcentem.
Podsumowanie
Wiesz już, jak to zrobiłem, więc jak to zrobisz 🙂
Stwórzmy różne metody i nauczmy się wszystkiego, jak rozwijać się w internecie. Utwórz demonstrację i udostępnię mi linki na Twitterze, a dodam ją do sekcji remiksów w ramach społeczności poniżej.