40 lines
2.6 KiB
Markdown
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 и зависимости не затрагиваются.
|