//
// X (formerly Twitter) (x-twitter@1.0.0)
// Palette: x-twitter@1.0.0
// Fonts:   heading=chirp@1.0.0, body=chirp@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 {
    /// X Black — Canonical canvas — the X identity reads as the white mark on black.
    public static let xBlack = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// X White — Inverse canvas / mark fill — the X mark renders white on black or black on white.
    public static let xWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// X Dim — "Dim" surface — the desaturated near-navy product canvas inherited from Twitter's three-mode theme system, still surfaced on x.com under the Display settings.

    public static let xDim = Color(.sRGB, red: 0.0824, green: 0.1255, blue: 0.1686, opacity: 1.0000)
    /// X Dim Elevated — Authored elevated surface on the Dim canvas — modals, hover rows.
    public static let xDimElevated = Color(.sRGB, red: 0.1176, green: 0.1529, blue: 0.1961, opacity: 1.0000)
    /// X Charcoal — Authored elevated surface on the Lights Out (pure-black) canvas — rows, tile borders, and modal backgrounds on x.com dark mode.

    public static let xCharcoal = Color(.sRGB, red: 0.0863, green: 0.0941, blue: 0.1098, opacity: 1.0000)
    /// X Gray — Secondary text and icon tone on the dark canvas.
    public static let xGray = Color(.sRGB, red: 0.4431, green: 0.4627, blue: 0.4824, opacity: 1.0000)
    /// X Gray Light — Primary text tone on the dark canvas (off-white).
    public static let xGrayLight = Color(.sRGB, red: 0.9059, green: 0.9137, blue: 0.9176, opacity: 1.0000)
    /// X Gray Border — Hairline divider and border tone on the dark canvas.
    public static let xGrayBorder = Color(.sRGB, red: 0.1843, green: 0.2000, blue: 0.2118, opacity: 1.0000)
    /// Twitter Blue (Legacy) — The pre-2023 Twitter Blue. Retained as a deprecated reference for historical applications and migration documentation only; not part of the current X monochrome identity.

    public static let twitterBlueLegacy = Color(.sRGB, red: 0.1137, green: 0.6314, blue: 0.9490, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.xWhite
    public static let surface = BrandSwatch.xWhite
    public static let surfaceElevated = BrandSwatch.xWhite
    public static let textPrimary = BrandSwatch.xBlack
    public static let textSecondary = BrandSwatch.xGray
    public static let textTertiary = BrandSwatch.xGray
    public static let primary = BrandSwatch.xBlack
    public static let primaryHover = BrandSwatch.xCharcoal
    public static let accent = BrandSwatch.xBlack
    public static let accentHover = BrandSwatch.xCharcoal
    public static let warning = BrandSwatch.xBlack
    public static let warningHover = BrandSwatch.xCharcoal
    public static let error = BrandSwatch.xBlack
    public static let success = BrandSwatch.xBlack
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.xBlack
    public static let surface = BrandSwatch.xCharcoal
    public static let surfaceElevated = BrandSwatch.xDimElevated
    public static let textPrimary = BrandSwatch.xGrayLight
    public static let textSecondary = BrandSwatch.xGray
    public static let textTertiary = BrandSwatch.xGray
    public static let primary = BrandSwatch.xWhite
    public static let primaryHover = BrandSwatch.xGrayLight
    public static let accent = BrandSwatch.xWhite
    public static let accentHover = BrandSwatch.xGrayLight
    public static let warning = BrandSwatch.xWhite
    public static let warningHover = BrandSwatch.xGrayLight
    public static let error = BrandSwatch.xWhite
    public static let success = BrandSwatch.xWhite
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.xBlack
    public static let onIdentity = BrandSwatch.xWhite
    public static let background = BrandSwatch.xBlack
    public static let surface = BrandSwatch.xCharcoal
    public static let surfaceElevated = BrandSwatch.xDimElevated
    public static let textPrimary = BrandSwatch.xGrayLight
    public static let textSecondary = BrandSwatch.xGray
    public static let textTertiary = BrandSwatch.xGray
    public static let primary = BrandSwatch.xWhite
    public static let primaryHover = BrandSwatch.xGrayLight
    public static let accent = BrandSwatch.xWhite
    public static let accentHover = BrandSwatch.xGrayLight
    public static let mark = BrandSwatch.xWhite
    public static let textEmphasis = BrandSwatch.xGrayLight
    public static let textMuted = BrandSwatch.xGray
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Chirp (chirp@1.0.0)
    public static let heading = "Chirp"
    /// Chirp (chirp@1.0.0)
    public static let body = "Chirp"
    /// JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)
    public static let mono = "JetBrainsMono Nerd Font"
}
