//
// Rivian (rivian@1.0.0)
// Palette: rivian@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 {
    /// Rivian Blue — Rivian's signature corporate navy-teal — the wordmark and corporate chrome.
    public static let rivianBlue = Color(.sRGB, red: 0.0000, green: 0.2941, blue: 0.5294, opacity: 1.0000)
    /// Rivian Blue Deep — Pressed / hover variant of Rivian Blue for interactive states.
    public static let rivianBlueDeep = Color(.sRGB, red: 0.0000, green: 0.2078, blue: 0.3765, opacity: 1.0000)
    /// Rivian Lemon — Adventure-line accent — used historically on R1T launch livery, signage, and high-priority highlights.
    public static let rivianLemon = Color(.sRGB, red: 0.9882, green: 0.8902, blue: 0.0000, opacity: 1.0000)
    /// Rivian Black — Canonical canvas — rivian.com hero modules and the brand's identity surface default to true black.
    public static let rivianBlack = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Rivian Near-Black — Surface color just above true black — used for the dark product chrome.
    public static let rivianNearBlack = Color(.sRGB, red: 0.0431, green: 0.0431, blue: 0.0471, opacity: 1.0000)
    /// Rivian Charcoal — Elevated surface — card and modal backgrounds on the dark canvas.
    public static let rivianCharcoal = Color(.sRGB, red: 0.1020, green: 0.1020, blue: 0.1098, opacity: 1.0000)
    /// Rivian Graphite — Border on dark surfaces; secondary surface on light.
    public static let rivianGraphite = Color(.sRGB, red: 0.2000, green: 0.2000, blue: 0.2275, opacity: 1.0000)
    /// Rivian Stone — Tertiary text and icon color on the dark canvas.
    public static let rivianStone = Color(.sRGB, red: 0.4784, green: 0.4784, blue: 0.5098, opacity: 1.0000)
    /// Rivian Fog — Light surface neutral; secondary text on dark.
    public static let rivianFog = Color(.sRGB, red: 0.8510, green: 0.8510, blue: 0.8627, opacity: 1.0000)
    /// Rivian White — Primary text on the dark canvas; canvas color for light-mode marketing surfaces.
    public static let rivianWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Rivian Success — Functional success — charge complete, system OK.
    public static let rivianSuccess = Color(.sRGB, red: 0.1216, green: 0.5412, blue: 0.2980, opacity: 1.0000)
    /// Rivian Error — Functional error — destructive / unavailable.
    public static let rivianError = Color(.sRGB, red: 0.7529, green: 0.2235, blue: 0.1686, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.rivianWhite
    public static let surface = BrandSwatch.rivianFog
    public static let surfaceElevated = BrandSwatch.rivianWhite
    public static let textPrimary = BrandSwatch.rivianBlack
    public static let textSecondary = BrandSwatch.rivianCharcoal
    public static let textTertiary = BrandSwatch.rivianStone
    public static let primary = BrandSwatch.rivianBlue
    public static let primaryHover = BrandSwatch.rivianBlueDeep
    public static let accent = BrandSwatch.rivianLemon
    public static let accentHover = BrandSwatch.rivianLemon
    public static let success = BrandSwatch.rivianSuccess
    public static let warning = BrandSwatch.rivianLemon
    public static let error = BrandSwatch.rivianError
    public static let border = BrandSwatch.rivianFog
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.rivianBlack
    public static let surface = BrandSwatch.rivianNearBlack
    public static let surfaceElevated = BrandSwatch.rivianCharcoal
    public static let textPrimary = BrandSwatch.rivianWhite
    public static let textSecondary = BrandSwatch.rivianFog
    public static let textTertiary = BrandSwatch.rivianStone
    public static let primary = BrandSwatch.rivianLemon
    public static let primaryHover = BrandSwatch.rivianLemon
    public static let accent = BrandSwatch.rivianLemon
    public static let accentHover = BrandSwatch.rivianLemon
    public static let success = BrandSwatch.rivianSuccess
    public static let warning = BrandSwatch.rivianLemon
    public static let error = BrandSwatch.rivianError
    public static let border = BrandSwatch.rivianGraphite
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.rivianBlack
    public static let onIdentity = BrandSwatch.rivianWhite
    public static let background = BrandSwatch.rivianBlack
    public static let surface = BrandSwatch.rivianNearBlack
    public static let surfaceElevated = BrandSwatch.rivianCharcoal
    public static let textPrimary = BrandSwatch.rivianWhite
    public static let textSecondary = BrandSwatch.rivianFog
    public static let textTertiary = BrandSwatch.rivianStone
    public static let primary = BrandSwatch.rivianBlue
    public static let primaryHover = BrandSwatch.rivianBlueDeep
    public static let accent = BrandSwatch.rivianLemon
    public static let accentHover = BrandSwatch.rivianLemon
    public static let mark = BrandSwatch.rivianBlue
    public static let success = BrandSwatch.rivianSuccess
    public static let warning = BrandSwatch.rivianLemon
    public static let error = BrandSwatch.rivianError
    public static let backgroundLight = BrandSwatch.rivianWhite
    public static let backgroundDark = BrandSwatch.rivianBlack
    public static let surfaceLight = BrandSwatch.rivianFog
    public static let surfaceDark = BrandSwatch.rivianNearBlack
    public static let textPrimaryLight = BrandSwatch.rivianBlack
    public static let textPrimaryDark = BrandSwatch.rivianWhite
    public static let textSecondaryLight = BrandSwatch.rivianCharcoal
    public static let textTertiaryLight = BrandSwatch.rivianStone
    public static let borderLight = BrandSwatch.rivianFog
}

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