//
// Stripe (stripe@1.0.0)
// Palette: stripe@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 {
    /// Stripe Purple — The signature brand color. Primary buttons, links, gradient anchors.
    public static let stripePurple = Color(.sRGB, red: 0.3882, green: 0.3569, blue: 1.0000, opacity: 1.0000)
    /// Stripe Purple Pressed — Active / pressed state of the primary purple.
    public static let stripePurplePressed = Color(.sRGB, red: 0.3255, green: 0.2275, blue: 0.9922, opacity: 1.0000)
    /// Stripe Purple Soft — Tinted backgrounds, badges, on-brand call-out cards.
    public static let stripePurpleSoft = Color(.sRGB, red: 0.9098, green: 0.9137, blue: 1.0000, opacity: 1.0000)
    /// Stripe Slate 100 — Deepest slate — large headings on light surfaces.
    public static let stripeSlate100 = Color(.sRGB, red: 0.0235, green: 0.1059, blue: 0.1922, opacity: 1.0000)
    /// Stripe Slate 90 — Standard heading slate, dark module backgrounds.
    public static let stripeSlate90 = Color(.sRGB, red: 0.0392, green: 0.1451, blue: 0.2510, opacity: 1.0000)
    /// Stripe Slate 70 — Secondary heading / large body text.
    public static let stripeSlate70 = Color(.sRGB, red: 0.2353, green: 0.3098, blue: 0.4118, opacity: 1.0000)
    /// Stripe Slate 50 — Default body-text gray-blue.
    public static let stripeSlate50 = Color(.sRGB, red: 0.2588, green: 0.3294, blue: 0.4000, opacity: 1.0000)
    /// Stripe Slate 30 — Muted text and tertiary labels.
    public static let stripeSlate30 = Color(.sRGB, red: 0.4000, green: 0.4627, blue: 0.5686, opacity: 1.0000)
    /// Stripe White — Pure white surface.
    public static let stripeWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Stripe Fog 0 (canvas) — Page canvas — the off-white Stripe uses behind content.
    public static let stripeFog0 = Color(.sRGB, red: 0.9647, green: 0.9765, blue: 0.9882, opacity: 1.0000)
    /// Stripe Fog 1 — Subtle dividers and elevated-surface tints.
    public static let stripeFog1 = Color(.sRGB, red: 0.8980, green: 0.9294, blue: 0.9608, opacity: 1.0000)
    /// Stripe Fog 2 — Border / hairline.
    public static let stripeFog2 = Color(.sRGB, red: 0.8118, green: 0.8431, blue: 0.8745, opacity: 1.0000)
    /// Stripe Green — Success / confirmation green.
    public static let stripeGreen = Color(.sRGB, red: 0.1725, green: 0.6353, blue: 0.3686, opacity: 1.0000)
    /// Stripe Orange — Warm accent used in gradient surfaces.
    public static let stripeOrange = Color(.sRGB, red: 0.8824, green: 0.4784, blue: 0.2196, opacity: 1.0000)
    /// Stripe Magenta — Hot accent — appears in Stripe's brand gradients.
    public static let stripeMagenta = Color(.sRGB, red: 0.9569, green: 0.2941, blue: 0.8000, opacity: 1.0000)
    /// Stripe Pink — Light pink accent used in illustration.
    public static let stripePink = Color(.sRGB, red: 1.0000, green: 0.3490, blue: 0.5882, opacity: 1.0000)
    /// Stripe Red — Error / destructive action.
    public static let stripeRed = Color(.sRGB, red: 0.9176, green: 0.1333, blue: 0.3804, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.stripeFog0
    public static let surface = BrandSwatch.stripeWhite
    public static let surfaceElevated = BrandSwatch.stripeWhite
    public static let textPrimary = BrandSwatch.stripeSlate90
    public static let textSecondary = BrandSwatch.stripeSlate50
    public static let textTertiary = BrandSwatch.stripeSlate30
    public static let primary = BrandSwatch.stripePurple
    public static let primaryHover = BrandSwatch.stripePurplePressed
    public static let accent = BrandSwatch.stripePurple
    public static let accentHover = BrandSwatch.stripePurplePressed
    public static let warning = BrandSwatch.stripeOrange
    public static let warningHover = BrandSwatch.stripeOrange
    public static let error = BrandSwatch.stripeRed
    public static let success = BrandSwatch.stripeGreen
    public static let border = BrandSwatch.stripeFog2
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.stripeSlate100
    public static let surface = BrandSwatch.stripeSlate90
    public static let surfaceElevated = BrandSwatch.stripeSlate70
    public static let textPrimary = BrandSwatch.stripeWhite
    public static let textSecondary = BrandSwatch.stripeFog1
    public static let textTertiary = BrandSwatch.stripeSlate30
    public static let primary = BrandSwatch.stripePurple
    public static let primaryHover = BrandSwatch.stripePurpleSoft
    public static let accent = BrandSwatch.stripePurple
    public static let accentHover = BrandSwatch.stripePurpleSoft
    public static let warning = BrandSwatch.stripeOrange
    public static let warningHover = BrandSwatch.stripeOrange
    public static let error = BrandSwatch.stripePink
    public static let success = BrandSwatch.stripeGreen
    public static let border = BrandSwatch.stripeSlate70
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let primary = BrandSwatch.stripePurple
    public static let primaryHover = BrandSwatch.stripePurplePressed
    public static let accent = BrandSwatch.stripePurple
    public static let accentHover = BrandSwatch.stripePurplePressed
    public static let success = BrandSwatch.stripeGreen
    public static let warning = BrandSwatch.stripeOrange
    public static let error = BrandSwatch.stripeRed
    public static let textPrimaryLight = BrandSwatch.stripeSlate90
    public static let textPrimaryDark = BrandSwatch.stripeWhite
    public static let backgroundLight = BrandSwatch.stripeFog0
    public static let backgroundDark = BrandSwatch.stripeSlate100
    public static let surfaceLight = BrandSwatch.stripeWhite
    public static let surfaceDark = BrandSwatch.stripeSlate90
}

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