//
// Twitch (twitch@1.0.0)
// Palette: twitch@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 {
    /// Twitch Purple — Primary signature purple — the Twitch wordmark, the Glitch mark, and primary CTAs.
    public static let twitchPurple = Color(.sRGB, red: 0.5686, green: 0.2745, blue: 1.0000, opacity: 1.0000)
    /// Twitch Purple Hover — Darker purple used for hover/pressed states on the primary action.
    public static let twitchPurpleHover = Color(.sRGB, red: 0.4667, green: 0.1725, blue: 0.9098, opacity: 1.0000)
    /// Twitch Purple Light — Lighter purple used for emphasis on dark canvases and in marketing accents.
    public static let twitchPurpleLight = Color(.sRGB, red: 0.7490, green: 0.5804, blue: 1.0000, opacity: 1.0000)
    /// Twitch Black — Canonical canvas — the Twitch consumer surface and chrome background.
    public static let twitchBlack = Color(.sRGB, red: 0.0549, green: 0.0549, blue: 0.0627, opacity: 1.0000)
    /// Twitch Near-Black — Elevated surface — chat panels, player chrome, and modal backgrounds.
    public static let twitchNearBlack = Color(.sRGB, red: 0.0941, green: 0.0941, blue: 0.1059, opacity: 1.0000)
    /// Twitch Charcoal — Hovered surface, sidebar background, and elevated tiles in the Twitch consumer app.
    public static let twitchCharcoal = Color(.sRGB, red: 0.1216, green: 0.1216, blue: 0.1373, opacity: 1.0000)
    /// Twitch White — Primary text on the dark canvas; reversed wordmark fill on light backgrounds.
    public static let twitchWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Twitch Off-White — Authored light-mode canvas; secondary surface on dark mode.
    public static let twitchOffWhite = Color(.sRGB, red: 0.9373, green: 0.9373, blue: 0.9451, opacity: 1.0000)
    /// Twitch Graphite — Secondary text and divider color on the dark canvas.
    public static let twitchGraphite = Color(.sRGB, red: 0.3255, green: 0.3255, blue: 0.3725, opacity: 1.0000)
    /// Twitch Gray Light — Tertiary text and metadata in the consumer product.
    public static let twitchGrayLight = Color(.sRGB, red: 0.6784, green: 0.6784, blue: 0.7216, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.twitchOffWhite
    public static let surface = BrandSwatch.twitchWhite
    public static let surfaceElevated = BrandSwatch.twitchWhite
    public static let textPrimary = BrandSwatch.twitchBlack
    public static let textSecondary = BrandSwatch.twitchGraphite
    public static let textTertiary = BrandSwatch.twitchGrayLight
    public static let primary = BrandSwatch.twitchPurple
    public static let primaryHover = BrandSwatch.twitchPurpleHover
    public static let accent = BrandSwatch.twitchPurple
    public static let accentHover = BrandSwatch.twitchPurpleHover
    public static let warning = BrandSwatch.twitchPurpleLight
    public static let warningHover = BrandSwatch.twitchPurple
    public static let error = BrandSwatch.twitchPurpleHover
    public static let success = BrandSwatch.twitchPurple
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.twitchBlack
    public static let surface = BrandSwatch.twitchNearBlack
    public static let surfaceElevated = BrandSwatch.twitchCharcoal
    public static let textPrimary = BrandSwatch.twitchWhite
    public static let textSecondary = BrandSwatch.twitchGrayLight
    public static let textTertiary = BrandSwatch.twitchGraphite
    public static let primary = BrandSwatch.twitchPurple
    public static let primaryHover = BrandSwatch.twitchPurpleLight
    public static let accent = BrandSwatch.twitchPurple
    public static let accentHover = BrandSwatch.twitchPurpleLight
    public static let warning = BrandSwatch.twitchPurpleLight
    public static let warningHover = BrandSwatch.twitchPurple
    public static let error = BrandSwatch.twitchPurpleLight
    public static let success = BrandSwatch.twitchPurple
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.twitchBlack
    public static let onIdentity = BrandSwatch.twitchPurple
    public static let background = BrandSwatch.twitchBlack
    public static let surface = BrandSwatch.twitchNearBlack
    public static let surfaceElevated = BrandSwatch.twitchCharcoal
    public static let textPrimary = BrandSwatch.twitchWhite
    public static let textSecondary = BrandSwatch.twitchGrayLight
    public static let textTertiary = BrandSwatch.twitchGraphite
    public static let primary = BrandSwatch.twitchPurple
    public static let primaryHover = BrandSwatch.twitchPurpleLight
    public static let accent = BrandSwatch.twitchPurple
    public static let accentHover = BrandSwatch.twitchPurpleLight
    public static let mark = BrandSwatch.twitchPurple
    public static let textEmphasis = BrandSwatch.twitchWhite
}

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