66 lines
4.8 KiB
Markdown
66 lines
4.8 KiB
Markdown
# Spec Delta
|
||
|
||
## Purpose
|
||
|
||
Позволяет пользователю выбрать фон панели прямо на странице, отдельно на каждом устройстве
|
||
(Safari на iPad, Toolbelt на Mac), чтобы панель не резала глаза рядом с его терминалом.
|
||
|
||
## ADDED Requirements
|
||
|
||
### Requirement: Шестерёнка настройки фона
|
||
Нижняя строка панели (рядом с «обновлено ЧЧ:ММ:СС») SHALL содержать значок ⚙. Тап по нему SHALL
|
||
раскрывать строку с образцами фона, кнопкой «свой цвет» и кнопкой «сброс»; повторный тап SHALL её
|
||
сворачивать. В свёрнутом виде, кроме значка, ничего нового на странице не видно.
|
||
|
||
#### Scenario: Раскрыть и свернуть
|
||
- **WHEN** пользователь нажимает ⚙
|
||
- **THEN** появляется строка образцов; при повторном нажатии она скрывается
|
||
|
||
#### Scenario: Попадание пальцем
|
||
- **WHEN** страница открыта в Safari на iPad
|
||
- **THEN** ⚙, образцы и кнопки нажимаются пальцем без промахов (не мельче привычных элементов
|
||
управления iPadOS)
|
||
|
||
### Requirement: Выбор фона
|
||
Выбор образца или своего цвета SHALL сразу менять фон всей панели, включая окно сообщений. Цвет
|
||
основного текста, приглушённого текста, линий дерева и разделителей SHALL подстраиваться под
|
||
яркость фона, чтобы оставаться читаемым. Цвета статусов и лимитов (зелёный, жёлтый, красный)
|
||
SHALL оставаться прежними.
|
||
|
||
#### Scenario: Светлый фон
|
||
- **WHEN** пользователь выбирает светлый образец
|
||
- **THEN** фон становится светлым, а текст — тёмным и читаемым
|
||
|
||
#### Scenario: Свой цвет
|
||
- **WHEN** пользователь нажимает «свой цвет» и выбирает цвет в системной палитре
|
||
- **THEN** фон панели становится этим цветом, текст подстраивается
|
||
|
||
### Requirement: Выбор хранится на устройстве
|
||
Выбранный фон SHALL сохраняться средствами того браузера или web view, где он выбран, и SHALL
|
||
применяться при каждом открытии и автоматической перезагрузке страницы без мелькания темы по
|
||
умолчанию. Выбор на одном устройстве SHALL NOT влиять на другие. Если клиент не сохраняет данные
|
||
страницы между своими перезапусками (возможно, web view Toolbelt), после перезапуска клиента
|
||
показывается тема по умолчанию; на сервере выбор не хранится.
|
||
|
||
#### Scenario: Клиент без постоянного хранилища
|
||
- **WHEN** выбор фона сделан в Toolbelt, а web view Toolbelt не сохраняет данные между
|
||
перезапусками iTerm2, и iTerm2 перезапущен
|
||
- **THEN** панель в Toolbelt показывает тему по умолчанию
|
||
|
||
#### Scenario: Перезагрузка страницы
|
||
- **WHEN** пользователь выбрал фон в Safari на iPad и страница перезагрузилась (сама раз в минуту
|
||
или вручную)
|
||
- **THEN** сразу отображается выбранный фон
|
||
|
||
#### Scenario: Разные устройства
|
||
- **WHEN** в Safari на iPad выбран светлый фон
|
||
- **THEN** панель в Toolbelt на Mac сохраняет свой фон
|
||
|
||
### Requirement: Сброс к теме по умолчанию
|
||
«Сброс» SHALL удалять сохранённый выбор и возвращать тему, которую отдаёт сервер. Тема по умолчанию
|
||
SHALL выглядеть как нынешний профиль iTerm2 пользователя (`Chat`: фон `#002b36`, текст `#aacace`).
|
||
|
||
#### Scenario: Сброс
|
||
- **WHEN** пользователь нажимает «сброс»
|
||
- **THEN** панель показывает тему по умолчанию, и после перезагрузки она остаётся по умолчанию
|