//
// Stanford (stanford@1.0.0)
// Palette: stanford@1.0.0
// Fonts:   heading=source-sans-3@1.0.0, body=source-sans-3@1.0.0, serif=lora@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 {
    /// Cardinal Red — Stanford's institutional cardinal — primary brand colour.
    public static let cardinalRed = Color(.sRGB, red: 0.5490, green: 0.0824, blue: 0.0824, opacity: 1.0000)
    /// Cardinal Red Light — Light tint of Cardinal Red for surface accents.
    public static let cardinalRedLight = Color(.sRGB, red: 0.7216, green: 0.2275, blue: 0.2941, opacity: 1.0000)
    /// Cardinal Red Dark — Deep Cardinal — pressed / active variant.
    public static let cardinalRedDark = Color(.sRGB, red: 0.5098, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// White — Primary canvas in light mode.
    public static let white = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Black — Warm near-black — primary text on light surfaces.
    public static let black = Color(.sRGB, red: 0.1804, green: 0.1765, blue: 0.1608, opacity: 1.0000)
    /// Cool Grey — Secondary text / supporting neutral.
    public static let coolGrey = Color(.sRGB, red: 0.3255, green: 0.3373, blue: 0.3529, opacity: 1.0000)
    /// Black 90 — 90% black tint — deep text on lighter surfaces.
    public static let black90 = Color(.sRGB, red: 0.2627, green: 0.2588, blue: 0.2431, opacity: 1.0000)
    /// Black 10 — 10% black tint — soft surface / divider.
    public static let black10 = Color(.sRGB, red: 0.9176, green: 0.9176, blue: 0.9176, opacity: 1.0000)
    /// Digital Red — Digital accent red — emphasis only, not a replacement for Cardinal.
    public static let digitalRed = Color(.sRGB, red: 0.6941, green: 0.0157, blue: 0.0549, opacity: 1.0000)
    /// Digital Red Light — Light digital red — interactive emphasis.
    public static let digitalRedLight = Color(.sRGB, red: 0.8980, green: 0.0314, blue: 0.0314, opacity: 1.0000)
    /// Digital Red Dark — Dark digital red — pressed state.
    public static let digitalRedDark = Color(.sRGB, red: 0.5098, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Digital Blue — Reserved for links on digital surfaces.
    public static let digitalBlue = Color(.sRGB, red: 0.0000, green: 0.4235, blue: 0.7216, opacity: 1.0000)
    /// Digital Blue Light — Hover / focus link variant.
    public static let digitalBlueLight = Color(.sRGB, red: 0.4353, green: 0.7647, blue: 1.0000, opacity: 1.0000)
    /// Digital Blue Dark — Visited / active link variant.
    public static let digitalBlueDark = Color(.sRGB, red: 0.0000, green: 0.3294, blue: 0.5608, opacity: 1.0000)
    /// Digital Green — Form-validation success.
    public static let digitalGreen = Color(.sRGB, red: 0.0000, green: 0.5216, blue: 0.4000, opacity: 1.0000)
    /// Digital Green Light — Light validation green — confirmation surfaces.
    public static let digitalGreenLight = Color(.sRGB, red: 0.1020, green: 0.9255, blue: 0.7294, opacity: 1.0000)
    /// Digital Green Dark — Dark validation green — pressed state.
    public static let digitalGreenDark = Color(.sRGB, red: 0.0000, green: 0.4353, blue: 0.3294, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.white
    public static let surface = BrandSwatch.black10
    public static let surfaceElevated = BrandSwatch.white
    public static let textPrimary = BrandSwatch.black
    public static let textSecondary = BrandSwatch.coolGrey
    public static let textTertiary = BrandSwatch.black90
    public static let primary = BrandSwatch.cardinalRed
    public static let primaryHover = BrandSwatch.cardinalRedDark
    public static let accent = BrandSwatch.digitalRed
    public static let accentHover = BrandSwatch.digitalRedDark
    public static let link = BrandSwatch.digitalBlue
    public static let linkHover = BrandSwatch.digitalBlueDark
    public static let warning = BrandSwatch.digitalRed
    public static let warningHover = BrandSwatch.digitalRedDark
    public static let error = BrandSwatch.digitalRed
    public static let success = BrandSwatch.digitalGreen
    public static let border = BrandSwatch.black10
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.black
    public static let surface = BrandSwatch.black90
    public static let surfaceElevated = BrandSwatch.coolGrey
    public static let textPrimary = BrandSwatch.white
    public static let textSecondary = BrandSwatch.black10
    public static let textTertiary = BrandSwatch.coolGrey
    public static let primary = BrandSwatch.cardinalRedLight
    public static let primaryHover = BrandSwatch.cardinalRed
    public static let accent = BrandSwatch.digitalRedLight
    public static let accentHover = BrandSwatch.digitalRed
    public static let link = BrandSwatch.digitalBlueLight
    public static let linkHover = BrandSwatch.digitalBlue
    public static let warning = BrandSwatch.digitalRedLight
    public static let warningHover = BrandSwatch.digitalRed
    public static let error = BrandSwatch.digitalRedLight
    public static let success = BrandSwatch.digitalGreenLight
    public static let border = BrandSwatch.coolGrey
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.white
    public static let onIdentity = BrandSwatch.black
    public static let primary = BrandSwatch.cardinalRed
    public static let primaryHover = BrandSwatch.cardinalRedDark
    public static let accent = BrandSwatch.digitalRed
    public static let accentHover = BrandSwatch.digitalRedDark
    public static let mark = BrandSwatch.cardinalRed
    public static let success = BrandSwatch.digitalGreen
    public static let warning = BrandSwatch.digitalRed
    public static let error = BrandSwatch.digitalRed
    public static let textPrimaryLight = BrandSwatch.black
    public static let textPrimaryDark = BrandSwatch.white
    public static let backgroundLight = BrandSwatch.white
    public static let backgroundDark = BrandSwatch.black
    public static let surfaceLight = BrandSwatch.black10
    public static let surfaceDark = BrandSwatch.black90
    public static let textSecondaryLight = BrandSwatch.coolGrey
    public static let textTertiaryLight = BrandSwatch.black90
    public static let borderLight = BrandSwatch.black10
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Source Sans 3 (source-sans-3@1.0.0)
    public static let heading = "Source Sans 3"
    /// Source Sans 3 (source-sans-3@1.0.0)
    public static let body = "Source Sans 3"
    /// Lora (lora@1.0.0)
    public static let serif = "Lora"
    /// JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)
    public static let mono = "JetBrainsMono Nerd Font"
}
