SSF-A - Единый стандарт для фавиконки

SSF-A - Единый стандарт для фавиконки

48

2 мин.

Определения

Стандарт SSF-A определяет требования к семантике, доступности и логике работы фавиконки.

Структура и Семантика

Фавиконка должна поддерживать различные платформы и устройства (iOS, Android, настольные браузеры), корректно отображаться в светлой и тёмной темах и быстро загружаться с правильным MIME-типом.

Основные файлы фавиконок

Платформа / НазначениеФайлРазмерФорматЦвет для схемы
Корень сайтаfavicon.ico48×48px.ico⬛ Чёрный
PWA / манифестmanifest.webmanifest.webmanifest🟨 Жёлтый
SVG-иконка (масштабируемая)icon.svgпроизвольный.svg🟧 Оранжевый
iOS / Safariapple-touch-icon.png180×180px.png⬜ Серый
Android Chromeandroid-chrome-192x192.png192×192px.png🟩 Зелёный
Android Chromeandroid-chrome-512x512.png512×512px.png🟩 Зелёный

Цветовая маркировка соответствует графической схеме.

manifest.webmanifest

{
  "background_color": "#000000",
  "description": "Описание сайта",
  "display": "standalone",
  "name": "Название сайта",
  "start_url": "/",
  "short_name": "Короткое название",
  "theme_color": "#ffffff",
  "lang": "ru",
  "dir": "ltr",
  "icons": [
    {
      "src": "/favicons/android-chrome-192x192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "/favicons/android-chrome-512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}

Интеграция с Next.js

import type { Metadata } from 'next';

const metadata: Metadata = {
  icons: {
    icon: [
      {
        url: '/favicon.ico',
        sizes: '48x48',
        type: 'image/x-icon',
      },
      {
        url: '/favicons/icon.svg',
        sizes: 'any',
        type: 'image/svg+xml',
      },
    ],
    apple: [
      {
        url: '/favicons/apple-touch-icon.png',
        sizes: '180x180',
        type: 'image/png',
      },
    ],
  },
  manifest: '/manifest.webmanifest',
};

export { metadata };

Графическая схема структуры файлов

Loading diagram...

Цветовая маркировка:

  • Чёрный - корневые файлы;
  • Жёлтый - manifest;
  • Оранжевый - SVG-иконка;
  • Серый - iOS;
  • Зелёный - Android.

Доступность

Фавиконка должна быть узнаваемой и поддерживать цветовые темы:

<svg xmlns="http://www.w3.org/2000/svg">
  <style>
    .logo { fill: #000; } /* Светлая тема */
 
    @media (prefers-color-scheme: dark) {
      .logo { fill: #fff; } /* Темная тема */
    }
  </style>
  <path class="logo" d="..."/>
</svg>

Интерактивность и Визуальный отклик

Фавиконка должна быть масштабируемой для корректного отображения на устройствах с разной плотностью пикселей с PWA-конфигурацией для отображения сайта как отдельного приложения, включая splash screen и цветовую тему UI элементов.

Похожие статьи

  • Анатомия React компонента

    Моё видение того, как должен выглядеть React компонент

    107

    7 мин.

  • SSF-U - Единый стандарт для фуллскрина

    Стандарт SSF-U определяет требования к семантике, доступности и логике работы фуллскрина

    38

    2 мин.

  • SSA - Единый стандарт для аккордеона

    Стандарт SSA определяет требования к семантике, доступности и логике работы аккордеона

    56

    2 мин.

  • Bad Practices для сайтов

    Разбор критических ошибок веб-дизайна. Почему слайдеры, автоплей и тяжёлые страницы снижают конверсию и позиции в Google и Yandex

    50

    1 мин.

  • SSP - Единый стандарт для пагинации

    Стандарт SSP определяет требования к семантике, доступности и логике работы пагинации

    59

    1 мин.

  • SSPS - Единый стандарт для структуры проекта

    Стандарт SSPS определяет требования к структуре и наименованию файлов и папок в проекте

    169

    2 мин.

  • Все статьи

Свяжитесь со мной