Этот документ для внешних разработчиков, которые хотят открыть PR в основном для настройки цветовой темы приложения.
- Скопируйте существующую тему (обычно
.dimили.lightsOut) и переименуйте, например в.myTheme. - Заполните все обязательные цветовые поля (
primary,themePrimary,qb*,g*, цвета ввода/сообщений и т.д.). - Правильно задайте
isLight(trueдля светлой темы,falseдля тёмной). - Добавьте новую ветку в
displayName. - Обновите
fromStringиtoStringдля совместимости сохранённых настроек.
- Добавьте новый
FormItemв списокitems. - Добавьте обработчик по аналогии с
_onDimPressed/_onLightsOutPressed:- обновите
P.preference.preferredDarkCustomTheme.q - сохраните
halo_state.preferredDarkCustomTheme
- обновите
- Переиспользуйте логику выбранного состояния:
preferredDarkCustomTheme == .yourTheme.
Примечание: текущая структура это «одна светлая тема + несколько тёмных». Если добавляете дополнительные светлые темы, также обновите синхронизацию в lib/store/app.dart.
- Аргумент запуска:
--dart-define=debuggingThemes=true - Поведение в debug: приложение каждую секунду переключается между
.lightи текущей тёмной настройкой (preferredDarkCustomTheme). - Назначение: быстро проверять контраст, читаемость и покрытие темы на одном и том же экране.
- Используйте отдельные launch-конфигурации для платформ (например macOS / Android / iOS).
- Объедините их в
compounds(напримерall (Halo)). - Запускайте compound-конфигурацию для параллельного запуска UI на нескольких платформах.
Опционально: добавьте --dart-define=debuggingThemes=true в нужные launch-конфигурации для автоматического превью light/dark.