SafeArea
Title-safe padding container. Keeps content within broadcast-safe margins (~5% on all sides).| Prop | Type | Default | Description |
|---|---|---|---|
children | ReactNode | required | Content to render inside safe margins |
mode | 'title' | 'action' | 'title' | Safe area mode — title for tighter margins, action for wider |
style | CSSProperties | {} | Additional styles on the container |
SafeArea as the content layer in every scene to ensure text and UI elements don’t get clipped at edges.
Background
Gradient or solid-color backgrounds.| Prop | Type | Default | Description |
|---|---|---|---|
gradient | string | — | CSS gradient string |
color | string | — | Solid background color |
Background as the first child inside AbsoluteFill so it sits behind all other layers.
GlowOrb
Animated glowing orb for ambient visual interest. Drifts slowly with a gentle floating animation.| Prop | Type | Default | Description |
|---|---|---|---|
color | string | required | Glow color (use with alpha for subtlety) |
x | number | required | Horizontal position (percentage) |
y | number | required | Vertical position (percentage) |
size | number | 300 | Orb diameter in pixels |
drift | number | 20 | Maximum drift distance in pixels |
opacity | number | 1 | Opacity multiplier |
Background and content layers for a soft ambient effect.
Terminal
Terminal window with typewriter line animation. Lines appear one at a time with a typing effect.| Prop | Type | Default | Description |
|---|---|---|---|
lines | string[] | required | Lines to type out sequentially |
delay | number | 0 | Seconds before typing starts |
charsPerSecond | number | 40 | Typing speed |
title | string | 'Terminal' | Title bar text |
bg | string | 'rgba(0,0,0,0.8)' | Background color |
textColor | string | '#e2e8f0' | Text color |
fontSize | number | 18 | Font size in pixels |
style | CSSProperties | {} | Additional styles on the container |
Card
Glassmorphism card with spring entrance animation.| Prop | Type | Default | Description |
|---|---|---|---|
children | ReactNode | required | Card content |
bg | string | 'rgba(255,255,255,0.05)' | Background color |
borderColor | string | 'rgba(255,255,255,0.1)' | Border color |
padding | number | 24 | Inner padding in pixels |
borderRadius | number | 12 | Border radius in pixels |
spring | SpringPreset | 'snappy' | Entrance animation spring |
style | CSSProperties | {} | Additional styles |
Badge
Pill-shaped label component with spring entrance.| Prop | Type | Default | Description |
|---|---|---|---|
children | ReactNode | required | Badge content |
bg | string | 'rgba(255,255,255,0.1)' | Background color |
textColor | string | '#e2e8f0' | Text color |
borderColor | string | 'rgba(255,255,255,0.2)' | Border color |
fontSize | number | 14 | Font size in pixels |
spring | SpringPreset | 'snappy' | Entrance animation spring |
style | CSSProperties | {} | Additional styles |
Grid
Subtle background grid overlay.| Prop | Type | Default | Description |
|---|---|---|---|
cellSize | number | 60 | Grid cell size in pixels |
color | string | 'rgba(255,255,255,0.05)' | Line color |
lineWidth | number | 1 | Line width in pixels |
animated | boolean | false | Animate grid with a subtle drift |
Background and content layers for a technical/engineered aesthetic.
Vignette
Edge-darkening overlay.| Prop | Type | Default | Description |
|---|---|---|---|
intensity | number | 0.5 | Darkness level (0 = none, 1 = fully dark edges) |
color | string | 'rgba(0,0,0,1)' | Vignette color (defaults to black) |