# 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` из темы)