--ease-standard cubic-bezier(0.2, 0, 0, 1)Default for on-screen change — color, position, size tweaks.
Animation tokens and patterns for every Koder UI — 5 easing curves, 5 duration tokens, transition patterns, and the reduced-motion contract.
Every deterministic transition picks one of five canonical curves. The SVG below traces each curve; the box on the right replays its movement on click.
--ease-standard cubic-bezier(0.2, 0, 0, 1)Default for on-screen change — color, position, size tweaks.
--ease-decelerate cubic-bezier(0, 0, 0, 1)Entering — element arriving on screen (modal, drawer in).
--ease-accelerate cubic-bezier(0.3, 0, 1, 1)Exiting — element leaving the screen (modal close, drawer out).
--ease-emphasize cubic-bezier(0.2, 0, 0, 1)High-attention motion — container transform, hero choreography.
--linear linearIndefinite motion only — loaders, progress, looping animation.
Curves match specs/themes/motion/easing-duration.kmd §R2. Click any box to replay.
Five canonical durations covering acknowledgement (instant) through marketing-hero choreography (long). Defaults shown match the material3 preset; presets like terminal_classic override to 0 ms.
--motion-instant 50 ms0–50 ms
Focus ring, ripple onset, immediate ack.
--motion-fast 150 ms100–200 ms
Hover, switch toggle, button press.
--motion-medium 250 ms200–300 ms
Modal entry/exit, drawer slide.
--motion-slow 400 ms300–500 ms
Coordinated multi-element (FAB morph), page transition.
--motion-long 600 ms500–700 ms
Onboarding choreography, hero animation (landing only).
Tokens match specs/themes/motion/easing-duration.kmd §R1. Click any bar to replay.
Seven patterns ship with CSS-only previews — the full Material parity baseline from transitions.kmd §R1. Stateful gestures (mid-flight interrupt, drag-to-dismiss) remain on the Flutter Web embed track.
fast · standardDisappear/appear with no spatial implication. Default for opacity-only changes.
medium · decelerateElement zooming into view — modal, FAB expanding, badge growth.
medium · decelerateDrawer, bottom sheet, page transition. Decelerate in, accelerate out.
slow · emphasizeCard or thumbnail morphs into a full detail page — Material's signature shared-element transition.
medium · standardStepwise navigation (onboarding, wizard, step indicator). Outgoing slides + fades out; incoming slides + fades in along the same axis.
medium · decelerateStack-based nav (mobile back gesture). Incoming pane slides over the previous one, which dims and recedes slightly.
fast · standardTab switch within the same context. Old and new overlap briefly.
Sampled from specs/themes/motion/transitions.kmd §R1. Full pattern catalog →
Per-state choreography from transitions.kmd §R2 — the duration + easing applied when a user interacts with an element. Each demo replays the spec-defined motion on click.
fast · standardPointer enters / leaves. Color or elevation tweens fast; no spatial change.
instant · standardKeyboard focus arrives. 50 ms ring fade-in — feels instant, never delayed.
fast in · medium outTouch or click. Scale 0.97 in fast; back to 1 over medium so the rebound is felt.
medium · standardDrag start — elevation +2 with slight rotation. Drag end mirrors back.
fast · standardItem picked. Background tints over fast — accent overlay at 28% mix.
medium · standardOpacity fades to 0.38 — Material's standard disabled value. Pointer-events stay live in the demo so you can replay it.
Source: specs/themes/motion/transitions.kmd §R2.
Spring tokens approximate physics-based motion via CSS `linear()` keyframes. Overshoot and settle are visible against the cubic-bezier transitions above. Browsers without linear() support fall back to ease-out cleanly.
--kds-motion-spring-spatial-fastCrisp settle, ~700 ms. Use for small UI moves: chip slide, switch thumb travel.
--kds-motion-spring-spatial-defaultVisible overshoot. Use for full-card or panel moves where the rebound reads as physicality.
--kds-motion-spring-effect-defaultFor non-spatial effects (fade, scale, color shift). Tighter curve; no overshoot.
Three of six tokens shown — full catalog and Compose/Flutter bindings live in physics.kmd §springs →
`animation-timeline: scroll()` / `view()` bind animation progress to scroll position. The blob below morphs as it enters and leaves the viewport — no time loop, the user is in control.
Modern Chromium/Safari/Firefox; older browsers see a static blob via @supports fallback.
When the OS reports `prefers-reduced-motion: reduce`, every animation collapses to instant. Vestibular safety is not optional — the same content must still convey state change without movement.
Ball pulses at 600 ms duration with ease-standard curve.
Same content, zero animation — duration collapses to 0 ms.
Contract: spec/themes/motion/physics.kmd §R1. Read the reduced-motion contract →
Canonical motion applied to concrete UI shapes — how each widget type animates in a Koder product. CSS-only previews; production widget implementations live in `engines/sdk/koder_kit`.
Click any demo to replay the animation.
Elaborate multi-color compositions — aurora bands, color wheels, lava lamps, confetti, equalizers, RGB-split glitch, neon rings, mosaics. Beyond utility widgets.
3 colored gradient bands waving on offset cycles. Hero atmosphere / empty-state background.
Conic-gradient spinner showing the 10-step hue cycle. Loading / theme picker.
4 colored blobs morph + drift; blur + contrast filter blends them into one organic mass.
18 colored particles falling with rotation + stagger. Success / celebration.
12 colored bars bouncing at desynced cadences. Audio playback / activity indicator.
RGB-split layers oscillating on stepped timing. Cyber/error/redacted aesthetic.
Conic-gradient halo rotating around a dark core. Avatar / brand mark / focus indicator.
5×5 colored cells flipping in stagger. Loading splash / data refresh / page transition.
Click any demo to start. All CSS-only; reduced-motion disables.
Cursor-tracking radial highlight. Hover any tile below and the highlight follows the pointer. Pointer-only signature — disabled by reduced-motion + skipped on touch surfaces.
Source: specs/themes/motion/reveal.kmd.
Type to search. Press / from anywhere.