//
// Unreal Engine (unreal-engine@1.0.0)
// Palette: unreal-engine@1.0.0
// Fonts:   heading=inter-tight@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 {
    /// Unreal Blue — Primary brand action — --color-eds.fill.primary.default, --color-eds.icon.select.default, --color-text-select- default, --color-fill-primary-press. The most identifiable Unreal Engine accent.

    public static let unrealBlue = Color(.sRGB, red: 0.1490, green: 0.7333, blue: 1.0000, opacity: 1.0000)
    /// Unreal Blue Hover — Hover variant — --color-eds.fill.primary.hover and --color-fill-primary-hover.

    public static let unrealBlueHover = Color(.sRGB, red: 0.4471, green: 0.8275, blue: 1.0000, opacity: 1.0000)
    /// Unreal Blue 400 — Mid-bright blue — --color-eds.palette.blue.400 (alias of --color-palette-blue-400).

    public static let unrealBlue400 = Color(.sRGB, red: 0.2000, green: 0.7490, blue: 1.0000, opacity: 1.0000)
    /// Unreal Blue 500 — Bright blue — --color-eds.palette.blue.500.

    public static let unrealBlue500 = Color(.sRGB, red: 0.4118, green: 0.8157, blue: 1.0000, opacity: 1.0000)
    /// Unreal Blue 600 — Pale blue — --color-eds.palette.blue.600. Gradient start-stop in the green-gradient (#A0E1FF → #5FE367).

    public static let unrealBlue600 = Color(.sRGB, red: 0.6275, green: 0.8824, blue: 1.0000, opacity: 1.0000)
    /// Unreal Blue 700 — Lightest blue — --color-eds.palette.blue.700. Quiet branded surface tint.

    public static let unrealBlue700 = Color(.sRGB, red: 0.8392, green: 0.9490, blue: 1.0000, opacity: 1.0000)
    /// Unreal Blue 300 — Mid-deep blue — --color-eds.palette.blue.300.

    public static let unrealBlue300 = Color(.sRGB, red: 0.1451, green: 0.5490, blue: 0.7333, opacity: 1.0000)
    /// Unreal Blue 200 — Deep blue — --color-eds.palette.blue.200.

    public static let unrealBlue200 = Color(.sRGB, red: 0.0941, green: 0.3490, blue: 0.4667, opacity: 1.0000)
    /// Unreal Blue 100 — Deepest blue surface — --color-eds.palette.blue.100.

    public static let unrealBlue100 = Color(.sRGB, red: 0.0392, green: 0.1490, blue: 0.2000, opacity: 1.0000)
    /// Ink — Primary dark canvas — --color-background-default and --color-neutral-100. The Unreal Engine page-background default.

    public static let ink = Color(.sRGB, red: 0.0627, green: 0.0627, blue: 0.0784, opacity: 1.0000)
    /// Ink Elevated — Elevated dark surface — --colors-eds.background.elevated. high.default. Card and panel backgrounds.

    public static let inkElevated = Color(.sRGB, red: 0.1255, green: 0.1255, blue: 0.1412, opacity: 1.0000)
    /// Ink Elevated Hover — Tertiary elevated hover — --colors-eds.fill.tertiary. elevated.hover.

    public static let inkElevatedHover = Color(.sRGB, red: 0.3137, green: 0.3137, blue: 0.3294, opacity: 1.0000)
    /// Ink Divider — Quiet divider on dark — --color-fill-secondary-disabled and --colors-eds.fill.secondary.disabled.

    public static let inkDivider = Color(.sRGB, red: 0.1882, green: 0.1882, blue: 0.2039, opacity: 1.0000)
    /// Ink Deep — Pure black — --colors-eds.text.on-accent and --colors- eds.text.link.on-accent.default. Text fill on bright blue and white surfaces.

    public static let inkDeep = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Snow — Pure white — --color-text-primary, --color-icon-primary, --colors-eds.icon.contrast. Primary body text on dark canvas.

    public static let snow = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Snow Soft — Mid neutral — --colors-eds.palette.grayscale.gray100. Secondary text on dark surface.

    public static let snowSoft = Color(.sRGB, red: 0.5020, green: 0.5020, blue: 0.5176, opacity: 1.0000)
    /// Critical Default — Error / destructive default — --color-fill-critical- default and --colors-eds.fill.critical.default.

    public static let criticalDefault = Color(.sRGB, red: 1.0000, green: 0.2471, blue: 0.3373, opacity: 1.0000)
    /// Critical Alternate — Critical alternate — --color-fill-critical-alternate. Used as the warning text color on critical alerts.

    public static let criticalAlternate = Color(.sRGB, red: 1.0000, green: 0.3804, blue: 0.4510, opacity: 1.0000)
    /// Critical Text — Critical text color — --colors-eds.text.critical.

    public static let criticalText = Color(.sRGB, red: 1.0000, green: 0.3804, blue: 0.4510, opacity: 1.0000)
    /// Success Default — Success green — --colors-eds.palette.green.500.

    public static let successDefault = Color(.sRGB, red: 0.5412, green: 0.9176, blue: 0.5647, opacity: 1.0000)
    /// Success Alternate — Success alternate — --color-fill-success-alternate.

    public static let successAlternate = Color(.sRGB, red: 0.4431, green: 0.8392, blue: 0.5294, opacity: 1.0000)
    /// Warning Default — Warning icon color — --color-icon-warning and --color- palette-accent-yellow200.

    public static let warningDefault = Color(.sRGB, red: 1.0000, green: 0.7608, blue: 0.1608, opacity: 1.0000)
    /// Warning Yellow 400 — Bright warning yellow — --colors-eds.palette.yellow.400.

    public static let warningYellow400 = Color(.sRGB, red: 0.9686, green: 0.8471, blue: 0.1686, opacity: 1.0000)
    /// Gradient Green — Green gradient end-stop — --gradient-components-green- stops-100. Paired with --gradient-components-blue-stops- 100 (#33BFFF or unreal-blue-600 #A0E1FF) on the documented EDS gradients.

    public static let gradientGreen = Color(.sRGB, red: 0.3725, green: 0.8902, blue: 0.4039, opacity: 1.0000)
    /// Gradient Orange — Orange gradient end-stop — --color-palette-orange-400. Paired with yellow on the documented EDS orange gradient.

    public static let gradientOrange = Color(.sRGB, red: 0.9961, green: 0.5216, blue: 0.2235, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.snow
    public static let surface = BrandSwatch.unrealBlue700
    public static let surfaceElevated = BrandSwatch.snow
    public static let textPrimary = BrandSwatch.ink
    public static let textSecondary = BrandSwatch.inkElevatedHover
    public static let textTertiary = BrandSwatch.snowSoft
    public static let primary = BrandSwatch.unrealBlue200
    public static let primaryHover = BrandSwatch.unrealBlue300
    public static let accent = BrandSwatch.unrealBlue300
    public static let accentHover = BrandSwatch.unrealBlue200
    public static let warning = BrandSwatch.warningDefault
    public static let warningHover = BrandSwatch.gradientOrange
    public static let error = BrandSwatch.criticalDefault
    public static let success = BrandSwatch.successAlternate
    public static let border = BrandSwatch.inkDivider
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.ink
    public static let surface = BrandSwatch.inkElevated
    public static let surfaceElevated = BrandSwatch.inkElevatedHover
    public static let textPrimary = BrandSwatch.snow
    public static let textSecondary = BrandSwatch.snowSoft
    public static let textTertiary = BrandSwatch.inkElevatedHover
    public static let primary = BrandSwatch.unrealBlue
    public static let primaryHover = BrandSwatch.unrealBlueHover
    public static let accent = BrandSwatch.unrealBlueHover
    public static let accentHover = BrandSwatch.unrealBlue500
    public static let warning = BrandSwatch.warningDefault
    public static let warningHover = BrandSwatch.gradientOrange
    public static let error = BrandSwatch.criticalDefault
    public static let success = BrandSwatch.successDefault
    public static let border = BrandSwatch.inkDivider
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.ink
    public static let onIdentity = BrandSwatch.unrealBlue
    public static let primary = BrandSwatch.unrealBlue
    public static let primaryHover = BrandSwatch.unrealBlueHover
    public static let accent = BrandSwatch.unrealBlueHover
    public static let accentHover = BrandSwatch.unrealBlue500
    public static let mark = BrandSwatch.snow
    public static let success = BrandSwatch.successDefault
    public static let warning = BrandSwatch.warningDefault
    public static let error = BrandSwatch.criticalDefault
    public static let textPrimaryLight = BrandSwatch.ink
    public static let textPrimaryDark = BrandSwatch.snow
    public static let backgroundLight = BrandSwatch.snow
    public static let backgroundDark = BrandSwatch.ink
    public static let surfaceLight = BrandSwatch.unrealBlue700
    public static let surfaceDark = BrandSwatch.inkElevated
    public static let textSecondaryLight = BrandSwatch.inkElevatedHover
    public static let textTertiaryLight = BrandSwatch.snowSoft
    public static let borderLight = BrandSwatch.inkDivider
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Inter Tight (inter-tight@1.0.0)
    public static let heading = "Inter Tight"
    /// 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"
}
