Flutter предоставляет ThemeData для глобального определения визуальных свойств приложения (цвета, шрифты, типографика и т.д.). Материал-виджеты используют Theme.of(context) для доступа к текущей теме.
Гибкость обеспечивается на нескольких уровнях:
MaterialApp или CupertinoApp и применяется ко всему приложению.Theme могут переопределять глобальную тему для своих дочерних элементов. Это удобно для стилизации отдельных частей UI.ThemeData с помощью ThemeExtension.Пример использования Theme:
dart
Пример использования ThemeExtension:
dart