//
// Rust (rust@1.0.0)
// Palette: rust@1.0.0
// Fonts:   heading=inter@1.0.0, body=inter@1.0.0, mono=source-code-pro@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 {
    /// Rust Orange — Primary brand accent — the signature Rust Orange used on the gear mark, primary buttons, and rust-lang.org accents.

    public static let rustOrange = Color(.sRGB, red: 0.8275, green: 0.2706, blue: 0.0863, opacity: 1.0000)
    /// Rust Dark Blue — Primary corporate dark color — the Rust Foundation's signature navy used as a high-contrast canvas for the gear mark.

    public static let rustDarkBlue = Color(.sRGB, red: 0.1176, green: 0.1490, blue: 0.3137, opacity: 1.0000)
    /// Rust Blue — Supporting blue used for technical illustrations and secondary interactive elements.

    public static let rustBlue = Color(.sRGB, red: 0.1569, green: 0.3765, blue: 0.4980, opacity: 1.0000)
    /// Rust Silver — Neutral metallic gray used for body text on light surfaces and hardware-adjacent surfaces.

    public static let rustSilver = Color(.sRGB, red: 0.4039, green: 0.4510, blue: 0.4784, opacity: 1.0000)
    /// Rust Green — Reserved green used for database / sustainability surfaces per the Brand Guide.

    public static let rustGreen = Color(.sRGB, red: 0.3804, green: 0.4706, blue: 0.3020, opacity: 1.0000)
    /// Rust Black — Near-black surface for dark-mode page canvas.
    public static let rustBlack = Color(.sRGB, red: 0.0549, green: 0.0549, blue: 0.0549, opacity: 1.0000)
    /// Rust Charcoal — Elevated dark surface for cards and panels.
    public static let rustCharcoal = Color(.sRGB, red: 0.1333, green: 0.1333, blue: 0.1333, opacity: 1.0000)
    /// Rust Light Gray — Hairline borders and dividers on light canvas.
    public static let rustLightGray = Color(.sRGB, red: 0.8431, green: 0.8431, blue: 0.8431, opacity: 1.0000)
    /// Rust Off-White — Subtle layered surface on the light canvas.
    public static let rustOffWhite = Color(.sRGB, red: 0.9569, green: 0.9569, blue: 0.9569, opacity: 1.0000)
    /// Rust White — Page canvas in light mode; reversed text on orange.
    public static let rustWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.rustWhite
    public static let surface = BrandSwatch.rustOffWhite
    public static let surfaceElevated = BrandSwatch.rustWhite
    public static let textPrimary = BrandSwatch.rustDarkBlue
    public static let textSecondary = BrandSwatch.rustSilver
    public static let textTertiary = BrandSwatch.rustBlue
    public static let primary = BrandSwatch.rustOrange
    public static let primaryHover = BrandSwatch.rustDarkBlue
    public static let accent = BrandSwatch.rustBlue
    public static let accentHover = BrandSwatch.rustDarkBlue
    public static let warning = BrandSwatch.rustOrange
    public static let warningHover = BrandSwatch.rustDarkBlue
    public static let error = BrandSwatch.rustOrange
    public static let success = BrandSwatch.rustGreen
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.rustBlack
    public static let surface = BrandSwatch.rustCharcoal
    public static let surfaceElevated = BrandSwatch.rustCharcoal
    public static let textPrimary = BrandSwatch.rustWhite
    public static let textSecondary = BrandSwatch.rustLightGray
    public static let textTertiary = BrandSwatch.rustSilver
    public static let primary = BrandSwatch.rustOrange
    public static let primaryHover = BrandSwatch.rustLightGray
    public static let accent = BrandSwatch.rustBlue
    public static let accentHover = BrandSwatch.rustLightGray
    public static let warning = BrandSwatch.rustOrange
    public static let warningHover = BrandSwatch.rustLightGray
    public static let error = BrandSwatch.rustOrange
    public static let success = BrandSwatch.rustGreen
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.rustOrange
    public static let onIdentity = BrandSwatch.rustWhite
    public static let primary = BrandSwatch.rustOrange
    public static let primaryHover = BrandSwatch.rustDarkBlue
    public static let accent = BrandSwatch.rustBlue
    public static let accentHover = BrandSwatch.rustDarkBlue
    public static let background = BrandSwatch.rustWhite
    public static let surface = BrandSwatch.rustOffWhite
    public static let textPrimary = BrandSwatch.rustDarkBlue
    public static let textSecondary = BrandSwatch.rustSilver
}

/// 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"
    /// Source Code Pro (source-code-pro@1.0.0)
    public static let mono = "Source Code Pro"
}
