# Theme Variable Namespace Reference ## Complete Namespace Documentation ### Color Namespace: `--color-*` **Generates utilities:** bg-, text-, fill-, stroke-, border-, ring-, outline-, decoration-, caret- **Definition:** ```css @theme { --color-primary: oklch(0.65 0.25 270); --color-brand: oklch(0.75 0.22 320); --color-error: oklch(0.65 0.22 25); } ``` **Usage:** ```html
``` **With opacity modifiers:** ```html
``` ### Font Family: `--font-*` **Generates utilities:** font-{name} **Definition:** ```css @theme { --font-sans: 'Inter', sans-serif; --font-mono: 'JetBrains Mono', monospace; --font-display: 'Satoshi', sans-serif; --font-script: 'Great Vibes', cursive; } ``` **Usage:** ```html

Heading

Code

Script text

``` ### Font Size: `--text-*` **Generates utilities:** text-{size} **Definition:** ```css @theme { --text-xs: 0.75rem; --text-sm: 0.875rem; --text-base: 1rem; --text-lg: 1.125rem; --text-xl: 1.25rem; --text-2xl: 1.5rem; --text-3xl: 1.875rem; --text-4xl: 2.25rem; } ``` **Usage:** ```html

Small text

Large heading

``` ### Font Weight: `--font-weight-*` **Generates utilities:** font-{weight} **Definition:** ```css @theme { --font-weight-thin: 100; --font-weight-light: 300; --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --font-weight-black: 900; } ``` **Usage:** ```html

Light text

Bold text

Black weight

``` ### Letter Spacing: `--tracking-*` **Generates utilities:** tracking-{size} **Definition:** ```css @theme { --tracking-tighter: -0.05em; --tracking-tight: -0.025em; --tracking-normal: 0em; --tracking-wide: 0.025em; --tracking-wider: 0.05em; --tracking-widest: 0.1em; } ``` **Usage:** ```html

Tight spacing

Wide spacing

``` ### Line Height: `--leading-*` **Generates utilities:** leading-{size} **Definition:** ```css @theme { --leading-none: 1; --leading-tight: 1.25; --leading-snug: 1.375; --leading-normal: 1.5; --leading-relaxed: 1.625; --leading-loose: 2; } ``` **Usage:** ```html

Tight line height

Loose line height

``` ### Breakpoints: `--breakpoint-*` **Generates responsive variants:** {breakpoint}: **Definition:** ```css @theme { --breakpoint-sm: 40rem; --breakpoint-md: 48rem; --breakpoint-lg: 64rem; --breakpoint-xl: 80rem; --breakpoint-2xl: 96rem; --breakpoint-3xl: 120rem; } ``` **Usage:** ```html

``` ### Spacing: `--spacing-*` **Generates utilities:** p-, m-, w-, h-, gap-, space-, inset-, top-, right-, bottom-, left- **Definition:** ```css @theme { --spacing: 0.25rem; --spacing-px: 1px; --spacing-0: 0; --spacing-1: calc(var(--spacing) * 1); --spacing-2: calc(var(--spacing) * 2); --spacing-4: calc(var(--spacing) * 4); --spacing-8: calc(var(--spacing) * 8); --spacing-16: calc(var(--spacing) * 16); --spacing-18: 4.5rem; --spacing-72: 18rem; } ``` **Usage:** ```html
``` ### Border Radius: `--radius-*` **Generates utilities:** rounded-{size} **Definition:** ```css @theme { --radius-none: 0; --radius-sm: 0.125rem; --radius-md: 0.375rem; --radius-lg: 0.5rem; --radius-xl: 0.75rem; --radius-2xl: 1rem; --radius-3xl: 1.5rem; --radius-4xl: 2rem; --radius-full: 9999px; } ``` **Usage:** ```html
``` ### Box Shadow: `--shadow-*` **Generates utilities:** shadow-{size} **Definition:** ```css @theme { --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05); --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1); --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1); --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25); --shadow-brutal: 8px 8px 0 0 rgb(0 0 0); } ``` **Usage:** ```html
``` ### Animations: `--animate-*` **Generates utilities:** animate-{name} **Definition:** ```css @theme { --animate-spin: spin 1s linear infinite; --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; --animate-bounce: bounce 1s infinite; --animate-fade-in: fade-in 0.3s ease-out; @keyframes spin { to { transform: rotate(360deg); } } @keyframes ping { 75%, 100% { transform: scale(2); opacity: 0; } } @keyframes pulse { 50% { opacity: 0.5; } } @keyframes bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); } 50% { transform: none; animation-timing-function: cubic-bezier(0, 0, 0.2, 1); } } @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } } ``` **Usage:** ```html
``` ### Z-Index: `--z-*` **Generates utilities:** z-{index} **Definition:** ```css @theme { --z-0: 0; --z-10: 10; --z-20: 20; --z-30: 30; --z-40: 40; --z-50: 50; --z-modal: 100; --z-dropdown: 200; --z-tooltip: 300; } ``` **Usage:** ```html
``` ### Aspect Ratio: `--aspect-*` **Generates utilities:** aspect-{ratio} **Definition:** ```css @theme { --aspect-auto: auto; --aspect-square: 1 / 1; --aspect-video: 16 / 9; --aspect-portrait: 3 / 4; --aspect-ultrawide: 21 / 9; } ``` **Usage:** ```html