Skip to main content
VelinStyle v0.8.0
⌂ Home
  1. Docs
  2. Customize
  3. CSS Variables

CSS Variables

A complete reference of all CSS custom properties defined by VelinStyle. Override any of these on :root to customize the framework without touching source files.

Global Tokens

:root {
  /* ── Body ── */
  --velin-body-bg:          oklch(0.99 0.003 260);
  --velin-body-color:       oklch(0.20 0.015 260);
  --velin-body-font-family: 'Inter', system-ui, -apple-system, sans-serif;
  --velin-body-font-size:   1rem;
  --velin-body-line-height: 1.6;

  /* ── Surfaces ── */
  --velin-surface:          oklch(1.00 0 0);
  --velin-surface-alt:      oklch(0.97 0.003 260);

  /* ── Headings ── */
  --velin-heading-color:    oklch(0.15 0.015 260);
  --velin-heading-font:     var(--velin-body-font-family);
  --velin-heading-weight:   700;

  /* ── Links ── */
  --velin-link-color:       var(--velin-primary);
  --velin-link-hover-color: var(--velin-primary-600);
  --velin-link-decoration:  underline;

  /* ── Borders ── */
  --velin-border-color:     oklch(0.88 0.005 260);
  --velin-border-width:     1px;
  --velin-border-radius:    0.5rem;

  /* ── Shadows ── */
  --velin-shadow-sm:  0 1px 2px oklch(0 0 0 / 0.05);
  --velin-shadow:     0 4px 6px oklch(0 0 0 / 0.07);
  --velin-shadow-lg:  0 10px 25px oklch(0 0 0 / 0.1);

  /* ── Focus ── */
  --velin-focus-ring-color: oklch(0.55 0.22 264 / 0.5);
  --velin-focus-ring-width: 3px;

  /* ── Transitions ── */
  --velin-transition-speed:  200ms;
  --velin-transition-easing: cubic-bezier(0.4, 0, 0.2, 1);
}

Color Tokens

:root {
  --velin-primary:   oklch(0.55 0.22 264);
  --velin-secondary: oklch(0.60 0.10 250);
  --velin-success:   oklch(0.62 0.19 145);
  --velin-danger:    oklch(0.55 0.22 25);
  --velin-warning:   oklch(0.75 0.18 85);
  --velin-info:      oklch(0.65 0.15 230);
  --velin-light:     oklch(0.96 0.005 260);
  --velin-dark:      oklch(0.25 0.015 260);
  --velin-muted:     oklch(0.60 0.01 260);
}

Spacing Tokens

:root {
  --velin-spacer:   1rem;
  --velin-spacer-0: 0;
  --velin-spacer-1: 0.25rem;
  --velin-spacer-2: 0.5rem;
  --velin-spacer-3: 1rem;
  --velin-spacer-4: 1.5rem;
  --velin-spacer-5: 3rem;
}

Typography Tokens

:root {
  --velin-font-sans:  'Inter', system-ui, sans-serif;
  --velin-font-serif: 'Merriweather', Georgia, serif;
  --velin-font-mono:  'JetBrains Mono', 'Fira Code', monospace;

  --velin-fs-xs:  0.75rem;
  --velin-fs-sm:  0.875rem;
  --velin-fs-base: 1rem;
  --velin-fs-lg:  1.125rem;
  --velin-fs-xl:  1.25rem;
  --velin-fs-2xl: 1.5rem;
  --velin-fs-3xl: 1.875rem;
  --velin-fs-4xl: 2.25rem;

  --velin-fw-light:    300;
  --velin-fw-normal:   400;
  --velin-fw-medium:   500;
  --velin-fw-semibold: 600;
  --velin-fw-bold:     700;
}

Radius & Z-Index

:root {
  /* Radius */
  --velin-radius-sm:   0.25rem;
  --velin-radius:      0.5rem;
  --velin-radius-lg:   1rem;
  --velin-radius-xl:   1.5rem;
  --velin-radius-pill: 9999px;

  /* Z-index */
  --velin-z-dropdown:  1000;
  --velin-z-sticky:    1020;
  --velin-z-fixed:     1030;
  --velin-z-backdrop:  1040;
  --velin-z-modal:     1050;
  --velin-z-popover:   1060;
  --velin-z-tooltip:   1070;
  --velin-z-toast:     1080;
}

Using Variables

Reference any variable with the standard var() function:

.my-card {
  background: var(--velin-surface);
  border: var(--velin-border-width) solid var(--velin-border-color);
  border-radius: var(--velin-radius-lg);
  box-shadow: var(--velin-shadow);
  padding: var(--velin-spacer-4);
  font-family: var(--velin-font-sans);
  transition: box-shadow var(--velin-transition-speed) var(--velin-transition-easing);
}

.my-card:hover {
  box-shadow: var(--velin-shadow-lg);
}

Theme wählen