//
// Reddit (reddit@1.0.0)
// Palette: reddit@1.0.0
// Fonts:   heading=ibm-plex-sans@1.0.0, body=ibm-plex-sans@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 {
    /// Reddit Orange — Signature red-orange — the primary brand color. The Snoo mark, the Reddit wordmark, and the up-vote affordance all read in this hue. Verified hex from Reddit's brand kit and corroborated by the simple-icons brand database citing reddit.com.

    public static let redditOrange = Color(.sRGB, red: 1.0000, green: 0.2706, blue: 0.0000, opacity: 1.0000)
    /// Reddit Orange Dark — Authored darker orange for hover, pressed, and active states on the primary.
    public static let redditOrangeDark = Color(.sRGB, red: 0.8000, green: 0.2157, blue: 0.0000, opacity: 1.0000)
    /// Reddit White — Canonical light canvas — the historical Reddit product surface.
    public static let redditWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Reddit Near-White — Authored panel surface on light mode — Reddit's listing rows on the web.
    public static let redditNearWhite = Color(.sRGB, red: 0.9647, green: 0.9686, blue: 0.9725, opacity: 1.0000)
    /// Reddit Text Primary — Authored body text on light backgrounds.
    public static let redditTextPrimary = Color(.sRGB, red: 0.1020, green: 0.1020, blue: 0.1059, opacity: 1.0000)
    /// Reddit Text Secondary — Authored secondary text on light backgrounds.
    public static let redditTextSecondary = Color(.sRGB, red: 0.4863, green: 0.4863, blue: 0.4863, opacity: 1.0000)
    /// Reddit Divider Light — Authored hairline divider on light canvas.
    public static let redditDividerLight = Color(.sRGB, red: 0.9294, green: 0.9373, blue: 0.9451, opacity: 1.0000)
    /// Reddit Canvas Dark — The "new Reddit" dark canvas — documented in the Reddit redesign brand assets and surfaced on the Reddit web product's dark theme.

    public static let redditCanvasDark = Color(.sRGB, red: 0.1020, green: 0.1020, blue: 0.1059, opacity: 1.0000)
    /// Reddit Surface Dark — Authored elevated surface on the dark canvas — rows, modal headers.
    public static let redditSurfaceDark = Color(.sRGB, red: 0.1529, green: 0.1529, blue: 0.1608, opacity: 1.0000)
    /// Reddit Surface Elevated Dark — Authored deepest-elevated surface on dark mode — popovers and tooltips.
    public static let redditSurfaceElevatedDark = Color(.sRGB, red: 0.2039, green: 0.2078, blue: 0.2118, opacity: 1.0000)
    /// Reddit Text on Dark — Primary text on the dark canvas — the off-white reading tone.
    public static let redditTextOnDark = Color(.sRGB, red: 0.8431, green: 0.8549, blue: 0.8627, opacity: 1.0000)
    /// Reddit Text Secondary Dark — Authored secondary text on the dark canvas.
    public static let redditTextSecondaryDark = Color(.sRGB, red: 0.5059, green: 0.5137, blue: 0.5176, opacity: 1.0000)
    /// Reddit Divider Dark — Authored hairline divider on dark canvas.
    public static let redditDividerDark = Color(.sRGB, red: 0.2039, green: 0.2078, blue: 0.2118, opacity: 1.0000)
    /// Reddit Downvote Blue — The complementary blue used historically for the down-vote affordance on the Reddit product — the visual counterweight to the Orange up-vote.

    public static let redditDownvoteBlue = Color(.sRGB, red: 0.4431, green: 0.5765, blue: 1.0000, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.redditWhite
    public static let surface = BrandSwatch.redditNearWhite
    public static let surfaceElevated = BrandSwatch.redditWhite
    public static let textPrimary = BrandSwatch.redditTextPrimary
    public static let textSecondary = BrandSwatch.redditTextSecondary
    public static let textTertiary = BrandSwatch.redditTextSecondary
    public static let primary = BrandSwatch.redditOrange
    public static let primaryHover = BrandSwatch.redditOrangeDark
    public static let accent = BrandSwatch.redditOrange
    public static let accentHover = BrandSwatch.redditOrangeDark
    public static let warning = BrandSwatch.redditOrange
    public static let warningHover = BrandSwatch.redditOrangeDark
    public static let error = BrandSwatch.redditOrange
    public static let success = BrandSwatch.redditOrange
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.redditCanvasDark
    public static let surface = BrandSwatch.redditSurfaceDark
    public static let surfaceElevated = BrandSwatch.redditSurfaceElevatedDark
    public static let textPrimary = BrandSwatch.redditTextOnDark
    public static let textSecondary = BrandSwatch.redditTextSecondaryDark
    public static let textTertiary = BrandSwatch.redditTextSecondaryDark
    public static let primary = BrandSwatch.redditOrange
    public static let primaryHover = BrandSwatch.redditOrangeDark
    public static let accent = BrandSwatch.redditOrange
    public static let accentHover = BrandSwatch.redditOrangeDark
    public static let warning = BrandSwatch.redditOrange
    public static let warningHover = BrandSwatch.redditOrangeDark
    public static let error = BrandSwatch.redditOrange
    public static let success = BrandSwatch.redditOrange
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.redditOrange
    public static let onIdentity = BrandSwatch.redditWhite
    public static let primary = BrandSwatch.redditOrange
    public static let primaryHover = BrandSwatch.redditOrangeDark
    public static let accent = BrandSwatch.redditOrange
    public static let accentHover = BrandSwatch.redditOrangeDark
    public static let upvote = BrandSwatch.redditOrange
    public static let downvote = BrandSwatch.redditDownvoteBlue
    public static let backgroundLight = BrandSwatch.redditWhite
    public static let backgroundDark = BrandSwatch.redditCanvasDark
    public static let surfaceLight = BrandSwatch.redditNearWhite
    public static let surfaceDark = BrandSwatch.redditSurfaceDark
    public static let surfaceElevatedDark = BrandSwatch.redditSurfaceElevatedDark
    public static let textPrimaryLight = BrandSwatch.redditTextPrimary
    public static let textPrimaryDark = BrandSwatch.redditTextOnDark
    public static let textSecondaryLight = BrandSwatch.redditTextSecondary
    public static let textSecondaryDark = BrandSwatch.redditTextSecondaryDark
    public static let dividerLight = BrandSwatch.redditDividerLight
    public static let dividerDark = BrandSwatch.redditDividerDark
}

/// Typography family names by brand role.
public enum BrandFont {
    /// IBM Plex Sans (ibm-plex-sans@1.0.0)
    public static let heading = "IBM Plex Sans"
    /// IBM Plex Sans (ibm-plex-sans@1.0.0)
    public static let body = "IBM Plex Sans"
    /// JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)
    public static let mono = "JetBrainsMono Nerd Font"
}
