//
// Eclipse Foundation (eclipse@1.0.0)
// Palette: eclipse@1.0.0
// Fonts:   heading=inter@1.0.0, body=inter@1.0.0, mono=source-code-pro@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 {
    /// Eclipse Orange — Primary brand color — the sun-arc fill in the Eclipse Foundation logo. Resolved from the .st0 class of the official Eclipse Foundation white-orange SVG.

    public static let eclipseOrange = Color(.sRGB, red: 0.9412, green: 0.4235, blue: 0.0078, opacity: 1.0000)
    /// Eclipse Orange Dark — Pressed / active variant of Eclipse Orange for hover states.
    public static let eclipseOrangeDark = Color(.sRGB, red: 0.7804, green: 0.3255, blue: 0.0000, opacity: 1.0000)
    /// Eclipse Amber — Warmer secondary orange seen in the Solstice theme's warning button class (.btn-warning) on eclipse.org.

    public static let eclipseAmber = Color(.sRGB, red: 0.9686, green: 0.5804, blue: 0.1176, opacity: 1.0000)
    /// Eclipse Black — Wordmark color on light canvas; dark-mode page canvas.
    public static let eclipseBlack = Color(.sRGB, red: 0.0667, green: 0.0784, blue: 0.0941, opacity: 1.0000)
    /// Eclipse Charcoal — Elevated dark surface for cards and panels.
    public static let eclipseCharcoal = Color(.sRGB, red: 0.1216, green: 0.1451, blue: 0.1804, opacity: 1.0000)
    /// Eclipse Slate — Body text on light canvas; secondary copy.
    public static let eclipseSlate = Color(.sRGB, red: 0.2392, green: 0.2745, blue: 0.3294, opacity: 1.0000)
    /// Eclipse Gray — Tertiary text and quiet UI.
    public static let eclipseGray = Color(.sRGB, red: 0.4196, green: 0.4471, blue: 0.5020, opacity: 1.0000)
    /// Eclipse Light Gray — Hairline borders on light canvas.
    public static let eclipseLightGray = Color(.sRGB, red: 0.8392, green: 0.8549, blue: 0.8784, opacity: 1.0000)
    /// Eclipse Off-White — Subtle layered surface on light canvas.
    public static let eclipseOffWhite = Color(.sRGB, red: 0.9608, green: 0.9647, blue: 0.9725, opacity: 1.0000)
    /// Eclipse White — Page canvas in light mode.
    public static let eclipseWhite = 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.eclipseWhite
    public static let surface = BrandSwatch.eclipseOffWhite
    public static let surfaceElevated = BrandSwatch.eclipseWhite
    public static let textPrimary = BrandSwatch.eclipseBlack
    public static let textSecondary = BrandSwatch.eclipseSlate
    public static let textTertiary = BrandSwatch.eclipseGray
    public static let primary = BrandSwatch.eclipseBlack
    public static let primaryHover = BrandSwatch.eclipseOrangeDark
    public static let accent = BrandSwatch.eclipseOrange
    public static let accentHover = BrandSwatch.eclipseOrangeDark
    public static let warning = BrandSwatch.eclipseAmber
    public static let warningHover = BrandSwatch.eclipseOrange
    public static let error = BrandSwatch.eclipseOrangeDark
    public static let success = BrandSwatch.eclipseSlate
    public static let border = BrandSwatch.eclipseLightGray
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.eclipseBlack
    public static let surface = BrandSwatch.eclipseCharcoal
    public static let surfaceElevated = BrandSwatch.eclipseCharcoal
    public static let textPrimary = BrandSwatch.eclipseWhite
    public static let textSecondary = BrandSwatch.eclipseLightGray
    public static let textTertiary = BrandSwatch.eclipseOrange
    public static let primary = BrandSwatch.eclipseOrange
    public static let primaryHover = BrandSwatch.eclipseAmber
    public static let accent = BrandSwatch.eclipseOrange
    public static let accentHover = BrandSwatch.eclipseAmber
    public static let warning = BrandSwatch.eclipseAmber
    public static let warningHover = BrandSwatch.eclipseOrange
    public static let error = BrandSwatch.eclipseOrangeDark
    public static let success = BrandSwatch.eclipseLightGray
    public static let border = BrandSwatch.eclipseSlate
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.eclipseBlack
    public static let onIdentity = BrandSwatch.eclipseWhite
    public static let primary = BrandSwatch.eclipseBlack
    public static let primaryHover = BrandSwatch.eclipseOrangeDark
    public static let accent = BrandSwatch.eclipseOrange
    public static let accentHover = BrandSwatch.eclipseOrangeDark
    public static let mark = BrandSwatch.eclipseOrange
    public static let background = BrandSwatch.eclipseWhite
    public static let surface = BrandSwatch.eclipseOffWhite
    public static let textPrimary = BrandSwatch.eclipseBlack
    public static let textSecondary = BrandSwatch.eclipseSlate
    public static let error = BrandSwatch.eclipseOrangeDark
    public static let success = BrandSwatch.eclipseSlate
    public static let border = BrandSwatch.eclipseLightGray
}

/// 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"
    /// Source Code Pro (source-code-pro@1.0.0)
    public static let mono = "Source Code Pro"
}
