Skip to main content

How to preview your layout in light and dark mode

About 2 minSwiftSwiftUIArticle(s)bloghackingwithswift.comcrashcourseswiftswiftuixcodeappstore

How to preview your layout in light and dark mode 관련

SwiftUI by Example

Back to Home

How to preview your layout in light and dark mode | SwiftUI by Example

How to preview your layout in light and dark mode

Updated for Xcode 15

Most of Apple’s operating systems support both light and dark mode user interfaces, so it’s no surprise that SwiftUI has support for this functionality built right in.

Even better, once you’ve designed your interface Xcode allows you to preview your layouts in either appearance by setting the ‌preferredColorScheme() modifier value in your preview.

For example, this shows a preview using dark mode:

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView().preferredColorScheme(.dark)
    }
}
An Xcode Preview in Dark Mode.
An Xcode Preview in Dark Mode.

If you want to see both light and dark mode side by side, place multiple previews in a group, like this:

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ForEach(ColorScheme.allCases, id: \.self) { 
             ContentView().preferredColorScheme($0)
        }
    }
}
Xcode showing Previews in Light and Dark Mode.
Xcode showing Previews in Light and Dark Mode.

For a little extra conciseness, you can boil that down even further:

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ForEach(ColorScheme.allCases, id: \.self, content: ContentView().preferredColorScheme)
    }
}

Tips

If your preview is zoomed right in, you should either scroll around or zoom out to the other previews.

Similar solutions…
How to show different images and other views in light or dark mode | SwiftUI by Example

How to show different images and other views in light or dark mode
SwiftUI tips and tricks | SwiftUI by Example

SwiftUI tips and tricks
How to detect dark mode | SwiftUI by Example

How to detect dark mode
All SwiftUI property wrappers explained and compared | SwiftUI by Example

All SwiftUI property wrappers explained and compared
How to preview your layout at different Dynamic Type sizes | SwiftUI by Example

How to preview your layout at different Dynamic Type sizes

이찬희 (MarkiiimarK)
Never Stop Learning.