yumekawaPink case yumekawaBlue } public extension Theme { var primaryColor: Color { switch self { case .system: return Color(.systemPrimary) case .yumekawaPurple: return Color(.yumekawaPurplePrimary) case .yumekawaPink: return Color(.yumekawaPinkPrimary) case .yumekawaBlue: return Color(.yumekawaBluePrimary) } } var backgroundColor: Color { ... } } import SwiftUI public extension EnvironmentValues { @Entry var theme: Theme = ThemeClient.currentTheme }
yumekawaPink case yumekawaBlue } public extension Theme { var primaryColor: Color { switch self { case .system: return Color(.systemPrimary) case .yumekawaPurple: return Color(.yumekawaPurplePrimary) case .yumekawaPink: return Color(.yumekawaPinkPrimary) case .yumekawaBlue: return Color(.yumekawaBluePrimary) } } var backgroundColor: Color { ... } } struct ContentView: View { @Environment(\.theme) private var theme var body: some View { VStack { Text("Hello, world!") .foregroundStyle(theme.primaryColor) } .padding() } } import SwiftUI public extension EnvironmentValues { @Entry var theme: Theme = ThemeClient.currentTheme }