Add monochrome theme (high-contrast white-on-black)

This commit is contained in:
pranavharshith 2026-07-25 20:05:06 +05:30
parent b7c5fc1cf1
commit d5dac9f196
2 changed files with 31 additions and 1 deletions

View File

@ -1172,6 +1172,17 @@
}
}
},
"app_info.appearance.monochrome" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "monochrome"
}
}
}
},
"app_info.appearance.title" : {
"extractionState" : "manual",
"localizations" : {

View File

@ -16,6 +16,7 @@ enum AppTheme: String, CaseIterable, Identifiable {
case dracula
case solarizedDark
case tokyoNight
case monochrome
var id: String { rawValue }
@ -30,6 +31,7 @@ enum AppTheme: String, CaseIterable, Identifiable {
case .dracula: return "app_info.appearance.dracula"
case .solarizedDark: return "app_info.appearance.solarized_dark"
case .tokyoNight: return "app_info.appearance.tokyo_night"
case .monochrome: return "app_info.appearance.monochrome"
}
}
@ -43,6 +45,7 @@ enum AppTheme: String, CaseIterable, Identifiable {
case .dracula: return .monospaced
case .solarizedDark: return .monospaced
case .tokyoNight: return .default
case .monochrome: return .default
}
}
@ -51,7 +54,7 @@ enum AppTheme: String, CaseIterable, Identifiable {
var usesGlassChrome: Bool {
switch self {
case .liquidGlass: return true
case .matrix, .nord, .dracula, .solarizedDark, .tokyoNight: return false
case .matrix, .nord, .dracula, .solarizedDark, .tokyoNight, .monochrome: return false
}
}
@ -66,6 +69,7 @@ enum AppTheme: String, CaseIterable, Identifiable {
case .dracula: return "dc:"
case .solarizedDark: return "sd:"
case .tokyoNight: return "tn:"
case .monochrome: return "mc:"
}
}
@ -78,6 +82,7 @@ enum AppTheme: String, CaseIterable, Identifiable {
case .dracula: return .dracula(colorScheme)
case .solarizedDark: return .solarizedDark(colorScheme)
case .tokyoNight: return .tokyoNight(colorScheme)
case .monochrome: return .monochrome(colorScheme)
}
}
}
@ -186,6 +191,20 @@ struct ThemePalette {
)
}
static func monochrome(_ colorScheme: ColorScheme) -> ThemePalette {
let isDark = colorScheme == .dark
return ThemePalette(
background: isDark ? .black : .white,
primary: isDark ? .white : .black,
secondary: isDark ? Color(white: 0.65) : Color(white: 0.40),
accent: isDark ? .white : .black,
locationAccent: isDark ? Color(white: 0.75) : Color(white: 0.25),
accentBlue: isDark ? Color(white: 0.75) : Color(white: 0.25),
alertRed: isDark ? Color(white: 0.55) : Color(white: 0.55),
divider: isDark ? Color(white: 0.25) : Color(white: 0.80)
)
}
private static var systemBackground: Color {
#if os(iOS)
Color(UIColor.systemBackground)