diff --git a/openspec/changes/add-halo-branding/.openspec.yaml b/openspec/changes/archive/2026-10-11-add-halo-branding/.openspec.yaml similarity index 100% rename from openspec/changes/add-halo-branding/.openspec.yaml rename to openspec/changes/archive/2026-10-11-add-halo-branding/.openspec.yaml diff --git a/openspec/changes/add-halo-branding/design.md b/openspec/changes/archive/2026-10-11-add-halo-branding/design.md similarity index 100% rename from openspec/changes/add-halo-branding/design.md rename to openspec/changes/archive/2026-10-11-add-halo-branding/design.md diff --git a/openspec/changes/add-halo-branding/proposal.md b/openspec/changes/archive/2026-10-11-add-halo-branding/proposal.md similarity index 100% rename from openspec/changes/add-halo-branding/proposal.md rename to openspec/changes/archive/2026-10-11-add-halo-branding/proposal.md diff --git a/openspec/changes/add-halo-branding/specs/ui-branding/spec.md b/openspec/changes/archive/2026-10-11-add-halo-branding/specs/ui-branding/spec.md similarity index 100% rename from openspec/changes/add-halo-branding/specs/ui-branding/spec.md rename to openspec/changes/archive/2026-10-11-add-halo-branding/specs/ui-branding/spec.md diff --git a/openspec/changes/add-halo-branding/tasks.md b/openspec/changes/archive/2026-10-11-add-halo-branding/tasks.md similarity index 100% rename from openspec/changes/add-halo-branding/tasks.md rename to openspec/changes/archive/2026-10-11-add-halo-branding/tasks.md diff --git a/openspec/changes/rename-shared-album-to-galo/.openspec.yaml b/openspec/changes/archive/2026-10-11-rename-shared-album-to-galo/.openspec.yaml similarity index 100% rename from openspec/changes/rename-shared-album-to-galo/.openspec.yaml rename to openspec/changes/archive/2026-10-11-rename-shared-album-to-galo/.openspec.yaml diff --git a/openspec/changes/rename-shared-album-to-galo/design.md b/openspec/changes/archive/2026-10-11-rename-shared-album-to-galo/design.md similarity index 100% rename from openspec/changes/rename-shared-album-to-galo/design.md rename to openspec/changes/archive/2026-10-11-rename-shared-album-to-galo/design.md diff --git a/openspec/changes/rename-shared-album-to-galo/proposal.md b/openspec/changes/archive/2026-10-11-rename-shared-album-to-galo/proposal.md similarity index 100% rename from openspec/changes/rename-shared-album-to-galo/proposal.md rename to openspec/changes/archive/2026-10-11-rename-shared-album-to-galo/proposal.md diff --git a/openspec/changes/rename-shared-album-to-galo/tasks.md b/openspec/changes/archive/2026-10-11-rename-shared-album-to-galo/tasks.md similarity index 100% rename from openspec/changes/rename-shared-album-to-galo/tasks.md rename to openspec/changes/archive/2026-10-11-rename-shared-album-to-galo/tasks.md diff --git a/openspec/specs/ui-branding/spec.md b/openspec/specs/ui-branding/spec.md new file mode 100644 index 0000000..af1dcf7 --- /dev/null +++ b/openspec/specs/ui-branding/spec.md @@ -0,0 +1,61 @@ +# 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** эмблема и фавикон отображаются