@ai-matrx/design-system 0.55.1 → 0.56.1

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/dist/styles.css CHANGED
@@ -453,50 +453,49 @@
453
453
  }
454
454
  }
455
455
  .matrx-motion-sheet-top[data-state="open"] {
456
- animation: matrx-slide-in-top var(--matrx-motion-duration-sheet)
457
- var(--matrx-motion-ease-out);
456
+ animation: matrx-slide-in-top var(--matrx-motion-duration-panel)
457
+ var(--matrx-motion-ease-panel);
458
458
  }
459
459
  .matrx-motion-sheet-top[data-state="closed"] {
460
- animation: matrx-slide-out-top var(--matrx-motion-duration-slow)
461
- var(--matrx-motion-ease-in);
460
+ animation: matrx-slide-out-top var(--matrx-motion-duration-panel)
461
+ var(--matrx-motion-ease-panel);
462
462
  }
463
463
  .matrx-motion-sheet-bottom[data-state="open"] {
464
- animation: matrx-slide-in-bottom var(--matrx-motion-duration-sheet)
465
- var(--matrx-motion-ease-out);
464
+ animation: matrx-slide-in-bottom var(--matrx-motion-duration-panel)
465
+ var(--matrx-motion-ease-panel);
466
466
  }
467
467
  .matrx-motion-sheet-bottom[data-state="closed"] {
468
- animation: matrx-slide-out-bottom var(--matrx-motion-duration-slow)
469
- var(--matrx-motion-ease-in);
468
+ animation: matrx-slide-out-bottom var(--matrx-motion-duration-panel)
469
+ var(--matrx-motion-ease-panel);
470
470
  }
471
471
  .matrx-motion-sheet-left[data-state="open"] {
472
- animation: matrx-slide-in-left var(--matrx-motion-duration-sheet)
473
- var(--matrx-motion-ease-out);
472
+ animation: matrx-slide-in-left var(--matrx-motion-duration-panel)
473
+ var(--matrx-motion-ease-panel);
474
474
  }
475
475
  .matrx-motion-sheet-left[data-state="closed"] {
476
- animation: matrx-slide-out-left var(--matrx-motion-duration-slow)
477
- var(--matrx-motion-ease-in);
476
+ animation: matrx-slide-out-left var(--matrx-motion-duration-panel)
477
+ var(--matrx-motion-ease-panel);
478
478
  }
479
479
  .matrx-motion-sheet-right[data-state="open"] {
480
- animation: matrx-slide-in-right var(--matrx-motion-duration-sheet)
481
- var(--matrx-motion-ease-out);
480
+ animation: matrx-slide-in-right var(--matrx-motion-duration-panel)
481
+ var(--matrx-motion-ease-panel);
482
482
  }
483
483
  .matrx-motion-sheet-right[data-state="closed"] {
484
- animation: matrx-slide-out-right var(--matrx-motion-duration-slow)
485
- var(--matrx-motion-ease-in);
484
+ animation: matrx-slide-out-right var(--matrx-motion-duration-panel)
485
+ var(--matrx-motion-ease-panel);
486
486
  }
487
487
  /* A `side="center"` Sheet has no edge to come from, so it fades like a
488
488
  dialog scrim rather than sliding from nowhere. */
489
489
  .matrx-motion-sheet-center[data-state="open"] {
490
- animation: matrx-fade-in var(--matrx-motion-duration-sheet)
491
- var(--matrx-motion-ease-out);
490
+ animation: matrx-fade-in var(--matrx-motion-duration-panel)
491
+ var(--matrx-motion-ease-panel);
492
492
  }
493
493
  .matrx-motion-sheet-center[data-state="closed"] {
494
- animation: matrx-fade-out var(--matrx-motion-duration-slow)
495
- var(--matrx-motion-ease-in);
494
+ animation: matrx-fade-out var(--matrx-motion-duration-panel)
495
+ var(--matrx-motion-ease-panel);
496
496
  }
497
- /* The mobile Dialog / CommandDialog bottom sheet: slides AND fades, at the
498
- dialog's 200ms rather than the Sheet's 500ms, because it is a dialog
499
- wearing sheet geometry and it opens from a tap, not from a nav gesture. */
497
+ /* The mobile Dialog / CommandDialog bottom sheet: slides AND fades on THE
498
+ panel motion (0.56.0, the motion standard) — a bottom sheet is a panel. */
500
499
  @keyframes matrx-bottom-sheet-in {
501
500
  from {
502
501
  opacity: 0;
@@ -518,12 +517,12 @@
518
517
  }
519
518
  }
520
519
  .matrx-motion-bottom-sheet[data-state="open"] {
521
- animation: matrx-bottom-sheet-in var(--matrx-motion-duration-base)
522
- var(--matrx-motion-ease-out);
520
+ animation: matrx-bottom-sheet-in var(--matrx-motion-duration-panel)
521
+ var(--matrx-motion-ease-panel);
523
522
  }
524
523
  .matrx-motion-bottom-sheet[data-state="closed"] {
525
- animation: matrx-bottom-sheet-out var(--matrx-motion-duration-base)
526
- var(--matrx-motion-ease-in);
524
+ animation: matrx-bottom-sheet-out var(--matrx-motion-duration-panel)
525
+ var(--matrx-motion-ease-panel);
527
526
  }
528
527
 
529
528
  /* --- poppers -----------------------------------------------------------
@@ -957,6 +956,26 @@
957
956
  animation: none;
958
957
  }
959
958
 
959
+ /* THE PANEL MOTION on the vaul Drawer (0.56.0, the motion standard). vaul
960
+ 1.1.2 injects `[data-vaul-drawer]{transition: transform .5s
961
+ cubic-bezier(.32,.72,0,1); animation-duration: .5s; …}` (0,1,0) and sets the
962
+ same pace INLINE when a released drag settles. Two attributes (0,2,0) beat
963
+ its sheet whatever the load order; `!important` on the two timing longhands
964
+ beats its inline settle WITHOUT touching `transition-property`, so vaul's
965
+ inline `transition: none` while a finger drags still means no motion. */
966
+ [data-vaul-drawer][data-vaul-drawer-direction] {
967
+ animation-duration: var(--matrx-motion-duration-panel) !important;
968
+ animation-timing-function: var(--matrx-motion-ease-panel) !important;
969
+ transition-duration: var(--matrx-motion-duration-panel) !important;
970
+ transition-timing-function: var(--matrx-motion-ease-panel) !important;
971
+ }
972
+ [data-vaul-overlay][data-vaul-snap-points][data-state] {
973
+ animation-duration: var(--matrx-motion-duration-panel);
974
+ animation-timing-function: var(--matrx-motion-ease-panel);
975
+ transition-duration: var(--matrx-motion-duration-panel);
976
+ transition-timing-function: var(--matrx-motion-ease-panel);
977
+ }
978
+
960
979
  .matrx-mobile-sheet > [data-slot="dialog-footer"] {
961
980
  padding-bottom: max(var(--dialog-pad, 0px), env(safe-area-inset-bottom, 0px));
962
981
  }
package/dist/tokens.css CHANGED
@@ -139,14 +139,21 @@
139
139
  switch: `prefers-reduced-motion: reduce` silences the animations
140
140
  outright in styles.css, regardless of these values.
141
141
 
142
- The numbers are the ones the primitives already carried as Tailwind
143
- `duration-*` utilities before the package owned the keyframes:
144
- poppers/tooltips 150ms, dialogs and overlays 200ms, a sheet closing
145
- 300ms and opening 500ms. */
142
+ The small-motion numbers are the ones the primitives already carried as
143
+ Tailwind `duration-*` utilities before the package owned the keyframes:
144
+ poppers/tooltips 150ms, dialogs and overlays 200ms, 300ms slow. */
146
145
  --matrx-motion-duration-fast: 150ms;
147
146
  --matrx-motion-duration-base: 200ms;
148
147
  --matrx-motion-duration-slow: 300ms;
149
- --matrx-motion-duration-sheet: 500ms;
148
+ /* THE PANEL MOTION (0.56.0) — the motion standard (AI Matrx
149
+ common-docs/policies/motion-standard.md, Arman 2026-10-02): every panel-like
150
+ slide — the Sheet on every side, the mobile Dialog bottom sheet, the vaul
151
+ Drawer and the Sidebar's collapse — opens AND closes on this one pair. The
152
+ NAMES are the package's contract; the VALUES are the host's (a host that
153
+ declares them unlayered wins over this layered default). An even
154
+ ease-in-out, never a spring; 0ms under reduced motion (below). */
155
+ --matrx-motion-duration-panel: 600ms;
156
+ --matrx-motion-ease-panel: cubic-bezier(0.4, 0, 0.2, 1);
150
157
  /* Enters decelerate (the surface arrives and settles); exits accelerate
151
158
  (it leaves and is gone). Linear on both — which is what
152
159
  `tailwindcss-animate` defaulted to — reads mechanical at these
@@ -263,4 +270,11 @@
263
270
  --background-texture: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2' viewBox='0 0 2 2'%3E%3Cpath fill='%23999' fill-opacity='0.07' d='M1 1h0.5v0.5H1V1z'%3E%3C/path%3E%3C/svg%3E");
264
271
  --card-texture: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2' viewBox='0 0 2 2'%3E%3Cpath fill='%23fff' fill-opacity='0.02' d='M1 1h0.5v0.5H1V1z'%3E%3C/path%3E%3C/svg%3E");
265
272
  }
273
+
274
+ /* Reduced motion means no panel slide (the motion standard, rule 6). */
275
+ @media (prefers-reduced-motion: reduce) {
276
+ :root {
277
+ --matrx-motion-duration-panel: 0ms;
278
+ }
279
+ }
266
280
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-matrx/design-system",
3
- "version": "0.55.1",
3
+ "version": "0.56.1",
4
4
  "description": "AI Matrx semantic React primitives shared across Vite, Next.js, desktop, and customer-built applications.",
5
5
  "type": "module",
6
6
  "license": "MIT",