//
// PlayStation (playstation@1.0.0)
// Palette: playstation@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 {
    /// PlayStation Blue — Primary action blue — --color-role-backgrounds-primary- link-base-light (rgb(0 112 204)). The "Sign In / Buy / Find out more" CTA fill on the marketing site.

    public static let psBlue = Color(.sRGB, red: 0.0000, green: 0.4392, blue: 0.8000, opacity: 1.0000)
    /// PlayStation Blue Link — Inline-link blue — --color-role-text-link-base-light (rgb(0 104 189)). Body-text link color and the standard PlayStation identifier hue.

    public static let psBlueLink = Color(.sRGB, red: 0.0000, green: 0.4078, blue: 0.7412, opacity: 1.0000)
    /// PlayStation Blue Hover — Pressed / active variant — --color-role-backgrounds- primary-link-focus-light (rgb(0 100 183)).

    public static let psBlueHover = Color(.sRGB, red: 0.0000, green: 0.3922, blue: 0.7176, opacity: 1.0000)
    /// PlayStation Blue Active — Deepest pressed state — --color-role-text-link-hover-light (rgb(0 93 170)).

    public static let psBlueActive = Color(.sRGB, red: 0.0000, green: 0.3647, blue: 0.6667, opacity: 1.0000)
    /// PlayStation Blue Deep — Gradient endpoint — --color-role-section-gradients-blue- start (rgb(0 54 151)). The deep end of the documented "PlayStation Blue gradient" (#003697 → #0068BD).

    public static let psBlueDeep = Color(.sRGB, red: 0.0000, green: 0.2118, blue: 0.5922, opacity: 1.0000)
    /// PlayStation Blue Bright — Bright link variant for dark mode — --color-role-text- link-active-dark (rgb(15 146 255)) and adjacent token.

    public static let psBlueBright = Color(.sRGB, red: 0.1922, green: 0.6314, blue: 1.0000, opacity: 1.0000)
    /// PlayStation Blue Pale — Pale blue surface — --color-2-darken-10-light. Quiet branded background for secondary-link backgrounds.

    public static let psBluePale = Color(.sRGB, red: 0.8314, green: 0.8627, blue: 0.9137, opacity: 1.0000)
    /// PlayStation Blue Paler — Lightest blue surface — --color-3-light (rgb(235 238 240)). Tertiary page background.

    public static let psBluePaler = Color(.sRGB, red: 0.9216, green: 0.9333, blue: 0.9412, opacity: 1.0000)
    /// Ink — Primary dark canvas — --color-role-page-backgrounds- primary-dark (rgb(18 19 20)). Console UI / dark hero module background.

    public static let ink = Color(.sRGB, red: 0.0706, green: 0.0745, blue: 0.0784, opacity: 1.0000)
    /// Ink Deep — Deepest near-black — --color-role-page-backgrounds- secondary-dark (rgb(9 10 10)). Used for the deepest modal scrims.

    public static let inkDeep = Color(.sRGB, red: 0.0353, green: 0.0392, blue: 0.0392, opacity: 1.0000)
    /// Ink Surface — Elevated dark surface — --color-role-gradients-content- dark start (rgb(23 24 26)). Card and panel backgrounds on dark mode.

    public static let inkSurface = Color(.sRGB, red: 0.0902, green: 0.0941, blue: 0.1020, opacity: 1.0000)
    /// Ink Surface High — High-elevation dark surface — --color-7-dark (rgb(31 32 36)). Modal backgrounds and elevated card chrome.

    public static let inkSurfaceHigh = Color(.sRGB, red: 0.1216, green: 0.1255, blue: 0.1412, opacity: 1.0000)
    /// Ink Divider — Quiet divider on dark surface — --color-6-dark (rgb(44 45 51)).

    public static let inkDivider = Color(.sRGB, red: 0.1725, green: 0.1765, blue: 0.2000, opacity: 1.0000)
    /// Paper — Primary light canvas — --color-role-page-backgrounds- primary-light. Marketing-site page background.

    public static let paper = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Paper Surface — Light elevated surface — --color-role-page-backgrounds- secondary-light (rgb(245 247 250)).

    public static let paperSurface = Color(.sRGB, red: 0.9608, green: 0.9686, blue: 0.9804, opacity: 1.0000)
    /// Paper Divider — Quiet divider on light surface — --color-8-light / --color-role-borders-divider-line-base-light.

    public static let paperDivider = Color(.sRGB, red: 0.9529, green: 0.9529, blue: 0.9529, opacity: 1.0000)
    /// Ash Text — Primary body text — observed as the live body computed color (rgb(31 31 31)).

    public static let ashText = Color(.sRGB, red: 0.1216, green: 0.1216, blue: 0.1216, opacity: 1.0000)
    /// Ash Secondary — Secondary text — --color-role-text-secondary-light (rgb(107 107 107)).

    public static let ashSecondary = Color(.sRGB, red: 0.4196, green: 0.4196, blue: 0.4196, opacity: 1.0000)
    /// Ash Tertiary — Tertiary text and quiet icon fills — --color-6-light (rgb(150 151 153)).

    public static let ashTertiary = Color(.sRGB, red: 0.5882, green: 0.5922, blue: 0.6000, opacity: 1.0000)
    /// Ash Disabled — Disabled-link surface — --color-7-light (rgb(210 212 217)).

    public static let ashDisabled = Color(.sRGB, red: 0.8235, green: 0.8314, blue: 0.8510, opacity: 1.0000)
    /// Ash Secondary Dark — Secondary text on dark surface — --color-role-text- secondary-dark (rgb(178 178 178)).

    public static let ashSecondaryDark = Color(.sRGB, red: 0.6980, green: 0.6980, blue: 0.6980, opacity: 1.0000)
    /// PlayStation Orange — Commerce / "buy" orange — --color-role-backgrounds- commerce-link-base-dark (rgb(214 61 0)). Store and checkout primary action.

    public static let psOrange = Color(.sRGB, red: 0.8392, green: 0.2392, blue: 0.0000, opacity: 1.0000)
    /// PlayStation Orange Base — Commerce base — --color-role-backgrounds-commerce-link- base-light (rgb(213 59 0)).

    public static let psOrangeBase = Color(.sRGB, red: 0.8353, green: 0.2314, blue: 0.0000, opacity: 1.0000)
    /// PlayStation Orange Hover — Commerce hover — --color-role-backgrounds-commerce-link- hover-light (rgb(192 53 0)).

    public static let psOrangeHover = Color(.sRGB, red: 0.7529, green: 0.2078, blue: 0.0000, opacity: 1.0000)
    /// PlayStation Orange Active — Commerce active — --color-role-backgrounds-commerce-link- active-light (rgb(170 47 0)).

    public static let psOrangeActive = Color(.sRGB, red: 0.6667, green: 0.1843, blue: 0.0000, opacity: 1.0000)
    /// PS Plus Yellow — PS Plus subscription brand — --color-role-text-ps-plus- light (rgb(252 199 29)). Reserved for PS Plus tiers and subscription affordances.

    public static let psPlusYellow = Color(.sRGB, red: 0.9882, green: 0.7804, blue: 0.1137, opacity: 1.0000)
    /// PlayStation Warning — Warning red — --color-role-text-warning-light (rgb(200 27 58)). Critical alert state.

    public static let psWarning = Color(.sRGB, red: 0.7843, green: 0.1059, blue: 0.2275, opacity: 1.0000)
    /// PlayStation Success — Success green — --color-role-text-success-light (rgb(0 122 98)). Confirmation surfaces.

    public static let psSuccess = Color(.sRGB, red: 0.0000, green: 0.4784, blue: 0.3843, opacity: 1.0000)
    /// PlayStation Hint Pink — Hint / tooltip accent — --color-role-text-hint-light (rgb(203 32 112)). Used for the documented "hint" affordance on form fields.

    public static let psHintPink = Color(.sRGB, red: 0.7961, green: 0.1255, blue: 0.4392, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.paper
    public static let surface = BrandSwatch.paperSurface
    public static let surfaceElevated = BrandSwatch.paper
    public static let textPrimary = BrandSwatch.ashText
    public static let textSecondary = BrandSwatch.ashSecondary
    public static let textTertiary = BrandSwatch.ashTertiary
    public static let primary = BrandSwatch.psBlue
    public static let primaryHover = BrandSwatch.psBlueHover
    public static let accent = BrandSwatch.psBlueLink
    public static let accentHover = BrandSwatch.psBlueActive
    public static let warning = BrandSwatch.psOrange
    public static let warningHover = BrandSwatch.psOrangeActive
    public static let error = BrandSwatch.psWarning
    public static let success = BrandSwatch.psSuccess
    public static let border = BrandSwatch.paperDivider
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.ink
    public static let surface = BrandSwatch.inkSurface
    public static let surfaceElevated = BrandSwatch.inkSurfaceHigh
    public static let textPrimary = BrandSwatch.paper
    public static let textSecondary = BrandSwatch.ashSecondaryDark
    public static let textTertiary = BrandSwatch.ashSecondary
    public static let primary = BrandSwatch.psBlue
    public static let primaryHover = BrandSwatch.psBlueBright
    public static let accent = BrandSwatch.psBlueBright
    public static let accentHover = BrandSwatch.psBlue
    public static let warning = BrandSwatch.psOrange
    public static let warningHover = BrandSwatch.psOrangeActive
    public static let error = BrandSwatch.psWarning
    public static let success = BrandSwatch.psSuccess
    public static let border = BrandSwatch.inkDivider
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.ink
    public static let onIdentity = BrandSwatch.psBlueBright
    public static let primary = BrandSwatch.psBlue
    public static let primaryHover = BrandSwatch.psBlueHover
    public static let accent = BrandSwatch.psBlueLink
    public static let accentHover = BrandSwatch.psBlueActive
    public static let mark = BrandSwatch.paper
    public static let success = BrandSwatch.psSuccess
    public static let warning = BrandSwatch.psOrange
    public static let error = BrandSwatch.psWarning
    public static let textPrimaryLight = BrandSwatch.ashText
    public static let textPrimaryDark = BrandSwatch.paper
    public static let backgroundLight = BrandSwatch.paper
    public static let backgroundDark = BrandSwatch.ink
    public static let surfaceLight = BrandSwatch.paperSurface
    public static let surfaceDark = BrandSwatch.inkSurface
    public static let textSecondaryLight = BrandSwatch.ashSecondary
    public static let textTertiaryLight = BrandSwatch.ashTertiary
    public static let borderLight = BrandSwatch.paperDivider
}

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