//
// Uber (uber@1.0.0)
// Palette: uber@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 {
    /// Uber Black — Uber's primary brand color — the wordmark, mark, and dominant chrome on Uber surfaces.
    public static let uberBlack = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Uber White — Primary canvas — the rider and marketing surfaces default to white space against Uber Black chrome.
    public static let uberWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Uber Gray 50 — Subtle elevated surface on white — hover states and quiet panels.
    public static let uberGray50 = Color(.sRGB, red: 0.9647, green: 0.9647, blue: 0.9647, opacity: 1.0000)
    /// Uber Gray 100 — Card and divider surface on white canvas.
    public static let uberGray100 = Color(.sRGB, red: 0.9333, green: 0.9333, blue: 0.9333, opacity: 1.0000)
    /// Uber Gray 200 — Border on white surfaces.
    public static let uberGray200 = Color(.sRGB, red: 0.8863, green: 0.8863, blue: 0.8863, opacity: 1.0000)
    /// Uber Gray 300 — Disabled foreground; quiet stroke.
    public static let uberGray300 = Color(.sRGB, red: 0.7961, green: 0.7961, blue: 0.7961, opacity: 1.0000)
    /// Uber Gray 500 — Tertiary text and icon color.
    public static let uberGray500 = Color(.sRGB, red: 0.4588, green: 0.4588, blue: 0.4588, opacity: 1.0000)
    /// Uber Gray 700 — Secondary text on white; elevated surface in dark mode.
    public static let uberGray700 = Color(.sRGB, red: 0.2471, green: 0.2471, blue: 0.2471, opacity: 1.0000)
    /// Uber Gray 900 — Surface in dark mode — sits just above Uber Black.
    public static let uberGray900 = Color(.sRGB, red: 0.1216, green: 0.1216, blue: 0.1216, opacity: 1.0000)
    /// Uber Green — Functional success — confirmation states on product surfaces.
    public static let uberGreen = Color(.sRGB, red: 0.0549, green: 0.5137, blue: 0.2706, opacity: 1.0000)
    /// Uber Red — Functional error / destructive — never used as a brand accent.
    public static let uberRed = Color(.sRGB, red: 0.8824, green: 0.0980, blue: 0.0000, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.uberWhite
    public static let surface = BrandSwatch.uberGray50
    public static let surfaceElevated = BrandSwatch.uberWhite
    public static let textPrimary = BrandSwatch.uberBlack
    public static let textSecondary = BrandSwatch.uberGray700
    public static let textTertiary = BrandSwatch.uberGray500
    public static let primary = BrandSwatch.uberBlack
    public static let primaryHover = BrandSwatch.uberGray900
    public static let accent = BrandSwatch.uberBlack
    public static let accentHover = BrandSwatch.uberGray900
    public static let success = BrandSwatch.uberGreen
    public static let warning = BrandSwatch.uberRed
    public static let error = BrandSwatch.uberRed
    public static let border = BrandSwatch.uberGray200
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.uberBlack
    public static let surface = BrandSwatch.uberGray900
    public static let surfaceElevated = BrandSwatch.uberGray700
    public static let textPrimary = BrandSwatch.uberWhite
    public static let textSecondary = BrandSwatch.uberGray200
    public static let textTertiary = BrandSwatch.uberGray300
    public static let primary = BrandSwatch.uberWhite
    public static let primaryHover = BrandSwatch.uberGray50
    public static let accent = BrandSwatch.uberWhite
    public static let accentHover = BrandSwatch.uberGray50
    public static let success = BrandSwatch.uberGreen
    public static let warning = BrandSwatch.uberRed
    public static let error = BrandSwatch.uberRed
    public static let border = BrandSwatch.uberGray700
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.uberBlack
    public static let onIdentity = BrandSwatch.uberWhite
    public static let primary = BrandSwatch.uberBlack
    public static let primaryHover = BrandSwatch.uberGray900
    public static let accent = BrandSwatch.uberBlack
    public static let accentHover = BrandSwatch.uberGray900
    public static let mark = BrandSwatch.uberBlack
    public static let success = BrandSwatch.uberGreen
    public static let warning = BrandSwatch.uberRed
    public static let error = BrandSwatch.uberRed
    public static let backgroundLight = BrandSwatch.uberWhite
    public static let backgroundDark = BrandSwatch.uberBlack
    public static let surfaceLight = BrandSwatch.uberGray50
    public static let surfaceDark = BrandSwatch.uberGray900
    public static let textPrimaryLight = BrandSwatch.uberBlack
    public static let textPrimaryDark = BrandSwatch.uberWhite
    public static let textSecondaryLight = BrandSwatch.uberGray700
    public static let textTertiaryLight = BrandSwatch.uberGray500
    public static let borderLight = BrandSwatch.uberGray200
}

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