//
// The Verge (the-verge@1.0.0)
// Palette: the-verge@1.0.0
// Fonts:   heading=inter@1.0.0, body=inter@1.0.0, serif=playfair-display@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 — Primary text and dark surface — the Verge ink.
    public static let ink = Color(.sRGB, red: 0.0745, green: 0.0745, blue: 0.0745, opacity: 1.0000)
    /// Black — Absolute black; mark fills.
    public static let black = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Gray Bright — Elevated surface in dark mode; secondary text.
    public static let grayBright = Color(.sRGB, red: 0.1922, green: 0.1922, blue: 0.1922, opacity: 1.0000)
    /// Gray Medium — Secondary body text on light surfaces.
    public static let grayMedium = Color(.sRGB, red: 0.2902, green: 0.2902, blue: 0.2902, opacity: 1.0000)
    /// Gray Muted — Tertiary text; muted captions.
    public static let grayMuted = Color(.sRGB, red: 0.3882, green: 0.3882, blue: 0.3882, opacity: 1.0000)
    /// Gray Quiet — Disabled text and quiet meta.
    public static let grayQuiet = Color(.sRGB, red: 0.5804, green: 0.5804, blue: 0.5804, opacity: 1.0000)
    /// Gray Border — Heavy border weight.
    public static let grayBorder = Color(.sRGB, red: 0.7412, green: 0.7412, blue: 0.7412, opacity: 1.0000)
    /// Gray Divider — Quiet rule weight.
    public static let grayDivider = Color(.sRGB, red: 0.9137, green: 0.9137, blue: 0.9137, opacity: 1.0000)
    /// Gray Tint — Quiet surface tint.
    public static let grayTint = Color(.sRGB, red: 0.9373, green: 0.9373, blue: 0.9373, opacity: 1.0000)
    /// Gray Surface — Subtle inset surface.
    public static let graySurface = Color(.sRGB, red: 0.9647, green: 0.9647, blue: 0.9647, opacity: 1.0000)
    /// White — Page canvas — the Verge bright sheet.
    public static let white = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Electric Purple — Primary action color — the Verge electric accent.
    public static let electricPurple = Color(.sRGB, red: 0.3216, green: 0.0000, blue: 1.0000, opacity: 1.0000)
    /// Electric Purple Pressed — Pressed / active variant of electric-purple.
    public static let electricPurplePressed = Color(.sRGB, red: 0.2392, green: 0.0000, blue: 0.7490, opacity: 1.0000)
    /// Electric Purple Light — Lighter electric purple — quiet emphasis.
    public static let electricPurpleLight = Color(.sRGB, red: 0.6627, green: 0.5020, blue: 1.0000, opacity: 1.0000)
    /// Electric Purple Tint — Quiet surface tint of electric purple.
    public static let electricPurpleTint = Color(.sRGB, red: 0.8745, green: 0.8118, blue: 1.0000, opacity: 1.0000)
    /// Electric Purple Faint — Faint background tint.
    public static let electricPurpleFaint = Color(.sRGB, red: 0.9333, green: 0.9020, blue: 1.0000, opacity: 1.0000)
    /// Neon Mint — Bright accent — the Verge mint signal color.
    public static let neonMint = Color(.sRGB, red: 0.2353, green: 1.0000, blue: 0.8157, opacity: 1.0000)
    /// Neon Mint Tint — Quiet mint surface tint.
    public static let neonMintTint = Color(.sRGB, red: 0.8471, green: 0.9412, blue: 0.9098, opacity: 1.0000)
    /// Verge Green — Status / success green — the Verge confirmation color.
    public static let vergeGreen = Color(.sRGB, red: 0.1882, green: 0.5961, blue: 0.4588, opacity: 1.0000)
    /// Yellow Bright — Verge accent yellow — quote highlights and tags.
    public static let yellowBright = Color(.sRGB, red: 0.8392, green: 0.9529, blue: 0.1216, opacity: 1.0000)
    /// Yellow Faint — Faint yellow surface tint.
    public static let yellowFaint = Color(.sRGB, red: 1.0000, green: 0.9882, blue: 0.8314, opacity: 1.0000)
    /// Peach Faint — Faint coral surface.
    public static let peachFaint = Color(.sRGB, red: 1.0000, green: 0.8353, blue: 0.7843, opacity: 1.0000)
    /// Rose Faint — Faint rose surface.
    public static let roseFaint = Color(.sRGB, red: 1.0000, green: 0.7608, blue: 0.9059, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.white
    public static let surface = BrandSwatch.graySurface
    public static let surfaceElevated = BrandSwatch.white
    public static let textPrimary = BrandSwatch.ink
    public static let textSecondary = BrandSwatch.grayMedium
    public static let textTertiary = BrandSwatch.grayMuted
    public static let primary = BrandSwatch.electricPurple
    public static let primaryHover = BrandSwatch.electricPurplePressed
    public static let accent = BrandSwatch.neonMint
    public static let accentHover = BrandSwatch.vergeGreen
    public static let warning = BrandSwatch.yellowBright
    public static let error = BrandSwatch.electricPurplePressed
    public static let success = BrandSwatch.vergeGreen
    public static let border = BrandSwatch.grayDivider
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.ink
    public static let surface = BrandSwatch.grayBright
    public static let surfaceElevated = BrandSwatch.grayMedium
    public static let textPrimary = BrandSwatch.white
    public static let textSecondary = BrandSwatch.grayDivider
    public static let textTertiary = BrandSwatch.grayBorder
    public static let primary = BrandSwatch.electricPurpleLight
    public static let primaryHover = BrandSwatch.electricPurple
    public static let accent = BrandSwatch.neonMint
    public static let accentHover = BrandSwatch.vergeGreen
    public static let warning = BrandSwatch.yellowBright
    public static let error = BrandSwatch.electricPurpleLight
    public static let success = BrandSwatch.neonMint
    public static let border = BrandSwatch.grayBright
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.ink
    public static let onIdentity = BrandSwatch.neonMint
    public static let primary = BrandSwatch.electricPurple
    public static let primaryHover = BrandSwatch.electricPurplePressed
    public static let accent = BrandSwatch.neonMint
    public static let accentHover = BrandSwatch.vergeGreen
    public static let mark = BrandSwatch.ink
    public static let success = BrandSwatch.vergeGreen
    public static let warning = BrandSwatch.yellowBright
    public static let error = BrandSwatch.electricPurplePressed
    public static let textPrimaryLight = BrandSwatch.ink
    public static let textPrimaryDark = BrandSwatch.white
    public static let backgroundLight = BrandSwatch.white
    public static let backgroundDark = BrandSwatch.ink
    public static let surfaceLight = BrandSwatch.graySurface
    public static let surfaceDark = BrandSwatch.grayBright
    public static let textSecondaryLight = BrandSwatch.grayMedium
    public static let textTertiaryLight = BrandSwatch.grayMuted
    public static let borderLight = BrandSwatch.grayDivider
}

/// 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"
    /// Playfair Display (playfair-display@1.0.0)
    public static let serif = "Playfair Display"
    /// JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)
    public static let mono = "JetBrainsMono Nerd Font"
}
