//
// Bluesky (bluesky@1.0.0)
// Palette: bluesky@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 {
    /// Bluesky Blue — Signature sky-blue — the primary brand color. The Bluesky butterfly mark, the wordmark, and primary CTAs on bsky.app all render in this hue. Verified hex via the simple-icons brand database citing bsky.app.

    public static let blueskyBlue = Color(.sRGB, red: 0.0000, green: 0.5216, blue: 1.0000, opacity: 1.0000)
    /// Bluesky Blue Dark — Authored darker blue for hover, pressed, and active states on the primary CTA.
    public static let blueskyBlueDark = Color(.sRGB, red: 0.0000, green: 0.4078, blue: 0.7882, opacity: 1.0000)
    /// Bluesky Blue Light — Authored lighter blue for link affordances on the dark canvas.
    public static let blueskyBlueLight = Color(.sRGB, red: 0.3098, green: 0.6627, blue: 1.0000, opacity: 1.0000)
    /// Bluesky White — Canonical light canvas — bsky.app's light theme surface.
    public static let blueskyWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Bluesky Near-White — Authored panel surface on light mode.
    public static let blueskyNearWhite = Color(.sRGB, red: 0.9451, green: 0.9529, blue: 0.9608, opacity: 1.0000)
    /// Bluesky Text Primary — Authored body text and headline color on light backgrounds.
    public static let blueskyTextPrimary = Color(.sRGB, red: 0.0431, green: 0.0588, blue: 0.0784, opacity: 1.0000)
    /// Bluesky Text Secondary — Authored secondary text on light backgrounds.
    public static let blueskyTextSecondary = Color(.sRGB, red: 0.2588, green: 0.3412, blue: 0.4235, opacity: 1.0000)
    /// Bluesky Text Tertiary — Authored tertiary / muted text on light backgrounds.
    public static let blueskyTextTertiary = Color(.sRGB, red: 0.4706, green: 0.5569, blue: 0.6431, opacity: 1.0000)
    /// Bluesky Divider Light — Authored hairline divider on light canvas.
    public static let blueskyDividerLight = Color(.sRGB, red: 0.8314, green: 0.8588, blue: 0.8863, opacity: 1.0000)
    /// Bluesky Canvas Dark — Authored dark canvas matching bsky.app's dark theme — a deep near-black with a cool blue undertone.

    public static let blueskyCanvasDark = Color(.sRGB, red: 0.0431, green: 0.0588, blue: 0.0784, opacity: 1.0000)
    /// Bluesky Surface Dark — Authored elevated surface on the dark canvas.
    public static let blueskySurfaceDark = Color(.sRGB, red: 0.0863, green: 0.1176, blue: 0.1529, opacity: 1.0000)
    /// Bluesky Surface Elevated Dark — Authored deepest-elevated surface on dark mode — modals, popovers.
    public static let blueskySurfaceElevatedDark = Color(.sRGB, red: 0.1176, green: 0.1608, blue: 0.2118, opacity: 1.0000)
    /// Bluesky Text on Dark — Primary text on the dark canvas.
    public static let blueskyTextOnDark = Color(.sRGB, red: 0.9451, green: 0.9529, blue: 0.9608, opacity: 1.0000)
    /// Bluesky Text Secondary on Dark — Authored secondary text on the dark canvas.
    public static let blueskyTextSecondaryDark = Color(.sRGB, red: 0.6471, green: 0.7137, blue: 0.7843, opacity: 1.0000)
    /// Bluesky Divider Dark — Authored hairline divider on the dark canvas.
    public static let blueskyDividerDark = Color(.sRGB, red: 0.1725, green: 0.2275, blue: 0.2902, opacity: 1.0000)
    /// Bluesky Green — Authored success accent for status affordances.
    public static let blueskyGreen = Color(.sRGB, red: 0.1020, green: 0.4980, blue: 0.2157, opacity: 1.0000)
    /// Bluesky Yellow — Authored warning accent.
    public static let blueskyYellow = Color(.sRGB, red: 0.8510, green: 0.6275, blue: 0.1490, opacity: 1.0000)
    /// Bluesky Red — Authored error / destructive accent.
    public static let blueskyRed = Color(.sRGB, red: 0.8980, green: 0.2824, blue: 0.3020, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.blueskyWhite
    public static let surface = BrandSwatch.blueskyNearWhite
    public static let surfaceElevated = BrandSwatch.blueskyWhite
    public static let textPrimary = BrandSwatch.blueskyTextPrimary
    public static let textSecondary = BrandSwatch.blueskyTextSecondary
    public static let textTertiary = BrandSwatch.blueskyTextTertiary
    public static let primary = BrandSwatch.blueskyBlue
    public static let primaryHover = BrandSwatch.blueskyBlueDark
    public static let accent = BrandSwatch.blueskyBlue
    public static let accentHover = BrandSwatch.blueskyBlueDark
    public static let warning = BrandSwatch.blueskyYellow
    public static let warningHover = BrandSwatch.blueskyYellow
    public static let error = BrandSwatch.blueskyRed
    public static let success = BrandSwatch.blueskyGreen
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.blueskyCanvasDark
    public static let surface = BrandSwatch.blueskySurfaceDark
    public static let surfaceElevated = BrandSwatch.blueskySurfaceElevatedDark
    public static let textPrimary = BrandSwatch.blueskyTextOnDark
    public static let textSecondary = BrandSwatch.blueskyTextSecondaryDark
    public static let textTertiary = BrandSwatch.blueskyTextSecondaryDark
    public static let primary = BrandSwatch.blueskyBlueLight
    public static let primaryHover = BrandSwatch.blueskyBlue
    public static let accent = BrandSwatch.blueskyBlueLight
    public static let accentHover = BrandSwatch.blueskyBlue
    public static let warning = BrandSwatch.blueskyYellow
    public static let warningHover = BrandSwatch.blueskyYellow
    public static let error = BrandSwatch.blueskyRed
    public static let success = BrandSwatch.blueskyGreen
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.blueskyBlue
    public static let onIdentity = BrandSwatch.blueskyWhite
    public static let primary = BrandSwatch.blueskyBlue
    public static let primaryHover = BrandSwatch.blueskyBlueDark
    public static let accent = BrandSwatch.blueskyBlue
    public static let accentHover = BrandSwatch.blueskyBlueDark
    public static let success = BrandSwatch.blueskyGreen
    public static let warning = BrandSwatch.blueskyYellow
    public static let error = BrandSwatch.blueskyRed
    public static let backgroundLight = BrandSwatch.blueskyWhite
    public static let backgroundDark = BrandSwatch.blueskyCanvasDark
    public static let surfaceLight = BrandSwatch.blueskyNearWhite
    public static let surfaceDark = BrandSwatch.blueskySurfaceDark
    public static let surfaceElevatedDark = BrandSwatch.blueskySurfaceElevatedDark
    public static let textPrimaryLight = BrandSwatch.blueskyTextPrimary
    public static let textPrimaryDark = BrandSwatch.blueskyTextOnDark
    public static let textSecondaryLight = BrandSwatch.blueskyTextSecondary
    public static let textSecondaryDark = BrandSwatch.blueskyTextSecondaryDark
    public static let dividerLight = BrandSwatch.blueskyDividerLight
    public static let dividerDark = BrandSwatch.blueskyDividerDark
}

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