//
// YouTube (youtube@1.0.0)
// Palette: youtube@1.0.0
// Fonts:   heading=roboto@1.0.0, body=roboto@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 {
    /// YouTube Red — Pure signature red — the play-button mark fill, the wordmark accent, and primary CTAs.
    public static let youtubeRed = Color(.sRGB, red: 1.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// YouTube Red Dark — Darker red used for hover/pressed states on the primary red.
    public static let youtubeRedDark = Color(.sRGB, red: 0.8000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// YouTube Red Light — Lighter red used in marketing gradient surfaces and for emphasis on dark canvases.
    public static let youtubeRedLight = Color(.sRGB, red: 1.0000, green: 0.2667, blue: 0.2667, opacity: 1.0000)
    /// YouTube Black — Canonical dark-mode canvas — the deployed youtube.com dark theme background.
    public static let youtubeBlack = Color(.sRGB, red: 0.0588, green: 0.0588, blue: 0.0588, opacity: 1.0000)
    /// YouTube Near-Black — Elevated surface on dark mode — rows, cards, and modal headers.
    public static let youtubeNearBlack = Color(.sRGB, red: 0.0941, green: 0.0941, blue: 0.0941, opacity: 1.0000)
    /// YouTube Charcoal — Hovered surface and disabled-button background on dark mode.
    public static let youtubeCharcoal = Color(.sRGB, red: 0.1529, green: 0.1529, blue: 0.1529, opacity: 1.0000)
    /// YouTube White — Canonical light-mode canvas — the classic YouTube surface.
    public static let youtubeWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// YouTube Fog — Authored elevated surface on light mode.
    public static let youtubeFog = Color(.sRGB, red: 0.9490, green: 0.9490, blue: 0.9490, opacity: 1.0000)
    /// YouTube Ink — Body text on the light canvas.
    public static let youtubeInk = Color(.sRGB, red: 0.0118, green: 0.0118, blue: 0.0118, opacity: 1.0000)
    /// YouTube Graphite — Secondary text and metadata across both modes.
    public static let youtubeGraphite = Color(.sRGB, red: 0.3765, green: 0.3765, blue: 0.3765, opacity: 1.0000)
    /// YouTube Gray — Tertiary text and inactive icons on the dark canvas.
    public static let youtubeGray = Color(.sRGB, red: 0.6667, green: 0.6667, blue: 0.6667, opacity: 1.0000)
    /// YouTube Divider — Authored hairline divider on light mode.
    public static let youtubeDivider = Color(.sRGB, red: 0.8980, green: 0.8980, blue: 0.8980, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.youtubeWhite
    public static let surface = BrandSwatch.youtubeFog
    public static let surfaceElevated = BrandSwatch.youtubeWhite
    public static let textPrimary = BrandSwatch.youtubeInk
    public static let textSecondary = BrandSwatch.youtubeGraphite
    public static let textTertiary = BrandSwatch.youtubeGray
    public static let primary = BrandSwatch.youtubeRed
    public static let primaryHover = BrandSwatch.youtubeRedDark
    public static let accent = BrandSwatch.youtubeRed
    public static let accentHover = BrandSwatch.youtubeRedDark
    public static let warning = BrandSwatch.youtubeRedLight
    public static let warningHover = BrandSwatch.youtubeRed
    public static let error = BrandSwatch.youtubeRedDark
    public static let success = BrandSwatch.youtubeGraphite
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.youtubeBlack
    public static let surface = BrandSwatch.youtubeNearBlack
    public static let surfaceElevated = BrandSwatch.youtubeCharcoal
    public static let textPrimary = BrandSwatch.youtubeWhite
    public static let textSecondary = BrandSwatch.youtubeGray
    public static let textTertiary = BrandSwatch.youtubeGraphite
    public static let primary = BrandSwatch.youtubeRed
    public static let primaryHover = BrandSwatch.youtubeRedLight
    public static let accent = BrandSwatch.youtubeRed
    public static let accentHover = BrandSwatch.youtubeRedLight
    public static let warning = BrandSwatch.youtubeRedLight
    public static let warningHover = BrandSwatch.youtubeRed
    public static let error = BrandSwatch.youtubeRedLight
    public static let success = BrandSwatch.youtubeWhite
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.youtubeRed
    public static let onIdentity = BrandSwatch.youtubeWhite
    public static let primary = BrandSwatch.youtubeRed
    public static let primaryHover = BrandSwatch.youtubeRedDark
    public static let accent = BrandSwatch.youtubeRed
    public static let accentHover = BrandSwatch.youtubeRedDark
    public static let mark = BrandSwatch.youtubeRed
    public static let textPrimaryLight = BrandSwatch.youtubeInk
    public static let textPrimaryDark = BrandSwatch.youtubeWhite
    public static let textSecondaryLight = BrandSwatch.youtubeGraphite
    public static let textSecondaryDark = BrandSwatch.youtubeGray
    public static let backgroundLight = BrandSwatch.youtubeWhite
    public static let backgroundDark = BrandSwatch.youtubeBlack
    public static let surfaceLight = BrandSwatch.youtubeFog
    public static let surfaceDark = BrandSwatch.youtubeNearBlack
    public static let divider = BrandSwatch.youtubeDivider
}

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