[3.4.2] — 2026-06-18 — Motion system + buttery component retrofit
The signature "hard look, buttery feel" release. Neubrutalism's reputation is harsh and static — this patch keeps the hard visual language (3px borders, 4px offset shadows, sharp corners) but gives every interaction a premium, settled motion so the kit feels world-class to use.
Highlights
✨ Motion system (React). New motion, motion-core, and motion-react registry items. A framework-agnostic, zero-runtime CSS core (--bk-* tokens, canonical keyframes, a reduced-motion guard) drives six signature recipes — press, stamp-in, shake, reveal, slide-hard, pulse-shadow — exposed through <Motion>, <Reveal>, <Stagger> components plus useShake / useViewTransition hooks. SSR-safe. Live docs at /components/motion.
✨ Buttery retrofit, by default (React + Vue). Button, Card, Input, Toggle, and Switch now route their press/hover/focus through a shared .bk-interactive timing on a new snap easing curve — the chunky shadow-collapse settles with a small overshoot instead of a flat slide. Easing is split: overshoot applies only to transform/box-shadow, while colour/border/opacity stay on a smooth ease-out (no hover flicker).
🩹 .bk-press press choreography. Animates transform + a hard offset box-shadow (composes correctly with a background colour), replacing an earlier pseudo-element approach that could invert under the hover transform.
♿ Reduced-motion throughout. Every recipe and the .bk-interactive timing collapse to near-instant under prefers-reduced-motion: reduce; reveals show their content immediately.
Notes
- The Vue
<Motion>/<Reveal>adapter is not in this release — the buttery retrofit ships for Vue now; the Vue adapter components follow in a focused update.
Bumps
- React:
3.4.1 → 3.4.2 - Vue:
3.2.1 → 3.2.2