Skip to content

Latest commit

 

History

History
41 lines (29 loc) · 3.4 KB

File metadata and controls

41 lines (29 loc) · 3.4 KB

Руководство по вкладу: быстрый старт по темам

English Simplified Chinese Traditional Chinese Japanese Korean

Этот документ для внешних разработчиков, которые хотят открыть PR в основном для настройки цветовой темы приложения.

1. Добавьте тему в lib/model/app_theme.dart

  1. Скопируйте существующую тему (обычно .dim или .lightsOut) и переименуйте, например в .myTheme.
  2. Заполните все обязательные цветовые поля (primary, themePrimary, qb*, g*, цвета ввода/сообщений и т.д.).
  3. Правильно задайте isLight (true для светлой темы, false для тёмной).
  4. Добавьте новую ветку в displayName.
  5. Обновите fromString и toString для совместимости сохранённых настроек.

2. Покажите тему в lib/widgets/theme_selector.dart

  1. Добавьте новый FormItem в список items.
  2. Добавьте обработчик по аналогии с _onDimPressed / _onLightsOutPressed:
    • обновите P.preference.preferredDarkCustomTheme.q
    • сохраните halo_state.preferredDarkCustomTheme
  3. Переиспользуйте логику выбранного состояния: preferredDarkCustomTheme == .yourTheme.

Примечание: текущая структура это «одна светлая тема + несколько тёмных». Если добавляете дополнительные светлые темы, также обновите синхронизацию в lib/store/app.dart.

3. Что делает Args.debuggingThemes

  • Аргумент запуска: --dart-define=debuggingThemes=true
  • Поведение в debug: приложение каждую секунду переключается между .light и текущей тёмной настройкой (preferredDarkCustomTheme).
  • Назначение: быстро проверять контраст, читаемость и покрытие темы на одном и том же экране.

4. Одновременный запуск desktop + mobile UI в .vscode/launch.json

  1. Используйте отдельные launch-конфигурации для платформ (например macOS / Android / iOS).
  2. Объедините их в compounds (например all (Halo)).
  3. Запускайте compound-конфигурацию для параллельного запуска UI на нескольких платформах.

Опционально: добавьте --dart-define=debuggingThemes=true в нужные launch-конфигурации для автоматического превью light/dark.