// // BuiltInThemes.swift // Zyquo Atlas // // Author: Simon-Pierre Boucher // Mail: contact@spboucher.ai // // The shipped theme gallery (Phase 4.2): the flagship teal-indigo "Atlas // Light" (the Phase 4.1 base spec) and its derived dark, plus eight more // light/dark themes. The custom-theme editor starts from a copy of any of // these. Status colors stay legible on every background. // import Foundation enum BuiltInThemes { static let all: [AtlasTheme] = [ atlasLight, atlasDark, cartographer, midnight, meridian, terra, slate, nocturne, roseQuartz, aurora, ] static let defaultLightID = "atlas-light" static let defaultDarkID = "atlas-dark" static func theme(id: String) -> AtlasTheme? { all.first { $0.id == id } } // MARK: - Flagship (Phase 4.1 base spec) static let atlasLight = AtlasTheme( id: "atlas-light", name: "Atlas Light", appearance: .light, palette: AtlasPalette( background: 0xFAFBFC, surface: 0xFFFFFF, surfaceSecondary: 0xF1F4F6, accent: 0x1FA9A0, accentIndigo: 0x4E63E0, accentSubtle: 0xE6F5F3, textPrimary: 0x1A1D22, textSecondary: 0x6B7280, textTertiary: 0x9CA3AF, border: 0xE5E9EC, success: 0x2FA36B, warning: 0xD9822B, danger: 0xD64545), background: BackgroundStyle(kind: .solid, colorA: 0xFAFBFC)) static let atlasDark = AtlasTheme( id: "atlas-dark", name: "Atlas Dark", appearance: .dark, palette: AtlasPalette( background: 0x14171C, surface: 0x1C2029, surfaceSecondary: 0x252A34, accent: 0x35C3B8, accentIndigo: 0x6E80EE, accentSubtle: 0x1B3330, textPrimary: 0xE8EBF0, textSecondary: 0x9AA1AE, textTertiary: 0x69707E, border: 0x2B303A, success: 0x43BD83, warning: 0xE59A4D, danger: 0xE36363), background: BackgroundStyle(kind: .solid, colorA: 0x14171C)) // MARK: - Light themes static let cartographer = AtlasTheme( id: "cartographer", name: "Cartographer", appearance: .light, palette: AtlasPalette( background: 0xF7F1E6, surface: 0xFFFBF3, surfaceSecondary: 0xEFE7D6, accent: 0xB5742B, accentIndigo: 0x3F6B7D, accentSubtle: 0xF0E4CD, textPrimary: 0x2C2418, textSecondary: 0x6E6350, textTertiary: 0x9B8F79, border: 0xE3D8C2, success: 0x5C8A4A, warning: 0xC57A1E, danger: 0xBB4A3A), background: BackgroundStyle(kind: .gradient, colorA: 0xF7F1E6, colorB: 0xEFE4CE)) static let meridian = AtlasTheme( id: "meridian", name: "Meridian", appearance: .light, palette: AtlasPalette( background: 0xF7FAFD, surface: 0xFFFFFF, surfaceSecondary: 0xEDF3FA, accent: 0x2D6FE0, accentIndigo: 0x5B4FE0, accentSubtle: 0xE2ECFB, textPrimary: 0x172233, textSecondary: 0x5E6B7E, textTertiary: 0x94A0B2, border: 0xDCE6F1, success: 0x2FA36B, warning: 0xD9822B, danger: 0xD64545), background: BackgroundStyle(kind: .solid, colorA: 0xF7FAFD)) static let terra = AtlasTheme( id: "terra", name: "Terra", appearance: .light, palette: AtlasPalette( background: 0xF6F9F3, surface: 0xFFFFFF, surfaceSecondary: 0xEAF1E4, accent: 0x3E8E5A, accentIndigo: 0x4E63E0, accentSubtle: 0xE1F0E5, textPrimary: 0x1B2419, textSecondary: 0x5D6B58, textTertiary: 0x93A08C, border: 0xDDE8D6, success: 0x2FA36B, warning: 0xD9822B, danger: 0xD64545), background: BackgroundStyle(kind: .solid, colorA: 0xF6F9F3)) static let slate = AtlasTheme( id: "slate", name: "Slate", appearance: .light, palette: AtlasPalette( background: 0xF4F5F7, surface: 0xFFFFFF, surfaceSecondary: 0xEAECEF, accent: 0x4B5563, accentIndigo: 0x6366F1, accentSubtle: 0xE7E9ED, textPrimary: 0x1B1F27, textSecondary: 0x646B78, textTertiary: 0x99A0AD, border: 0xE0E3E8, success: 0x2FA36B, warning: 0xD9822B, danger: 0xD64545), background: BackgroundStyle(kind: .solid, colorA: 0xF4F5F7)) static let roseQuartz = AtlasTheme( id: "rose-quartz", name: "Rose Quartz", appearance: .light, palette: AtlasPalette( background: 0xFCF5F7, surface: 0xFFFFFF, surfaceSecondary: 0xF7E9EE, accent: 0xC64B7B, accentIndigo: 0x7C5CE0, accentSubtle: 0xF9E3EC, textPrimary: 0x2A1C22, textSecondary: 0x74606A, textTertiary: 0xA892A0, border: 0xEFD9E1, success: 0x2FA36B, warning: 0xD9822B, danger: 0xD64545), background: BackgroundStyle(kind: .gradient, colorA: 0xFCF5F7, colorB: 0xF7E6EE)) // MARK: - Dark themes static let midnight = AtlasTheme( id: "midnight", name: "Midnight Atlas", appearance: .dark, palette: AtlasPalette( background: 0x0F1524, surface: 0x18203A, surfaceSecondary: 0x212C4A, accent: 0x5C7CFA, accentIndigo: 0x8B6DF0, accentSubtle: 0x22305C, textPrimary: 0xE7ECF7, textSecondary: 0x96A0BC, textTertiary: 0x646E8C, border: 0x2A3557, success: 0x43BD83, warning: 0xE59A4D, danger: 0xE36363), background: BackgroundStyle(kind: .gradient, colorA: 0x0F1524, colorB: 0x161E38)) static let nocturne = AtlasTheme( id: "nocturne", name: "Nocturne", appearance: .dark, palette: AtlasPalette( background: 0x000000, surface: 0x0E0E10, surfaceSecondary: 0x18181B, accent: 0x2DD4BF, accentIndigo: 0x818CF8, accentSubtle: 0x0E2A28, textPrimary: 0xF4F4F5, textSecondary: 0x9BA0A8, textTertiary: 0x5C6069, border: 0x232327, success: 0x43BD83, warning: 0xE59A4D, danger: 0xE36363), background: BackgroundStyle(kind: .solid, colorA: 0x000000)) static let aurora = AtlasTheme( id: "aurora", name: "Aurora", appearance: .dark, palette: AtlasPalette( background: 0x10141A, surface: 0x171D26, surfaceSecondary: 0x1F2833, accent: 0x36D399, accentIndigo: 0xA78BFA, accentSubtle: 0x123028, textPrimary: 0xE9F1EE, textSecondary: 0x93A2A0, textTertiary: 0x5F6E6C, border: 0x27313D, success: 0x36D399, warning: 0xE5B04D, danger: 0xE36363), background: BackgroundStyle(kind: .gradient, colorA: 0x10141A, colorB: 0x14201C)) }