Discussion about this post

User's avatar
Alex's avatar
Jul 10Edited

You actually can create SwiftUI Color in dynamic way:

```

public extension Color {

init(light: Color, dark: Color) {

let shapeStyle = ColorSchemeShapeStyle(light: light, dark: dark)

self.init(shapeStyle)

}

private struct ColorSchemeShapeStyle: ShapeStyle, Hashable {

let light: Color

let dark: Color

func resolve(in environment: EnvironmentValues) -> Color.Resolved {

switch environment.colorScheme {

case .dark: dark.resolve(in: environment)

case .light: light.resolve(in: environment)

@unknown default: light.resolve(in: environment)

}

}

}

}

```

No posts

Ready for more?