Определяют light/dark ColorScheme, выбирают по isSystemInDarkTheme(), на поддерживаемых API подключают dynamic color, оборачивают приложение в MaterialTheme.
Разбор
- Проверяйте контраст текста.
- Кастомные брендовые цвета мапьте на токены, не только primary.
- Preview для обеих тем.
- Force dark / app setting — отдельный state поверх system.
Итог
Тема = схемы + выбор mode; dynamic color — опциональное усиление Material You.