//
// Vercel (vercel@1.0.0)
// Palette: vercel@1.0.0
// Fonts:   heading=geist@1.0.0, body=geist@1.0.0, mono=geist-mono@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 {
    /// Vercel Black — Pure black — the canvas of the marketing site.
    public static let vercelBlack = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Vercel White — Pure white — the foreground of the marketing site.
    public static let vercelWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Dark Background 100 — ds-background-100 (hsl 0,0%,4%) — page canvas in dark mode.
    public static let darkBg100 = Color(.sRGB, red: 0.0392, green: 0.0392, blue: 0.0392, opacity: 1.0000)
    /// Dark Background 200 — ds-background-200 — deeper canvas / under-page.
    public static let darkBg200 = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Dark Gray 100 — ds-gray-100 — subtle surface tint.
    public static let darkGray100 = Color(.sRGB, red: 0.1020, green: 0.1020, blue: 0.1020, opacity: 1.0000)
    /// Dark Gray 200 — ds-gray-200.
    public static let darkGray200 = Color(.sRGB, red: 0.1216, green: 0.1216, blue: 0.1216, opacity: 1.0000)
    /// Dark Gray 300 — ds-gray-300.
    public static let darkGray300 = Color(.sRGB, red: 0.1608, green: 0.1608, blue: 0.1608, opacity: 1.0000)
    /// Dark Gray 400 — ds-gray-400.
    public static let darkGray400 = Color(.sRGB, red: 0.1804, green: 0.1804, blue: 0.1804, opacity: 1.0000)
    /// Dark Gray 500 — ds-gray-500 — borders.
    public static let darkGray500 = Color(.sRGB, red: 0.2706, green: 0.2706, blue: 0.2706, opacity: 1.0000)
    /// Dark Gray 600 — ds-gray-600.
    public static let darkGray600 = Color(.sRGB, red: 0.5294, green: 0.5294, blue: 0.5294, opacity: 1.0000)
    /// Dark Gray 700 — ds-gray-700.
    public static let darkGray700 = Color(.sRGB, red: 0.5608, green: 0.5608, blue: 0.5608, opacity: 1.0000)
    /// Dark Gray 800 — ds-gray-800.
    public static let darkGray800 = Color(.sRGB, red: 0.4902, green: 0.4902, blue: 0.4902, opacity: 1.0000)
    /// Dark Gray 900 — ds-gray-900 — muted text.
    public static let darkGray900 = Color(.sRGB, red: 0.6314, green: 0.6314, blue: 0.6314, opacity: 1.0000)
    /// Dark Gray 1000 — ds-gray-1000 — primary text in dark mode.
    public static let darkGray1000 = Color(.sRGB, red: 0.9294, green: 0.9294, blue: 0.9294, opacity: 1.0000)
    /// Light Background 100 — Page canvas in light mode.
    public static let lightBg100 = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Light Background 200 — Subtle layered surface.
    public static let lightBg200 = Color(.sRGB, red: 0.9804, green: 0.9804, blue: 0.9804, opacity: 1.0000)
    /// Light Gray 200 — Hairline border.
    public static let lightGray200 = Color(.sRGB, red: 0.9176, green: 0.9176, blue: 0.9176, opacity: 1.0000)
    /// Light Gray 600 — Secondary text.
    public static let lightGray600 = Color(.sRGB, red: 0.4000, green: 0.4000, blue: 0.4000, opacity: 1.0000)
    /// Light Gray 1000 — Primary text in light mode (rgb 23,23,23 — body color on vercel.com).
    public static let lightGray1000 = Color(.sRGB, red: 0.0902, green: 0.0902, blue: 0.0902, opacity: 1.0000)
    /// Vercel Blue — ds-blue-600 — the classic Vercel link / accent blue.
    public static let vercelBlue = Color(.sRGB, red: 0.0000, green: 0.4392, blue: 0.9529, opacity: 1.0000)
    /// Vercel Blue Bright — ds-blue-900 — bright link blue used on dark surfaces.
    public static let vercelBlueBright = Color(.sRGB, red: 0.3216, green: 0.6588, blue: 1.0000, opacity: 1.0000)
    /// Vercel Red — ds-red-900 — error / destructive.
    public static let vercelRed = Color(.sRGB, red: 1.0000, green: 0.3804, blue: 0.4000, opacity: 1.0000)
    /// Vercel Amber — ds-amber-900 — warning.
    public static let vercelAmber = Color(.sRGB, red: 0.9490, green: 0.6510, blue: 0.0510, opacity: 1.0000)
    /// Vercel Green — ds-green-900 — success.
    public static let vercelGreen = Color(.sRGB, red: 0.3843, green: 0.7529, blue: 0.4510, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.lightBg200
    public static let surface = BrandSwatch.lightBg100
    public static let surfaceElevated = BrandSwatch.lightBg100
    public static let textPrimary = BrandSwatch.lightGray1000
    public static let textSecondary = BrandSwatch.lightGray600
    public static let textTertiary = BrandSwatch.darkGray600
    public static let primary = BrandSwatch.vercelBlack
    public static let primaryHover = BrandSwatch.lightGray1000
    public static let accent = BrandSwatch.vercelBlue
    public static let accentHover = BrandSwatch.vercelBlueBright
    public static let warning = BrandSwatch.vercelAmber
    public static let warningHover = BrandSwatch.vercelAmber
    public static let error = BrandSwatch.vercelRed
    public static let success = BrandSwatch.vercelGreen
    public static let border = BrandSwatch.lightGray200
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.darkBg100
    public static let surface = BrandSwatch.darkGray100
    public static let surfaceElevated = BrandSwatch.darkGray200
    public static let textPrimary = BrandSwatch.darkGray1000
    public static let textSecondary = BrandSwatch.darkGray900
    public static let textTertiary = BrandSwatch.darkGray700
    public static let primary = BrandSwatch.vercelWhite
    public static let primaryHover = BrandSwatch.darkGray1000
    public static let accent = BrandSwatch.vercelBlueBright
    public static let accentHover = BrandSwatch.vercelBlue
    public static let warning = BrandSwatch.vercelAmber
    public static let warningHover = BrandSwatch.vercelAmber
    public static let error = BrandSwatch.vercelRed
    public static let success = BrandSwatch.vercelGreen
    public static let border = BrandSwatch.darkGray500
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.vercelBlack
    public static let onIdentity = BrandSwatch.vercelWhite
    public static let primary = BrandSwatch.vercelBlack
    public static let primaryHover = BrandSwatch.darkGray1000
    public static let accent = BrandSwatch.vercelBlue
    public static let accentHover = BrandSwatch.vercelBlueBright
    public static let success = BrandSwatch.vercelGreen
    public static let warning = BrandSwatch.vercelAmber
    public static let error = BrandSwatch.vercelRed
    public static let textPrimaryLight = BrandSwatch.lightGray1000
    public static let textPrimaryDark = BrandSwatch.darkGray1000
    public static let backgroundLight = BrandSwatch.lightBg200
    public static let backgroundDark = BrandSwatch.darkBg100
    public static let surfaceLight = BrandSwatch.lightBg100
    public static let surfaceDark = BrandSwatch.darkGray100
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Geist Sans (geist@1.0.0)
    public static let heading = "Geist"
    /// Geist Sans (geist@1.0.0)
    public static let body = "Geist"
    /// Geist Mono (geist-mono@1.0.0)
    public static let mono = "Geist Mono"
}
