//
// Coursera (coursera@1.0.0)
// Palette: coursera@1.0.0
// Fonts:   heading=source-sans-3@1.0.0, body=source-sans-3@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 {
    /// Coursera Blue — The Coursera Design System primary blue (CDS BLUE). The brand's signature action color.
    public static let courseraBlue = Color(.sRGB, red: 0.0000, green: 0.3373, blue: 0.8235, opacity: 1.0000)
    /// Bluish White — Soft blue-tinted surface (CDS BLUISH_WHITE). The brand's primary surface accent.
    public static let bluishWhite = Color(.sRGB, red: 0.9529, green: 0.9725, blue: 1.0000, opacity: 1.0000)
    /// Blue Dark — Pressed / active variant of Coursera Blue — derived deepened tone for hover/active states.
    public static let blueDark = Color(.sRGB, red: 0.0000, green: 0.2353, blue: 0.5608, opacity: 1.0000)
    /// Blue Pale — Pale blue background accent — used in info banners.
    public static let bluePale = Color(.sRGB, red: 0.8902, green: 0.9333, blue: 1.0000, opacity: 1.0000)
    /// Blue Deep — Deepest navy-blue — used for callouts and contrast accents.
    public static let blueDeep = Color(.sRGB, red: 0.0000, green: 0.1529, blue: 0.3804, opacity: 1.0000)
    /// Ink 50 — The canonical body text color on coursera.org — near-black but not pure black.
    public static let ink50 = Color(.sRGB, red: 0.1216, green: 0.1216, blue: 0.1216, opacity: 1.0000)
    /// Ink 100 — Default text color — slightly lighter than Ink 50.
    public static let ink100 = Color(.sRGB, red: 0.1882, green: 0.1882, blue: 0.1882, opacity: 1.0000)
    /// Ink 300 — Secondary text color — captions and supporting copy.
    public static let ink300 = Color(.sRGB, red: 0.3804, green: 0.3804, blue: 0.3804, opacity: 1.0000)
    /// Ink 500 — Tertiary text color — derived from the press-page logo fill (#757575).
    public static let ink500 = Color(.sRGB, red: 0.4588, green: 0.4588, blue: 0.4588, opacity: 1.0000)
    /// Ink 700 — Disabled text and quiet borders.
    public static let ink700 = Color(.sRGB, red: 0.6196, green: 0.6196, blue: 0.6196, opacity: 1.0000)
    /// White — Page canvas in light mode (CDS WHITE).
    public static let white = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Surface — Subtle elevated surface tint.
    public static let surface = Color(.sRGB, red: 0.9804, green: 0.9804, blue: 0.9804, opacity: 1.0000)
    /// Surface 2 — Secondary surface — card and panel backgrounds.
    public static let surface2 = Color(.sRGB, red: 0.9608, green: 0.9608, blue: 0.9608, opacity: 1.0000)
    /// Border — Quiet divider — borders and rules.
    public static let border = Color(.sRGB, red: 0.8784, green: 0.8784, blue: 0.8784, opacity: 1.0000)
    /// Success — Success / completion green — derived from the published callouts-success scale.
    public static let success = Color(.sRGB, red: 0.1059, green: 0.5020, blue: 0.3412, opacity: 1.0000)
    /// Warning — Warning amber — derived from the orange-500 callout scale on coursera.org.
    public static let warning = Color(.sRGB, red: 0.9490, green: 0.5059, blue: 0.0000, opacity: 1.0000)
    /// Error — Error / destructive red — published in the CDS callouts-error scale.
    public static let error = Color(.sRGB, red: 0.9569, green: 0.2627, blue: 0.2118, opacity: 1.0000)
    /// Error Deep — Deepest red — used for error-state callout strokes.
    public static let errorDeep = Color(.sRGB, red: 0.4000, green: 0.0000, blue: 0.0588, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.white
    public static let surface = BrandSwatch.bluishWhite
    public static let surfaceElevated = BrandSwatch.white
    public static let textPrimary = BrandSwatch.ink50
    public static let textSecondary = BrandSwatch.ink300
    public static let textTertiary = BrandSwatch.ink500
    public static let primary = BrandSwatch.courseraBlue
    public static let primaryHover = BrandSwatch.blueDark
    public static let accent = BrandSwatch.courseraBlue
    public static let accentHover = BrandSwatch.blueDark
    public static let warning = BrandSwatch.warning
    public static let warningHover = BrandSwatch.warning
    public static let error = BrandSwatch.error
    public static let success = BrandSwatch.success
    public static let border = BrandSwatch.border
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.ink50
    public static let surface = BrandSwatch.ink100
    public static let surfaceElevated = BrandSwatch.ink300
    public static let textPrimary = BrandSwatch.white
    public static let textSecondary = BrandSwatch.surface2
    public static let textTertiary = BrandSwatch.ink700
    public static let primary = BrandSwatch.courseraBlue
    public static let primaryHover = BrandSwatch.bluishWhite
    public static let accent = BrandSwatch.bluishWhite
    public static let accentHover = BrandSwatch.bluePale
    public static let warning = BrandSwatch.warning
    public static let warningHover = BrandSwatch.warning
    public static let error = BrandSwatch.error
    public static let success = BrandSwatch.success
    public static let border = BrandSwatch.ink300
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.white
    public static let onIdentity = BrandSwatch.ink50
    public static let primary = BrandSwatch.courseraBlue
    public static let primaryHover = BrandSwatch.blueDark
    public static let accent = BrandSwatch.courseraBlue
    public static let accentHover = BrandSwatch.blueDark
    public static let mark = BrandSwatch.courseraBlue
    public static let success = BrandSwatch.success
    public static let warning = BrandSwatch.warning
    public static let error = BrandSwatch.error
    public static let textPrimaryLight = BrandSwatch.ink50
    public static let textPrimaryDark = BrandSwatch.white
    public static let backgroundLight = BrandSwatch.white
    public static let backgroundDark = BrandSwatch.ink50
    public static let surfaceLight = BrandSwatch.bluishWhite
    public static let surfaceDark = BrandSwatch.ink100
    public static let textSecondaryLight = BrandSwatch.ink300
    public static let textTertiaryLight = BrandSwatch.ink500
    public static let borderLight = BrandSwatch.border
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Source Sans 3 (source-sans-3@1.0.0)
    public static let heading = "Source Sans 3"
    /// Source Sans 3 (source-sans-3@1.0.0)
    public static let body = "Source Sans 3"
    /// Source Code Pro (source-code-pro@1.0.0)
    public static let mono = "Source Code Pro"
}
