//
// Khan Academy (khan-academy@1.0.0)
// Palette: khan-academy@1.0.0
// Fonts:   heading=inter@1.0.0, body=inter@1.0.0, mono=jetbrainsmono-nerdfont@1.0.0
// Generated by brand-atoms converter — do not edit by hand.
//

import SwiftUI

/// Source-of-truth color swatches from the referenced palette.
public enum BrandSwatch {
    /// Blue — Khan Academy's primary brand blue (Wonder Blocks blue). The signature action color.
    public static let blue = Color(.sRGB, red: 0.0941, green: 0.3961, blue: 0.9490, opacity: 1.0000)
    /// Green — Mastery / completion green — the "correct answer" signal.
    public static let green = Color(.sRGB, red: 0.0000, green: 0.6510, blue: 0.0549, opacity: 1.0000)
    /// Gold — Achievement / streak gold — the motivational accent.
    public static let gold = Color(.sRGB, red: 1.0000, green: 0.6941, blue: 0.0000, opacity: 1.0000)
    /// Red — Error / destructive red — the "wrong answer" signal.
    public static let red = Color(.sRGB, red: 0.8510, green: 0.1608, blue: 0.0863, opacity: 1.0000)
    /// Purple — Editorial purple — secondary accent in illustrations and badges.
    public static let purple = Color(.sRGB, red: 0.5647, green: 0.3490, blue: 1.0000, opacity: 1.0000)
    /// Off Black — Canonical text ink — Wonder Blocks deliberately avoids pure
    public static let offBlack = Color(.sRGB, red: 0.1294, green: 0.1412, blue: 0.1725, opacity: 1.0000)
    /// Off White — Default surface canvas — Wonder Blocks light-mode background.
    public static let offWhite = Color(.sRGB, red: 0.9686, green: 0.9725, blue: 0.9804, opacity: 1.0000)
    /// White — Pure white — elevated surface and card background.
    public static let white = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Dark Blue — Wonder Blocks brand-tier deep navy — hero callouts and chart anchor.
    public static let darkBlue = Color(.sRGB, red: 0.0431, green: 0.1294, blue: 0.2863, opacity: 1.0000)
    /// Teal — Wonder Blocks brand-tier teal — secondary accent and editorial highlight.
    public static let teal = Color(.sRGB, red: 0.0784, green: 0.7490, blue: 0.5882, opacity: 1.0000)
    /// Eggplant (Khanmigo) — The Khanmigo AI tutor brand accent. Reserved for the AI product surface.
    public static let eggplant = Color(.sRGB, red: 0.3725, green: 0.1176, blue: 0.3608, opacity: 1.0000)
    /// Blue Hover — Pressed / active variant of Khan Academy Blue — derived for hover/active states.
    public static let blueHover = Color(.sRGB, red: 0.0667, green: 0.2706, blue: 0.6196, opacity: 1.0000)
    /// Blue Pale — Pale blue surface tint — Wonder Blocks faded-blue background.
    public static let bluePale = Color(.sRGB, red: 0.8980, green: 0.9333, blue: 0.9961, opacity: 1.0000)
    /// Red Pale — Pale red surface tint — Wonder Blocks faded-red background.
    public static let redPale = Color(.sRGB, red: 0.9843, green: 0.9059, blue: 0.8980, opacity: 1.0000)
    /// Green Pale — Pale green surface tint — Wonder Blocks faded-green background.
    public static let greenPale = Color(.sRGB, red: 0.8784, green: 0.9569, blue: 0.8824, opacity: 1.0000)
    /// Gold Pale — Pale gold surface tint — Wonder Blocks faded-gold background.
    public static let goldPale = Color(.sRGB, red: 1.0000, green: 0.9647, blue: 0.8784, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.white
    public static let surface = BrandSwatch.offWhite
    public static let surfaceElevated = BrandSwatch.white
    public static let textPrimary = BrandSwatch.offBlack
    public static let textSecondary = BrandSwatch.offBlack
    public static let textTertiary = BrandSwatch.offBlack
    public static let primary = BrandSwatch.blue
    public static let primaryHover = BrandSwatch.blueHover
    public static let accent = BrandSwatch.blue
    public static let accentHover = BrandSwatch.blueHover
    public static let warning = BrandSwatch.gold
    public static let warningHover = BrandSwatch.gold
    public static let error = BrandSwatch.red
    public static let success = BrandSwatch.green
    public static let border = BrandSwatch.offWhite
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.offBlack
    public static let surface = BrandSwatch.darkBlue
    public static let surfaceElevated = BrandSwatch.offBlack
    public static let textPrimary = BrandSwatch.white
    public static let textSecondary = BrandSwatch.offWhite
    public static let textTertiary = BrandSwatch.offWhite
    public static let primary = BrandSwatch.blue
    public static let primaryHover = BrandSwatch.bluePale
    public static let accent = BrandSwatch.teal
    public static let accentHover = BrandSwatch.green
    public static let warning = BrandSwatch.gold
    public static let warningHover = BrandSwatch.goldPale
    public static let error = BrandSwatch.red
    public static let success = BrandSwatch.green
    public static let border = BrandSwatch.darkBlue
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.white
    public static let onIdentity = BrandSwatch.offBlack
    public static let primary = BrandSwatch.blue
    public static let primaryHover = BrandSwatch.blueHover
    public static let accent = BrandSwatch.blue
    public static let accentHover = BrandSwatch.blueHover
    public static let mark = BrandSwatch.blue
    public static let success = BrandSwatch.green
    public static let warning = BrandSwatch.gold
    public static let error = BrandSwatch.red
    public static let textPrimaryLight = BrandSwatch.offBlack
    public static let textPrimaryDark = BrandSwatch.white
    public static let backgroundLight = BrandSwatch.white
    public static let backgroundDark = BrandSwatch.offBlack
    public static let surfaceLight = BrandSwatch.offWhite
    public static let surfaceDark = BrandSwatch.darkBlue
    public static let textSecondaryLight = BrandSwatch.offBlack
    public static let borderLight = BrandSwatch.offWhite
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Inter (inter@1.0.0)
    public static let heading = "Inter"
    /// Inter (inter@1.0.0)
    public static let body = "Inter"
    /// JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)
    public static let mono = "JetBrainsMono Nerd Font"
}
