//
// DigitalOcean (digitalocean@1.0.0)
// Palette: digitalocean@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 {
    /// DigitalOcean Blue — The DigitalOcean signature blue — the fill of the waving- ocean mark and the principal CTA color across digitalocean.com.

    public static let doBlue = Color(.sRGB, red: 0.0000, green: 0.5020, blue: 1.0000, opacity: 1.0000)
    /// DigitalOcean Blue Dark — Pressed/active state for the primary CTA.
    public static let doBlueDark = Color(.sRGB, red: 0.0000, green: 0.3804, blue: 0.7608, opacity: 1.0000)
    /// DigitalOcean Blue Light — Soft accent used on illustrations and on dark surfaces.
    public static let doBlueLight = Color(.sRGB, red: 0.2471, green: 0.6314, blue: 1.0000, opacity: 1.0000)
    /// DigitalOcean Navy — Dark-mode canvas — the navy used on digitalocean.com dark-theme hero compositions.

    public static let doNavy = Color(.sRGB, red: 0.0118, green: 0.1059, blue: 0.3059, opacity: 1.0000)
    /// DigitalOcean Navy Deep — Darkest navy used as the page-level dark canvas.
    public static let doNavyDeep = Color(.sRGB, red: 0.0078, green: 0.0549, blue: 0.1647, opacity: 1.0000)
    /// DigitalOcean Ink — Primary text on light surfaces — the same hex as the dark canvas, used as deep ink.
    public static let doInk = Color(.sRGB, red: 0.0118, green: 0.1059, blue: 0.3059, opacity: 1.0000)
    /// DigitalOcean Gray — Secondary text and metadata.
    public static let doGray = Color(.sRGB, red: 0.3922, green: 0.4353, blue: 0.5294, opacity: 1.0000)
    /// DigitalOcean Gray Light — Tertiary text and disabled UI.
    public static let doGrayLight = Color(.sRGB, red: 0.5451, green: 0.5843, blue: 0.6588, opacity: 1.0000)
    /// DigitalOcean Surface — Quiet surface — card backgrounds on digitalocean.com.
    public static let doSurface = Color(.sRGB, red: 0.9569, green: 0.9647, blue: 0.9725, opacity: 1.0000)
    /// DigitalOcean Border — Hairline borders and dividers.
    public static let doBorder = Color(.sRGB, red: 0.8667, green: 0.8902, blue: 0.9216, opacity: 1.0000)
    /// DigitalOcean White — Primary canvas on light surfaces.
    public static let doWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// DigitalOcean Success — Confirmation / healthy-droplet state.
    public static let doSuccess = Color(.sRGB, red: 0.1176, green: 0.5804, blue: 0.2902, opacity: 1.0000)
    /// DigitalOcean Warning — Warning / pending state.
    public static let doWarning = Color(.sRGB, red: 0.9490, green: 0.6392, blue: 0.2275, opacity: 1.0000)
    /// DigitalOcean Error — Destructive / failed-droplet state.
    public static let doError = Color(.sRGB, red: 0.8510, green: 0.3255, blue: 0.3098, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.doWhite
    public static let surface = BrandSwatch.doSurface
    public static let surfaceElevated = BrandSwatch.doWhite
    public static let textPrimary = BrandSwatch.doInk
    public static let textSecondary = BrandSwatch.doGray
    public static let textTertiary = BrandSwatch.doGrayLight
    public static let primary = BrandSwatch.doBlue
    public static let primaryHover = BrandSwatch.doBlueDark
    public static let accent = BrandSwatch.doBlueLight
    public static let accentHover = BrandSwatch.doBlue
    public static let warning = BrandSwatch.doWarning
    public static let warningHover = BrandSwatch.doError
    public static let error = BrandSwatch.doError
    public static let success = BrandSwatch.doSuccess
    public static let border = BrandSwatch.doBorder
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.doNavyDeep
    public static let surface = BrandSwatch.doNavy
    public static let surfaceElevated = BrandSwatch.doBlueDark
    public static let textPrimary = BrandSwatch.doWhite
    public static let textSecondary = BrandSwatch.doSurface
    public static let textTertiary = BrandSwatch.doGrayLight
    public static let primary = BrandSwatch.doBlueLight
    public static let primaryHover = BrandSwatch.doBlue
    public static let accent = BrandSwatch.doBlue
    public static let accentHover = BrandSwatch.doBlueLight
    public static let warning = BrandSwatch.doWarning
    public static let warningHover = BrandSwatch.doError
    public static let error = BrandSwatch.doError
    public static let success = BrandSwatch.doSuccess
    public static let border = BrandSwatch.doBlueDark
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.doBlue
    public static let onIdentity = BrandSwatch.doWhite
    public static let primary = BrandSwatch.doBlue
    public static let primaryHover = BrandSwatch.doBlueDark
    public static let accent = BrandSwatch.doBlueLight
    public static let accentHover = BrandSwatch.doBlue
    public static let background = BrandSwatch.doWhite
    public static let surface = BrandSwatch.doSurface
    public static let surfaceElevated = BrandSwatch.doWhite
    public static let textPrimary = BrandSwatch.doInk
    public static let textSecondary = BrandSwatch.doGray
    public static let textTertiary = BrandSwatch.doGrayLight
    public static let chrome = BrandSwatch.doNavy
    public static let chromeDeep = BrandSwatch.doNavyDeep
    public static let mark = BrandSwatch.doBlue
}

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