//
// HashiCorp (hashicorp@1.0.0)
// Palette: hashicorp@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 {
    /// HashiCorp Yellow — The HashiCorp corporate accent — the yellow of the parent wordmark and the principal CTA color across hashicorp.com.

    public static let hashicorpYellow = Color(.sRGB, red: 1.0000, green: 0.8039, blue: 0.0000, opacity: 1.0000)
    /// HashiCorp Yellow Dark — Pressed/active state for the corporate yellow CTA.
    public static let hashicorpYellowDark = Color(.sRGB, red: 0.8510, green: 0.6824, blue: 0.0000, opacity: 1.0000)
    /// HashiCorp Black — Pure black — corporate wordmark fill on light surfaces.
    public static let hashicorpBlack = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// HashiCorp Canvas — Near-black canvas used on hashicorp.com hero sections and the HCP console dark chrome.

    public static let hashicorpCanvas = Color(.sRGB, red: 0.0549, green: 0.0549, blue: 0.0627, opacity: 1.0000)
    /// HashiCorp Canvas Deep — Darkest canvas used as the page-level dark background.
    public static let hashicorpCanvasDeep = Color(.sRGB, red: 0.0196, green: 0.0196, blue: 0.0275, opacity: 1.0000)
    /// Terraform Purple — Terraform product accent — used on terraform.io and the Terraform Registry chrome.

    public static let terraformPurple = Color(.sRGB, red: 0.4824, green: 0.2588, blue: 0.7373, opacity: 1.0000)
    /// Vault Yellow — Vault product accent — the brighter yellow used on vaultproject.io, distinct from the corporate yellow.

    public static let vaultYellow = Color(.sRGB, red: 1.0000, green: 0.9255, blue: 0.4314, opacity: 1.0000)
    /// Consul Magenta — Consul product accent — magenta used on consul.io and service-mesh diagrams.

    public static let consulMagenta = Color(.sRGB, red: 0.8784, green: 0.2196, blue: 0.4588, opacity: 1.0000)
    /// Nomad Green — Nomad product accent — used on nomadproject.io.
    public static let nomadGreen = Color(.sRGB, red: 0.0000, green: 0.7922, blue: 0.5569, opacity: 1.0000)
    /// Boundary Pink — Boundary product accent — coral-pink used on boundaryproject.io.
    public static let boundaryPink = Color(.sRGB, red: 0.9490, green: 0.2980, blue: 0.3255, opacity: 1.0000)
    /// Packer Blue — Packer product accent — sky-blue used on packer.io.
    public static let packerBlue = Color(.sRGB, red: 0.1137, green: 0.6824, blue: 1.0000, opacity: 1.0000)
    /// Waypoint Sky — Waypoint product accent — teal used on waypointproject.io.
    public static let waypointSky = Color(.sRGB, red: 0.0784, green: 0.7765, blue: 0.7961, opacity: 1.0000)
    /// HashiCorp Ink — Primary text on light surfaces.
    public static let hashicorpInk = Color(.sRGB, red: 0.1059, green: 0.1059, blue: 0.1216, opacity: 1.0000)
    /// HashiCorp Gray — Secondary text and metadata.
    public static let hashicorpGray = Color(.sRGB, red: 0.4353, green: 0.4627, blue: 0.5098, opacity: 1.0000)
    /// HashiCorp Gray Light — Tertiary text and disabled UI.
    public static let hashicorpGrayLight = Color(.sRGB, red: 0.6118, green: 0.6275, blue: 0.6588, opacity: 1.0000)
    /// HashiCorp Surface — Quiet surface — card backgrounds on the marketing site.
    public static let hashicorpSurface = Color(.sRGB, red: 0.9569, green: 0.9569, blue: 0.9686, opacity: 1.0000)
    /// HashiCorp Border — Hairline borders and dividers.
    public static let hashicorpBorder = Color(.sRGB, red: 0.8667, green: 0.8745, blue: 0.8941, opacity: 1.0000)
    /// HashiCorp White — Primary canvas on light surfaces.
    public static let hashicorpWhite = 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.hashicorpWhite
    public static let surface = BrandSwatch.hashicorpSurface
    public static let surfaceElevated = BrandSwatch.hashicorpWhite
    public static let textPrimary = BrandSwatch.hashicorpInk
    public static let textSecondary = BrandSwatch.hashicorpGray
    public static let textTertiary = BrandSwatch.hashicorpGrayLight
    public static let primary = BrandSwatch.hashicorpYellow
    public static let primaryHover = BrandSwatch.hashicorpYellowDark
    public static let accent = BrandSwatch.terraformPurple
    public static let accentHover = BrandSwatch.consulMagenta
    public static let warning = BrandSwatch.vaultYellow
    public static let warningHover = BrandSwatch.hashicorpYellowDark
    public static let error = BrandSwatch.boundaryPink
    public static let success = BrandSwatch.nomadGreen
    public static let border = BrandSwatch.hashicorpBorder
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.hashicorpCanvasDeep
    public static let surface = BrandSwatch.hashicorpCanvas
    public static let surfaceElevated = BrandSwatch.hashicorpBlack
    public static let textPrimary = BrandSwatch.hashicorpWhite
    public static let textSecondary = BrandSwatch.hashicorpSurface
    public static let textTertiary = BrandSwatch.hashicorpGrayLight
    public static let primary = BrandSwatch.hashicorpYellow
    public static let primaryHover = BrandSwatch.hashicorpYellowDark
    public static let accent = BrandSwatch.terraformPurple
    public static let accentHover = BrandSwatch.consulMagenta
    public static let warning = BrandSwatch.vaultYellow
    public static let warningHover = BrandSwatch.hashicorpYellowDark
    public static let error = BrandSwatch.boundaryPink
    public static let success = BrandSwatch.nomadGreen
    public static let border = BrandSwatch.hashicorpCanvas
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.hashicorpCanvas
    public static let onIdentity = BrandSwatch.hashicorpYellow
    public static let primary = BrandSwatch.hashicorpYellow
    public static let primaryHover = BrandSwatch.hashicorpYellowDark
    public static let accent = BrandSwatch.terraformPurple
    public static let accentHover = BrandSwatch.consulMagenta
    public static let background = BrandSwatch.hashicorpWhite
    public static let surface = BrandSwatch.hashicorpSurface
    public static let surfaceElevated = BrandSwatch.hashicorpWhite
    public static let textPrimary = BrandSwatch.hashicorpInk
    public static let textSecondary = BrandSwatch.hashicorpGray
    public static let textTertiary = BrandSwatch.hashicorpGrayLight
    public static let chrome = BrandSwatch.hashicorpCanvas
    public static let chromeDeep = BrandSwatch.hashicorpCanvasDeep
    public static let productTerraform = BrandSwatch.terraformPurple
    public static let productVault = BrandSwatch.vaultYellow
    public static let productConsul = BrandSwatch.consulMagenta
    public static let productNomad = BrandSwatch.nomadGreen
    public static let productBoundary = BrandSwatch.boundaryPink
    public static let productPacker = BrandSwatch.packerBlue
    public static let productWaypoint = BrandSwatch.waypointSky
    public static let mark = BrandSwatch.hashicorpYellow
}

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