Files
ds-galo/openspec/specs/ui-branding/spec.md
T
iu b1b0b4a83e chore(openspec): archive completed changes and sync main specs
- archive rename-shared-album-to-galo, add-halo-branding
- sync specs: ui-branding (new capability)
2026-10-11 11:37:23 +03:00

4.0 KiB

ui-branding Specification

Purpose

Единая визуальная айдентика приложения: гало-эмблема и фавикон, отдаваемые самим приложением, наследующие тему и читаемые в мелком размере.

Requirements

Requirement: Гало-эмблема

Интерфейс SHALL отображать эмблему «гало» — диск солнца, окружённый отделённым от него кольцом — как встроенную векторную графику, наследующую цвет текущей темы.

Scenario: Отображение в шапке

  • WHEN открыт основной интерфейс
  • THEN в шапке рядом с надписью «Galo» показана гало-эмблема

Scenario: Смена темы

  • WHEN пользователь переключает тему (light/dark/neutral)
  • THEN цвет диска и кольца эмблемы меняется вместе с темой

Scenario: Мелкий размер

  • WHEN эмблема отрисована в размере порядка 16-24 px
  • THEN диск и отделённое кольцо остаются различимыми

Requirement: Фавикон от приложения

Приложение SHALL отдавать фавикон бренда со своего origin, а разметка страницы SHALL ссылаться на существующий файл.

Scenario: Запрос фавикона

  • WHEN браузер запрашивает фавикон
  • THEN приложение отвечает изображением SVG с собственным Content-Type

Scenario: Запасной формат

  • WHEN клиент не поддерживает SVG-фавикон
  • THEN разметка предоставляет PNG-запасной вариант

Requirement: Фавикон под тему

Фавикон SHALL учитывать предпочтение схемы оформления и в тёмной схеме SHALL использовать светлый вариант эмблемы на тёмном фоне.

Scenario: Тёмная схема

  • WHEN система сообщает о предпочтении тёмной схемы
  • THEN фавикон отображается в варианте для тёмной схемы

Scenario: Светлая схема

  • WHEN система сообщает о предпочтении светлой схемы
  • THEN фавикон отображается в варианте для светлой схемы

Requirement: Доступность эмблемы

Эмблема SHALL быть декоративной рядом с текстовым вордмарком и SHALL иметь доступное имя, когда используется как самостоятельный смысловой элемент.

Scenario: Эмблема рядом с вордмарком

  • WHEN эмблема сопровождает видимый текст «Galo»
  • THEN она скрыта от вспомогательных технологий

Scenario: Самостоятельная эмблема

  • WHEN эмблема является единственным содержимым управляющего элемента
  • THEN элемент имеет доступное имя

Requirement: Автономность ассетов бренда

Эмблема и фавикон SHALL загружаться с самого приложения и SHALL NOT требовать запросов к внешним источникам.

Scenario: Загрузка без внешней сети

  • WHEN страница загружается без доступа к внешней сети, кроме своего сервера
  • THEN эмблема и фавикон отображаются