Effects
Visual effects that create warmth, depth, and presence. Never decorative—always purposeful.
Gradients
Gradients add atmosphere and depth. Theme-aware for both dark (Cedar) and light (Zen) modes.
Aurora
Multi-color ambient glow
linear-gradient(135deg, rgba(74, 103, 65, 0.15), rgba(212, 168, 74, 0.15), rgba(92, 184, 132, 0.15))
Warm Glow
Centered radial warmth
radial-gradient(circle at 50% 50%, rgba(212, 168, 74, 0.15), transparent 70%)
Sunbeam
Top-down ambient light
linear-gradient(180deg, rgba(212, 168, 74, 0.08), transparent 50%)
Persona Glow
Dynamic per-persona radial
radial-gradient(circle at 50% 50%, var(--persona-glow), transparent 60%)
Mesh Gradient
Complex layered gradient for backgrounds
radial-gradient(at 40% 20%, ...), radial-gradient(at 80% 0%, ...), radial-gradient(at 0% 50%, ...)
Textures
Subtle textures add organic warmth. Very low opacity—felt, not seen.
Paper Grain
Subtle paper texture for warmth
Opacity: 0.03Linen
Organic linen-like texture
Pattern: 4px × 4pxFilm Grain
Noise overlay for depth
Opacity: 0.04Glass Effects
Glass surfaces create depth without heaviness. Combining blur, background, border, and shadow.
Thickness Scale
Glass Presets
Card
.glass-card {
backdrop-filter: blur(8px);
background: var(--glass-thin-background);
border: 1px solid var(--glass-thin-border);
border-radius: var(--radius-lg);
}
Modal
.glass-modal {
backdrop-filter: blur(24px);
background: var(--glass-thick-background);
border: 1px solid var(--glass-thick-border);
border-radius: var(--radius-xl);
}
Tooltip
.glass-tooltip {
backdrop-filter: blur(12px);
background: var(--glass-thin-background);
border: 1px solid var(--glass-thin-border);
border-radius: var(--radius-md);
}
Sheet
.glass-sheet {
backdrop-filter: blur(40px);
background: var(--glass-ultra-thick-background);
border: 1px solid var(--glass-ultra-thick-border);
border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
}
Glass Shadows
Shadows for glass surfaces—diffuse and subtle, suggesting floating surfaces.
Ultra Thin
Subtle list items
0 1px 2px rgba(0,0,0,0.04), 0 1px 3px rgba(0,0,0,0.02)
Thin
Cards
0 2px 4px rgba(0,0,0,0.06), 0 4px 8px rgba(0,0,0,0.04)
Regular
Default glass
0 4px 6px rgba(0,0,0,0.08), 0 8px 16px rgba(0,0,0,0.06)
Thick
Modals
0 8px 12px rgba(0,0,0,0.10), 0 16px 32px rgba(0,0,0,0.08)
Ultra Thick
System dialogs
0 16px 24px rgba(0,0,0,0.12), 0 32px 64px rgba(0,0,0,0.10)
Blur Scale
0
2px
4px
8px
16px
24px
40px
Entrance Animations
Page load animations that make elements "arrive" with personality.
Avatar
- From: scale(0.8), translateY(20px), opacity 0
- Duration: 600ms
- Easing: cubic-bezier(0.34, 1.56, 0.64, 1)
- Delay: 200ms
Controls
- From: translateY(10px), opacity 0
- Duration: 400ms
- Easing: cubic-bezier(0.16, 1, 0.3, 1)
- Delay: 400ms
Team (Staggered)
- Stagger: 80ms between items
- From: scale(0.9), opacity 0
- Duration: 300ms
- Start delay: 500ms
Loading States
Shimmer Effect
Loading skeleton shimmer makes loading feel alive.
.shimmer {
background: linear-gradient(
90deg,
transparent 0%,
rgba(255, 255, 255, 0.08) 50%,
transparent 100%
);
background-size: 200% 100%;
animation: shimmer 1.5s ease-in-out infinite;
}
@keyframes shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
Accessibility
Visual effects must respect user preferences.
Reduced Motion
For users with vestibular disorders
@media (prefers-reduced-motion: reduce) {
* {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}
Focus Ring
High-visibility for keyboard navigation
:focus-visible {
outline: 3px solid var(--color-focus-ring);
outline-offset: 2px;
}
High Contrast
Enhanced contrast for visual impairments
@media (prefers-contrast: high) {
.glass {
border-width: 2px;
}
}