diff --git a/docs/TZ.md b/docs/TZ.md index 281dc72..6c34b79 100644 --- a/docs/TZ.md +++ b/docs/TZ.md @@ -4,7 +4,7 @@ | | | |---|---| -| Версия ТЗ | 0.80 | +| Версия ТЗ | 0.81 | | Дата | 2026-10-10 | | Статус | На обсуждении | @@ -970,6 +970,25 @@ квадрат 18×18 в `left: -5px` от коробки контрола, поэтому видимый левый край свитча выходил на 3–5px левее соседей по ряду. Сдвиг — компенсация выступа, а не отступ между элементами. +- **Подвал карточки проекта — та же полоса, что у карточки задачи** (0.81): у + карточки проекта подвал был обычной строкой внутри содержимого — без черты- + разделителя, тогда как у карточки задачи с 0.76 это китовый слот `footer` с чертой + во всю ширину. Теперь подвал проекта тоже в слоте `footer`: содержимое забирает + свободную высоту карточки, подвал ложится вниз и отделён чертой во всю ширину, + слева свежесть, справа срок — как в карточке задачи. Сама полоса (черта, раскладка, + мягкий текст мельче основного, высота пустой строки) стала **общей** для обеих + карточек и живёт в `kit-overrides.css`: правила были одни и те же в двух местах. + Пустой подвал (проект без задач и без срока) держит высоту строки — иначе черта у + соседей по ряду встала бы на разной высоте. Скелетон списка повторяет эту полосу, + чтобы загрузка не дёргала раскладку. +- **Строка подвала карточки стоит по центру полосы** (0.81): у кита `.card-footer` — + 8px сверху против 15px снизу, поэтому «2 недели назад» висело на 3.5px выше середины + полосы. Отступы выровнены (12px сверху и снизу), полоса от этого выше прежней на + пиксель. +- **Иконка в подвале карточки проекта выровнена по тексту** (0.81): у свежести и у + отсчёта срока иконка шла без китового класса `normalize`, глиф иконочного шрифта + садился выше середины строки и читался подвешенным — как в карточке задачи, где + этот класс стоит с 0.76. - **Кнопка «назад» над шапкой страницы** (0.70): выйти с любой страницы можно было только через меню разделов, возврата в приложении не было. Теперь над шапкой страницы, на каждой странице, стоит **стрелка назад** — но только если в истории diff --git a/frontend/src/components/TaskCard.vue b/frontend/src/components/TaskCard.vue index 436701f..ab4f3fd 100644 --- a/frontend/src/components/TaskCard.vue +++ b/frontend/src/components/TaskCard.vue @@ -165,20 +165,10 @@ align-items: center; margin-top: 0.5rem; } -/* Подвал карточки (0.76): у кита это просто полоса с отступами — ни границы, ни - раскладки, ни своего размера (flex/13px есть только у горизонтального варианта). - Отделяем подвал чертой (1px — как у прочих внутренних разделителей в приложении; - у самой карточки рамка 2px и подвал с ней не спорит) и ведём мягким текстом: - свежесть — контекст, а не бейдж */ -.task-card :deep(.card-footer) { - display: flex; - flex-wrap: wrap; - align-items: center; - gap: 0.5rem; - border-top: 1px solid var(--gn-border-color-muted, rgba(192, 202, 245, 0.24)); - color: var(--text-muted, #a9b1d6); - font-size: 0.85em; -} +/* Сам подвал (черта, раскладка, мягкий текст) — общая полоса карточек задач и + проектов, она в kit-overrides.css (0.81): правила были побайтово одни и те же + в двух местах, а отступы кита, наоборот, разъезжались (8px сверху против 15px + снизу) — строка подвала висела выше середины полосы */ .card-age { display: inline-flex; align-items: center; diff --git a/frontend/src/kit-overrides.css b/frontend/src/kit-overrides.css index 9336393..da1c976 100644 --- a/frontend/src/kit-overrides.css +++ b/frontend/src/kit-overrides.css @@ -93,6 +93,33 @@ border-radius: 999px; } +/* --- Подвал карточки (0.76, отступы выровнены в 0.81) --- */ +/* У кита `.card .card-footer` — просто полоса с отступами: ни границы, ни + раскладки, ни своего размера (flex/13px есть только у горизонтального + варианта), да ещё и отступы несимметричны — 8px сверху против 15px снизу, + из-за чего строка подвала висела на 3.5px выше середины полосы. Здесь общий + вид подвала для карточек задач и проектов: черта-разделитель во всю ширину + карточки (1px — как у прочих внутренних разделителей в приложении; рамка + самой карточки 2px и с ней не спорит), мягкий текст мельче основного и равные + отступы сверху и снизу, поэтому строка стоит ровно по центру полосы. + 12px, а не точные 11.5px — округление; полоса от этого выше прежней ровно на + пиксель (43px → 44px). + min-height держит полосу одной строкой: у проекта без задач и без срока она + пустая и иначе схлопнулась бы в 25px (отступы + черта), а черта встала бы на + разной высоте у соседей по ряду. 25px — это те же 12px сверху и снизу плюс + черта: min-height у рамки, а не у содержимого (кит ставит box-sizing:border-box) */ +.card .card-footer { + padding: 12px 15px; + min-height: calc(1.6em + 25px); + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.5rem; + border-top: 1px solid var(--gn-border-color-muted, rgba(192, 202, 245, 0.24)); + color: var(--gn-color-text-medium, #a9b1d6); + font-size: 0.85em; +} + /* --- Дропдауны на мобильных: шторка снизу (0.77) --- */ /* Кит позиционирует меню от левого края триггера (position:absolute; left:0, min-width:220px) — на телефоне у триггеров у правого края меню уезжало за diff --git a/frontend/src/views/ProjectsView.vue b/frontend/src/views/ProjectsView.vue index bddaa73..3748432 100644 --- a/frontend/src/views/ProjectsView.vue +++ b/frontend/src/views/ProjectsView.vue @@ -296,14 +296,15 @@ - -