//
// Sony (sony@1.0.0)
// Palette: sony@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 {
    /// Black — The Sony wordmark color. The brand has no chromatic primary — the identity is pure black on white.

    public static let black = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// White — Default page canvas; reverse wordmark fill on dark.
    public static let white = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Gray 50 — Light page surface tint.
    public static let gray50 = Color(.sRGB, red: 0.9373, green: 0.9373, blue: 0.9373, opacity: 1.0000)
    /// Gray 100 — Quiet rule / border on the white canvas.
    public static let gray100 = Color(.sRGB, red: 0.8549, green: 0.8549, blue: 0.8549, opacity: 1.0000)
    /// Gray 200 — Mid-light gray; disabled borders.
    public static let gray200 = Color(.sRGB, red: 0.7490, green: 0.7490, blue: 0.7490, opacity: 1.0000)
    /// Gray 400 — Mid-gray for inactive controls.
    public static let gray400 = Color(.sRGB, red: 0.5373, green: 0.5373, blue: 0.5686, opacity: 1.0000)
    /// Gray 500 — Tertiary text on the white canvas.
    public static let gray500 = Color(.sRGB, red: 0.4627, green: 0.4627, blue: 0.4627, opacity: 1.0000)
    /// Gray 600 — Secondary body text.
    public static let gray600 = Color(.sRGB, red: 0.3961, green: 0.3961, blue: 0.3961, opacity: 1.0000)
    /// Gray 700 — Elevated dark surface.
    public static let gray700 = Color(.sRGB, red: 0.2118, green: 0.2118, blue: 0.2118, opacity: 1.0000)
    /// Gray 800 — Dark surface; primary text on white.
    public static let gray800 = Color(.sRGB, red: 0.1490, green: 0.1490, blue: 0.1490, opacity: 1.0000)
    /// Gray 900 — Near-black canvas in dark-mode surfaces.
    public static let gray900 = Color(.sRGB, red: 0.1216, green: 0.1255, blue: 0.1412, opacity: 1.0000)
    /// Action Blue — Primary link / action blue on the corporate template. Used inside paragraph text on the 2021 top template.

    public static let actionBlue = Color(.sRGB, red: 0.0941, green: 0.4353, blue: 0.6431, opacity: 1.0000)
    /// Link Blue — Inline link variant on the navigation chrome.
    public static let linkBlue = Color(.sRGB, red: 0.1765, green: 0.3804, blue: 0.7490, opacity: 1.0000)
    /// Focus Blue — Focus-ring / hover-affordance blue.
    public static let focusBlue = Color(.sRGB, red: 0.3686, green: 0.6157, blue: 0.9569, opacity: 1.0000)
    /// Accent Teal — Desaturated teal — category accent on dark surfaces.
    public static let accentTeal = Color(.sRGB, red: 0.0000, green: 0.4471, blue: 0.3882, opacity: 1.0000)
    /// Accent Purple — Desaturated purple — category accent.
    public static let accentPurple = Color(.sRGB, red: 0.3569, green: 0.1725, blue: 0.4314, opacity: 1.0000)
    /// Accent Magenta — Desaturated magenta — category accent.
    public static let accentMagenta = Color(.sRGB, red: 0.7137, green: 0.1765, blue: 0.4627, opacity: 1.0000)
    /// Accent Orange — Burnt orange — category accent.
    public static let accentOrange = Color(.sRGB, red: 0.7373, green: 0.3569, blue: 0.0000, opacity: 1.0000)
    /// Accent Olive — Desaturated olive — category accent.
    public static let accentOlive = Color(.sRGB, red: 0.3412, green: 0.4588, blue: 0.0824, opacity: 1.0000)
    /// Accent Rust — Desaturated rust red — category accent.
    public static let accentRust = Color(.sRGB, red: 0.7216, green: 0.2157, blue: 0.2667, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.white
    public static let surface = BrandSwatch.gray50
    public static let surfaceElevated = BrandSwatch.white
    public static let textPrimary = BrandSwatch.gray800
    public static let textSecondary = BrandSwatch.gray600
    public static let textTertiary = BrandSwatch.gray500
    public static let primary = BrandSwatch.black
    public static let primaryHover = BrandSwatch.gray800
    public static let accent = BrandSwatch.actionBlue
    public static let accentHover = BrandSwatch.linkBlue
    public static let border = BrandSwatch.gray100
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.gray900
    public static let surface = BrandSwatch.gray700
    public static let surfaceElevated = BrandSwatch.gray800
    public static let textPrimary = BrandSwatch.white
    public static let textSecondary = BrandSwatch.gray200
    public static let textTertiary = BrandSwatch.gray400
    public static let primary = BrandSwatch.white
    public static let primaryHover = BrandSwatch.gray50
    public static let accent = BrandSwatch.focusBlue
    public static let accentHover = BrandSwatch.actionBlue
    public static let border = BrandSwatch.gray700
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.white
    public static let onIdentity = BrandSwatch.black
    public static let primary = BrandSwatch.black
    public static let primaryHover = BrandSwatch.gray800
    public static let accent = BrandSwatch.actionBlue
    public static let accentHover = BrandSwatch.linkBlue
    public static let mark = BrandSwatch.black
    public static let backgroundLight = BrandSwatch.white
    public static let backgroundDark = BrandSwatch.gray900
    public static let surfaceLight = BrandSwatch.gray50
    public static let surfaceDark = BrandSwatch.gray700
    public static let textPrimaryLight = BrandSwatch.gray800
    public static let textPrimaryDark = BrandSwatch.white
    public static let textSecondaryLight = BrandSwatch.gray600
    public static let textTertiaryLight = BrandSwatch.gray500
    public static let borderLight = BrandSwatch.gray100
}

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