SPB Git

spb/zyquo-atlas Public License

The AI-native macOS web browser — every surface, intelligent.

Swift 75.2% JavaScript 22% Shell 2% Makefile 0.9%
6.1 KB · 123 lines swift
Raw Blame History
1//2//  BuiltInThemes.swift3//  Zyquo Atlas4//5//  Author: Simon-Pierre Boucher6//  Mail: contact@spboucher.ai7//8//  The shipped theme gallery (Phase 4.2): the flagship teal-indigo "Atlas9//  Light" (the Phase 4.1 base spec) and its derived dark, plus eight more10//  light/dark themes. The custom-theme editor starts from a copy of any of11//  these. Status colors stay legible on every background.12//1314import Foundation1516enum BuiltInThemes {17    static let all: [AtlasTheme] = [18        atlasLight, atlasDark, cartographer, midnight, meridian,19        terra, slate, nocturne, roseQuartz, aurora,20    ]2122    static let defaultLightID = "atlas-light"23    static let defaultDarkID = "atlas-dark"2425    static func theme(id: String) -> AtlasTheme? { all.first { $0.id == id } }2627    // MARK: - Flagship (Phase 4.1 base spec)2829    static let atlasLight = AtlasTheme(30        id: "atlas-light", name: "Atlas Light", appearance: .light,31        palette: AtlasPalette(32            background: 0xFAFBFC, surface: 0xFFFFFF, surfaceSecondary: 0xF1F4F6,33            accent: 0x1FA9A0, accentIndigo: 0x4E63E0, accentSubtle: 0xE6F5F3,34            textPrimary: 0x1A1D22, textSecondary: 0x6B7280, textTertiary: 0x9CA3AF,35            border: 0xE5E9EC, success: 0x2FA36B, warning: 0xD9822B, danger: 0xD64545),36        background: BackgroundStyle(kind: .solid, colorA: 0xFAFBFC))3738    static let atlasDark = AtlasTheme(39        id: "atlas-dark", name: "Atlas Dark", appearance: .dark,40        palette: AtlasPalette(41            background: 0x14171C, surface: 0x1C2029, surfaceSecondary: 0x252A34,42            accent: 0x35C3B8, accentIndigo: 0x6E80EE, accentSubtle: 0x1B3330,43            textPrimary: 0xE8EBF0, textSecondary: 0x9AA1AE, textTertiary: 0x69707E,44            border: 0x2B303A, success: 0x43BD83, warning: 0xE59A4D, danger: 0xE36363),45        background: BackgroundStyle(kind: .solid, colorA: 0x14171C))4647    // MARK: - Light themes4849    static let cartographer = AtlasTheme(50        id: "cartographer", name: "Cartographer", appearance: .light,51        palette: AtlasPalette(52            background: 0xF7F1E6, surface: 0xFFFBF3, surfaceSecondary: 0xEFE7D6,53            accent: 0xB5742B, accentIndigo: 0x3F6B7D, accentSubtle: 0xF0E4CD,54            textPrimary: 0x2C2418, textSecondary: 0x6E6350, textTertiary: 0x9B8F79,55            border: 0xE3D8C2, success: 0x5C8A4A, warning: 0xC57A1E, danger: 0xBB4A3A),56        background: BackgroundStyle(kind: .gradient, colorA: 0xF7F1E6, colorB: 0xEFE4CE))5758    static let meridian = AtlasTheme(59        id: "meridian", name: "Meridian", appearance: .light,60        palette: AtlasPalette(61            background: 0xF7FAFD, surface: 0xFFFFFF, surfaceSecondary: 0xEDF3FA,62            accent: 0x2D6FE0, accentIndigo: 0x5B4FE0, accentSubtle: 0xE2ECFB,63            textPrimary: 0x172233, textSecondary: 0x5E6B7E, textTertiary: 0x94A0B2,64            border: 0xDCE6F1, success: 0x2FA36B, warning: 0xD9822B, danger: 0xD64545),65        background: BackgroundStyle(kind: .solid, colorA: 0xF7FAFD))6667    static let terra = AtlasTheme(68        id: "terra", name: "Terra", appearance: .light,69        palette: AtlasPalette(70            background: 0xF6F9F3, surface: 0xFFFFFF, surfaceSecondary: 0xEAF1E4,71            accent: 0x3E8E5A, accentIndigo: 0x4E63E0, accentSubtle: 0xE1F0E5,72            textPrimary: 0x1B2419, textSecondary: 0x5D6B58, textTertiary: 0x93A08C,73            border: 0xDDE8D6, success: 0x2FA36B, warning: 0xD9822B, danger: 0xD64545),74        background: BackgroundStyle(kind: .solid, colorA: 0xF6F9F3))7576    static let slate = AtlasTheme(77        id: "slate", name: "Slate", appearance: .light,78        palette: AtlasPalette(79            background: 0xF4F5F7, surface: 0xFFFFFF, surfaceSecondary: 0xEAECEF,80            accent: 0x4B5563, accentIndigo: 0x6366F1, accentSubtle: 0xE7E9ED,81            textPrimary: 0x1B1F27, textSecondary: 0x646B78, textTertiary: 0x99A0AD,82            border: 0xE0E3E8, success: 0x2FA36B, warning: 0xD9822B, danger: 0xD64545),83        background: BackgroundStyle(kind: .solid, colorA: 0xF4F5F7))8485    static let roseQuartz = AtlasTheme(86        id: "rose-quartz", name: "Rose Quartz", appearance: .light,87        palette: AtlasPalette(88            background: 0xFCF5F7, surface: 0xFFFFFF, surfaceSecondary: 0xF7E9EE,89            accent: 0xC64B7B, accentIndigo: 0x7C5CE0, accentSubtle: 0xF9E3EC,90            textPrimary: 0x2A1C22, textSecondary: 0x74606A, textTertiary: 0xA892A0,91            border: 0xEFD9E1, success: 0x2FA36B, warning: 0xD9822B, danger: 0xD64545),92        background: BackgroundStyle(kind: .gradient, colorA: 0xFCF5F7, colorB: 0xF7E6EE))9394    // MARK: - Dark themes9596    static let midnight = AtlasTheme(97        id: "midnight", name: "Midnight Atlas", appearance: .dark,98        palette: AtlasPalette(99            background: 0x0F1524, surface: 0x18203A, surfaceSecondary: 0x212C4A,100            accent: 0x5C7CFA, accentIndigo: 0x8B6DF0, accentSubtle: 0x22305C,101            textPrimary: 0xE7ECF7, textSecondary: 0x96A0BC, textTertiary: 0x646E8C,102            border: 0x2A3557, success: 0x43BD83, warning: 0xE59A4D, danger: 0xE36363),103        background: BackgroundStyle(kind: .gradient, colorA: 0x0F1524, colorB: 0x161E38))104105    static let nocturne = AtlasTheme(106        id: "nocturne", name: "Nocturne", appearance: .dark,107        palette: AtlasPalette(108            background: 0x000000, surface: 0x0E0E10, surfaceSecondary: 0x18181B,109            accent: 0x2DD4BF, accentIndigo: 0x818CF8, accentSubtle: 0x0E2A28,110            textPrimary: 0xF4F4F5, textSecondary: 0x9BA0A8, textTertiary: 0x5C6069,111            border: 0x232327, success: 0x43BD83, warning: 0xE59A4D, danger: 0xE36363),112        background: BackgroundStyle(kind: .solid, colorA: 0x000000))113114    static let aurora = AtlasTheme(115        id: "aurora", name: "Aurora", appearance: .dark,116        palette: AtlasPalette(117            background: 0x10141A, surface: 0x171D26, surfaceSecondary: 0x1F2833,118            accent: 0x36D399, accentIndigo: 0xA78BFA, accentSubtle: 0x123028,119            textPrimary: 0xE9F1EE, textSecondary: 0x93A2A0, textTertiary: 0x5F6E6C,120            border: 0x27313D, success: 0x36D399, warning: 0xE5B04D, danger: 0xE36363),121        background: BackgroundStyle(kind: .gradient, colorA: 0x10141A, colorB: 0x14201C))122}123