Core owns behavior—not the look. Skins voice it. Showcase proves it.
HTML states intent.
CSS directs it.
Act 01 // the behavior layer
Scroll this page — one pinned track, eight beats. Attributes declare entrances, clocks, channels and policy. No animation runtime; only the browser.
Use the bussola (right) or keep scrolling. Each chapter holds copy while scroll scrubs the layer stack.
Act 02 // architecture
One interface.
Three owners.
Behavior and time
Attributes, timelines, state lifecycles, fallbacks, accessibility and reduced motion.
@velora/css/motion-core
Product voice
Typography, grid, density, geometry, material, media and motion personality.
@velora/css/theme
Narrative proof
Real compositions combining the public engine and a Skin—no private API.
apps/showcase
- Core
- Skin
- Showcase
- Contract
- Proof
Act 03 // choose the clock
The effect says what.
The timeline says when.
vl-timeline="auto" — opening beat from elapsed time.
- Auto
- View
- Scroll
- State
- Scene
Act 04 // compose the channels
One card.
Five jobs.
Channel stack · compose
Channels liveArrive with hierarchy
Inspect ownership
Each channel contributes one transform job without overwriting its neighbours.
Pointer and lifecycle keep independent voices on the same card.
base → enter → scroll → loop → hover → state → exit
Act 05 // direct responsibly
Motion is a policy, not a pile of durations.
Start with a narrative voice. Accessibility and platform support resolve the final expression. The readable state is always the baseline.
vl-motion="standard"
Clear and useful
Product interfaces stay measured.
vl-motion="cinematic"
Directed emphasis
vl-motion="still"
Readable by default
Order without travel.
Semantic content, public attributes, page and state transitions, scroll-driven motion, popover/dialog and reduced-motion behavior.
calc-size(), customizable select, anchor positioning, scroll markers, sibling-index() and motion paths.
Catalog lab only—never gates Core.
See native elements use these drivers and policies without a component runtime.
Open Elements