//
// Microsoft (microsoft@1.0.0)
// Palette: microsoft@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 {
    /// Microsoft Red — Top-left quadrant of the Microsoft four-square logo. Used for Office, PowerPoint, and the warm corner of the corporate mark.

    public static let microsoftRed = Color(.sRGB, red: 0.9490, green: 0.3137, blue: 0.1333, opacity: 1.0000)
    /// Microsoft Green — Top-right quadrant. Associated with Excel and the productivity side of the brand. (Sometimes also documented as #7CBB00.)

    public static let microsoftGreen = Color(.sRGB, red: 0.4980, green: 0.7294, blue: 0.0000, opacity: 1.0000)
    /// Microsoft Blue (Logo) — Bottom-left quadrant of the logo — Windows blue, lighter than the Communications primary.

    public static let microsoftBlue = Color(.sRGB, red: 0.0000, green: 0.6431, blue: 0.9373, opacity: 1.0000)
    /// Microsoft Yellow — Bottom-right quadrant. Often associated with Microsoft Build / developer surfaces.

    public static let microsoftYellow = Color(.sRGB, red: 1.0000, green: 0.7255, blue: 0.0000, opacity: 1.0000)
    /// Communications Blue — Microsoft's primary communications blue — the Fluent system primary used across Microsoft 365, the corporate site, and product UI chrome.

    public static let communicationsBlue = Color(.sRGB, red: 0.0000, green: 0.4706, blue: 0.8314, opacity: 1.0000)
    /// Microsoft Black — Wordmark fill and primary text on light backgrounds.
    public static let microsoftBlack = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Microsoft Near-Black — Softer near-black for body text and dark surfaces.
    public static let microsoftNearBlack = Color(.sRGB, red: 0.1216, green: 0.1216, blue: 0.1216, opacity: 1.0000)
    /// Microsoft Gray 160 — Secondary text and inactive UI (Fluent Neutral Foreground 2).
    public static let microsoftGray160 = Color(.sRGB, red: 0.3765, green: 0.3686, blue: 0.3608, opacity: 1.0000)
    /// Microsoft Gray 130 — Tertiary text and dividers (Fluent Neutral Foreground 3).
    public static let microsoftGray130 = Color(.sRGB, red: 0.5412, green: 0.5333, blue: 0.5255, opacity: 1.0000)
    /// Microsoft Gray 30 — Subtle surface tint (Fluent Neutral Background 3).
    public static let microsoftGray30 = Color(.sRGB, red: 0.9294, green: 0.9216, blue: 0.9137, opacity: 1.0000)
    /// Microsoft Gray 20 — Page-level background (Fluent Neutral Background 2).
    public static let microsoftGray20 = Color(.sRGB, red: 0.9529, green: 0.9490, blue: 0.9451, opacity: 1.0000)
    /// Microsoft White — Base background and reversed text on chromatic surfaces.
    public static let microsoftWhite = 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.microsoftWhite
    public static let surface = BrandSwatch.microsoftGray20
    public static let surfaceElevated = BrandSwatch.microsoftWhite
    public static let textPrimary = BrandSwatch.microsoftNearBlack
    public static let textSecondary = BrandSwatch.microsoftGray160
    public static let textTertiary = BrandSwatch.microsoftGray130
    public static let primary = BrandSwatch.communicationsBlue
    public static let primaryHover = BrandSwatch.microsoftBlue
    public static let accent = BrandSwatch.microsoftBlue
    public static let accentHover = BrandSwatch.communicationsBlue
    public static let warning = BrandSwatch.microsoftYellow
    public static let warningHover = BrandSwatch.microsoftRed
    public static let error = BrandSwatch.microsoftRed
    public static let success = BrandSwatch.microsoftGreen
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.microsoftNearBlack
    public static let surface = BrandSwatch.microsoftBlack
    public static let surfaceElevated = BrandSwatch.microsoftGray160
    public static let textPrimary = BrandSwatch.microsoftWhite
    public static let textSecondary = BrandSwatch.microsoftGray30
    public static let textTertiary = BrandSwatch.microsoftGray130
    public static let primary = BrandSwatch.microsoftBlue
    public static let primaryHover = BrandSwatch.communicationsBlue
    public static let accent = BrandSwatch.communicationsBlue
    public static let accentHover = BrandSwatch.microsoftBlue
    public static let warning = BrandSwatch.microsoftYellow
    public static let warningHover = BrandSwatch.microsoftRed
    public static let error = BrandSwatch.microsoftRed
    public static let success = BrandSwatch.microsoftGreen
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.communicationsBlue
    public static let onIdentity = BrandSwatch.microsoftWhite
    public static let primary = BrandSwatch.communicationsBlue
    public static let primaryHover = BrandSwatch.microsoftBlue
    public static let accent = BrandSwatch.microsoftBlue
    public static let background = BrandSwatch.microsoftWhite
    public static let surface = BrandSwatch.microsoftGray20
    public static let textPrimary = BrandSwatch.microsoftNearBlack
    public static let textSecondary = BrandSwatch.microsoftGray160
    public static let logoQuadrantRed = BrandSwatch.microsoftRed
    public static let logoQuadrantGreen = BrandSwatch.microsoftGreen
    public static let logoQuadrantBlue = BrandSwatch.microsoftBlue
    public static let logoQuadrantYellow = BrandSwatch.microsoftYellow
}

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