//
// AMD (amd@1.0.0)
// Palette: amd@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 {
    /// AMD Red — The signature AMD wordmark red. The brand's identity color and the only chromatic primary in the system.

    public static let amdRed = Color(.sRGB, red: 0.9294, green: 0.1098, blue: 0.1412, opacity: 1.0000)
    /// Black — Near-black page canvas on amd.com's marketing surfaces. Primary background in the brand's dark posture.

    public static let black = Color(.sRGB, red: 0.1020, green: 0.1020, blue: 0.1059, opacity: 1.0000)
    /// Charcoal — Elevated surface on the dark canvas; titles in light mode.

    public static let charcoal = Color(.sRGB, red: 0.1529, green: 0.1569, blue: 0.1686, opacity: 1.0000)
    /// White — Page canvas on light-mode surfaces; text on the dark canvas.

    public static let white = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Gray 100 — Light-mode surface tint; quiet background.
    public static let gray100 = Color(.sRGB, red: 0.9451, green: 0.9451, blue: 0.9490, opacity: 1.0000)
    /// Gray 200 — Subtitle / body text on the dark canvas.
    public static let gray200 = Color(.sRGB, red: 0.8824, green: 0.8824, blue: 0.8863, opacity: 1.0000)
    /// Gray 300 — Border on light-mode surfaces.
    public static let gray300 = Color(.sRGB, red: 0.8706, green: 0.8863, blue: 0.9020, opacity: 1.0000)
    /// Gray 500 — Placeholder / divider; tertiary text on dark.
    public static let gray500 = Color(.sRGB, red: 0.6157, green: 0.6235, blue: 0.6353, opacity: 1.0000)
    /// Gray 600 — Mid-gray for inactive controls.
    public static let gray600 = Color(.sRGB, red: 0.4549, green: 0.4588, blue: 0.4745, opacity: 1.0000)
    /// Gray 700 — Secondary text / placeholder on light canvas.
    public static let gray700 = Color(.sRGB, red: 0.3882, green: 0.3922, blue: 0.4000, opacity: 1.0000)
    /// AMD Blue — Cooler blue used in partner / link contexts on the live site. A secondary accent, not the brand primary.

    public static let amdBlue = Color(.sRGB, red: 0.0000, green: 0.3176, blue: 0.7765, opacity: 1.0000)
    /// Danger Red — System error red for destructive / failure states. Visually distinct from AMD Red so that the brand mark does not read as "error" inside the product UI.

    public static let danger = Color(.sRGB, red: 0.8627, green: 0.2078, blue: 0.2706, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.white
    public static let surface = BrandSwatch.gray100
    public static let surfaceElevated = BrandSwatch.white
    public static let textPrimary = BrandSwatch.charcoal
    public static let textSecondary = BrandSwatch.gray700
    public static let textTertiary = BrandSwatch.gray500
    public static let primary = BrandSwatch.amdRed
    public static let primaryHover = BrandSwatch.amdRed
    public static let accent = BrandSwatch.amdBlue
    public static let accentHover = BrandSwatch.amdBlue
    public static let error = BrandSwatch.danger
    public static let border = BrandSwatch.gray300
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.black
    public static let surface = BrandSwatch.charcoal
    public static let surfaceElevated = BrandSwatch.charcoal
    public static let textPrimary = BrandSwatch.white
    public static let textSecondary = BrandSwatch.gray200
    public static let textTertiary = BrandSwatch.gray500
    public static let primary = BrandSwatch.amdRed
    public static let primaryHover = BrandSwatch.amdRed
    public static let accent = BrandSwatch.amdBlue
    public static let accentHover = BrandSwatch.amdBlue
    public static let error = BrandSwatch.danger
    public static let border = BrandSwatch.charcoal
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.black
    public static let onIdentity = BrandSwatch.white
    public static let primary = BrandSwatch.amdRed
    public static let primaryHover = BrandSwatch.amdRed
    public static let accent = BrandSwatch.amdBlue
    public static let mark = BrandSwatch.amdRed
    public static let error = BrandSwatch.danger
    public static let backgroundLight = BrandSwatch.white
    public static let backgroundDark = BrandSwatch.black
    public static let surfaceLight = BrandSwatch.gray100
    public static let surfaceDark = BrandSwatch.charcoal
    public static let textPrimaryLight = BrandSwatch.charcoal
    public static let textPrimaryDark = BrandSwatch.white
    public static let textSecondaryLight = BrandSwatch.gray700
    public static let textTertiaryLight = BrandSwatch.gray500
    public static let borderLight = BrandSwatch.gray300
}

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