//
// Loom (loom@1.0.0)
// Palette: loom@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 {
    /// Loom Purple — Signature blue-violet. Primary brand color — used on the wordmark, the record-spool mark, primary CTAs, and key interactive surfaces.

    public static let loomPurple = Color(.sRGB, red: 0.3843, green: 0.3647, blue: 0.9608, opacity: 1.0000)
    /// Loom White — Canvas on light surfaces; reversed wordmark fill.
    public static let loomWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Loom Black — Near-black body text on light backgrounds — Loom's marketing-page text tone.
    public static let loomBlack = Color(.sRGB, red: 0.1020, green: 0.1020, blue: 0.1804, opacity: 1.0000)
    /// Loom Canvas Dark — Authored dark-mode canvas — deep neutral with a faint purple cast aligned with the brand.
    public static let loomCanvasDark = Color(.sRGB, red: 0.0824, green: 0.0824, blue: 0.1686, opacity: 1.0000)
    /// Loom Surface Light — Authored panel surface for light mode.
    public static let loomSurfaceLight = Color(.sRGB, red: 0.9647, green: 0.9608, blue: 0.9843, opacity: 1.0000)
    /// Loom Surface Dark — Authored elevated surface on dark mode.
    public static let loomSurfaceDark = Color(.sRGB, red: 0.1451, green: 0.1412, blue: 0.2588, opacity: 1.0000)
    /// Loom Text Secondary — Authored secondary text — neutral mid-gray on light canvas.
    public static let loomTextSecondary = Color(.sRGB, red: 0.4196, green: 0.4196, blue: 0.4902, opacity: 1.0000)
    /// Loom Text Tertiary — Authored tertiary / muted text.
    public static let loomTextTertiary = Color(.sRGB, red: 0.6000, green: 0.6000, blue: 0.6627, opacity: 1.0000)
    /// Loom Purple Hover — Authored softer Loom Purple for hover / active states.
    public static let loomPurpleHover = Color(.sRGB, red: 0.4941, green: 0.4784, blue: 0.9686, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.loomWhite
    public static let surface = BrandSwatch.loomSurfaceLight
    public static let surfaceElevated = BrandSwatch.loomWhite
    public static let textPrimary = BrandSwatch.loomBlack
    public static let textSecondary = BrandSwatch.loomTextSecondary
    public static let textTertiary = BrandSwatch.loomTextTertiary
    public static let primary = BrandSwatch.loomPurple
    public static let primaryHover = BrandSwatch.loomPurpleHover
    public static let accent = BrandSwatch.loomPurple
    public static let accentHover = BrandSwatch.loomPurpleHover
    public static let warning = BrandSwatch.loomPurple
    public static let warningHover = BrandSwatch.loomPurpleHover
    public static let error = BrandSwatch.loomPurple
    public static let success = BrandSwatch.loomPurple
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.loomCanvasDark
    public static let surface = BrandSwatch.loomSurfaceDark
    public static let surfaceElevated = BrandSwatch.loomSurfaceDark
    public static let textPrimary = BrandSwatch.loomWhite
    public static let textSecondary = BrandSwatch.loomTextTertiary
    public static let textTertiary = BrandSwatch.loomTextSecondary
    public static let primary = BrandSwatch.loomPurple
    public static let primaryHover = BrandSwatch.loomPurpleHover
    public static let accent = BrandSwatch.loomPurple
    public static let accentHover = BrandSwatch.loomPurpleHover
    public static let warning = BrandSwatch.loomPurple
    public static let warningHover = BrandSwatch.loomPurpleHover
    public static let error = BrandSwatch.loomPurple
    public static let success = BrandSwatch.loomPurple
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.loomPurple
    public static let onIdentity = BrandSwatch.loomWhite
    public static let primary = BrandSwatch.loomPurple
    public static let primaryHover = BrandSwatch.loomPurpleHover
    public static let accent = BrandSwatch.loomPurple
    public static let accentHover = BrandSwatch.loomPurpleHover
    public static let success = BrandSwatch.loomPurple
    public static let warning = BrandSwatch.loomPurple
    public static let error = BrandSwatch.loomPurple
    public static let backgroundLight = BrandSwatch.loomWhite
    public static let backgroundDark = BrandSwatch.loomCanvasDark
    public static let surfaceLight = BrandSwatch.loomSurfaceLight
    public static let surfaceDark = BrandSwatch.loomSurfaceDark
    public static let textPrimaryLight = BrandSwatch.loomBlack
    public static let textPrimaryDark = BrandSwatch.loomWhite
}

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