Files
ds-galo/openspec/changes/thumbnail-density-control/proposal.md
T

40 lines
2.6 KiB
Markdown

# Proposal
## Why
Регулятор размера миниатюр работает «наоборот»: сдвиг вправо увеличивает число колонок и
уменьшает плитки, тогда как пользователи ожидают обратного — вправо крупнее. Это делает
управление размером контринтуитивным, а без кнопок шага нельзя подстроить сетку одним нажатием.
Кнопка загрузки к тому же визуально сливается с регулятором в тулбаре альбома.
## What Changes
- Инвертировать отображение регулятора: **вправо — крупнее** (меньше колонок), **влево — мельче**
(больше колонок). Каноническое значение и формат хранения не меняются.
- Добавить по бокам регулятора две иконочные кнопки шага: «−» (мельче) и «+» (крупнее), в пределах
существующего диапазона 2..8.
- Добавить иконки `density_small` и `density_large` в реестр иконок.
- Отделить кнопку загрузки от регулятора вертикальным разделителем в тулбаре альбома.
- Оставить единый регулятор в обоих местах — обзор альбомов и сетка фото альбома — с общим
сохранённым значением.
- Не менять ключ `localStorage` и смысл `density.cols`, чтобы не сломать клавиатурную навигацию
(шаг строки = число колонок) и не мигрировать сохранённые значения.
## Capabilities
### New Capabilities
Нет.
### Modified Capabilities
- `ui-workspace`: требование «Плотность сетки» уточняется — направление регулятора (вправо
крупнее), кнопки шага и единый размер в обоих местах.
## Impact
- Frontend: `lib/components/DensityControl.svelte`, `lib/stores/density.svelte.ts`,
`lib/icons/registry.ts`, `routes/(app)/albums/[id]/+page.svelte`.
- Сохранённое значение `localStorage['grid-cols']` и семантика `density.cols` остаются прежними.
- Backend, API и зависимости не затрагиваются.