docs(openspec): описать правки редактора, сделанные без спецификаций
Дополнены спеки ui-workspace (сворачивание кривой, живая гистограмма, точки кривой, навигация в зуме, Space к центру), media-objects (роли edit*, привязка отредактированной версии, отдельная очередь рендера правок), photos (рендер по оригиналу) и dev-make-workflow (сборка WASM-модуля).
This commit is contained in:
@@ -263,9 +263,9 @@ SHALL выдвигать правую панель поверх содержим
|
||||
Просмотр SHALL поддерживать зум колесом мыши без прокрутки, с привязкой к указателю и
|
||||
верхним пределом 200% размеров фото. Клавиши `+` и `-` SHALL менять масштаб на шаг, сохраняя
|
||||
точку в центре просмотра. `Space` SHALL возвращать изображение из любого зума во
|
||||
вписанный вид, а из вписанного — в 100%. При зуме SHALL догружаться оригинал изображения.
|
||||
Стрелки соседних фото SHALL появляться у левой/правой кромки и прятаться в зуме. Зум SHALL
|
||||
работать и в полноэкранном режиме.
|
||||
вписанный вид, а из вписанного — в 100% от оригинала с центрированием по центру кадра.
|
||||
При зуме SHALL догружаться оригинал изображения. Зум SHALL работать и в полноэкранном
|
||||
режиме.
|
||||
|
||||
#### Scenario: Зум колесом к указателю
|
||||
- **WHEN** пользователь вращает колесо мыши над фото
|
||||
@@ -278,16 +278,27 @@ SHALL выдвигать правую панель поверх содержим
|
||||
|
||||
#### Scenario: Пробел
|
||||
- **WHEN** пользователь нажимает `Space`
|
||||
- **THEN** из вписанного вида изображение переходит в 100%, а из любого зума возвращается во вписанный
|
||||
- **THEN** из вписанного вида изображение переходит в 100% от оригинала по центру кадра, а из
|
||||
любого зума возвращается во вписанный
|
||||
|
||||
#### Scenario: Оригинал в зуме
|
||||
- **WHEN** пользователь входит в зум
|
||||
- **THEN** догружается оригинал изображения и подменяется по факту загрузки
|
||||
|
||||
### Requirement: Навигация в зуме
|
||||
Стрелки соседних фото SHALL появляться у левой/правой кромки и прятаться в зуме. Клавиши
|
||||
со стрелками в зуме SHALL перемещать изображение, а переключение соседних фото SHALL
|
||||
оставаться за мышью и кнопками у краёв. В зуме пользователь SHALL перемещать изображение
|
||||
перетаскиванием и прокруткой.
|
||||
|
||||
#### Scenario: Стрелки соседних фото
|
||||
- **WHEN** курсор находится у левой или правой кромки области просмотра
|
||||
- **THEN** показывается соответствующая стрелка, скрываясь сразу после ухода; в зуме стрелки скрыты
|
||||
|
||||
#### Scenario: Стрелки в зуме
|
||||
- **WHEN** фото увеличено, и пользователь жмёт стрелки клавиатуры
|
||||
- **THEN** изображение перемещается, а переключение соседних фото не происходит
|
||||
|
||||
#### Scenario: Панорамирование
|
||||
- **WHEN** фото увеличено
|
||||
- **THEN** пользователь может перемещать изображение перетаскиванием и прокруткой
|
||||
@@ -779,27 +790,28 @@ SHALL очищаться. При отсутствии сети приложен
|
||||
### Requirement: Вкладка «Редактирование»
|
||||
Правая панель фото SHALL содержать вкладку «Редактирование» с инструментом «Свет»:
|
||||
ползунки экспозиции, контраста, светов, теней, белых и чёрных, а также точечную кривую
|
||||
с выбором канала. График кривой SHALL показывать гистограмму каналов фото: выбранный
|
||||
канал — своим цветом, мастер-канал — всеми тремя. Правки SHALL применяться к фото сразу и
|
||||
отправляться на сервер после десяти секунд без изменений либо при переключении фото.
|
||||
Переключатель «Сброс» SHALL удалять параметры правок и отредактированную версию фото.
|
||||
Сетка и просмотр SHALL показывать отредактированную версию фото, когда она отрендерена.
|
||||
|
||||
#### Scenario: Отложенная отправка
|
||||
- **WHEN** пользователь меняет ползунок и не трогает панель десять секунд
|
||||
- **THEN** правки отправляются на сервер, а сервер рендерит фото в фоне
|
||||
с выбором канала. Правки SHALL применяться к фото сразу и отправляться на сервер после
|
||||
десяти секунд без изменений либо при переключении фото. Переключатель «Сброс» SHALL
|
||||
удалять параметры правок и отредактированную версию фото. Сетка и просмотр SHALL
|
||||
показывать отредактированную версию фото, когда она отрендерена. Обновление фото SHALL
|
||||
сохранять открытую вкладку панели.
|
||||
|
||||
#### Scenario: Вкладки панели
|
||||
- **WHEN** открыта правая панель фото
|
||||
- **THEN** видны вкладки «Сведения» и «Редактирование»
|
||||
|
||||
#### Scenario: Отложенная отправка
|
||||
- **WHEN** пользователь меняет ползунок и не трогает панель десять секунд
|
||||
- **THEN** правки отправляются на сервер, а сервер рендерит фото в фоне
|
||||
|
||||
#### Scenario: Сохранение правок
|
||||
- **WHEN** пользователь отпускает ползунок
|
||||
- **THEN** правки сохраняются, а после рендера фото в сетке и просмотре показывается отредактированная версия
|
||||
|
||||
#### Scenario: Правки видны сразу
|
||||
- **WHEN** пользователь меняет ползунок, а сервер ещё не отрендерил фото
|
||||
- **THEN** видимая область фото в просмотре показывает правки без ожидания рендера
|
||||
- **THEN** видимая область фото в просмотре показывает правки без ожидания рендера — и во
|
||||
вписанном виде, и в зуме
|
||||
|
||||
#### Scenario: Фильтры считаются в браузере
|
||||
- **WHEN** браузер рисует предпросмотр правок
|
||||
@@ -812,3 +824,25 @@ SHALL очищаться. При отсутствии сети приложен
|
||||
#### Scenario: Зум при правках
|
||||
- **WHEN** фото отредактировано, и пользователь увеличивает его
|
||||
- **THEN** браузер рисует видимую область с правками, пока сервер не отрендерил фото, а зум не сбрасывается при обновлении фото
|
||||
|
||||
### Requirement: График тональной кривой
|
||||
График кривой SHALL показывать гистограмму каналов фото: выбранный канал — своим
|
||||
цветом, мастер-канал — всеми тремя. Гистограмма SHALL пересчитываться с учётом
|
||||
текущих правок. Точки кривой SHALL добавляться кликом по полю графика, перетаскиваться
|
||||
и перемещаться стрелками клавиатуры. Блок «Кривая» SHALL сворачиваться и разворачиваться
|
||||
по клику на заголовок, по умолчанию SHALL быть свёрнут, а кнопки выбора канала SHALL
|
||||
оставаться доступными.
|
||||
|
||||
#### Scenario: Живая гистограмма
|
||||
- **WHEN** пользователь двигает ползунок или точку кривой
|
||||
- **THEN** гистограмма на графике пересчитывается с учётом текущих правок
|
||||
|
||||
#### Scenario: Точки кривой
|
||||
- **WHEN** пользователь кликает по полю графика, перетаскивает точку или жмёт стрелки с
|
||||
фокусом на точке
|
||||
- **THEN** точка добавляется, перемещается и меняет кривую
|
||||
|
||||
#### Scenario: Сворачивание кривой
|
||||
- **WHEN** пользователь открывает инструмент «Свет»
|
||||
- **THEN** блок «Кривая» свёрнут, кнопки выбора канала доступны, а по клику на заголовок
|
||||
график разворачивается и сворачивается обратно
|
||||
|
||||
Reference in New Issue
Block a user