//
// Signal (signal@1.0.0)
// Palette: signal@1.0.0
// Fonts:   heading=proxima-nova@1.0.0, body=proxima-nova@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 {
    /// Signal Blue — Signature Signal blue — the brand's primary color, used on the Signal mark, primary CTAs, and the outgoing-message bubble.

    public static let signalBlue = Color(.sRGB, red: 0.2275, green: 0.4627, blue: 0.9412, opacity: 1.0000)
    /// Signal Blue Deep — Deeper marketing-site primary-action blue — used on the hero CTA button across signal.org.

    public static let signalBlueDeep = Color(.sRGB, red: 0.1451, green: 0.3882, blue: 0.9216, opacity: 1.0000)
    /// Signal Blue Action — Deeper interactive blue — used on link hover and pressed states.
    public static let signalBlueAction = Color(.sRGB, red: 0.1020, green: 0.4667, blue: 0.7529, opacity: 1.0000)
    /// Signal Bubble Blue — Chat-thread blue color.
    public static let signalBubbleBlue = Color(.sRGB, red: 0.1020, green: 0.4667, blue: 0.7529, opacity: 1.0000)
    /// Signal Bubble Green — Chat-thread green color.
    public static let signalBubbleGreen = Color(.sRGB, red: 0.1725, green: 0.5373, blue: 0.2824, opacity: 1.0000)
    /// Signal Bubble Green Light — Chat-thread lighter green color.
    public static let signalBubbleGreenLight = Color(.sRGB, red: 0.2627, green: 0.5843, blue: 0.3608, opacity: 1.0000)
    /// Signal Bubble Purple — Chat-thread purple color.
    public static let signalBubblePurple = Color(.sRGB, red: 0.4157, green: 0.1765, blue: 0.5569, opacity: 1.0000)
    /// Signal Bubble Violet — Chat-thread violet color.
    public static let signalBubbleViolet = Color(.sRGB, red: 0.4863, green: 0.1451, blue: 0.6941, opacity: 1.0000)
    /// Signal Bubble Crimson — Chat-thread crimson / red color.
    public static let signalBubbleCrimson = Color(.sRGB, red: 0.7804, green: 0.2078, blue: 0.2980, opacity: 1.0000)
    /// Signal Bubble Rust — Chat-thread rust / burnt-orange color.
    public static let signalBubbleRust = Color(.sRGB, red: 0.7294, green: 0.2824, blue: 0.1176, opacity: 1.0000)
    /// Signal Bubble Amber — Chat-thread amber / yellow color (the Signal "yellow bubble").
    public static let signalBubbleAmber = Color(.sRGB, red: 1.0000, green: 0.7569, blue: 0.0275, opacity: 1.0000)
    /// Signal Success — Authored success / sent-status green.
    public static let signalSuccess = Color(.sRGB, red: 0.1569, green: 0.4824, blue: 0.2549, opacity: 1.0000)
    /// Signal Error — Authored error / failed-send red.
    public static let signalError = Color(.sRGB, red: 0.7529, green: 0.1137, blue: 0.2118, opacity: 1.0000)
    /// Signal Warning — Authored warning amber.
    public static let signalWarning = Color(.sRGB, red: 0.8980, green: 0.4471, blue: 0.0000, opacity: 1.0000)
    /// Signal White — Pure white — primary surface on the marketing site and light-mode chat canvas.
    public static let signalWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Signal Surface Light — Light-mode elevated surface — chat-list rail.
    public static let signalSurfaceLight = Color(.sRGB, red: 0.9569, green: 0.9608, blue: 0.9608, opacity: 1.0000)
    /// Signal Border Light — Quiet divider on the marketing-site surface.
    public static let signalBorderLight = Color(.sRGB, red: 0.8784, green: 0.8863, blue: 0.8902, opacity: 1.0000)
    /// Signal Text on Light — Primary text on the marketing-site and light-mode chat canvas.
    public static let signalTextOnLight = Color(.sRGB, red: 0.1059, green: 0.1176, blue: 0.1255, opacity: 1.0000)
    /// Signal Text Secondary Light — Secondary text on light-mode surfaces.
    public static let signalTextSecondaryLight = Color(.sRGB, red: 0.3569, green: 0.3922, blue: 0.4235, opacity: 1.0000)
    /// Signal Canvas Dark — Deep near-black — Signal's dark-mode chat canvas tone, captured from the deployed signal.org dark stylesheet.

    public static let signalCanvasDark = Color(.sRGB, red: 0.1059, green: 0.1176, blue: 0.1255, opacity: 1.0000)
    /// Signal Surface Dark — Dark-mode elevated surface — chat-list rail.
    public static let signalSurfaceDark = Color(.sRGB, red: 0.1765, green: 0.1961, blue: 0.2118, opacity: 1.0000)
    /// Signal Surface Dark Elevated — Dark-mode deepest-elevated surface.
    public static let signalSurfaceDarkElevated = Color(.sRGB, red: 0.1882, green: 0.2275, blue: 0.2863, opacity: 1.0000)
    /// Signal Text on Dark — Primary text on the dark-mode canvas.
    public static let signalTextOnDark = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Signal Text Secondary Dark — Secondary text and timestamps on the dark canvas.
    public static let signalTextSecondaryDark = Color(.sRGB, red: 0.6549, green: 0.6863, blue: 0.7373, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.signalWhite
    public static let surface = BrandSwatch.signalSurfaceLight
    public static let surfaceElevated = BrandSwatch.signalWhite
    public static let textPrimary = BrandSwatch.signalTextOnLight
    public static let textSecondary = BrandSwatch.signalTextSecondaryLight
    public static let textTertiary = BrandSwatch.signalTextSecondaryLight
    public static let primary = BrandSwatch.signalBlue
    public static let primaryHover = BrandSwatch.signalBlueDeep
    public static let accent = BrandSwatch.signalBlue
    public static let accentHover = BrandSwatch.signalBlueAction
    public static let warning = BrandSwatch.signalWarning
    public static let warningHover = BrandSwatch.signalBubbleRust
    public static let error = BrandSwatch.signalError
    public static let success = BrandSwatch.signalSuccess
    public static let border = BrandSwatch.signalBorderLight
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.signalCanvasDark
    public static let surface = BrandSwatch.signalSurfaceDark
    public static let surfaceElevated = BrandSwatch.signalSurfaceDarkElevated
    public static let textPrimary = BrandSwatch.signalTextOnDark
    public static let textSecondary = BrandSwatch.signalTextSecondaryDark
    public static let textTertiary = BrandSwatch.signalTextSecondaryDark
    public static let primary = BrandSwatch.signalBlue
    public static let primaryHover = BrandSwatch.signalBlueDeep
    public static let accent = BrandSwatch.signalBlue
    public static let accentHover = BrandSwatch.signalBlueAction
    public static let warning = BrandSwatch.signalBubbleAmber
    public static let warningHover = BrandSwatch.signalWarning
    public static let error = BrandSwatch.signalBubbleCrimson
    public static let success = BrandSwatch.signalBubbleGreen
    public static let border = BrandSwatch.signalSurfaceDarkElevated
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.signalBlue
    public static let onIdentity = BrandSwatch.signalWhite
    public static let background = BrandSwatch.signalWhite
    public static let surface = BrandSwatch.signalSurfaceLight
    public static let surfaceElevated = BrandSwatch.signalWhite
    public static let textPrimary = BrandSwatch.signalTextOnLight
    public static let textSecondary = BrandSwatch.signalTextSecondaryLight
    public static let primary = BrandSwatch.signalBlue
    public static let primaryHover = BrandSwatch.signalBlueDeep
    public static let accent = BrandSwatch.signalBlue
    public static let accentHover = BrandSwatch.signalBlueAction
    public static let mark = BrandSwatch.signalBlue
    public static let success = BrandSwatch.signalSuccess
    public static let warning = BrandSwatch.signalWarning
    public static let error = BrandSwatch.signalError
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Proxima Nova (proxima-nova@1.0.0)
    public static let heading = "proxima-nova"
    /// Proxima Nova (proxima-nova@1.0.0)
    public static let body = "proxima-nova"
    /// JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)
    public static let mono = "JetBrainsMono Nerd Font"
}
