//
// Epic Games (epic-games@1.0.0)
// Palette: epic-games@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 {
    /// Ink — Page canvas — the Epic Games Store's primary dark background. Captured from the html background-color on store.epicgames.com.

    public static let ink = Color(.sRGB, red: 0.0627, green: 0.0627, blue: 0.0784, opacity: 1.0000)
    /// Ink Deep — Pure black for hero artwork grounds and modal scrims.

    public static let inkDeep = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Graphite — Elevated surface on the Ink canvas — card backgrounds and header chrome.

    public static let graphite = Color(.sRGB, red: 0.1255, green: 0.1255, blue: 0.1412, opacity: 1.0000)
    /// Graphite Mid — Mid graphite — secondary card surfaces and quiet panel backgrounds.

    public static let graphiteMid = Color(.sRGB, red: 0.1647, green: 0.1647, blue: 0.1804, opacity: 1.0000)
    /// Graphite Light — Secondary button surface — observed as the default fill on the page chrome's secondary buttons.

    public static let graphiteLight = Color(.sRGB, red: 0.2510, green: 0.2510, blue: 0.2667, opacity: 1.0000)
    /// Fog Dark — Tertiary text on dark canvas; quiet icon fills.

    public static let fogDark = Color(.sRGB, red: 0.3529, green: 0.3529, blue: 0.3686, opacity: 1.0000)
    /// Fog — Secondary text on dark canvas; observed as rgba(255,255,255, 0.65) on disabled link affordances.

    public static let fog = Color(.sRGB, red: 0.6510, green: 0.6510, blue: 0.6510, opacity: 1.0000)
    /// Fog Light — Quiet body-on-dark text and pale icon fills.

    public static let fogLight = Color(.sRGB, red: 0.8157, green: 0.8157, blue: 0.8157, opacity: 1.0000)
    /// Snow — Pure white — the Epic Games Store's primary CTA fill (white surface with Ink text). Also the brand mark's positive fill.

    public static let snow = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Snow Mid — Pale surface — alternate card background and quiet promotional treatments.

    public static let snowMid = Color(.sRGB, red: 0.9608, green: 0.9608, blue: 0.9608, opacity: 1.0000)
    /// Action Blue — Inline link accent observed on the marketing-site link surfaces. Not the primary CTA — Epic's primary action is a white surface with ink text — but the established hue for inline links and focus rings.

    public static let actionBlue = Color(.sRGB, red: 0.0000, green: 0.4706, blue: 0.9490, opacity: 1.0000)
    /// Hot Pink — Promotional / discount sticker accent observed on hero banners and sale stickers across the storefront.

    public static let hotPink = Color(.sRGB, red: 1.0000, green: 0.1216, blue: 0.5412, opacity: 1.0000)
    /// Signal Green — Free-claim / "now free" sticker accent observed on the weekly free-game banners.

    public static let signalGreen = Color(.sRGB, red: 0.1490, green: 0.7333, blue: 0.6431, opacity: 1.0000)
    /// Alert Red — Destructive-action / error red used for "remove from wishlist" and refund-related affordances.

    public static let alertRed = Color(.sRGB, red: 0.8471, green: 0.2706, blue: 0.2275, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.snow
    public static let surface = BrandSwatch.snowMid
    public static let surfaceElevated = BrandSwatch.snow
    public static let textPrimary = BrandSwatch.ink
    public static let textSecondary = BrandSwatch.fogDark
    public static let textTertiary = BrandSwatch.fog
    public static let primary = BrandSwatch.ink
    public static let primaryHover = BrandSwatch.graphiteLight
    public static let accent = BrandSwatch.actionBlue
    public static let accentHover = BrandSwatch.actionBlue
    public static let warning = BrandSwatch.hotPink
    public static let warningHover = BrandSwatch.hotPink
    public static let error = BrandSwatch.alertRed
    public static let success = BrandSwatch.signalGreen
    public static let border = BrandSwatch.fogLight
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.ink
    public static let surface = BrandSwatch.graphite
    public static let surfaceElevated = BrandSwatch.graphiteMid
    public static let textPrimary = BrandSwatch.snow
    public static let textSecondary = BrandSwatch.fogLight
    public static let textTertiary = BrandSwatch.fog
    public static let primary = BrandSwatch.snow
    public static let primaryHover = BrandSwatch.fogLight
    public static let accent = BrandSwatch.actionBlue
    public static let accentHover = BrandSwatch.actionBlue
    public static let warning = BrandSwatch.hotPink
    public static let warningHover = BrandSwatch.hotPink
    public static let error = BrandSwatch.alertRed
    public static let success = BrandSwatch.signalGreen
    public static let border = BrandSwatch.graphiteLight
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.ink
    public static let onIdentity = BrandSwatch.snow
    public static let primary = BrandSwatch.snow
    public static let primaryHover = BrandSwatch.fogLight
    public static let accent = BrandSwatch.actionBlue
    public static let accentHover = BrandSwatch.actionBlue
    public static let mark = BrandSwatch.snow
    public static let success = BrandSwatch.signalGreen
    public static let warning = BrandSwatch.hotPink
    public static let error = BrandSwatch.alertRed
    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.snowMid
    public static let surfaceDark = BrandSwatch.graphite
    public static let textSecondaryLight = BrandSwatch.fogDark
    public static let textTertiaryLight = BrandSwatch.fog
    public static let borderLight = BrandSwatch.fogLight
}

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