//
// Next.js (nextjs@1.0.0)
// Palette: nextjs@1.0.0
// Fonts:   heading=geist@1.0.0, body=geist@1.0.0, mono=geist-mono@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 {
    /// Next.js Black — Primary brand color — the triangle mark fill in light mode and the dark-mode canvas. Pure black.

    public static let nextBlack = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Next.js White — Companion brand color — the triangle mark fill in dark mode and the light-mode canvas. Pure white.

    public static let nextWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Dark Background 100 — Geist dark canvas tint used by nextjs.org dark mode.
    public static let darkBg100 = Color(.sRGB, red: 0.0392, green: 0.0392, blue: 0.0392, opacity: 1.0000)
    /// Dark Gray 100 — Geist dark surface tint.
    public static let darkGray100 = Color(.sRGB, red: 0.1020, green: 0.1020, blue: 0.1020, opacity: 1.0000)
    /// Dark Gray 300 — Geist dark gray for borders.
    public static let darkGray300 = Color(.sRGB, red: 0.1608, green: 0.1608, blue: 0.1608, opacity: 1.0000)
    /// Dark Gray 500 — Geist dark gray for hairlines.
    public static let darkGray500 = Color(.sRGB, red: 0.2706, green: 0.2706, blue: 0.2706, opacity: 1.0000)
    /// Dark Gray 900 — Geist muted text on dark.
    public static let darkGray900 = Color(.sRGB, red: 0.6314, green: 0.6314, blue: 0.6314, opacity: 1.0000)
    /// Dark Gray 1000 — Geist primary text on dark.
    public static let darkGray1000 = Color(.sRGB, red: 0.9294, green: 0.9294, blue: 0.9294, opacity: 1.0000)
    /// Light Background 200 — Geist light layered surface.
    public static let lightBg200 = Color(.sRGB, red: 0.9804, green: 0.9804, blue: 0.9804, opacity: 1.0000)
    /// Light Gray 200 — Geist light hairline border.
    public static let lightGray200 = Color(.sRGB, red: 0.9176, green: 0.9176, blue: 0.9176, opacity: 1.0000)
    /// Light Gray 600 — Geist secondary text on light.
    public static let lightGray600 = Color(.sRGB, red: 0.4000, green: 0.4000, blue: 0.4000, opacity: 1.0000)
    /// Light Gray 1000 — Geist primary text on light.
    public static let lightGray1000 = Color(.sRGB, red: 0.0902, green: 0.0902, blue: 0.0902, opacity: 1.0000)
    /// Vercel Blue — Functional accent — link / focus.
    public static let vercelBlue = Color(.sRGB, red: 0.0000, green: 0.4392, blue: 0.9529, opacity: 1.0000)
    /// Vercel Blue Bright — Functional accent on dark surfaces.
    public static let vercelBlueBright = Color(.sRGB, red: 0.3216, green: 0.6588, blue: 1.0000, opacity: 1.0000)
    /// Vercel Red — Functional error / destructive.
    public static let vercelRed = Color(.sRGB, red: 1.0000, green: 0.3804, blue: 0.4000, opacity: 1.0000)
    /// Vercel Amber — Functional warning.
    public static let vercelAmber = Color(.sRGB, red: 0.9490, green: 0.6510, blue: 0.0510, opacity: 1.0000)
    /// Vercel Green — Functional success.
    public static let vercelGreen = Color(.sRGB, red: 0.3843, green: 0.7529, blue: 0.4510, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.lightBg200
    public static let surface = BrandSwatch.nextWhite
    public static let surfaceElevated = BrandSwatch.nextWhite
    public static let textPrimary = BrandSwatch.lightGray1000
    public static let textSecondary = BrandSwatch.lightGray600
    public static let textTertiary = BrandSwatch.darkGray500
    public static let primary = BrandSwatch.nextBlack
    public static let primaryHover = BrandSwatch.lightGray1000
    public static let accent = BrandSwatch.vercelBlue
    public static let accentHover = BrandSwatch.vercelBlueBright
    public static let warning = BrandSwatch.vercelAmber
    public static let warningHover = BrandSwatch.vercelAmber
    public static let error = BrandSwatch.vercelRed
    public static let success = BrandSwatch.vercelGreen
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.darkBg100
    public static let surface = BrandSwatch.darkGray100
    public static let surfaceElevated = BrandSwatch.darkGray300
    public static let textPrimary = BrandSwatch.darkGray1000
    public static let textSecondary = BrandSwatch.darkGray900
    public static let textTertiary = BrandSwatch.darkGray500
    public static let primary = BrandSwatch.nextWhite
    public static let primaryHover = BrandSwatch.darkGray1000
    public static let accent = BrandSwatch.vercelBlueBright
    public static let accentHover = BrandSwatch.vercelBlue
    public static let warning = BrandSwatch.vercelAmber
    public static let warningHover = BrandSwatch.vercelAmber
    public static let error = BrandSwatch.vercelRed
    public static let success = BrandSwatch.vercelGreen
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.nextBlack
    public static let onIdentity = BrandSwatch.nextWhite
    public static let primary = BrandSwatch.nextBlack
    public static let primaryHover = BrandSwatch.lightGray1000
    public static let accent = BrandSwatch.vercelBlue
    public static let accentHover = BrandSwatch.vercelBlueBright
    public static let background = BrandSwatch.lightBg200
    public static let surface = BrandSwatch.nextWhite
    public static let textPrimary = BrandSwatch.lightGray1000
    public static let textSecondary = BrandSwatch.lightGray600
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Geist Sans (geist@1.0.0)
    public static let heading = "Geist"
    /// Geist Sans (geist@1.0.0)
    public static let body = "Geist"
    /// Geist Mono (geist-mono@1.0.0)
    public static let mono = "Geist Mono"
}
