feat(ui): open photo on tap for touch and fix narrow-screen panel

- Touch/pen tap opens the viewer; mouse click still selects, dblclick opens
- Panel and rail emit a single transform utility so the panel actually
  slides in below 1280px (Tailwind v4 utility ordering made the base
  translate-x-full win over the conditional translate-x-0)
- Add touch-action: manipulation to grid cells
This commit is contained in:
iu
2026-10-11 17:58:04 +03:00
parent 9b7d81d8fc
commit ebae341c9a
7 changed files with 187 additions and 7 deletions
@@ -0,0 +1,34 @@
# Proposal
## Why
На узких экранах (< 1280px) кнопка «Панель» не открывает правую панель, а на сенсорных
устройствах фото нельзя открыть одним касанием (двойной клик для touch недоступен). Оба
дефекта ломают мобильный сценарий просмотра.
## What Changes
- Исправить выдвижение правой панели на узких экранах: у элемента панели ровно один класс
трансформации вместо конфликтующих постоянного и условного.
- Нормализовать по тому же принципу рейл альбомов, чтобы порядок утилит Tailwind v4 не мог
вернуть дефект.
- На сенсорных устройствах одиночное касание по фото открывает режим просмотра; выделение
тапом не выполняется. Мышь сохраняет прежнее поведение: клик — выделение, двойной — открытие.
- Мультивыбор на сенсорных устройствах доступен через долгое нажатие (контекстное меню).
## Capabilities
### New Capabilities
<!-- нет новых возможностей -->
### Modified Capabilities
- `ui-workspace`: адаптивность рабочего стола (панель/рейл на узком экране) и выбор фото в сетке
(открытие по одному касанию на сенсорных экранах).
## Impact
- `frontend/src/lib/components/AppShell.svelte` — классы трансформации панели и рейла.
- `frontend/src/lib/components/PhotoGrid.svelte` и `frontend/src/routes/(app)/albums/[id]/+page.svelte`
— обработка одиночного касания/клика по фото.
- Спека `ui-workspace`: уточнение двух требований.
- Клавиатурная навигация и ровинг `tabindex` не затрагиваются.