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

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

183

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 };

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

flowchart TD
    A[/public/] --> B(favicon.ico)
    A --> C(manifest.webmanifest)
    A --> D[/favicons/]
    D --> E[icon.svg]
    D --> F[apple-touch-icon.png]
    D --> G[android-chrome-192x192.png]
    D --> H[android-chrome-512x512.png]

    classDef root fill:#000,stroke:#333,stroke-width:1px,color:#fff;
    classDef ios fill:#eee,stroke:#333,stroke-width:1px,color:#000;
    classDef android fill:#0f0,stroke:#333,stroke-width:1px,color:#000;
    classDef svg fill:#f80,stroke:#333,stroke-width:1px,color:#000;
    classDef manifest fill:#ff9,stroke:#333,stroke-width:1px,color:#000;

    class A root;
    class B root;
    class C manifest;
    class D root;
    class E svg;
    class F ios;
    class G android;
    class H android;

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

  • Чёрный - корневые файлы;
  • Жёлтый - 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 компонент

    421

    7 мин.

  • SST-A - Единый стандарт для табов

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

    62

    6 мин.

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

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

    248

    2 мин.

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

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

    258

    2 мин.

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

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

    232

    1 мин.

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

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

    240

    1 мин.

  • Все статьи

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