Behavior and time
Attributes, timelines, state lifecycles, fallbacks, accessibility and reduced motion.
@velora/css/motion-core
Core // the behavior layer
Velora Core is a host-agnostic motion engine. Attributes describe entrances, states, scroll progress and scene beats; the platform executes them with no animation runtime.
Act 02 // architecture
A Velora page becomes easier to author when every decision has an owner. The engine never chooses typography; the Skin never changes semantic intent; the Showcase never becomes a hidden dependency.
Attributes, timelines, state lifecycles, fallbacks, accessibility and reduced motion.
@velora/css/motion-core
Typography, grid, density, geometry, material, media treatment and motion personality.
@velora/css/theme
Real compositions that combine the public engine and a Skin without inventing a private API.
apps/showcase
Act 03 // choose the clock
The same entrance can play on load, follow the viewport, respond to document progress or wait for an interface state. Authors change the driver, not the component.
Runs from elapsed time when the page or component arrives.
vl-timeline="auto"Maps progress to the element crossing the viewport.
vl-timeline="view"Uses the root scroll position as the shared progress source.
vl-timeline="scroll"Native open, closed, hover and focus states drive the lifecycle.
vl-state="enter-exit"Act 04 // compose the channels
Each channel contributes one part of the final transform without overwriting its neighbours. This is the composition model behind simple elements and complete scenes.
vl-enter="fade-up"vl-state="smooth"vl-scroll="depth-drift"vl-hover="hover-lift"vl-exit="fade-out-up"Act 05 // direct responsibly
Start with a narrative voice, then let accessibility and platform support resolve the final expression. The readable state is always the baseline.
Balanced distance, duration and depth for product interfaces.
Opacity and small offsets preserve context without becoming the subject.
Layered depth and rhythm reserved for launches, stories and hero moments.
Reduced motion removes travel while keeping order, content and state intact.
No scroll timeline? Content renders in its final state. No intrinsic interpolation? The disclosure still opens. Reduced motion? Every element stays visible and ordered.
@supports (animation-timeline: view()) {
/* progressive direction */
}
@media (prefers-reduced-motion: reduce) {
/* readable final state */
}
Public support contract
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 enhance a working baseline.
CSS functions, scroll triggers, shape syntax and element-scoped View Transitions stay in the Catalog lab and never gate Core.
See native elements use these drivers and policies without a component runtime.
Open Elements