- rename Go module, binary, systemd unit, PG_DATABASE default, frontend package and docs from shared-album to galo - add theme-aware halo emblem and favicon (new ui-branding capability) - add make build-release (versioned, stripped, static binary) and run the binary from the repo root
4.0 KiB
Spec Delta
Purpose
Единая визуальная айдентика приложения: гало-эмблема и фавикон, отдаваемые самим приложением, наследующие тему и читаемые в мелком размере.
ADDED 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 эмблема и фавикон отображаются