//
// Samsung (samsung@1.0.0)
// Palette: samsung@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 {
    /// Samsung Blue — The signature Samsung wordmark blue. The brand's identity color and the only chromatic primary on the parent mark.

    public static let samsungBlue = Color(.sRGB, red: 0.0784, green: 0.1569, blue: 0.6275, opacity: 1.0000)
    /// Action Blue — Brighter action blue used on CTAs in the UX25 dark UI — higher contrast on dark surfaces than the corporate blue.

    public static let actionBlue = Color(.sRGB, red: 0.1294, green: 0.5373, blue: 1.0000, opacity: 1.0000)
    /// Action Blue (Pressed) — Pressed / hover variant of Action Blue.
    public static let actionBluePressed = Color(.sRGB, red: 0.0000, green: 0.4196, blue: 0.9176, opacity: 1.0000)
    /// Link Blue — Inline link color on the white canvas.
    public static let linkBlue = Color(.sRGB, red: 0.0118, green: 0.5059, blue: 0.9961, opacity: 1.0000)
    /// Light Blue — Light blue secondary; muted hover affordance.
    public static let lightBlue = Color(.sRGB, red: 0.4078, green: 0.6824, blue: 1.0000, opacity: 1.0000)
    /// Legacy Navy — Older Samsung navy still present on US legacy templates; a softer mid-navy than the corporate #1428A0.

    public static let legacyNavy = Color(.sRGB, red: 0.0471, green: 0.3020, blue: 0.6353, opacity: 1.0000)
    /// White — Default page canvas; reverse wordmark fill.
    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.9686, green: 0.9686, blue: 0.9686, opacity: 1.0000)
    /// Gray 100 — Subtle elevated surface.
    public static let gray100 = Color(.sRGB, red: 0.9569, green: 0.9569, blue: 0.9569, opacity: 1.0000)
    /// Gray 200 — Quiet rule / border on the white canvas.
    public static let gray200 = Color(.sRGB, red: 0.9059, green: 0.9059, blue: 0.9059, opacity: 1.0000)
    /// Gray 300 — Mid-light gray; disabled borders.
    public static let gray300 = Color(.sRGB, red: 0.7961, green: 0.7961, blue: 0.7961, opacity: 1.0000)
    /// Gray 400 — Mid-gray for inactive controls.
    public static let gray400 = Color(.sRGB, red: 0.5608, green: 0.5608, blue: 0.5608, opacity: 1.0000)
    /// Gray 500 — Tertiary text on the white canvas.
    public static let gray500 = Color(.sRGB, red: 0.4588, green: 0.4588, blue: 0.4588, opacity: 1.0000)
    /// Gray 600 — Cool secondary text — the value declared inline on the samsung.com US homepage.

    public static let gray600 = Color(.sRGB, red: 0.4314, green: 0.4314, blue: 0.4510, opacity: 1.0000)
    /// Gray 700 — Elevated dark surface on the UX25 dark canvas.
    public static let gray700 = Color(.sRGB, red: 0.2118, green: 0.2118, blue: 0.2118, opacity: 1.0000)
    /// Gray 800 — Dark surface; near-canvas in UX25 dark UI.
    public static let gray800 = Color(.sRGB, red: 0.1922, green: 0.1922, blue: 0.1922, opacity: 1.0000)
    /// Gray 900 — Near-black; canvas in UX25 dark UI.
    public static let gray900 = Color(.sRGB, red: 0.1098, green: 0.1098, blue: 0.1098, opacity: 1.0000)
    /// Black — Primary text on light surfaces; logo fill in mono.
    public static let black = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Success — Confirmation / success state color.
    public static let success = Color(.sRGB, red: 0.0000, green: 0.4941, blue: 0.2314, opacity: 1.0000)
    /// Warning — Warning / caution state color.
    public static let warning = Color(.sRGB, red: 0.9647, green: 0.4039, blue: 0.0000, opacity: 1.0000)
    /// Error — Error / destructive state color.
    public static let error = Color(.sRGB, red: 0.9373, green: 0.2039, blue: 0.2039, 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.black
    public static let textSecondary = BrandSwatch.gray600
    public static let textTertiary = BrandSwatch.gray500
    public static let primary = BrandSwatch.samsungBlue
    public static let primaryHover = BrandSwatch.legacyNavy
    public static let accent = BrandSwatch.linkBlue
    public static let accentHover = BrandSwatch.actionBluePressed
    public static let success = BrandSwatch.success
    public static let warning = BrandSwatch.warning
    public static let error = BrandSwatch.error
    public static let border = BrandSwatch.gray200
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.gray900
    public static let surface = BrandSwatch.gray800
    public static let surfaceElevated = BrandSwatch.gray700
    public static let textPrimary = BrandSwatch.white
    public static let textSecondary = BrandSwatch.gray300
    public static let textTertiary = BrandSwatch.gray400
    public static let primary = BrandSwatch.actionBlue
    public static let primaryHover = BrandSwatch.actionBluePressed
    public static let accent = BrandSwatch.lightBlue
    public static let accentHover = BrandSwatch.actionBlue
    public static let success = BrandSwatch.success
    public static let warning = BrandSwatch.warning
    public static let error = BrandSwatch.error
    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.samsungBlue
    public static let primaryHover = BrandSwatch.legacyNavy
    public static let accent = BrandSwatch.linkBlue
    public static let mark = BrandSwatch.samsungBlue
    public static let success = BrandSwatch.success
    public static let warning = BrandSwatch.warning
    public static let error = BrandSwatch.error
    public static let backgroundLight = BrandSwatch.white
    public static let backgroundDark = BrandSwatch.gray900
    public static let surfaceLight = BrandSwatch.gray50
    public static let surfaceDark = BrandSwatch.gray800
    public static let textPrimaryLight = BrandSwatch.black
    public static let textPrimaryDark = BrandSwatch.white
    public static let textSecondaryLight = BrandSwatch.gray600
    public static let textTertiaryLight = BrandSwatch.gray500
    public static let borderLight = BrandSwatch.gray200
}

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