Modo Escuro e Cores Dinâmicas
Adapte as cores ao sistema e ao papel de parede.
Modo Escuro e Cores Dinâmicas é uma aula grátis de Jetpack Compose Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Jetpack Compose Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Jetpack Compose Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Two Palettes, One App
A polished app ships both a light and a dark palette. You define them as separate colorScheme objects and switch between them at the theme level. 🌙
Detect the System Setting
You ask the system which mode is active with isSystemInDarkTheme, a Composable that returns true when the user prefers dark.
val dark = isSystemInDarkTheme()Pick the Scheme
With that flag you choose which palette to pass into MaterialTheme, so the app follows the system dark mode setting automatically.
val scheme = if (dark) darkColorScheme()
else lightColorScheme()darkColorScheme Defaults
The darkColorScheme builder ships sensible low-light defaults, so even before customizing you get readable, comfortable dark surfaces.
Contrast Still Matters
In dark mode you keep the same color roles, but tune surfaces darker and on-colors lighter so text stays easy to read.
What Is Dynamic Color
Dynamic color is Material You magic: on Android 12 and up the system can derive your palette from the user's wallpaper. 🎨
Check the Android Version
Dynamic color needs API 31 or higher, so you gate it with a version check before reaching for the wallpaper-based scheme.
val supported = Build.VERSION.SDK_INT >= 31Build a Dynamic Scheme
When supported, you call dynamicLightColorScheme or its dark variant with a context to pull colors straight from the wallpaper.
dynamicDarkColorScheme(context)Always Have a Fallback
On older devices dynamic color is unavailable, so you fall back to your hand-crafted colorScheme to keep branding intact.
Wire It Together
Your theme picks dynamic when allowed, else dark or light by system setting, so one colorScheme choice handles every case.
val scheme = when {
dynamicOk && dark -> dynamicDarkColorScheme(ctx)
dark -> darkColorScheme()
else -> lightColorScheme()
}Test Both Modes
Preview your screens in light and dark, and on a colorful wallpaper, so dynamic color never surprises you with unreadable combos. ✨
Quick Check
A user on Android 13 sets a purple wallpaper. What can your theme do?
Recap: Adaptive, Personal Color
You detected the system mode with isSystemInDarkTheme, swapped palettes, and layered dynamic color with a safe fallback. 🎉
Perguntas Frequentes
A aula “Modo Escuro e Cores Dinâmicas” é grátis?
Sim — o texto completo de “Modo Escuro e Cores Dinâmicas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Jetpack Compose Academy, atualize para CoddyKit PRO. O curso de Jetpack Compose Academy inclui 4 aulas no total.
O que vou aprender em “Modo Escuro e Cores Dinâmicas”?
Adapte as cores ao sistema e ao papel de parede. Você pratica Jetpack Compose Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Jetpack Compose Academy?
Nenhuma experiência prévia é necessária. Jetpack Compose Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Modo Escuro e Cores Dinâmicas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Jetpack Compose Academy?
Sim. Cada aula de Jetpack Compose Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- MaterialTheme e Esquemas de Cores
- Tipografia e Tokens de Forma
- Modo Escuro e Cores Dinâmicas
- Criando um Sistema de Design Personalizado