Список задач, карточки и шторка дропдауна на мобильных (0.68–0.77)
- Цвета проектов (0.68–0.72): палитра пересобрана с объективным порогом
  различимости — 8 базовых тонов × ступени светлоты + 5 нейтральных = 27
  клеток, минимальная попарная ΔE76 в CIELAB 12.5 (приглушённые варианты
  сливались, чёрный не виден на тёмной панели). Метка проекта — кружок, у
  проекта с сайтом — фавикон внутри метки.
- Список задач (0.70–0.74): фильтр по проекту и табы приоритета убраны,
  приоритет — переключателем «Приоритетные» с серверной отсечкой
  priority_min (7–10; задача без приоритета в отсечку не попадает). Тег
  ищется подстрокой имени (параметр tag, icontains с autoescape) с debounce,
  ввод — GnCombobox; статус — табы кита с горизонтальной прокруткой. То же
  на странице проекта. Фильтры-поля переехали в слот действий шапки.
- Выравнивание фильтров (0.76): кит держит 8px margin-top у input и 15px
  margin-bottom у form-group — внутри flex-обёртки они не схлопываются, и
  поле стояло на 3.5px выше центра ряда, а крестик сброса (отсчёт от низа
  обёртки) уезжал к нижнему краю поля. Отступы внутри фильтра обнулены:
  обёртка стала ровно в коробку поля, центры сходятся до пикселя.
- Карточка задачи (0.75–0.76): кликабельна целиком (клик мимо внутренних
  ссылок/кнопок и по невыделенному тексту), бейдж проекта — ссылкой.
  Свежесть задачи переехала из ряда бейджей в подвал карточки (слот footer,
  черта 1px, прижат к низу — в сетке все карточки на одной линии): height
  100% содержимого у кита выталкивало подвал, карточка стала flex-колонкой.
  Иконка рядом с текстом — с китовым классом normalize.
- Полосы прокрутки (0.76): тонкие, бегунок акцентом, скругление в пилюлю,
  прозрачная дорожка — как у полосы меню-дровера кита. Заданы и
  scrollbar-width/color, и ::-webkit-scrollbar-*; у дровера приоритетнее
  правило кита.
- Шторка дропдауна на мобильных (0.77): до 767px меню — лист снизу во всю
  ширину экрана с затемнением и «ручкой», пункты 44px, выезд снизу 0.22s
  вместо китового overlay_reveal. Слой затемнения — div вне #app (index.html)
  и body:has(.dropdown.is-open): для китового обработчика клик по нему «вне
  меню», поэтому тап по затемнению закрывает меню без JS, а JS-кламп
  координат на мобильных выключен. Китовый panel_boot оставляет у шапки
  transform (содержащий блок для position:fixed) — на мобильных анимация
  шапки снята, правило «меню в шапке прижато вправо» тоже оставлено
  десктопу. Задача на перенос в кит оформлена отдельно:
  gnexus-ui-kit/docs/tasks/gn-dropdown-mobile-sheet.md.
- Кнопка «назад» над шапкой страницы (0.70): показывается, когда в истории
  приложения есть предыдущий экран; возврат на экран входа не предлагается.

ТЗ 0.68–0.77; тесты бэкенда 209, ruff/mypy чисто, сборка фронта зелёная.

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 6ddbcef commit 777c0e95c99ae19e9ac4cad28835d74550d9fe26
@root root authored 15 hours ago
Showing 20 changed files
View
backend/app/api/tasks.py
View
backend/tests/test_tasks_api.py
View
docs/TZ.md
View
frontend/index.html
View
frontend/src/App.vue
View
frontend/src/components/ProjectColorDot.vue
View
frontend/src/components/ProjectColorPicker.vue
View
frontend/src/components/ProjectMark.vue
View
frontend/src/components/TaskBadges.vue
View
frontend/src/components/TaskCard.vue
View
frontend/src/dropdownClamp.ts
View
frontend/src/kit-overrides.css
View
frontend/src/locales/en.ts
View
frontend/src/locales/ru.ts
View
frontend/src/locales/uk.ts
View
frontend/src/projectColor.ts
View
frontend/src/taskui.ts
View
frontend/src/views/ListView.vue
View
frontend/src/views/ProjectView.vue
View
frontend/src/views/ProjectsView.vue