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

2.6 KiB

Proposal

Why

Регулятор размера миниатюр работает «наоборот»: сдвиг вправо увеличивает число колонок и уменьшает плитки, тогда как пользователи ожидают обратного — вправо крупнее. Это делает управление размером контринтуитивным, а без кнопок шага нельзя подстроить сетку одним нажатием. Кнопка загрузки к тому же визуально сливается с регулятором в тулбаре альбома.

What Changes

  • Инвертировать отображение регулятора: вправо — крупнее (меньше колонок), влево — мельче (больше колонок). Каноническое значение и формат хранения не меняются.
  • Добавить по бокам регулятора две иконочные кнопки шага: «−» (мельче) и «+» (крупнее), в пределах существующего диапазона 2..8.
  • Кнопки шага используют иконки remove (минус) и add (плюс).
  • Отделить кнопку загрузки от регулятора вертикальным разделителем в тулбаре альбома.
  • Оставить единый регулятор в обоих местах — обзор альбомов и сетка фото альбома — с общим сохранённым значением.
  • Не менять ключ 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 и зависимости не затрагиваются.