@@ -34,39 +34,53 @@ public extension Color {
3434
3535@available ( iOS 14 . 0 , macOS 11 . 0 , watchOS 7 . 0 , tvOS 14 . 0 , * )
3636public extension Base16Theme {
37+ /// SwiftUI Color for a Base16 index — Apple system colors when `usesApplePlatformChrome`.
38+ private func swiftUIPlatformColor( at index: Int , hex: String ) -> Color {
39+ if usesApplePlatformChrome {
40+ #if canImport(AppKit) && !targetEnvironment(macCatalyst)
41+ return Color ( nsColor: PlatformChrome . nsColor ( for: self , index: index) )
42+ #elseif canImport(UIKit)
43+ return Color ( uiColor: PlatformChrome . uiColor ( for: self , index: index) )
44+ #else
45+ return Color ( hex: hex)
46+ #endif
47+ }
48+ return Color ( hex: hex)
49+ }
50+
3751 /// SwiftUI Color for base00 (Default Background)
38- var swiftUIBase00Color : Color { Color ( hex: base00) }
52+ var swiftUIBase00Color : Color { swiftUIPlatformColor ( at : 0 , hex: base00) }
3953 /// SwiftUI Color for base01 (Lighter Background)
40- var swiftUIBase01Color : Color { Color ( hex: base01) }
54+ var swiftUIBase01Color : Color { swiftUIPlatformColor ( at : 1 , hex: base01) }
4155 /// SwiftUI Color for base02 (Selection Background)
42- var swiftUIBase02Color : Color { Color ( hex: base02) }
56+ var swiftUIBase02Color : Color { swiftUIPlatformColor ( at : 2 , hex: base02) }
4357 /// SwiftUI Color for base03 (Comments, Invisibles)
44- var swiftUIBase03Color : Color { Color ( hex: base03) }
58+ var swiftUIBase03Color : Color { swiftUIPlatformColor ( at : 3 , hex: base03) }
4559 /// SwiftUI Color for base04 (Dark Foreground)
46- var swiftUIBase04Color : Color { Color ( hex: base04) }
60+ var swiftUIBase04Color : Color { swiftUIPlatformColor ( at : 4 , hex: base04) }
4761 /// SwiftUI Color for base05 (Default Foreground)
48- var swiftUIBase05Color : Color { Color ( hex: base05) }
62+ var swiftUIBase05Color : Color { swiftUIPlatformColor ( at : 5 , hex: base05) }
4963 /// SwiftUI Color for base06 (Light Foreground)
50- var swiftUIBase06Color : Color { Color ( hex: base06) }
64+ var swiftUIBase06Color : Color { swiftUIPlatformColor ( at : 6 , hex: base06) }
5165 /// SwiftUI Color for base07 (Light Background)
52- var swiftUIBase07Color : Color { Color ( hex: base07) }
66+ var swiftUIBase07Color : Color { swiftUIPlatformColor ( at : 7 , hex: base07) }
5367 /// SwiftUI Color for base08 (Variables, Red)
54- var swiftUIBase08Color : Color { Color ( hex: base08) }
68+ var swiftUIBase08Color : Color { swiftUIPlatformColor ( at : 8 , hex: base08) }
5569 /// SwiftUI Color for base09 (Integers, Orange)
56- var swiftUIBase09Color : Color { Color ( hex: base09) }
70+ var swiftUIBase09Color : Color { swiftUIPlatformColor ( at : 9 , hex: base09) }
5771 /// SwiftUI Color for base0A (Classes, Yellow)
58- var swiftUIBase0AColor : Color { Color ( hex: base0A) }
72+ var swiftUIBase0AColor : Color { swiftUIPlatformColor ( at : 10 , hex: base0A) }
5973 /// SwiftUI Color for base0B (Strings, Green)
60- var swiftUIBase0BColor : Color { Color ( hex: base0B) }
74+ var swiftUIBase0BColor : Color { swiftUIPlatformColor ( at : 11 , hex: base0B) }
6175 /// SwiftUI Color for base0C (Support, Cyan)
62- var swiftUIBase0CColor : Color { Color ( hex: base0C) }
63- /// SwiftUI Color for base0D (Functions, Blue)
64- var swiftUIBase0DColor : Color { Color ( hex: base0D) }
76+ var swiftUIBase0CColor : Color { swiftUIPlatformColor ( at : 12 , hex: base0C) }
77+ /// SwiftUI Color for base0D (Functions, Blue / control accent )
78+ var swiftUIBase0DColor : Color { swiftUIPlatformColor ( at : 13 , hex: base0D) }
6579 /// SwiftUI Color for base0E (Keywords, Purple)
66- var swiftUIBase0EColor : Color { Color ( hex: base0E) }
80+ var swiftUIBase0EColor : Color { swiftUIPlatformColor ( at : 14 , hex: base0E) }
6781 /// SwiftUI Color for base0F (Deprecated, Brown)
68- var swiftUIBase0FColor : Color { Color ( hex: base0F) }
69-
82+ var swiftUIBase0FColor : Color { swiftUIPlatformColor ( at : 15 , hex: base0F) }
83+
7084 // Semantic color aliases
7185 var swiftUIBackgroundColor : Color { swiftUIBase00Color }
7286 var swiftUIForegroundColor : Color { swiftUIBase05Color }
@@ -174,39 +188,45 @@ public extension UIColor {
174188
175189@available ( iOS 13 . 0 , tvOS 13 . 0 , watchOS 6 . 0 , * )
176190public extension Base16Theme {
191+ private func uiPlatformColor( at index: Int , hex: String ) -> UIColor {
192+ usesApplePlatformChrome
193+ ? PlatformChrome . uiColor ( for: self , index: index)
194+ : UIColor ( hex: hex)
195+ }
196+
177197 /// UIColor for base00 (Default Background)
178- var uiBase00Color : UIColor { UIColor ( hex: base00) }
198+ var uiBase00Color : UIColor { uiPlatformColor ( at : 0 , hex: base00) }
179199 /// UIColor for base01 (Lighter Background)
180- var uiBase01Color : UIColor { UIColor ( hex: base01) }
200+ var uiBase01Color : UIColor { uiPlatformColor ( at : 1 , hex: base01) }
181201 /// UIColor for base02 (Selection Background)
182- var uiBase02Color : UIColor { UIColor ( hex: base02) }
202+ var uiBase02Color : UIColor { uiPlatformColor ( at : 2 , hex: base02) }
183203 /// UIColor for base03 (Comments, Invisibles)
184- var uiBase03Color : UIColor { UIColor ( hex: base03) }
204+ var uiBase03Color : UIColor { uiPlatformColor ( at : 3 , hex: base03) }
185205 /// UIColor for base04 (Dark Foreground)
186- var uiBase04Color : UIColor { UIColor ( hex: base04) }
206+ var uiBase04Color : UIColor { uiPlatformColor ( at : 4 , hex: base04) }
187207 /// UIColor for base05 (Default Foreground)
188- var uiBase05Color : UIColor { UIColor ( hex: base05) }
208+ var uiBase05Color : UIColor { uiPlatformColor ( at : 5 , hex: base05) }
189209 /// UIColor for base06 (Light Foreground)
190- var uiBase06Color : UIColor { UIColor ( hex: base06) }
210+ var uiBase06Color : UIColor { uiPlatformColor ( at : 6 , hex: base06) }
191211 /// UIColor for base07 (Light Background)
192- var uiBase07Color : UIColor { UIColor ( hex: base07) }
212+ var uiBase07Color : UIColor { uiPlatformColor ( at : 7 , hex: base07) }
193213 /// UIColor for base08 (Variables, Red)
194- var uiBase08Color : UIColor { UIColor ( hex: base08) }
214+ var uiBase08Color : UIColor { uiPlatformColor ( at : 8 , hex: base08) }
195215 /// UIColor for base09 (Integers, Orange)
196- var uiBase09Color : UIColor { UIColor ( hex: base09) }
216+ var uiBase09Color : UIColor { uiPlatformColor ( at : 9 , hex: base09) }
197217 /// UIColor for base0A (Classes, Yellow)
198- var uiBase0AColor : UIColor { UIColor ( hex: base0A) }
218+ var uiBase0AColor : UIColor { uiPlatformColor ( at : 10 , hex: base0A) }
199219 /// UIColor for base0B (Strings, Green)
200- var uiBase0BColor : UIColor { UIColor ( hex: base0B) }
220+ var uiBase0BColor : UIColor { uiPlatformColor ( at : 11 , hex: base0B) }
201221 /// UIColor for base0C (Support, Cyan)
202- var uiBase0CColor : UIColor { UIColor ( hex: base0C) }
203- /// UIColor for base0D (Functions, Blue)
204- var uiBase0DColor : UIColor { UIColor ( hex: base0D) }
222+ var uiBase0CColor : UIColor { uiPlatformColor ( at : 12 , hex: base0C) }
223+ /// UIColor for base0D (Functions, Blue / system accent )
224+ var uiBase0DColor : UIColor { uiPlatformColor ( at : 13 , hex: base0D) }
205225 /// UIColor for base0E (Keywords, Purple)
206- var uiBase0EColor : UIColor { UIColor ( hex: base0E) }
226+ var uiBase0EColor : UIColor { uiPlatformColor ( at : 14 , hex: base0E) }
207227 /// UIColor for base0F (Deprecated, Brown)
208- var uiBase0FColor : UIColor { UIColor ( hex: base0F) }
209-
228+ var uiBase0FColor : UIColor { uiPlatformColor ( at : 15 , hex: base0F) }
229+
210230 // Semantic color aliases
211231 var uiBackgroundColor : UIColor { uiBase00Color }
212232 var uiForegroundColor : UIColor { uiBase05Color }
@@ -252,39 +272,48 @@ public extension NSColor {
252272
253273@available ( macOS 10 . 15 , * )
254274public extension Base16Theme {
275+ private func nsPlatformColor( at index: Int , hex: String ) -> NSColor {
276+ #if !targetEnvironment(macCatalyst)
277+ if usesApplePlatformChrome {
278+ return PlatformChrome . nsColor ( for: self , index: index)
279+ }
280+ #endif
281+ return NSColor ( hex: hex)
282+ }
283+
255284 /// NSColor for base00 (Default Background)
256- var nsBase00Color : NSColor { NSColor ( hex: base00) }
285+ var nsBase00Color : NSColor { nsPlatformColor ( at : 0 , hex: base00) }
257286 /// NSColor for base01 (Lighter Background)
258- var nsBase01Color : NSColor { NSColor ( hex: base01) }
287+ var nsBase01Color : NSColor { nsPlatformColor ( at : 1 , hex: base01) }
259288 /// NSColor for base02 (Selection Background)
260- var nsBase02Color : NSColor { NSColor ( hex: base02) }
289+ var nsBase02Color : NSColor { nsPlatformColor ( at : 2 , hex: base02) }
261290 /// NSColor for base03 (Comments, Invisibles)
262- var nsBase03Color : NSColor { NSColor ( hex: base03) }
291+ var nsBase03Color : NSColor { nsPlatformColor ( at : 3 , hex: base03) }
263292 /// NSColor for base04 (Dark Foreground)
264- var nsBase04Color : NSColor { NSColor ( hex: base04) }
293+ var nsBase04Color : NSColor { nsPlatformColor ( at : 4 , hex: base04) }
265294 /// NSColor for base05 (Default Foreground)
266- var nsBase05Color : NSColor { NSColor ( hex: base05) }
295+ var nsBase05Color : NSColor { nsPlatformColor ( at : 5 , hex: base05) }
267296 /// NSColor for base06 (Light Foreground)
268- var nsBase06Color : NSColor { NSColor ( hex: base06) }
297+ var nsBase06Color : NSColor { nsPlatformColor ( at : 6 , hex: base06) }
269298 /// NSColor for base07 (Light Background)
270- var nsBase07Color : NSColor { NSColor ( hex: base07) }
299+ var nsBase07Color : NSColor { nsPlatformColor ( at : 7 , hex: base07) }
271300 /// NSColor for base08 (Variables, Red)
272- var nsBase08Color : NSColor { NSColor ( hex: base08) }
301+ var nsBase08Color : NSColor { nsPlatformColor ( at : 8 , hex: base08) }
273302 /// NSColor for base09 (Integers, Orange)
274- var nsBase09Color : NSColor { NSColor ( hex: base09) }
303+ var nsBase09Color : NSColor { nsPlatformColor ( at : 9 , hex: base09) }
275304 /// NSColor for base0A (Classes, Yellow)
276- var nsBase0AColor : NSColor { NSColor ( hex: base0A) }
305+ var nsBase0AColor : NSColor { nsPlatformColor ( at : 10 , hex: base0A) }
277306 /// NSColor for base0B (Strings, Green)
278- var nsBase0BColor : NSColor { NSColor ( hex: base0B) }
307+ var nsBase0BColor : NSColor { nsPlatformColor ( at : 11 , hex: base0B) }
279308 /// NSColor for base0C (Support, Cyan)
280- var nsBase0CColor : NSColor { NSColor ( hex: base0C) }
281- /// NSColor for base0D (Functions, Blue)
282- var nsBase0DColor : NSColor { NSColor ( hex: base0D) }
309+ var nsBase0CColor : NSColor { nsPlatformColor ( at : 12 , hex: base0C) }
310+ /// NSColor for base0D (Functions, Blue / controlAccentColor )
311+ var nsBase0DColor : NSColor { nsPlatformColor ( at : 13 , hex: base0D) }
283312 /// NSColor for base0E (Keywords, Purple)
284- var nsBase0EColor : NSColor { NSColor ( hex: base0E) }
313+ var nsBase0EColor : NSColor { nsPlatformColor ( at : 14 , hex: base0E) }
285314 /// NSColor for base0F (Deprecated, Brown)
286- var nsBase0FColor : NSColor { NSColor ( hex: base0F) }
287-
315+ var nsBase0FColor : NSColor { nsPlatformColor ( at : 15 , hex: base0F) }
316+
288317 // Semantic color aliases
289318 var nsBackgroundColor : NSColor { nsBase00Color }
290319 var nsForegroundColor : NSColor { nsBase05Color }
0 commit comments