//
// React (react@1.0.0)
// Palette: react@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 {
    /// React Cyan — Canonical React logo color — the cyan of the atom-orbit mark used since the original Facebook open-source release.

    public static let reactCyan = Color(.sRGB, red: 0.3804, green: 0.8549, blue: 0.9843, opacity: 1.0000)
    /// React Blue 50 — link / brand color on light surfaces.
    public static let reactBlue50 = Color(.sRGB, red: 0.0314, green: 0.4941, blue: 0.6431, opacity: 1.0000)
    /// React Blue 40 — docs link color on light surfaces.
    public static let reactBlue40 = Color(.sRGB, red: 0.0784, green: 0.6196, blue: 0.7922, opacity: 1.0000)
    /// React Blue 30 — link / brand color on dark surfaces.
    public static let reactBlue30 = Color(.sRGB, red: 0.3451, green: 0.7686, blue: 0.8627, opacity: 1.0000)
    /// React Blue 80 — deep blue used for hover states on light surfaces.
    public static let reactBlue80 = Color(.sRGB, red: 0.0157, green: 0.2196, blue: 0.2863, opacity: 1.0000)
    /// React Blue 10 — highlight tint on light surfaces.
    public static let reactBlue10 = Color(.sRGB, red: 0.9020, green: 0.9686, blue: 1.0000, opacity: 1.0000)
    /// Gray 95 — deepest dark-mode background.
    public static let gray95 = Color(.sRGB, red: 0.0863, green: 0.0941, blue: 0.1137, opacity: 1.0000)
    /// Gray 90 — primary dark canvas (wash-dark / primary).
    public static let gray90 = Color(.sRGB, red: 0.1373, green: 0.1529, blue: 0.1843, opacity: 1.0000)
    /// Gray 80 — dark-mode borders and card surfaces.
    public static let gray80 = Color(.sRGB, red: 0.2039, green: 0.2275, blue: 0.2745, opacity: 1.0000)
    /// Gray 70 — secondary text on dark surfaces.
    public static let gray70 = Color(.sRGB, red: 0.2510, green: 0.2784, blue: 0.3373, opacity: 1.0000)
    /// Gray 60 — tertiary text.
    public static let gray60 = Color(.sRGB, red: 0.3059, green: 0.3412, blue: 0.4118, opacity: 1.0000)
    /// Gray 50 — muted text.
    public static let gray50 = Color(.sRGB, red: 0.3686, green: 0.4078, blue: 0.4941, opacity: 1.0000)
    /// Gray 30 — tertiary text on dark.
    public static let gray30 = Color(.sRGB, red: 0.6000, green: 0.6314, blue: 0.7020, opacity: 1.0000)
    /// Gray 10 — light-mode borders and dividers.
    public static let gray10 = Color(.sRGB, red: 0.9216, green: 0.9255, blue: 0.9412, opacity: 1.0000)
    /// Gray 5 — light-mode card surfaces.
    public static let gray5 = Color(.sRGB, red: 0.9647, green: 0.9686, blue: 0.9765, opacity: 1.0000)
    /// React White — light-mode page canvas (wash).
    public static let reactWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Yellow 50 — docs warning amber.
    public static let yellow50 = Color(.sRGB, red: 0.7804, green: 0.4157, blue: 0.0824, opacity: 1.0000)
    /// Red 50 — docs danger red.
    public static let red50 = Color(.sRGB, red: 0.6510, green: 0.2588, blue: 0.2275, opacity: 1.0000)
    /// Green 50 — docs success teal-green.
    public static let green50 = Color(.sRGB, red: 0.2196, green: 0.5608, blue: 0.4980, opacity: 1.0000)
    /// Purple 50 — docs accent purple.
    public static let purple50 = Color(.sRGB, red: 0.3412, green: 0.3725, blue: 0.7176, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.reactWhite
    public static let surface = BrandSwatch.gray5
    public static let surfaceElevated = BrandSwatch.reactWhite
    public static let textPrimary = BrandSwatch.gray90
    public static let textSecondary = BrandSwatch.gray70
    public static let textTertiary = BrandSwatch.gray50
    public static let primary = BrandSwatch.reactBlue50
    public static let primaryHover = BrandSwatch.reactBlue80
    public static let accent = BrandSwatch.reactCyan
    public static let accentHover = BrandSwatch.reactBlue40
    public static let warning = BrandSwatch.yellow50
    public static let warningHover = BrandSwatch.yellow50
    public static let error = BrandSwatch.red50
    public static let success = BrandSwatch.green50
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.gray90
    public static let surface = BrandSwatch.gray80
    public static let surfaceElevated = BrandSwatch.gray70
    public static let textPrimary = BrandSwatch.reactWhite
    public static let textSecondary = BrandSwatch.gray30
    public static let textTertiary = BrandSwatch.gray50
    public static let primary = BrandSwatch.reactBlue30
    public static let primaryHover = BrandSwatch.reactBlue40
    public static let accent = BrandSwatch.reactCyan
    public static let accentHover = BrandSwatch.reactBlue30
    public static let warning = BrandSwatch.yellow50
    public static let warningHover = BrandSwatch.yellow50
    public static let error = BrandSwatch.red50
    public static let success = BrandSwatch.green50
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.reactCyan
    public static let onIdentity = BrandSwatch.gray90
    public static let primary = BrandSwatch.reactBlue50
    public static let primaryHover = BrandSwatch.reactBlue80
    public static let accent = BrandSwatch.reactCyan
    public static let accentHover = BrandSwatch.reactBlue40
    public static let background = BrandSwatch.gray90
    public static let surface = BrandSwatch.gray80
    public static let textPrimary = BrandSwatch.reactWhite
    public static let textSecondary = BrandSwatch.gray30
}

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