//
// Duolingo (duolingo@1.0.0)
// Palette: duolingo@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 {
    /// Feather Green (Owl) — Duo the owl's signature green. The brand's primary action and identity color.
    public static let featherGreen = Color(.sRGB, red: 0.3451, green: 0.8000, blue: 0.0078, opacity: 1.0000)
    /// Mask Green — Brighter sibling of Feather Green — used for signage and lighting accents on the mascot's face mask.
    public static let maskGreen = Color(.sRGB, red: 0.5373, green: 0.8863, blue: 0.0980, opacity: 1.0000)
    /// Tree Frog — Pressed / active variant of Feather Green; the deeper-shadow green.
    public static let treeFrog = Color(.sRGB, red: 0.3451, green: 0.6549, blue: 0.0000, opacity: 1.0000)
    /// Sea Sponge — Pale lesson-complete green tint.
    public static let seaSponge = Color(.sRGB, red: 0.8431, green: 1.0000, blue: 0.7216, opacity: 1.0000)
    /// Turtle — Mid-pale green — secondary accent and badge fill.
    public static let turtle = Color(.sRGB, red: 0.6471, green: 0.9294, blue: 0.4314, opacity: 1.0000)
    /// Snow — Pure white — page canvas in light mode.
    public static let snow = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Polar — Off-white surface tint; the canonical page background hint.
    public static let polar = Color(.sRGB, red: 0.9686, green: 0.9686, blue: 0.9686, opacity: 1.0000)
    /// Swan — Border / quiet divider color on Polar.
    public static let swan = Color(.sRGB, red: 0.8980, green: 0.8980, blue: 0.8980, opacity: 1.0000)
    /// Hare — Mid grey — disabled state and tertiary text.
    public static let hare = Color(.sRGB, red: 0.6863, green: 0.6863, blue: 0.6863, opacity: 1.0000)
    /// Wolf — Deep grey — secondary text on light surfaces.
    public static let wolf = Color(.sRGB, red: 0.4667, green: 0.4667, blue: 0.4667, opacity: 1.0000)
    /// Eel — The canonical Duolingo text ink. Used in place of pure black for body copy.
    public static let eel = Color(.sRGB, red: 0.2941, green: 0.2941, blue: 0.2941, opacity: 1.0000)
    /// Cardinal — Duolingo's error / wrong-answer red. The most recognizable red in the system.
    public static let cardinal = Color(.sRGB, red: 1.0000, green: 0.2941, blue: 0.2941, opacity: 1.0000)
    /// Fire Ant — Pressed / active variant of Cardinal — destructive confirmation.
    public static let fireAnt = Color(.sRGB, red: 0.9176, green: 0.1686, blue: 0.1686, opacity: 1.0000)
    /// Crab — Soft red — hover tint and error background.
    public static let crab = Color(.sRGB, red: 1.0000, green: 0.4706, blue: 0.4706, opacity: 1.0000)
    /// Flamingo — Pale rose-pink — error background wash.
    public static let flamingo = Color(.sRGB, red: 1.0000, green: 0.6980, blue: 0.6980, opacity: 1.0000)
    /// Bee — Streak / achievement gold. The motivational yellow.
    public static let bee = Color(.sRGB, red: 1.0000, green: 0.7843, blue: 0.0000, opacity: 1.0000)
    /// Lion — Slightly deeper variant of Bee — pressed gold.
    public static let lion = Color(.sRGB, red: 1.0000, green: 0.6941, blue: 0.0000, opacity: 1.0000)
    /// Fox — Vivid orange — celebration and tier-up moments.
    public static let fox = Color(.sRGB, red: 1.0000, green: 0.5882, blue: 0.0000, opacity: 1.0000)
    /// Duck — Pale lemon yellow — soft yellow background.
    public static let duck = Color(.sRGB, red: 0.9843, green: 0.8980, blue: 0.4275, opacity: 1.0000)
    /// Canary — Pale cream — gentle warning background.
    public static let canary = Color(.sRGB, red: 1.0000, green: 0.9608, blue: 0.8275, opacity: 1.0000)
    /// Macaw — Duolingo's signature info-blue. Links, hints, and learning-tip accents.
    public static let macaw = Color(.sRGB, red: 0.1098, green: 0.6902, blue: 0.9647, opacity: 1.0000)
    /// Whale — Pressed / active variant of Macaw.
    public static let whale = Color(.sRGB, red: 0.0941, green: 0.6000, blue: 0.8392, opacity: 1.0000)
    /// Humpback — Deeper navy-blue — secondary info accent.
    public static let humpback = Color(.sRGB, red: 0.1686, green: 0.4392, blue: 0.7882, opacity: 1.0000)
    /// Narwhal — Deepest navy — chart and data-viz anchor.
    public static let narwhal = Color(.sRGB, red: 0.0784, green: 0.3255, blue: 0.6392, opacity: 1.0000)
    /// Blue Jay — Pale sky blue — soft hint accent.
    public static let blueJay = Color(.sRGB, red: 0.5176, green: 0.8471, blue: 1.0000, opacity: 1.0000)
    /// Moon Jelly — Soft cyan — illustration accent.
    public static let moonJelly = Color(.sRGB, red: 0.4784, green: 0.9412, blue: 0.9490, opacity: 1.0000)
    /// Beetle — Soft purple — the recognizable Super Duolingo subscription accent.
    public static let beetle = Color(.sRGB, red: 0.8078, green: 0.5098, blue: 1.0000, opacity: 1.0000)
    /// Betta — Mid-purple — pressed Super accent.
    public static let betta = Color(.sRGB, red: 0.5647, green: 0.4118, blue: 0.8039, opacity: 1.0000)
    /// Butterfly — Deep purple — Super hero gradient anchor.
    public static let butterfly = Color(.sRGB, red: 0.4353, green: 0.3059, blue: 0.6314, opacity: 1.0000)
    /// Starfish — Pale pink — illustration accent paired with purples.
    public static let starfish = Color(.sRGB, red: 1.0000, green: 0.6667, blue: 0.8706, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.snow
    public static let surface = BrandSwatch.polar
    public static let surfaceElevated = BrandSwatch.snow
    public static let textPrimary = BrandSwatch.eel
    public static let textSecondary = BrandSwatch.wolf
    public static let textTertiary = BrandSwatch.hare
    public static let primary = BrandSwatch.featherGreen
    public static let primaryHover = BrandSwatch.treeFrog
    public static let accent = BrandSwatch.macaw
    public static let accentHover = BrandSwatch.whale
    public static let warning = BrandSwatch.bee
    public static let warningHover = BrandSwatch.lion
    public static let error = BrandSwatch.cardinal
    public static let success = BrandSwatch.featherGreen
    public static let border = BrandSwatch.swan
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.eel
    public static let surface = BrandSwatch.wolf
    public static let surfaceElevated = BrandSwatch.hare
    public static let textPrimary = BrandSwatch.snow
    public static let textSecondary = BrandSwatch.polar
    public static let textTertiary = BrandSwatch.swan
    public static let primary = BrandSwatch.featherGreen
    public static let primaryHover = BrandSwatch.maskGreen
    public static let accent = BrandSwatch.macaw
    public static let accentHover = BrandSwatch.blueJay
    public static let warning = BrandSwatch.bee
    public static let warningHover = BrandSwatch.lion
    public static let error = BrandSwatch.cardinal
    public static let success = BrandSwatch.maskGreen
    public static let border = BrandSwatch.wolf
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.snow
    public static let onIdentity = BrandSwatch.eel
    public static let primary = BrandSwatch.featherGreen
    public static let primaryHover = BrandSwatch.treeFrog
    public static let accent = BrandSwatch.macaw
    public static let accentHover = BrandSwatch.whale
    public static let mark = BrandSwatch.featherGreen
    public static let success = BrandSwatch.featherGreen
    public static let warning = BrandSwatch.bee
    public static let error = BrandSwatch.cardinal
    public static let textPrimaryLight = BrandSwatch.eel
    public static let textPrimaryDark = BrandSwatch.snow
    public static let backgroundLight = BrandSwatch.snow
    public static let backgroundDark = BrandSwatch.eel
    public static let surfaceLight = BrandSwatch.polar
    public static let surfaceDark = BrandSwatch.wolf
    public static let textSecondaryLight = BrandSwatch.wolf
    public static let textTertiaryLight = BrandSwatch.hare
    public static let borderLight = BrandSwatch.swan
    public static let borderDark = BrandSwatch.wolf
}

/// 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"
}
