From f714b9180b39904d5dfe5366e0debada38913407 Mon Sep 17 00:00:00 2001 From: Storozhenko Evgeny Date: Sat, 19 Sep 2026 18:22:07 +0000 Subject: [PATCH] =?UTF-8?q?openspec:=20=D0=B0=D1=80=D1=85=D0=B8=D0=B2=20ch?= =?UTF-8?q?ange=20theme-toggle-first-post-card=20(=D1=81=D0=BF=D0=B5=D0=BA?= =?UTF-8?q?=D0=B0=20theme-fixes=20=D0=B2=20specs/)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design.md | 0 .../proposal.md | 0 .../specs/theme-fixes/spec.md | 0 .../tasks.md | 0 openspec/specs/theme-fixes/spec.md | 52 +++++++++++++++++++ 5 files changed, 52 insertions(+) rename openspec/changes/{theme-toggle-first-post-card => archive/2026-09-19-theme-toggle-first-post-card}/design.md (100%) rename openspec/changes/{theme-toggle-first-post-card => archive/2026-09-19-theme-toggle-first-post-card}/proposal.md (100%) rename openspec/changes/{theme-toggle-first-post-card => archive/2026-09-19-theme-toggle-first-post-card}/specs/theme-fixes/spec.md (100%) rename openspec/changes/{theme-toggle-first-post-card => archive/2026-09-19-theme-toggle-first-post-card}/tasks.md (100%) create mode 100644 openspec/specs/theme-fixes/spec.md diff --git a/openspec/changes/theme-toggle-first-post-card/design.md b/openspec/changes/archive/2026-09-19-theme-toggle-first-post-card/design.md similarity index 100% rename from openspec/changes/theme-toggle-first-post-card/design.md rename to openspec/changes/archive/2026-09-19-theme-toggle-first-post-card/design.md diff --git a/openspec/changes/theme-toggle-first-post-card/proposal.md b/openspec/changes/archive/2026-09-19-theme-toggle-first-post-card/proposal.md similarity index 100% rename from openspec/changes/theme-toggle-first-post-card/proposal.md rename to openspec/changes/archive/2026-09-19-theme-toggle-first-post-card/proposal.md diff --git a/openspec/changes/theme-toggle-first-post-card/specs/theme-fixes/spec.md b/openspec/changes/archive/2026-09-19-theme-toggle-first-post-card/specs/theme-fixes/spec.md similarity index 100% rename from openspec/changes/theme-toggle-first-post-card/specs/theme-fixes/spec.md rename to openspec/changes/archive/2026-09-19-theme-toggle-first-post-card/specs/theme-fixes/spec.md diff --git a/openspec/changes/theme-toggle-first-post-card/tasks.md b/openspec/changes/archive/2026-09-19-theme-toggle-first-post-card/tasks.md similarity index 100% rename from openspec/changes/theme-toggle-first-post-card/tasks.md rename to openspec/changes/archive/2026-09-19-theme-toggle-first-post-card/tasks.md diff --git a/openspec/specs/theme-fixes/spec.md b/openspec/specs/theme-fixes/spec.md new file mode 100644 index 0000000..91a489c --- /dev/null +++ b/openspec/specs/theme-fixes/spec.md @@ -0,0 +1,52 @@ +# theme-fixes Specification + +## Purpose +Визуальные фиксы шапки и ленты главной: переключатель темы стоит справа у +навигации (а не «бегает» за логотипом), и первый пост оформлен карточкой как +остальные посты. + +## Requirements + +### Requirement: Переключатель темы — крайний справа + +Система SHALL отображать переключатель «светлая/тёмная тема» (кнопка +`#theme-toggle` в `.logo-switches`) в правой части шапки, после пунктов меню +навигации, а не рядом с логотипом. + +#### Scenario: Позиция переключателя в шапке + +- **GIVEN** любая страница сайта (например, `/`) +- **WHEN** страница отрисована в браузере +- **THEN** кнопка переключателя темы визуально расположена правее пунктов + меню «Главная / Архив / Категории / Теги» и не смещается при наведении + на логотип + +#### Scenario: Порядок flex-элементов + +- **GIVEN** CSS из `assets/css/extended/typewriter.css` +- **WHEN** применены правила `.nav > .logo{order:0}`, + `.nav > #menu{order:1}`, `.nav > .logo-switches{order:2}` +- **THEN** в собранном CSS присутствуют все три правила `order` (проверка: + `grep -o 'order:[012]' public/css/extended/typewriter.min.*.css` содержит 0, 1, 2) + +### Requirement: Карточка первого поста + +Система SHALL оформлять первый пост на главной (`article.first-entry`) +карточкой в том же стиле, что и остальные посты (`.post-entry`): +фон `var(--entry)`, рамка `var(--border)`, скругление `var(--radius)`, +внутренний отступ `var(--gap)`. + +#### Scenario: Первый пост имеет фон и рамку + +- **GIVEN** главная страница `/` +- **WHEN** первый пост (`article.first-entry`) отрисован +- **THEN** он имеет фон, рамку и скругление, идентичные карточкам + `.post-entry` (проверка CSS: правило + `article.first-entry{background:var(--entry);...border:1px solid var(--border)}` + присутствует в собранном CSS) + +#### Scenario: Остальные посты не затронуты + +- **GIVEN** главная страница `/` +- **WHEN** посты со 2-го и далее (`article.post-entry`) отрисованы +- **THEN** их стиль не изменён (тот же `.post-entry` из темы)