Banner VC

Theme Tokens

Complete reference for the emblem theme system. Three modes: light, dark, and vibrant.

Brand Colors

Core brand palette defined in :root. These don't change between modes.

--color-crimson #B91C1C Primary red - brand signature
--color-crimson-bright #DC2626 Brighter red for dark modes
--color-red-brownish #a92e2c Muted red variant
--color-navy #1D4ED8 Secondary blue
--color-navy-bright #2563EB Brighter blue for dark modes
--color-electric #60A5FA Electric blue accent
--color-amber #B45309 Accent warm
--color-amber-bright #F59E0B Brighter amber

Background & Foreground

Named colors for backgrounds and text.

--color-ivory #F9FAFB Light mode background
--color-midnight #172554 Dark mode background (blue-950)
--color-haiti-blue #141531 Deep dark background
--color-charcoal #171717 Light mode text
--color-snow #FFFFFF Dark mode text

Graphite Scale

Neutral grey scale for surfaces and borders.

950
900
800
700
600
500
400
300
200
100
50

Semantic Tokens by Mode

These tokens change based on data-mode. Use these in components for automatic theming.

Token Light Dark Vibrant
--color-background var(--color-ivory) var(--color-haiti-blue) var(--color-haiti-blue)
--color-foreground var(--color-charcoal) var(--color-snow) var(--color-snow)
--color-surface #FFFFFF color-mix(bg 85%, white) color-mix(bg 90%, white)
--color-surface-muted #F5F5F5 color-mix(bg 70%, black) color-mix(bg 70%, black)
--color-primary var(--color-crimson) var(--color-red-brownish) #EF4444 (red-500)
--color-primary-foreground var(--color-snow) var(--color-snow) var(--color-snow)
--color-secondary var(--color-navy) var(--color-navy-bright) #3B82F6 (blue-500)
--color-accent var(--color-amber) var(--color-electric) #FBBF24 (amber-400)
--color-muted #E5E5E5 color-mix(bg 80%, white) color-mix(bg 90%, transparent)
--color-muted-foreground #525252 #94A3B8 #E5E5E5
--color-border #D4D4D4 color-mix(bg 70%, white) rgba(220, 38, 38, 0.5)
--color-ring var(--color-crimson) var(--color-crimson-bright) #EF4444

Effect Tokens

Visual effect intensities that scale with mode. Light is minimal, vibrant is maximum impact.

Token Light Dark Vibrant
--fx-glow-opacity 0.08 0.25 0.5
--fx-glow-spread 10px 25px 50px
--fx-glow-color rgba(185,28,28,0.1) rgba(220,38,38,0.3) rgba(239,68,68,0.5)
--fx-text-shadow none 0 0 40px rgba(...)0.3 0 0 80px rgba(...)0.5
Additional effect tokens:
  • --fx-hero-gradient — Radial gradients for hero sections
  • --fx-card-bg, --fx-card-border, --fx-card-shadow — Card styling
  • --fx-headline-gradient — Text gradient for headlines
  • --fx-orb-color — Decorative orb accent color

Mode Characteristics

Light Mode

Clean, professional

  • Ivory background, charcoal text
  • Crimson primary, navy secondary
  • Minimal effects, subtle shadows
  • Clean surfaces with subtle glass-morphism

Dark Mode

Bold, confident

  • Haiti-blue background, snow text
  • Muted red primary, electric blue accents
  • Moderate glow effects
  • Deep surfaces with subtle gradients

Vibrant Mode

High-impact expressive

  • Same haiti-blue background
  • Loud red, bright blue, amber accents
  • Maximum glow, dramatic shadows
  • Bold borders, cosmic gradient backgrounds

Usage

In CSS

.my-component {
  background: var(--color-surface);
  color: var(--color-foreground);
  border: 1px solid var(--color-border);
}

.my-component:hover {
  border-color: var(--color-primary);
  box-shadow: var(--fx-card-shadow-hover);
}

In Tailwind

<div class="bg-surface text-foreground border-border">
  <button class="bg-primary text-primary-foreground">
    Action
  </button>
</div>

With Helper Classes

<!-- Cards -->
<div class="card p-6">Card content</div>

<!-- Buttons -->
<button class="btn-primary">Primary</button>
<button class="btn-secondary">Secondary</button>

<!-- Gradient text -->
<h1 class="gradient-text">Headline</h1>

<!-- Hero shell (adds gradient background in dark/vibrant) -->
<section class="hero-shell">...</section>

File Location

Theme definitions are in:

src/styles/themes/emblem-theme.css

Base Tailwind setup and global utilities:

src/styles/global.css