//
// Coinbase (coinbase@1.0.0)
// Palette: coinbase@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 {
    /// Coinbase Blue — Primary signature blue — the Coinbase wordmark, mark, and primary CTA color.
    public static let coinbaseBlue = Color(.sRGB, red: 0.0000, green: 0.3216, blue: 1.0000, opacity: 1.0000)
    /// Coinbase Blue Hover — Darker blue for hover/pressed states on the primary action.
    public static let coinbaseBlueHover = Color(.sRGB, red: 0.0863, green: 0.3216, blue: 0.9412, opacity: 1.0000)
    /// Coinbase Blue Deep — Deep navy used for dark-mode canvas elements and emphasis text.
    public static let coinbaseBlueDeep = Color(.sRGB, red: 0.0000, green: 0.1020, blue: 0.4000, opacity: 1.0000)
    /// Coinbase Forest — Forest green — secondary brand accent used for positive-state indicators (price up, gain).
    public static let coinbaseForest = Color(.sRGB, red: 0.0000, green: 0.3882, blue: 0.2275, opacity: 1.0000)
    /// Coinbase Green — Brighter green — buy/positive-state action color in the retail product.
    public static let coinbaseGreen = Color(.sRGB, red: 0.0196, green: 0.6941, blue: 0.4118, opacity: 1.0000)
    /// Coinbase Red — Sell/negative-state action color in the retail product.
    public static let coinbaseRed = Color(.sRGB, red: 0.8118, green: 0.1255, blue: 0.1843, opacity: 1.0000)
    /// Coinbase Ink — Near-black for body text on light surfaces.
    public static let coinbaseInk = Color(.sRGB, red: 0.0392, green: 0.0431, blue: 0.0510, opacity: 1.0000)
    /// Coinbase Slate — Secondary text on light backgrounds.
    public static let coinbaseSlate = Color(.sRGB, red: 0.3569, green: 0.3804, blue: 0.4314, opacity: 1.0000)
    /// Coinbase Gray — Tertiary text and metadata.
    public static let coinbaseGray = Color(.sRGB, red: 0.4863, green: 0.5098, blue: 0.5490, opacity: 1.0000)
    /// Coinbase White — Canonical light canvas.
    public static let coinbaseWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Coinbase Fog — Authored surface tone for cards and panels on light backgrounds.
    public static let coinbaseFog = Color(.sRGB, red: 0.9608, green: 0.9725, blue: 0.9804, opacity: 1.0000)
    /// Coinbase Divider — Authored hairline divider tone.
    public static let coinbaseDivider = Color(.sRGB, red: 0.8667, green: 0.8824, blue: 0.9020, opacity: 1.0000)
    /// Coinbase Canvas Dark — Dark-mode canvas for the retail product.
    public static let coinbaseCanvasDark = Color(.sRGB, red: 0.0392, green: 0.0431, blue: 0.0510, opacity: 1.0000)
    /// Coinbase Surface Dark — Elevated surface on dark mode.
    public static let coinbaseSurfaceDark = Color(.sRGB, red: 0.1176, green: 0.1255, blue: 0.1451, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.coinbaseWhite
    public static let surface = BrandSwatch.coinbaseFog
    public static let surfaceElevated = BrandSwatch.coinbaseWhite
    public static let textPrimary = BrandSwatch.coinbaseInk
    public static let textSecondary = BrandSwatch.coinbaseSlate
    public static let textTertiary = BrandSwatch.coinbaseGray
    public static let primary = BrandSwatch.coinbaseBlue
    public static let primaryHover = BrandSwatch.coinbaseBlueHover
    public static let accent = BrandSwatch.coinbaseBlue
    public static let accentHover = BrandSwatch.coinbaseBlueHover
    public static let warning = BrandSwatch.coinbaseRed
    public static let warningHover = BrandSwatch.coinbaseRed
    public static let error = BrandSwatch.coinbaseRed
    public static let success = BrandSwatch.coinbaseGreen
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.coinbaseCanvasDark
    public static let surface = BrandSwatch.coinbaseSurfaceDark
    public static let surfaceElevated = BrandSwatch.coinbaseSurfaceDark
    public static let textPrimary = BrandSwatch.coinbaseWhite
    public static let textSecondary = BrandSwatch.coinbaseGray
    public static let textTertiary = BrandSwatch.coinbaseSlate
    public static let primary = BrandSwatch.coinbaseBlue
    public static let primaryHover = BrandSwatch.coinbaseBlueHover
    public static let accent = BrandSwatch.coinbaseBlue
    public static let accentHover = BrandSwatch.coinbaseBlueHover
    public static let warning = BrandSwatch.coinbaseRed
    public static let warningHover = BrandSwatch.coinbaseRed
    public static let error = BrandSwatch.coinbaseRed
    public static let success = BrandSwatch.coinbaseGreen
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.coinbaseBlue
    public static let onIdentity = BrandSwatch.coinbaseWhite
    public static let primary = BrandSwatch.coinbaseBlue
    public static let primaryHover = BrandSwatch.coinbaseBlueHover
    public static let accent = BrandSwatch.coinbaseBlue
    public static let accentHover = BrandSwatch.coinbaseBlueHover
    public static let mark = BrandSwatch.coinbaseBlue
    public static let success = BrandSwatch.coinbaseGreen
    public static let error = BrandSwatch.coinbaseRed
    public static let warning = BrandSwatch.coinbaseRed
    public static let textPrimaryLight = BrandSwatch.coinbaseInk
    public static let textPrimaryDark = BrandSwatch.coinbaseWhite
    public static let textSecondaryLight = BrandSwatch.coinbaseSlate
    public static let backgroundLight = BrandSwatch.coinbaseWhite
    public static let backgroundDark = BrandSwatch.coinbaseCanvasDark
    public static let surfaceLight = BrandSwatch.coinbaseFog
    public static let surfaceDark = BrandSwatch.coinbaseSurfaceDark
    public static let divider = BrandSwatch.coinbaseDivider
}

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