Elevation and motion

Effects and motion are named by use, like color and type. Shadows follow the Figma effect styles and are off in dark mode, where the lighter raised surface carries the layering.

Effects

RoleLightDarkUse
raised
--v-shadow-raised
Cards, list rows, white buttons, the selected segment, knobs.
floating
--v-shadow-floating
Toasts, sheets, map pins, menus: anything above the content.
highlight
--v-shadow-highlight
Inner white highlight on light surfaces (glassy panels).
highlight-soft
--v-shadow-highlight-soft
Softer inner highlight.
glow-accent-2
--v-shadow-glow-accent-2
Inner purple glow: the bot thinking or remembering.
halo-accent-2
--v-shadow-halo-accent-2
Outer purple halo around a thin line (scan line).
ring-accent
--v-shadow-ring-accent
Pressed primary button ring.
ring-accent-2
--v-shadow-ring-accent-2
Ring around a purple progress knob.

Blur

glass
--v-blur-glassControls over photos.
backdrop
--v-blur-backdropWhatever sits behind a sheet or overlay.

Glass

Bars and surfaces over scrolling content (the bottom nav, floating headers): the color takes the transparency, the blur softens what is behind it, and a raised shadow lifts it off the content. In Figma, bg/glass is the fill and the glass-floating effect style holds the shadow and the blur together, since a layer takes one effect style.

Home · Chats · You
--v-bg-glass + --v-blur-backdrop + --v-shadow-raised

Motion

Press play to run each curve over --v-dur-slow, and each duration on --v-ease-standard. With reduced motion on, everything is instant.

standard
Most transitions: things that move or change state.
enter
Things appearing: decelerate into place.
exit
Things leaving: accelerate away.
sheet
Sheets and drawers sliding in.
fast · 160ms
Hover, press, color changes.
base · 240ms
Toggles, tabs, small moves.
slow · 480ms
Sheets, large moves.
slower · 720ms
Choreography: onboarding, multi-step reveals.

Tokens

CSSValueNotes
--v-shadow-raised0 1px 8px var(--v-shadow-color-raised)Cards, list rows, white buttons, the selected segment, knobs.
--v-shadow-floating0 8px 16px 8px var(--v-shadow-color-floating)Toasts, sheets, map pins, menus: anything above the content.
--v-shadow-highlightinset 0 0 8px var(--v-highlight)Inner white highlight on light surfaces (glassy panels).
--v-shadow-highlight-softinset 0 0 8px var(--v-highlight-soft)Softer inner highlight.
--v-shadow-glow-accent-2inset 0 0 13px 1px var(--v-glow-accent-2)Inner purple glow: the bot thinking or remembering.
--v-shadow-halo-accent-20 0 12px 4px var(--v-accent-2-border)Outer purple halo around a thin line (scan line).
--v-shadow-ring-accent0 0 0 3px var(--v-accent-tint-strong)Pressed primary button ring.
--v-shadow-ring-accent-20 0 0 2px var(--v-accent-2-border)Ring around a purple progress knob.
--v-blur-glass10pxControls over photos.
--v-blur-backdrop30pxWhatever sits behind a sheet or overlay.
--v-ease-standardcubic-bezier(0.2,0.75,0.25,1)Most transitions: things that move or change state.
--v-ease-entercubic-bezier(0.23,1,0.32,1)Things appearing: decelerate into place.
--v-ease-exitcubic-bezier(0.4,0,1,1)Things leaving: accelerate away.
--v-ease-sheetcubic-bezier(0.32,0.72,0,1)Sheets and drawers sliding in.
--v-dur-fast160msHover, press, color changes.
--v-dur-base240msToggles, tabs, small moves.
--v-dur-slow480msSheets, large moves.
--v-dur-slower720msChoreography: onboarding, multi-step reveals.