//
// Microsoft Azure (azure@1.0.0)
// Palette: azure@1.0.0
// Fonts:   heading=segoe-ui@1.0.0, body=segoe-ui@1.0.0, mono=cascadiacode-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 {
    /// Azure Blue — The Azure signature blue — Microsoft Fluent's Communications primary, used on the Azure Portal chrome, the azure.microsoft.com hero, and the canonical Azure-Cloud logo fill.

    public static let azureBlue = Color(.sRGB, red: 0.0000, green: 0.4706, blue: 0.8314, opacity: 1.0000)
    /// Azure Blue Dark — Pressed/active state for the Azure primary CTA; the deeper blue used on hover transitions in the Azure Portal.

    public static let azureBlueDark = Color(.sRGB, red: 0.0000, green: 0.3529, blue: 0.6196, opacity: 1.0000)
    /// Azure Blue Light — Bright cyan accent used in Azure marketing illustrations and in the Azure Cloud icon's secondary tone.

    public static let azureBlueLight = Color(.sRGB, red: 0.3137, green: 0.9020, blue: 1.0000, opacity: 1.0000)
    /// Azure Navy — Deep navy used on Azure architecture-diagram backgrounds and Azure presentation chrome. The dark-canvas brand color.

    public static let azureNavy = Color(.sRGB, red: 0.1412, green: 0.2275, blue: 0.3686, opacity: 1.0000)
    /// Azure Navy Deep — Darkest navy used in Azure marketing dark-mode hero compositions.

    public static let azureNavyDeep = Color(.sRGB, red: 0.0431, green: 0.1451, blue: 0.2706, opacity: 1.0000)
    /// Fluent Near-Black — Fluent neutral foreground — primary text on light surfaces.
    public static let fluentNearBlack = Color(.sRGB, red: 0.1216, green: 0.1216, blue: 0.1216, opacity: 1.0000)
    /// Fluent Gray 160 — Fluent neutral foreground 2 — secondary text.
    public static let fluentGray160 = Color(.sRGB, red: 0.3765, green: 0.3686, blue: 0.3608, opacity: 1.0000)
    /// Fluent Gray 130 — Fluent neutral foreground 3 — tertiary text and dividers.
    public static let fluentGray130 = Color(.sRGB, red: 0.5412, green: 0.5333, blue: 0.5255, opacity: 1.0000)
    /// Fluent Gray 30 — Fluent neutral background 3 — subtle surface tint.
    public static let fluentGray30 = Color(.sRGB, red: 0.9294, green: 0.9216, blue: 0.9137, opacity: 1.0000)
    /// Fluent Gray 20 — Fluent neutral background 2 — page-level background.
    public static let fluentGray20 = Color(.sRGB, red: 0.9529, green: 0.9490, blue: 0.9451, opacity: 1.0000)
    /// Fluent White — Base background and reversed text on chromatic surfaces.
    public static let fluentWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Azure Error — Fluent system error red — destructive / validation-failure.
    public static let azureError = Color(.sRGB, red: 0.6431, green: 0.1490, blue: 0.1725, opacity: 1.0000)
    /// Azure Success — Fluent system success green — confirmation / healthy state.
    public static let azureSuccess = Color(.sRGB, red: 0.0627, green: 0.4863, blue: 0.0627, opacity: 1.0000)
    /// Azure Warning — Fluent system warning neutral — Azure leans on amber sparingly and instead uses a muted neutral for caution states on chrome.

    public static let azureWarning = Color(.sRGB, red: 0.4745, green: 0.4627, blue: 0.4510, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.fluentWhite
    public static let surface = BrandSwatch.fluentGray20
    public static let surfaceElevated = BrandSwatch.fluentWhite
    public static let textPrimary = BrandSwatch.fluentNearBlack
    public static let textSecondary = BrandSwatch.fluentGray160
    public static let textTertiary = BrandSwatch.fluentGray130
    public static let primary = BrandSwatch.azureBlue
    public static let primaryHover = BrandSwatch.azureBlueDark
    public static let accent = BrandSwatch.azureBlueLight
    public static let accentHover = BrandSwatch.azureBlue
    public static let warning = BrandSwatch.azureWarning
    public static let warningHover = BrandSwatch.azureNavy
    public static let error = BrandSwatch.azureError
    public static let success = BrandSwatch.azureSuccess
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.azureNavyDeep
    public static let surface = BrandSwatch.azureNavy
    public static let surfaceElevated = BrandSwatch.azureBlueDark
    public static let textPrimary = BrandSwatch.fluentWhite
    public static let textSecondary = BrandSwatch.fluentGray30
    public static let textTertiary = BrandSwatch.fluentGray130
    public static let primary = BrandSwatch.azureBlue
    public static let primaryHover = BrandSwatch.azureBlueLight
    public static let accent = BrandSwatch.azureBlueLight
    public static let accentHover = BrandSwatch.azureBlue
    public static let warning = BrandSwatch.azureWarning
    public static let warningHover = BrandSwatch.azureNavy
    public static let error = BrandSwatch.azureError
    public static let success = BrandSwatch.azureSuccess
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.azureBlue
    public static let onIdentity = BrandSwatch.fluentWhite
    public static let primary = BrandSwatch.azureBlue
    public static let primaryHover = BrandSwatch.azureBlueDark
    public static let accent = BrandSwatch.azureBlueLight
    public static let accentHover = BrandSwatch.azureBlue
    public static let background = BrandSwatch.fluentWhite
    public static let surface = BrandSwatch.fluentGray20
    public static let surfaceElevated = BrandSwatch.fluentWhite
    public static let textPrimary = BrandSwatch.fluentNearBlack
    public static let textSecondary = BrandSwatch.fluentGray160
    public static let textTertiary = BrandSwatch.fluentGray130
    public static let chrome = BrandSwatch.azureNavy
    public static let chromeDeep = BrandSwatch.azureNavyDeep
    public static let mark = BrandSwatch.azureBlue
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Segoe UI (segoe-ui@1.0.0)
    public static let heading = "Segoe UI"
    /// Segoe UI (segoe-ui@1.0.0)
    public static let body = "Segoe UI"
    /// CascadiaCode Nerd Font (cascadiacode-nerdfont@1.0.0)
    public static let mono = "CaskaydiaCove Nerd Font"
}
