@joanroucoux/cairn-ui 0.6.4 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,63 @@
1
+ # Changelog
2
+
3
+ ## 0.7.0
4
+
5
+ Motion release: every animation of the Cairn V3 handoff (MOUVEMENT.md), on shared tokens, with a reduced-motion path.
6
+
7
+ ### Upgrade note
8
+
9
+ Import the new motion stylesheet after `theme.css`:
10
+
11
+ ```css
12
+ @import '@joanroucoux/cairn-ui/styles/tokens.css';
13
+ @import '@joanroucoux/cairn-ui/styles/theme.css';
14
+ @import '@joanroucoux/cairn-ui/styles/motion.css';
15
+ ```
16
+
17
+ The skeleton pulse keyframes moved there: without `motion.css`, `ui-skeleton` no longer pulses and the spinners no
18
+ longer turn.
19
+
20
+ ### Added
21
+
22
+ - Motion tokens in `tokens.css`: `--duration-spin`, `--duration-highlight`, `--toast-duration`, with slower or shorter
23
+ values under `prefers-reduced-motion`. `theme.css` sets the default transition curve and duration and adds the
24
+ `animate-cairn-spin` and `animate-cairn-pulse` utilities.
25
+ - `styles/motion.css`: the `cairn-spin`, `cairn-pulse`, `cairn-fade-in` and `cairn-fade-out` keyframes, the
26
+ `ui-enter-fade`, `ui-enter-fade-up`, `ui-enter-panel` and `ui-leave-fade` classes for Angular's `animate.enter` and
27
+ `animate.leave`, the root view transition and the theme-switch rule.
28
+ - `injectReducedMotion()`: a signal that follows `prefers-reduced-motion` live.
29
+ - `delayedState()`: a skeleton appears only after 150 ms and then stays at least 400 ms; `ui-async` uses it.
30
+ - `ui-toaster` and the `UiToasts` service: one confirmation message at a time, paused on hover and focus.
31
+ - `uiHighlight`: scrolls a changed element into view, holds the `--soft` fill, then fades it back.
32
+ - `uiFlipList`: slides the remaining children of a list into place when one is inserted or removed.
33
+ - `uiStaleLink`: a caption link in the stale tone, with an optional chevron.
34
+ - `ui-empty`: a centred empty state with a title, a hint and an action slot.
35
+ - `ui-row`: `busy` (spinner, `aria-busy`, clicks swallowed) and `unavailable` (half opacity, no hover or press,
36
+ `aria-disabled`, clicks swallowed).
37
+ - `ui-alert`: `fadeIn` (default on). Turn it off for an alert that is part of the page as it opens, such as an
38
+ error state after a load: it then shows without motion.
39
+ - `ui-action-bar` publishes its height as `--action-bar-height` on the root element while it is on the page.
40
+ - `ui-dialog`: a `closed` output that fires after the exit with its reason (`DialogCloseReason`), drag down to dismiss
41
+ the sheet, and a plain fade under reduced motion.
42
+
43
+ ### Changed
44
+
45
+ - Press, hover and focus sweep: rows, tabs, nav items, segmented options, buttons, avatars, back links, the async
46
+ retry, the dialog cross, chips, table rows and legend rows scale on press over `--duration-press` (their transition
47
+ lists name `scale`, the property Tailwind's `scale-*` utilities write) and fill on hover over `--duration-fast`. The
48
+ focus ring never transitions: menu items, the field reveal button and the switch only fade their colours.
49
+ - `ui-button` loading spinner is centred over the label, which keeps its width and its accessible name. The projected
50
+ content is now wrapped in a `<span class="contents">`: a consumer selector such as `[ui-button] > svg` or a
51
+ `:first-child` on the button content no longer matches; target `[ui-button] > span > svg` instead.
52
+ - `ui-menu` scales in from `--enter-scale` and back on desktop; the sheet fades without sliding under reduced motion.
53
+ - `ui-field` errors and `ui-alert` fade in, `ui-alert` fades out.
54
+ - `ui-toaster` sits 8px above `ui-action-bar` when one is on the page below 64rem, instead of covering its actions.
55
+ - `uiHighlight` honours `scroll-margin-bottom` as well as `scroll-margin-top`: a row under the tab bar or the action
56
+ bar counts as off screen and is scrolled out.
57
+ - Under reduced motion the root view transition is off (no cross-fade on a page change, in the app or across
58
+ documents).
59
+ - `ui-line-chart` morphs from the drawn shape to the new range over `--duration-base`, never on mount, and fades the
60
+ start label and dashed line around it. A new array with the same values, reduced motion or a `0ms` token shows the
61
+ new series at once.
62
+ - `ui-donut` scales the hovered slice and dims the others instead of thickening the stroke; under reduced motion
63
+ it only dims.