From bf11cbada35f6d1b7d797045cc7f80d5001e159c Mon Sep 17 00:00:00 2001 From: Iu Date: Sat, 10 Oct 2026 13:20:06 +0300 Subject: [PATCH] chore(openspec): archive material-icons-ui and sync ui-iconography spec Move the completed material-icons-ui change to openspec/changes/archive/2026-10-10-material-icons-ui/ and create the ui-iconography main spec from its ADDED requirements. --- .../.openspec.yaml | 0 .../2026-10-10-material-icons-ui}/design.md | 0 .../2026-10-10-material-icons-ui}/proposal.md | 0 .../specs/ui-iconography/spec.md | 0 .../2026-10-10-material-icons-ui}/tasks.md | 0 openspec/specs/ui-iconography/spec.md | 43 +++++++++++++++++++ 6 files changed, 43 insertions(+) rename openspec/changes/{material-icons-ui => archive/2026-10-10-material-icons-ui}/.openspec.yaml (100%) rename openspec/changes/{material-icons-ui => archive/2026-10-10-material-icons-ui}/design.md (100%) rename openspec/changes/{material-icons-ui => archive/2026-10-10-material-icons-ui}/proposal.md (100%) rename openspec/changes/{material-icons-ui => archive/2026-10-10-material-icons-ui}/specs/ui-iconography/spec.md (100%) rename openspec/changes/{material-icons-ui => archive/2026-10-10-material-icons-ui}/tasks.md (100%) create mode 100644 openspec/specs/ui-iconography/spec.md diff --git a/openspec/changes/material-icons-ui/.openspec.yaml b/openspec/changes/archive/2026-10-10-material-icons-ui/.openspec.yaml similarity index 100% rename from openspec/changes/material-icons-ui/.openspec.yaml rename to openspec/changes/archive/2026-10-10-material-icons-ui/.openspec.yaml diff --git a/openspec/changes/material-icons-ui/design.md b/openspec/changes/archive/2026-10-10-material-icons-ui/design.md similarity index 100% rename from openspec/changes/material-icons-ui/design.md rename to openspec/changes/archive/2026-10-10-material-icons-ui/design.md diff --git a/openspec/changes/material-icons-ui/proposal.md b/openspec/changes/archive/2026-10-10-material-icons-ui/proposal.md similarity index 100% rename from openspec/changes/material-icons-ui/proposal.md rename to openspec/changes/archive/2026-10-10-material-icons-ui/proposal.md diff --git a/openspec/changes/material-icons-ui/specs/ui-iconography/spec.md b/openspec/changes/archive/2026-10-10-material-icons-ui/specs/ui-iconography/spec.md similarity index 100% rename from openspec/changes/material-icons-ui/specs/ui-iconography/spec.md rename to openspec/changes/archive/2026-10-10-material-icons-ui/specs/ui-iconography/spec.md diff --git a/openspec/changes/material-icons-ui/tasks.md b/openspec/changes/archive/2026-10-10-material-icons-ui/tasks.md similarity index 100% rename from openspec/changes/material-icons-ui/tasks.md rename to openspec/changes/archive/2026-10-10-material-icons-ui/tasks.md diff --git a/openspec/specs/ui-iconography/spec.md b/openspec/specs/ui-iconography/spec.md new file mode 100644 index 0000000..40f5c49 --- /dev/null +++ b/openspec/specs/ui-iconography/spec.md @@ -0,0 +1,43 @@ +# ui-iconography Specification + +## Purpose + +Единая система иконок веб-интерфейса: самодостаточные векторные иконки, которые наследуют +цвет темы и корректно ведут себя для вспомогательных технологий. + +## Requirements + +### Requirement: Самодостаточные векторные иконки +Интерфейс SHALL отображать иконки как векторную графику, встроенную в документ, без запросов +к внешним источникам за иконками. + +#### Scenario: Отображение иконки +- **WHEN** интерфейс показывает иконку (например, лайк, тему, закрытие лайтбокса) +- **THEN** она отрисована встроенной векторной графикой, а не эмодзи или символом системного шрифта + +#### Scenario: Автономная загрузка +- **WHEN** страница загружается без доступа к внешней сети, кроме собственного сервера +- **THEN** все иконки отображаются, так как не требуют внешних ресурсов + +### Requirement: Наследование цвета темы +Иконка SHALL наследовать цвет текущей темы и изменять его при переключении темы. + +#### Scenario: Переключение темы +- **WHEN** пользователь переключает тему (light/dark/neutral) +- **THEN** цвет иконок меняется вместе с темой без дополнительных действий + +### Requirement: Доступность иконок +Система SHALL скрывать декоративные иконки от вспомогательных технологий и давать доступное +имя смысловым иконочным элементам управления. + +#### Scenario: Декоративная иконка +- **WHEN** иконка сопровождает видимый текст или находится внутри кнопки с текстом +- **THEN** она скрыта от скринридеров + +#### Scenario: Иконочная кнопка без текста +- **WHEN** кнопка содержит только иконку (например, выбор темы) +- **THEN** кнопка имеет доступное имя + +#### Scenario: Тумблер темы +- **WHEN** кнопка выбора темы активна или неактивна +- **THEN** её состояние передаётся вспомогательным технологиям как «нажата/не нажата»