Vibe layer
Vibe Response Lab
Select an emotional preset and inspect how it subtly influences atmosphere, glass tint, strokes, maps, messages, profiles, and interactive states without recoloring readable content.
Presets
4 expandable vibes
Appearances
Dark + Light
Scope
Local preview
How vibe influences the UI
One neutral system, emotionally nuanced.
Appearance and vibe remain separate. The page previews either dark or light at one time, and nothing leaves this lab unless you explicitly apply it globally.
Current vibe
Curious
Vibe-aware Surface Preview
● LiveGlass surfaces react with subtle, system-wide visual nuance.
Active Insight
Your selected vibe favors discovery, clarity, and forward momentum.
System Message
2m agoCurious mode highlights points of interest.
Scout Bot
5m agoFound three new patterns worth exploring.
Team Pulse
12m agoTwo teammates are active in this rhythm.
Ambient Aura
Soft radial color sits behind surfaces so atmosphere changes before content.
Glass Tint
Neutral glass picks up a low-alpha wash from the selected vibe.
Stroke Accent
Thin edges guide hierarchy with primary and secondary color.
Interactive Glow
Active buttons, focus, and hover receive a localized emphasis.
Localized Bloom
Stronger color stays near maps, avatars, CTAs, and focal cards.
Readable Content
Text zones remain neutral and contrast-led in every vibe.
Background contrast
Test glass against environment, solid, or gradient fields.
Vibe influence system
Keep color emotionally legible and operationally restrained.
Blend mode
Profile Ring
Richer gradient reserved for a person or relationship.
Message Accent
Color appears at icon, dot, and edge, not behind the copy.
Map Glow
Strongest semantic glow identifies routes and focus points.
Active Tab
Selected state uses a compact tint and restrained halo.
Vibe CTA
Interaction receives localized bloom without flooding the surface.
Ambient Surface
The base card stays neutral while atmosphere shifts behind it.
Runtime tokens
One generated variable map drives every response.
The selected preset supplies behavior, appearance supplies safe ranges, and custom colors only replace palette values. No page component owns independent vibe math.
:root {
--vibe-layer-primary: #ffd866;
--vibe-layer-secondary: #ff9a4d;
--vibe-layer-accent: #b974ff;
--vibe-layer-primary-soft: rgba(255, 216, 102, 0.160);
--vibe-layer-secondary-soft: rgba(255, 154, 77, 0.140);
--vibe-layer-background: linear-gradient(145deg, rgba(4,7,19,0.18), rgba(7,9,22,0.34));
--vibe-layer-aura: radial-gradient(circle at 14% 18%, rgba(255, 216, 102, 0.070), transparent 34%), radial-gradient(circle at 82% 24%, rgba(255, 154, 77, 0.055), transparent 32%), radial-gradient(circle at 64% 82%, rgba(185, 116, 255, 0.032), transparent 28%);
--vibe-layer-surface: linear-gradient(145deg, rgba(255, 216, 102, 0.036), rgba(255, 154, 77, 0.023)), rgba(14,18,34,0.62);
--vibe-layer-surface-neutral: rgba(14,18,34,0.62);
--vibe-layer-surface-elevated: rgba(18,22,41,0.72);
--vibe-layer-surface-soft: rgba(255,255,255,0.035);
--vibe-layer-border: rgba(205,225,255,0.16);
--vibe-layer-edge: color-mix(in srgb, #ffd866 14%, rgba(205,225,255,0.16));
--vibe-layer-text-primary: #f7f8ff;
--vibe-layer-text-secondary: #d2dcff;
--vibe-layer-text-tertiary: #9db1e5;
--vibe-layer-text-muted: #7087b6;
--vibe-layer-ambient-opacity: 0.070;
--vibe-layer-glass-tint-opacity: 0.050;
--vibe-layer-edge-opacity: 0.140;
--vibe-layer-interactive-opacity: 0.150;
--vibe-layer-bloom-opacity: 0.210;
--vibe-layer-bloom-radius: 58px;
--vibe-layer-transition-duration: 510ms;
--vibe-layer-blend-mode: soft-light;
--vibe-layer-environment-opacity: 0.720;
--vibe-layer-gradient: linear-gradient(135deg, #ffd866, #ff9a4d 62%, #b974ff);
--vibe-layer-map-glow: 0 0 32px rgba(255, 216, 102, 0.118), 0 0 58px rgba(255, 154, 77, 0.063);
--vibe-layer-message-glow: 0 0 20px rgba(255, 216, 102, 0.108), 0 10px 32px rgba(255, 154, 77, 0.042);
--vibe-layer-profile-ring: conic-gradient(from 210deg, #ffd866, #ff9a4d, #b974ff, #ffd866);
--vibe-layer-localized-shadow: 0 0 32px rgba(255, 216, 102, 0.118), 0 0 58px rgba(255, 154, 77, 0.063);
--vibe-layer-interactive-shadow: 0 0 20px rgba(255, 216, 102, 0.108), 0 10px 32px rgba(255, 154, 77, 0.042);
}Flutter mapping
BackdropFilter plus scoped Vibe resolution.
Web aura maps to positioned DecoratedBox layers; glass maps to ClipRRect + BackdropFilter; Vibe state maps to VibeMood, VibePalette, VibeRecipe, and VibeScope.
Figma mapping
Core appearance and Vibe collections stay separate.
Dark/Light belongs to VibeIRL Core. Chill/Hype/Curious/Family belongs to VibeIRL Vibes. Effect recipes document blur, bloom, and blending that variables cannot encode alone.
Best practices
Atmosphere first
Place the strongest wash behind content, never over body copy.
Localize energy
Concentrate bloom near profiles, maps, selected controls, and CTAs.
Preserve meaning
Status colors and readable content remain semantic and neutral.