S’adapter aux modes clair et sombre
Utilisez des couleurs sémantiques pour les deux apparences.
S’adapter aux modes clair et sombre est une leçon SwiftUI Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SwiftUI Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SwiftUI Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Two Appearances
iOS offers Light and Dark Mode, and users switch any time. A polished app looks great in both without extra effort.
Use Semantic Colors
Reach for semantic colors like Color.primary or Color(.systemBackground). They flip automatically between appearances.
Text("Title")
.foregroundStyle(.primary)
.background(Color(.systemBackground))Avoid Hardcoded Colors
A fixed Color.black background stays black in Dark Mode and can vanish into it. Semantic colors adapt; raw ones do not.
Text("Hi")
.background(.black)Asset Catalog Colors
Define a color in the asset catalog with separate Any and Dark values. Reference it by name and it switches for you.
Color("Brand")Primary and Secondary
Use .secondary for less important text. It dims appropriately in each mode while staying readable.
Text("Subtitle")
.foregroundStyle(.secondary)Materials for Depth
System materials like .ultraThinMaterial blur the background and adapt to the mode, giving cards a native feel.
VStack { }
.background(.ultraThinMaterial)Detecting the Mode
Read the current appearance with @Environment(\.colorScheme) when you truly need different content per mode.
@Environment(\.colorScheme) var schemeBranch on Scheme
With colorScheme in hand, you can choose an asset, like swapping a logo, only where a semantic color can't do the job.
Image(scheme == .dark ? "logoDark" : "logoLight")Preview Both Modes
Add .preferredColorScheme(.dark) to a preview to check Dark Mode without leaving Xcode.
#Preview {
ContentView()
.preferredColorScheme(.dark)
}Forcing a Mode
You can lock a screen with preferredColorScheme, but prefer respecting the user's system choice whenever you can.
ContentView()
.preferredColorScheme(.dark)Check Contrast
Verify text stays readable in both modes. Good contrast is part of accessibility, not just style.
Quick Check
Which color choice automatically adapts between Light and Dark Mode?
Recap
Your app now looks right in any appearance: lean on semantic colors, asset colors, and materials, and preview both modes. 🌓
Questions Fréquemment Posées
La leçon « S’adapter aux modes clair et sombre » est-elle gratuite ?
Oui — le texte complet de « S’adapter aux modes clair et sombre » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SwiftUI Academy, passe à CoddyKit PRO. Le cours SwiftUI Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « S’adapter aux modes clair et sombre » ?
Utilisez des couleurs sémantiques pour les deux apparences. Tu pratiques SwiftUI Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer SwiftUI Academy ?
Aucune expérience préalable n'est requise. SwiftUI Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « S’adapter aux modes clair et sombre » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon SwiftUI Academy ?
Oui. Chaque leçon SwiftUI Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- VoiceOver et libellés d’accessibilité
- Type dynamique et polices redimensionnées
- Localiser les chaînes et les catalogues de chaînes
- S’adapter aux modes clair et sombre