//
// NVIDIA (nvidia@1.0.0)
// Palette: nvidia@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 {
    /// NVIDIA Green — The signature NVIDIA chartreuse green. The single colored hue on the corporate mark and the brand's identity accent.

    public static let nvidiaGreen = Color(.sRGB, red: 0.4627, green: 0.7255, blue: 0.0000, opacity: 1.0000)
    /// NVIDIA Green (Dark) — Slightly cooler / darker variant declared on the live stylesheet — used as the legible on-dark pairing where the primary green meets a black surface.

    public static let nvidiaGreenDark = Color(.sRGB, red: 0.4549, green: 0.7176, blue: 0.1059, opacity: 1.0000)
    /// Black — Primary text on light surfaces; canvas in dark mode; logo fill in the monochrome one-color variant.

    public static let black = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// White — Default page background on nvidia.com; logo fill in the reverse one-color variant on dark surfaces.

    public static let white = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Gray 50 — Subtle elevated surface tint on the white canvas.
    public static let gray50 = Color(.sRGB, red: 0.9686, green: 0.9686, blue: 0.9686, opacity: 1.0000)
    /// Gray 100 — Quiet rule / border on the white canvas.
    public static let gray100 = Color(.sRGB, red: 0.9333, green: 0.9333, blue: 0.9333, opacity: 1.0000)
    /// Gray 300 — Mid-gray for inactive controls and tertiary text.
    public static let gray300 = Color(.sRGB, red: 0.6549, green: 0.6549, blue: 0.6549, opacity: 1.0000)
    /// Gray 600 — Secondary body text on the white canvas.
    public static let gray600 = Color(.sRGB, red: 0.4000, green: 0.4000, blue: 0.4000, opacity: 1.0000)
    /// Gray 700 — Darker secondary text; control labels.
    public static let gray700 = Color(.sRGB, red: 0.3686, green: 0.3686, blue: 0.3686, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.white
    public static let surface = BrandSwatch.gray50
    public static let surfaceElevated = BrandSwatch.white
    public static let textPrimary = BrandSwatch.black
    public static let textSecondary = BrandSwatch.gray700
    public static let textTertiary = BrandSwatch.gray600
    public static let primary = BrandSwatch.nvidiaGreen
    public static let primaryHover = BrandSwatch.nvidiaGreenDark
    public static let accent = BrandSwatch.nvidiaGreen
    public static let accentHover = BrandSwatch.nvidiaGreenDark
    public static let border = BrandSwatch.gray100
    public static let mark = BrandSwatch.black
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.black
    public static let surface = BrandSwatch.gray700
    public static let surfaceElevated = BrandSwatch.gray600
    public static let textPrimary = BrandSwatch.white
    public static let textSecondary = BrandSwatch.gray300
    public static let textTertiary = BrandSwatch.gray300
    public static let primary = BrandSwatch.nvidiaGreen
    public static let primaryHover = BrandSwatch.nvidiaGreenDark
    public static let accent = BrandSwatch.nvidiaGreen
    public static let accentHover = BrandSwatch.nvidiaGreenDark
    public static let border = BrandSwatch.gray700
    public static let mark = BrandSwatch.white
}

/// 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.nvidiaGreen
    public static let primaryHover = BrandSwatch.nvidiaGreenDark
    public static let accent = BrandSwatch.nvidiaGreen
    public static let mark = BrandSwatch.black
    public static let backgroundLight = BrandSwatch.white
    public static let backgroundDark = BrandSwatch.black
    public static let surfaceLight = BrandSwatch.gray50
    public static let surfaceDark = BrandSwatch.gray700
    public static let textPrimaryLight = BrandSwatch.black
    public static let textPrimaryDark = BrandSwatch.white
    public static let textSecondaryLight = BrandSwatch.gray700
    public static let textTertiaryLight = BrandSwatch.gray600
    public static let borderLight = BrandSwatch.gray100
}

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