Sparround

Theming və Material 3

Rənglər və şriftlər widget-lərin içində sabit yazılmamalıdır. Flutter-də mərkəzi yer `ThemeData`-dır: MaterialApp(theme: ...) ilə verilir və bütün ağac boyu Theme.of(context) vasitəsilə oxunur.

Material 3 (Flutter-in müasir defaultu) yanaşmanı sadələşdirir: bir seedColor-dan bütöv, uyğunlaşdırılmış rəng sxemi generasiya olunur:

  • ColorScheme.fromSeed(seedColor: ...) — açıq və qaranlıq üçün ayrı-ayrı
  • themedarkTheme verilir, themeMode isə hansının işlədiyini seçir
  • ThemeMode.system cihazın ayarına tabe olur
YanaşmaNəticə
Widget-də `Colors.blue` yazmaqDark mode-da oxunmur, brend dəyişəndə hər faylı redaktə etmək lazım gəlir
`Theme.of(context).colorScheme.primary`Hər iki rejimdə düzgün, dəyişiklik tək yerdən
`TextStyle(fontSize: 16)` yazmaqTipoqrafiya ekranlar arası fərqlənir
`Theme.of(context).textTheme.bodyLarge`Vahid tipoqrafiya, accessibility ayarlarına hörmət

Interview ipucu. "Dark mode-u necə dəstəkləyirsən?" sualının doğru cavabı "if (isDark) qara rəng verirəm" deyil. Güclü cavab: themedarkTheme-i ayrıca qururam, themeMode: ThemeMode.system ilə cihaz ayarına tabe oluram, və widget kodunda heç bir sabit rəng olmur — hər şey colorScheme-dən gəlir. Bir addım irəli: ColorScheme.fromSeed ilə kontrast nisbətlərinin avtomatik uyğunlaşdığını qeyd et.

📚 Mənbələr və sənədlər