//
// Mozilla (mozilla@1.0.0)
// Palette: mozilla@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 {
    /// Mozilla Black — Corporate Mozilla identity color — the near-black canvas that anchors the brand. Source: simple-icons mozilla, brand.mozilla.com.

    public static let mozillaBlack = Color(.sRGB, red: 0.0863, green: 0.0863, blue: 0.0863, opacity: 1.0000)
    /// Firefox Orange — Primary Firefox brand color — the bright orange of the Firefox flame mark.

    public static let firefoxOrange = Color(.sRGB, red: 1.0000, green: 0.4431, blue: 0.2235, opacity: 1.0000)
    /// Firefox Red — Deeper Firefox orange used in the flame gradient and for hover states.

    public static let firefoxRed = Color(.sRGB, red: 0.9020, green: 0.3765, blue: 0.0000, opacity: 1.0000)
    /// Firefox Yellow — Bright yellow used at the tip of the Firefox flame mark.

    public static let firefoxYellow = Color(.sRGB, red: 1.0000, green: 0.7961, blue: 0.2235, opacity: 1.0000)
    /// Firefox Blue — Firefox Blue used for the globe element behind the fox mark and for product links.

    public static let firefoxBlue = Color(.sRGB, red: 0.0000, green: 0.3765, blue: 0.8745, opacity: 1.0000)
    /// Firefox Purple — Firefox Purple — supporting accent used in Mozilla product surfaces (e.g. Pocket, Relay).

    public static let firefoxPurple = Color(.sRGB, red: 0.5647, green: 0.3490, blue: 1.0000, opacity: 1.0000)
    /// Mozilla Dark Canvas — Deepest dark-mode canvas.
    public static let mozillaDarkCanvas = Color(.sRGB, red: 0.0471, green: 0.0471, blue: 0.0510, opacity: 1.0000)
    /// Mozilla Charcoal — Elevated dark surface for cards and panels.
    public static let mozillaCharcoal = Color(.sRGB, red: 0.1451, green: 0.1451, blue: 0.1451, opacity: 1.0000)
    /// Mozilla Gray — Mid neutral for body text.
    public static let mozillaGray = Color(.sRGB, red: 0.4510, green: 0.4510, blue: 0.4510, opacity: 1.0000)
    /// Mozilla Light Gray — Hairline borders on light canvas.
    public static let mozillaLightGray = Color(.sRGB, red: 0.8431, green: 0.8431, blue: 0.8588, opacity: 1.0000)
    /// Mozilla Off-White — Subtle layered surface on light canvas.
    public static let mozillaOffWhite = Color(.sRGB, red: 0.9765, green: 0.9765, blue: 0.9804, opacity: 1.0000)
    /// Mozilla White — Page canvas in light mode.
    public static let mozillaWhite = 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.mozillaWhite
    public static let surface = BrandSwatch.mozillaOffWhite
    public static let surfaceElevated = BrandSwatch.mozillaWhite
    public static let textPrimary = BrandSwatch.mozillaBlack
    public static let textSecondary = BrandSwatch.mozillaGray
    public static let textTertiary = BrandSwatch.firefoxRed
    public static let primary = BrandSwatch.mozillaBlack
    public static let primaryHover = BrandSwatch.firefoxRed
    public static let accent = BrandSwatch.firefoxOrange
    public static let accentHover = BrandSwatch.firefoxRed
    public static let warning = BrandSwatch.firefoxYellow
    public static let warningHover = BrandSwatch.firefoxOrange
    public static let error = BrandSwatch.firefoxRed
    public static let success = BrandSwatch.firefoxBlue
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.mozillaDarkCanvas
    public static let surface = BrandSwatch.mozillaBlack
    public static let surfaceElevated = BrandSwatch.mozillaCharcoal
    public static let textPrimary = BrandSwatch.mozillaWhite
    public static let textSecondary = BrandSwatch.mozillaLightGray
    public static let textTertiary = BrandSwatch.firefoxOrange
    public static let primary = BrandSwatch.firefoxOrange
    public static let primaryHover = BrandSwatch.firefoxYellow
    public static let accent = BrandSwatch.firefoxPurple
    public static let accentHover = BrandSwatch.firefoxBlue
    public static let warning = BrandSwatch.firefoxYellow
    public static let warningHover = BrandSwatch.firefoxOrange
    public static let error = BrandSwatch.firefoxRed
    public static let success = BrandSwatch.firefoxBlue
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.mozillaBlack
    public static let onIdentity = BrandSwatch.mozillaWhite
    public static let primary = BrandSwatch.mozillaBlack
    public static let primaryHover = BrandSwatch.firefoxRed
    public static let accent = BrandSwatch.firefoxOrange
    public static let accentHover = BrandSwatch.firefoxRed
    public static let background = BrandSwatch.mozillaWhite
    public static let surface = BrandSwatch.mozillaOffWhite
    public static let textPrimary = BrandSwatch.mozillaBlack
    public static let textSecondary = BrandSwatch.mozillaGray
}

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