Skip to content
Velora
Showcase
Reference

Design Tokens

CSS custom properties that power every Velora component. All tokens are prefixed --vl-and live in the velora.tokens layer.

Color System

Test here
--vl-color-primary--vl-bg-surface--vl-text-muted

Skin-driven

Noir · Earth · Aethel · Meridian

Brand Palette

Velora's brand uses a natural, earthy palette built on hex values for precision:

TokenValueSwatch
--vl-brand-stone#c8c9b0
--vl-brand-olive#a9b08b
--vl-brand-moss#7f8668
--vl-brand-deep#5c604c

Semantic Color Aliases

TokenMaps toPurpose
--vl-color-primary--vl-brand-mossPrimary interactive color
--vl-color-primary-soft18% primary + transparentSubtle fills and tints
--vl-color-secondary--vl-brand-oliveSecondary accent
--vl-color-accent--vl-brand-deepDeep accent for contrast
--vl-color-success#6f8661Positive / success states
--vl-color-warning#c1ab72Warning states
--vl-color-danger#8a5f50Error / danger states

Surface Tokens (theme-aware)

These change automatically based on light/dark mode. Set data-theme on the root element to override:

<html data-theme="dark">   <!-- Force dark -->
<html data-theme="light">  <!-- Force light -->
<html>                      <!-- Follow OS preference -->
TokenLightDark
--vl-bg-main#e3e3cd#232321
--vl-bg-surface#f3f2e6#2a2b25
--vl-bg-surface-elevated#ecebd9#32342d
--vl-bg-inset#d7d8c0#1a1a17
--vl-bg-overlayoklch 96% / 0.8aoklch 10% / 0.65a

Text Tokens

TokenLightDark
--vl-text-primary#0a0a0a#f3f2e6
--vl-text-secondary#232321#d7d8c0
--vl-text-muted#6f705f#a9b08b
--vl-text-inverse#f3f2e6#0a0a0a

Border Tokens

TokenPurpose
--vl-border-subtleLow-contrast separators
--vl-border-strongEmphasized borders
--vl-border-focusKeyboard focus ring color (55% primary)

Gradients

TokenDescription
--vl-gradient-brandStone → olive → moss → deep (135deg)
--vl-gradient-canvas-beamLight surface beam, great for hero backgrounds
--vl-gradient-olive-driftWarmer variant of canvas-beam
--vl-gradient-deep-motionStone → near-black, dramatic depth
--vl-gradient-surfaceSubtle vertical surface fade
--vl-gradient-auroraVibrant oklch purple/green aurora
--vl-gradient-sunsetWarm oklch sunset tones
--vl-gradient-oceanCool oklch blue/teal tones
--vl-gradient-neutralNeutral dark-to-darker gradient

Typography

Font Families

Load these from Google Fonts or your preferred source. Velora includes them as system-UI fallbacks only:

<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500
  &family=Outfit:wght@400;500;600;700
  &family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap"
  rel="stylesheet" />
TokenValueUse
--vl-font-familyPlus Jakarta Sans, system-ui, sans-serifBody / UI text
--vl-font-family-displayOutfit, Plus Jakarta Sans, sans-serifHeadings and kickers
--vl-font-family-monoJetBrains Mono, ui-monospace, monospaceCode blocks
--vl-font-family-serifCormorant Garamond, Georgia, serifEditorial / long-form

Font Sizes

TokenValue
--vl-font-size-base16px
--vl-font-size-xs0.75rem — 12px
--vl-font-size-sm0.875rem — 14px
--vl-font-size-md1rem — 16px
--vl-font-size-lg1.125rem — 18px
--vl-font-size-xl1.25rem — 20px
--vl-font-size-2xl1.5rem — 24px
--vl-font-size-3xl2rem — 32px
--vl-font-size-4xlclamp(2.25rem, 5vw, 3.5rem)

Font Weights, Leading & Tracking

TokenValue
--vl-font-weight-normal400
--vl-font-weight-medium500
--vl-font-weight-semibold600
--vl-font-weight-bold700
--vl-leading-tight1.2
--vl-leading-snug1.35
--vl-leading-normal1.5
--vl-leading-relaxed1.65
--vl-tracking-tight-0.02em
--vl-tracking-normal0
--vl-tracking-wide0.04em
--vl-tracking-display0.06em

Spacing Scale

TokenValue
--vl-space-2xs0.125rem — 2px
--vl-space-xs0.25rem — 4px
--vl-space-sm0.5rem — 8px
--vl-space-md1rem — 16px
--vl-space-lg2rem — 32px
--vl-space-xl4rem — 64px
--vl-space-2xl6rem — 96px
--vl-space-3xl8rem — 128px

Overridden by layout density variants: data-layout="compact" (denser) anddata-layout="presentation" (roomier).

Border Radius

TokenValue
--vl-radius-sm0.375rem
--vl-radius-md0.5rem
--vl-radius-lg0.75rem
--vl-radius-xl1rem
--vl-radius-2xl1.5rem
--vl-radius-full999px — pill shape

Shadows

TokenPurpose
--vl-shadow-smSubtle surface lift (1px blur)
--vl-shadow-mdCards and interactive elements
--vl-shadow-lgModals and overlays
--vl-shadow-glowPrimary color halo — hover states
--vl-shadow-dramaticDeep cinematic shadow for hero media
--vl-shadow-innerInset shadow for inset surfaces
--vl-shadow-floatFloating card shadow with green tint

Motion Tokens

Easing

TokenValueCharacter
--vl-ease-cinematiccubic-bezier(0.2, 0.8, 0.2, 1)Signature Velora easing — fast out, smooth settle
--vl-ease-out-softcubic-bezier(0.16, 1, 0.3, 1)Gentle deceleration for reveals
--vl-ease-springcubic-bezier(0.34, 1.56, 0.64, 1)Bouncy overshoot — scale/pop effects
--vl-ease-in-out-smoothcubic-bezier(0.45, 0, 0.55, 1)Balanced in/out for loops and wipes
--vl-ease-elasticcubic-bezier(0.68, -0.55, 0.265, 1.55)Strong elastic snap
--vl-ease-smooth-outcubic-bezier(0, 0.55, 0.45, 1)Smooth deceleration

Duration

TokenValueUse
--vl-duration-instant80msFlash feedback, focus rings
--vl-duration-fast150msMicro interactions, hover
--vl-duration-normal300msStandard transitions
--vl-duration-slow500msEntrance animations
--vl-duration-slower800msCinematic reveals and scenes

Motion System Properties

These are used internally by the vl-* attribute system and can be overridden per-element:

TokenDefaultControls
--vl-motion-duration--vl-duration-normalAnimation duration for current effect
--vl-motion-distance1.25remTranslation distance for slide/fade effects
--vl-motion-ease--vl-ease-cinematicEasing function for current effect
--vl-stagger-step45msDelay between staggered children
<!-- Override per element -->
<div
  vl-enter="fade-up"
  vl-timeline="view"
  style="--vl-motion-distance: 2rem; --vl-motion-duration: 600ms;">
  Custom depth and speed
</div>

Transition Shorthands

TokenValue
--vl-transition-fast150ms ease-out-soft
--vl-transition-normal300ms ease-cinematic
--vl-transition-slow500ms ease-cinematic

View Transition Tokens

TokenDefaultControls
--vl-vt-root-duration0.55sRoot page transition speed
--vl-vt-shared-duration0.58sShared element transition speed

Layout Tokens

TokenValue
--vl-container-max72rem — standard content width
--vl-container-max-narrow42rem — prose / focused content
--vl-container-max-wide90rem — full-bleed sections
--vl-container-gutter1rem — horizontal padding
--vl-measure-prose65ch — optimal reading width

Z-Index Scale

TokenValueUse
--vl-z-base0Default content layer
--vl-z-dropdown100Menus and popovers
--vl-z-sticky200Sticky headers and pinned elements
--vl-z-modal500Dialogs and modals
--vl-z-toast800Toast notifications

Focus / Accessibility Tokens

TokenValue
--vl-focus-ring-width2px
--vl-focus-ring-offset2px
--vl-focus-ring-color65% primary + transparent

Glass / Backdrop

TokenValue
--vl-backdrop-blur12px
--vl-glass-bg85% surface + transparent (light); 72% (dark)

Theming

<!-- Follow OS preference (default) -->
<html>

<!-- Force light mode -->
<html data-theme="light">

<!-- Force dark mode -->
<html data-theme="dark">

<!-- Compact layout density -->
<html data-layout="compact">

<!-- Presentation mode (larger spacing) -->
<html data-layout="presentation">

data-layout="compact" reduces base font size to 15px and tightens spacing.data-layout="presentation" increases to 17px with looser leading — ideal for projectors and keynotes.