//
// Go (golang@1.0.0)
// Palette: golang@1.0.0
// Fonts:   heading=work-sans@1.0.0, body=roboto@1.0.0, mono=source-code-pro@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 {
    /// Gopher Blue — Primary brand color — the signature cyan that anchors the Go gopher, the wordmark, and primary calls-to-action. PANTONE 638C.

    public static let gopherBlue = Color(.sRGB, red: 0.0000, green: 0.6784, blue: 0.8471, opacity: 1.0000)
    /// Light Blue — Supporting tint used in gradients and secondary surfaces. PANTONE 310U.

    public static let lightBlue = Color(.sRGB, red: 0.3647, green: 0.7882, blue: 0.8863, opacity: 1.0000)
    /// Fuchsia — Secondary brand color — accent for callouts, highlights, and "what NOT to do" markers in the Brand Book. PANTONE 7635C.

    public static let fuchsia = Color(.sRGB, red: 0.8078, green: 0.1961, blue: 0.3843, opacity: 1.0000)
    /// Aqua — Secondary brand color — teal accent used in the Go gradient and supporting illustrations. PANTONE 3265C.

    public static let aqua = Color(.sRGB, red: 0.0000, green: 0.6353, blue: 0.6118, opacity: 1.0000)
    /// Black — High-contrast foundation — used as a canvas under the white gopher mark and for primary text on light surfaces. PANTONE Black C.

    public static let goBlack = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Yellow — Tertiary accent used sparingly for spotlight callouts. PANTONE Yellow C.

    public static let goYellow = Color(.sRGB, red: 0.9922, green: 0.8667, blue: 0.0000, opacity: 1.0000)
    /// Dark Cyan — PANTONE 3145C — deeper cyan for hover states and shadows.
    public static let darkCyan = Color(.sRGB, red: 0.0000, green: 0.4588, blue: 0.5529, opacity: 1.0000)
    /// Cool Gray — PANTONE 425C — neutral text and dividers.
    public static let coolGray = Color(.sRGB, red: 0.3333, green: 0.3412, blue: 0.3490, opacity: 1.0000)
    /// Plum — PANTONE 669C — deep accent for tertiary surfaces.
    public static let plum = Color(.sRGB, red: 0.2510, green: 0.1686, blue: 0.3373, opacity: 1.0000)
    /// Light Gray — PANTONE Cool Gray 1C — light hairline surfaces.
    public static let lightGray = Color(.sRGB, red: 0.8588, green: 0.8510, blue: 0.8392, opacity: 1.0000)
    /// White — Page canvas in light mode; reversed mark color on Black.
    public static let goWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.goWhite
    public static let surface = BrandSwatch.lightGray
    public static let surfaceElevated = BrandSwatch.goWhite
    public static let textPrimary = BrandSwatch.goBlack
    public static let textSecondary = BrandSwatch.coolGray
    public static let textTertiary = BrandSwatch.darkCyan
    public static let primary = BrandSwatch.gopherBlue
    public static let primaryHover = BrandSwatch.darkCyan
    public static let accent = BrandSwatch.fuchsia
    public static let accentHover = BrandSwatch.plum
    public static let warning = BrandSwatch.goYellow
    public static let warningHover = BrandSwatch.fuchsia
    public static let error = BrandSwatch.fuchsia
    public static let success = BrandSwatch.aqua
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.goBlack
    public static let surface = BrandSwatch.plum
    public static let surfaceElevated = BrandSwatch.coolGray
    public static let textPrimary = BrandSwatch.goWhite
    public static let textSecondary = BrandSwatch.lightGray
    public static let textTertiary = BrandSwatch.lightBlue
    public static let primary = BrandSwatch.gopherBlue
    public static let primaryHover = BrandSwatch.lightBlue
    public static let accent = BrandSwatch.fuchsia
    public static let accentHover = BrandSwatch.lightBlue
    public static let warning = BrandSwatch.goYellow
    public static let warningHover = BrandSwatch.fuchsia
    public static let error = BrandSwatch.fuchsia
    public static let success = BrandSwatch.aqua
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.gopherBlue
    public static let onIdentity = BrandSwatch.goWhite
    public static let primary = BrandSwatch.gopherBlue
    public static let primaryHover = BrandSwatch.darkCyan
    public static let accent = BrandSwatch.fuchsia
    public static let accentHover = BrandSwatch.plum
    public static let background = BrandSwatch.goWhite
    public static let surface = BrandSwatch.lightGray
    public static let textPrimary = BrandSwatch.goBlack
    public static let textSecondary = BrandSwatch.coolGray
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Work Sans (work-sans@1.0.0)
    public static let heading = "Work Sans"
    /// Roboto (roboto@1.0.0)
    public static let body = "Roboto"
    /// Source Code Pro (source-code-pro@1.0.0)
    public static let mono = "Source Code Pro"
}
