Skip to content
On this page In short

Changelog · latest

@codeatlasdev/ui 4.3.0

2 changes. This release has no written post; the list below is generated from the changelog.

Release 4.3.0Three sketchbook pages stacked and slightly fanned, the front one tabbed with the version number and shaded with pencil hatching in the corner.4.3.0

In short

  1. Demo sidecars accept names (motion vocabulary) and motion (exac... Demo sidecars accept `names` (motion vocabulary) and `motion` (exact property, duration, easing, delay, stagger, spring).
  2. MotionStage and the MotionCtx type: the frame of a motion demo. `MotionStage` and the `MotionCtx` type: the frame of a motion demo.

Upgrade

Published under the latest dist-tag.

bun
bash
bun add @codeatlasdev/[email protected]
npm
bash
npm install @codeatlasdev/[email protected]
pnpm
bash
pnpm add @codeatlasdev/[email protected]
yarn
bash
yarn add @codeatlasdev/[email protected]

Then run your checks. Moving between majors? bunx @codeatlasdev/ui migrate --from <major> --to <major> lists what to change, and agents get the same data from the MCP tool get_migration. The migration notes per major are inUpgrading.

Changesets

### Minor Changes

- a1c0d04: Demo sidecars accept `names` (motion vocabulary) and `motion` (exact property, duration, easing, delay, stagger, spring). They are printed in `e/NNN.txt` and `p/NNN.txt`, carried in `catalog.json` and `catalog.tsv`, and `ca-ui-mcp` `search_demos` matches names and aliases before summary and tags.
- a1c0d04: `MotionStage` and the `MotionCtx` type: the frame of a motion demo. It autoplays only while at least half of it is in view and the tab is visible, hands control to the user on pointer, key or focus (autoplay stops, Replay appears), always shows a Pause button with `aria-pressed`, and under `prefers-reduced-motion` never autoplays and tells the demo to render its final state (`ctx.reduced`). `ctx.cycle` increments each loop so a demo can re-run its animation. Labels come from the i18n catalog (`motionStage.pause`, `motionStage.replay`) and can be overridden with `pauseLabel` / `replayLabel`.