Ballmac UI home

Motion settings

The six motion settings with their variables, ranges and defaults, and the five ready-made motion feels.

On this page

This page is generated from packages/theme-engine/src/motion.ts. To change it, change the source and run pnpm docs:generate.

A theme sets how a product moves with six settings. Each is a CSS variable on :root. The defaults reproduce Ballmac UI exactly as it was, so adding the theme changes nothing until you change a setting. For what they do together, see How motion works.

Settings

VariableRangeDefaultWhat it does
--bm-speed0.5 to 2.51Playback speed. 1 is the default, 2 halves every duration, 0.5 doubles them.
--bm-bounce0 to 10.25Springiness, 0 (settles with no overshoot) to 1 (clearly bouncy).
--bm-travel0 to 21How far things travel when they enter or move, as a multiple of the default distance.
--bm-hover0 to 21How strongly controls answer a hover or press: lift, press depth.
--bm-stagger0 to 21The delay between items in a staggered list, as a multiple of the default step.
--bm-ambient1 or 01Decorative loops (shimmer, floating, pulsing). Off pauses them.

Reduced motion has its own setting, reduce: "system" follows the visitor's setting. "always" ships the reduced values to everyone.

Ready-made feels

Each is a registry theme that changes movement only and leaves your colors alone. Installing another replaces it.

pnpm dlx shadcn@latest add @ballmac/motion-calm

Native

The Ballmac default: short fades, a soft settle on spatial moves and a light lift on hover. Reads as the platform, not as an effect. Install: @ballmac/motion-native.

SpeedBounceTravelHoverStaggerLoops
10.25111On

Calm

Longer, softer transitions with no bounce and short travel. Suits products people use for a long time, like editors, health and finance. Install: @ballmac/motion-calm.

SpeedBounceTravelHoverStaggerLoops
0.7500.70.51.4On

Snappy

Short durations, tight stagger and very little bounce. Suits dense tools and dashboards where speed is the feature. Install: @ballmac/motion-snappy.

SpeedBounceTravelHoverStaggerLoops
1.60.050.70.80.5Off

Playful

Clear overshoot, longer travel and a pronounced hover lift. Suits consumer apps, creative tools and marketing pages. Install: @ballmac/motion-playful.

SpeedBounceTravelHoverStaggerLoops
1.10.81.41.51.2On

Still

Ships the reduced-motion values to every visitor: no travel, no lift, no loops, no bounce. Opacity changes stay so state remains visible. Install: @ballmac/motion-still.

SpeedBounceTravelHoverStaggerLoops
20000.4Off