//
// Superhuman (superhuman@1.0.0)
// Palette: superhuman@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 {
    /// Purple 60 — Superhuman's primary identity hue — the Purple-60 brand anchor used as --color-action-primary in light mode and as the dominant marketing-accent color.

    public static let purple60 = Color(.sRGB, red: 0.4431, green: 0.2980, blue: 0.7137, opacity: 1.0000)
    /// Purple 80 — Pressed / active variant of Purple-60.
    public static let purple80 = Color(.sRGB, red: 0.3255, green: 0.1922, blue: 0.5725, opacity: 1.0000)
    /// Purple 90 — Deepest pressed purple — primary "darker" token.
    public static let purple90 = Color(.sRGB, red: 0.2471, green: 0.1451, blue: 0.4353, opacity: 1.0000)
    /// Purple 40 — Mid-tone purple used in dark-mode primary affordance.
    public static let purple40 = Color(.sRGB, red: 0.6196, green: 0.4824, blue: 0.8784, opacity: 1.0000)
    /// Purple 30 — Hover / lift variant on dark surfaces.
    public static let purple30 = Color(.sRGB, red: 0.7451, green: 0.6314, blue: 0.9608, opacity: 1.0000)
    /// Purple 20 — Light-tint purple — dark-mode primary action token.
    public static let purple20 = Color(.sRGB, red: 0.8314, green: 0.7804, blue: 1.0000, opacity: 1.0000)
    /// Purple 10 — Surface-tint purple for accent backgrounds in light mode.
    public static let purple10 = Color(.sRGB, red: 0.9098, green: 0.8784, blue: 1.0000, opacity: 1.0000)
    /// Mulberry Black — The dramatic near-black hero canvas — a warm mulberry-tinged black used as the dark-mode page background on superhuman.com.

    public static let mulberryBlack = Color(.sRGB, red: 0.1412, green: 0.0627, blue: 0.0745, opacity: 1.0000)
    /// Mulberry 100 — Elevated dark-mode surface — the next step up from the Mulberry-Black canvas, used for dark-mode card and panel fills.

    public static let mulberry100 = Color(.sRGB, red: 0.2588, green: 0.1137, blue: 0.1412, opacity: 1.0000)
    /// Mulberry 80 — Pressed accent on dark surfaces.
    public static let mulberry80 = Color(.sRGB, red: 0.4745, green: 0.1765, blue: 0.2941, opacity: 1.0000)
    /// Neutral 0 — Warm off-white page canvas in light mode — the Superhuman "paper" surface, slightly cream rather than pure white.

    public static let neutral0 = Color(.sRGB, red: 0.9882, green: 0.9804, blue: 0.9686, opacity: 1.0000)
    /// Neutral 5 — Slight elevated surface tint in light mode.
    public static let neutral5 = Color(.sRGB, red: 0.9686, green: 0.9608, blue: 0.9490, opacity: 1.0000)
    /// Neutral 10 — Secondary background / faded-light surface.
    public static let neutral10 = Color(.sRGB, red: 0.9490, green: 0.9412, blue: 0.9216, opacity: 1.0000)
    /// Neutral 30 — Soft border / divider on warm surfaces.
    public static let neutral30 = Color(.sRGB, red: 0.7490, green: 0.7373, blue: 0.7137, opacity: 1.0000)
    /// Neutral 60 — Faded text / icon-soft token.
    public static let neutral60 = Color(.sRGB, red: 0.4510, green: 0.4431, blue: 0.4275, opacity: 1.0000)
    /// Neutral 80 — Shadow / secondary text on dark surfaces.
    public static let neutral80 = Color(.sRGB, red: 0.2784, green: 0.2706, blue: 0.2627, opacity: 1.0000)
    /// Neutral 90 — Primary body text on the warm canvas; also acts as the secondary-action base color.

    public static let neutral90 = Color(.sRGB, red: 0.1608, green: 0.1569, blue: 0.1529, opacity: 1.0000)
    /// Neutral 100 — Deepest ink — heading text and high-contrast type.
    public static let neutral100 = Color(.sRGB, red: 0.0784, green: 0.0784, blue: 0.0745, opacity: 1.0000)
    /// Gold Pro 60 — Warm gold accent used for highlight and warning states.
    public static let goldPro60 = Color(.sRGB, red: 0.8980, green: 0.4510, blue: 0.0000, opacity: 1.0000)
    /// Orange 40 — Warning-light tone on dark surfaces.
    public static let orange40 = Color(.sRGB, red: 0.9451, green: 0.5137, blue: 0.2000, opacity: 1.0000)
    /// Red 40 — Error / destructive accent.
    public static let red40 = Color(.sRGB, red: 0.9686, green: 0.1647, blue: 0.2588, opacity: 1.0000)
    /// Red 60 — Error base on light surfaces.
    public static let red60 = Color(.sRGB, red: 0.8039, green: 0.0000, blue: 0.2157, opacity: 1.0000)
    /// Green 60 — Success base — Superhuman's teal-leaning green.
    public static let green60 = Color(.sRGB, red: 0.0784, green: 0.5020, blue: 0.4471, opacity: 1.0000)
    /// Green 40 — Success-light / data-positive on dark surfaces.
    public static let green40 = Color(.sRGB, red: 0.1490, green: 0.6353, blue: 0.5451, opacity: 1.0000)
    /// Sky 60 — Focus-ring blue.
    public static let sky60 = Color(.sRGB, red: 0.0039, green: 0.3882, blue: 0.7765, opacity: 1.0000)
    /// Yellow 30 — Mid-yellow accent for highlights.
    public static let yellow30 = Color(.sRGB, red: 0.9765, green: 0.8235, blue: 0.3333, opacity: 1.0000)
    /// White — Base reversed-text and bright surface fill.
    public static let white = 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.neutral0
    public static let surface = BrandSwatch.neutral5
    public static let surfaceElevated = BrandSwatch.white
    public static let textPrimary = BrandSwatch.neutral90
    public static let textSecondary = BrandSwatch.neutral60
    public static let textTertiary = BrandSwatch.neutral30
    public static let primary = BrandSwatch.purple60
    public static let primaryHover = BrandSwatch.purple80
    public static let accent = BrandSwatch.purple60
    public static let accentHover = BrandSwatch.purple80
    public static let warning = BrandSwatch.goldPro60
    public static let warningHover = BrandSwatch.orange40
    public static let error = BrandSwatch.red60
    public static let success = BrandSwatch.green60
    public static let border = BrandSwatch.neutral30
    public static let focusRing = BrandSwatch.sky60
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.mulberryBlack
    public static let surface = BrandSwatch.mulberry100
    public static let surfaceElevated = BrandSwatch.neutral80
    public static let textPrimary = BrandSwatch.white
    public static let textSecondary = BrandSwatch.neutral10
    public static let textTertiary = BrandSwatch.neutral30
    public static let primary = BrandSwatch.purple20
    public static let primaryHover = BrandSwatch.purple30
    public static let accent = BrandSwatch.purple20
    public static let accentHover = BrandSwatch.purple30
    public static let warning = BrandSwatch.orange40
    public static let warningHover = BrandSwatch.goldPro60
    public static let error = BrandSwatch.red40
    public static let success = BrandSwatch.green40
    public static let border = BrandSwatch.neutral80
    public static let focusRing = BrandSwatch.sky60
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.mulberryBlack
    public static let onIdentity = BrandSwatch.white
    public static let primary = BrandSwatch.purple60
    public static let primaryHover = BrandSwatch.purple80
    public static let accent = BrandSwatch.purple60
    public static let accentHover = BrandSwatch.purple80
    public static let mark = BrandSwatch.purple60
    public static let success = BrandSwatch.green60
    public static let warning = BrandSwatch.goldPro60
    public static let error = BrandSwatch.red60
    public static let textPrimaryLight = BrandSwatch.neutral90
    public static let textPrimaryDark = BrandSwatch.white
    public static let backgroundLight = BrandSwatch.neutral0
    public static let backgroundDark = BrandSwatch.mulberryBlack
    public static let surfaceLight = BrandSwatch.neutral5
    public static let surfaceDark = BrandSwatch.mulberry100
    public static let textSecondaryLight = BrandSwatch.neutral60
    public static let textTertiaryLight = BrandSwatch.neutral30
    public static let borderLight = BrandSwatch.neutral30
}

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