Files

22 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tasks
## 1. Выдвижение панели и рейла на узком экране
- [x] 1.1 В `AppShell.svelte` у `<aside aria-label="Панель">` убрать постоянный `translate-x-full` и эмитить единственный класс трансформации: `panelOpen ? 'translate-x-0' : 'translate-x-full'` (вариант `xl:translate-x-0` сохранить). Проверка: при ширине 390px после нажатия «Панель» computed `translate` равен `0px`, `aside` попадает в пределы вьюпорта.
- [x] 1.2 Тем же принципом нормализовать `<aside aria-label="Альбомы">` (единственный класс вместо постоянного `-translate-x-full`). Проверка: на 390px кнопка «Альбомы» открывает рейл (computed `translate: 0px`).
- [x] 1.3 Проверить отсутствие регрессии на рабочем столе: при ширине >= 1280px обе панели видны статично, разделители ширины работают. Проверка: вьюпорт 1280px — панели видимы, drag разделителя меняет ширину.
## 2. Открытие фото одним касанием на сенсорных экранах
- [x] 2.1 В `PhotoGrid.svelte` фиксировать `pointerType` на `pointerdown` ячейки и добавить хелпер активации: для `touch`/`pen` вызывать `onOpen(i)`, иначе — `onSelect(i, e)`. Проверка: тап по фото на touch-эмуляции открывает маршрут просмотра; клик мышью выделяет и не открывает.
- [x] 2.2 Оставить `ondblclick -> onOpen` для мыши без изменений. Проверка: двойной клик мышью открывает просмотр.
- [x] 2.3 При сенсорной активации не менять `selection`, `cursorIndex` и содержимое панели. Проверка: после тапа `selection` пуст, номер фото в панели не появляется, происходит переход в просмотр.
- [x] 2.4 Добавить ячейке `touch-action: manipulation`, чтобы исключить двойной тап-зум. Проверка: быстрый двойной тап не масштабирует страницу и открывает просмотр.
- [x] 2.5 Проверить, что клавиатурный `Enter` открывает фото, а навигация стрелками и ровинг `tabindex` не изменились. Проверка: Enter на ячейке открывает просмотр; стрелки двигают курсор, ровно одна ячейка tabbable.
## 3. Интеграционная проверка
- [x] 3.1 `npm run check` и `npm run build` во `frontend/` проходят без ошибок. Проверка: обе команды завершаются успешно.
- [x] 3.2 CDP-прогон на вьюпорте 390x844 с touch: (а) «Панель» выдвигает панель, оверлей закрывает; (б) тап по фото открывает просмотр; (в) мышь-клик по фото выделяет без перехода; (г) «Альбомы» открывает рейл. Проверка: все четыре пункта наблюдаемы.
- [x] 3.3 Убедиться, что сценарии в `openspec/specs/ui-workspace/spec.md` синхронизируются при архивации изменения. Проверка: `openspec validate "mobile-tap-open-and-panel" --strict` проходит; при архивации спека содержит новые сценарии.