@hanzo/ui 8.27.45 → 8.27.47
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/backends/gui/popover.cjs +7 -2
- package/dist/backends/gui/popover.d.ts +8 -1
- package/dist/backends/gui/popover.d.ts.map +1 -1
- package/dist/backends/gui/popover.js +7 -2
- package/dist/backends/gui/popover.js.map +1 -1
- package/dist/chat/Chat.cjs +7 -2
- package/dist/chat/Chat.d.ts +14 -1
- package/dist/chat/Chat.d.ts.map +1 -1
- package/dist/chat/Chat.js +7 -2
- package/dist/chat/Chat.js.map +1 -1
- package/dist/gallery.html +119 -5
- package/dist/glass.css +14 -0
- package/dist/marketing/Cta.cjs +9 -3
- package/dist/marketing/Cta.d.ts +7 -5
- package/dist/marketing/Cta.d.ts.map +1 -1
- package/dist/marketing/Cta.js +10 -4
- package/dist/marketing/Cta.js.map +1 -1
- package/dist/marketing/controls.cjs +112 -0
- package/dist/marketing/controls.d.ts +42 -0
- package/dist/marketing/controls.d.ts.map +1 -0
- package/dist/marketing/controls.js +108 -0
- package/dist/marketing/controls.js.map +1 -0
- package/dist/marketing/document.cjs +7 -0
- package/dist/marketing/document.d.ts +22 -0
- package/dist/marketing/document.d.ts.map +1 -0
- package/dist/marketing/document.js +5 -0
- package/dist/marketing/document.js.map +1 -0
- package/dist/marketing/host.cjs +39 -0
- package/dist/marketing/host.d.ts +21 -0
- package/dist/marketing/host.d.ts.map +1 -0
- package/dist/marketing/host.js +35 -0
- package/dist/marketing/host.js.map +1 -0
- package/dist/marketing/index.cjs +24 -1
- package/dist/marketing/index.d.ts +8 -2
- package/dist/marketing/index.d.ts.map +1 -1
- package/dist/marketing/index.js +7 -1
- package/dist/marketing/index.js.map +1 -1
- package/dist/marketing/loose.cjs +2 -0
- package/dist/marketing/loose.d.ts +41 -0
- package/dist/marketing/loose.d.ts.map +1 -0
- package/dist/marketing/loose.js +2 -0
- package/dist/marketing/loose.js.map +1 -0
- package/dist/marketing/pager.cjs +22 -0
- package/dist/marketing/pager.d.ts +22 -0
- package/dist/marketing/pager.d.ts.map +1 -0
- package/dist/marketing/pager.js +20 -0
- package/dist/marketing/pager.js.map +1 -0
- package/dist/marketing/pair.cjs +21 -0
- package/dist/marketing/pair.d.ts +22 -0
- package/dist/marketing/pair.d.ts.map +1 -0
- package/dist/marketing/pair.js +19 -0
- package/dist/marketing/pair.js.map +1 -0
- package/dist/marketing/run.cjs +28 -0
- package/dist/marketing/run.d.ts +33 -0
- package/dist/marketing/run.d.ts.map +1 -0
- package/dist/marketing/run.js +26 -0
- package/dist/marketing/run.js.map +1 -0
- package/dist/marketing/surface.cjs +76 -0
- package/dist/marketing/surface.d.ts +59 -0
- package/dist/marketing/surface.d.ts.map +1 -0
- package/dist/marketing/surface.js +70 -0
- package/dist/marketing/surface.js.map +1 -0
- package/dist/marketing/type.cjs +29 -2
- package/dist/marketing/type.d.ts +43 -4
- package/dist/marketing/type.d.ts.map +1 -1
- package/dist/marketing/type.js +24 -1
- package/dist/marketing/type.js.map +1 -1
- package/dist/styles/document.css +93 -0
- package/dist/styles/motion.css +52 -2
- package/dist/styles.css +118 -4
- package/dist/theme.css +66 -2
- package/package.json +3 -2
package/dist/styles/motion.css
CHANGED
|
@@ -11,13 +11,15 @@
|
|
|
11
11
|
itself. Every animation is off under `prefers-reduced-motion: reduce`.
|
|
12
12
|
|
|
13
13
|
rise enter: fade up 10px over 400ms FadeIn, Timeline, tooltips
|
|
14
|
+
`data-beat="n"` staggers it n x 70ms
|
|
14
15
|
fade opacity eases 240ms SlideOver's scrim
|
|
15
16
|
slide transform eases 260ms SlideOver's panel
|
|
16
17
|
drag a row eases into place while one is held Reorder
|
|
17
18
|
pulse opacity dims and returns, 2s Pulse, StatusDot, Skeleton
|
|
18
19
|
blink on/off, 1s Caret
|
|
19
20
|
shimmer a highlight sweeps a placeholder product Skeleton
|
|
20
|
-
unfold a sheet turns open about its hinge unfold()
|
|
21
|
+
unfold a sheet turns open about its hinge unfold()
|
|
22
|
+
run a light sweeps a set, child by child Run */
|
|
21
23
|
|
|
22
24
|
@keyframes rise {
|
|
23
25
|
from {
|
|
@@ -35,6 +37,17 @@
|
|
|
35
37
|
will-change: transform, opacity;
|
|
36
38
|
}
|
|
37
39
|
|
|
40
|
+
/* A staged entrance: `data-beat="n"` holds a rise back n beats of 70ms, so a set
|
|
41
|
+
that arrives together still reads in order. Reduced motion drops the
|
|
42
|
+
animation and the delay with it, so nothing waits hidden. */
|
|
43
|
+
[data-motion='rise'][data-beat='1'] { animation-delay: 70ms; }
|
|
44
|
+
[data-motion='rise'][data-beat='2'] { animation-delay: 140ms; }
|
|
45
|
+
[data-motion='rise'][data-beat='3'] { animation-delay: 210ms; }
|
|
46
|
+
[data-motion='rise'][data-beat='4'] { animation-delay: 280ms; }
|
|
47
|
+
[data-motion='rise'][data-beat='5'] { animation-delay: 350ms; }
|
|
48
|
+
[data-motion='rise'][data-beat='6'] { animation-delay: 420ms; }
|
|
49
|
+
[data-motion='rise'][data-beat='7'] { animation-delay: 490ms; }
|
|
50
|
+
|
|
38
51
|
[data-motion='fade'] {
|
|
39
52
|
transition: opacity 240ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
40
53
|
will-change: opacity;
|
|
@@ -115,8 +128,45 @@
|
|
|
115
128
|
--turn: 7deg;
|
|
116
129
|
}
|
|
117
130
|
|
|
131
|
+
/* A run: a light crosses a set of things that are all true at once (`<Run>`).
|
|
132
|
+
Each direct child is lit `data-beat` steps of `--run-step` after the first;
|
|
133
|
+
the sweep owns `color` and returns it to `--run-rest`. */
|
|
134
|
+
@keyframes run {
|
|
135
|
+
0%,
|
|
136
|
+
26%,
|
|
137
|
+
100% {
|
|
138
|
+
color: var(--run-rest, var(--neutral-400));
|
|
139
|
+
border-color: var(--neutral-800);
|
|
140
|
+
}
|
|
141
|
+
8% {
|
|
142
|
+
color: var(--foreground);
|
|
143
|
+
border-color: var(--muted-foreground);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
[data-motion='run'] > * {
|
|
148
|
+
animation: run 5.4s var(--ease-in-out) infinite;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
[data-motion='run'] > [data-beat='1'] { animation-delay: calc(1 * var(--run-step, 0.22s)); }
|
|
152
|
+
[data-motion='run'] > [data-beat='2'] { animation-delay: calc(2 * var(--run-step, 0.22s)); }
|
|
153
|
+
[data-motion='run'] > [data-beat='3'] { animation-delay: calc(3 * var(--run-step, 0.22s)); }
|
|
154
|
+
[data-motion='run'] > [data-beat='4'] { animation-delay: calc(4 * var(--run-step, 0.22s)); }
|
|
155
|
+
[data-motion='run'] > [data-beat='5'] { animation-delay: calc(5 * var(--run-step, 0.22s)); }
|
|
156
|
+
[data-motion='run'] > [data-beat='6'] { animation-delay: calc(6 * var(--run-step, 0.22s)); }
|
|
157
|
+
[data-motion='run'] > [data-beat='7'] { animation-delay: calc(7 * var(--run-step, 0.22s)); }
|
|
158
|
+
[data-motion='run'] > [data-beat='8'] { animation-delay: calc(8 * var(--run-step, 0.22s)); }
|
|
159
|
+
[data-motion='run'] > [data-beat='9'] { animation-delay: calc(9 * var(--run-step, 0.22s)); }
|
|
160
|
+
[data-motion='run'] > [data-beat='10'] { animation-delay: calc(10 * var(--run-step, 0.22s)); }
|
|
161
|
+
[data-motion='run'] > [data-beat='11'] { animation-delay: calc(11 * var(--run-step, 0.22s)); }
|
|
162
|
+
[data-motion='run'] > [data-beat='12'] { animation-delay: calc(12 * var(--run-step, 0.22s)); }
|
|
163
|
+
[data-motion='run'] > [data-beat='13'] { animation-delay: calc(13 * var(--run-step, 0.22s)); }
|
|
164
|
+
[data-motion='run'] > [data-beat='14'] { animation-delay: calc(14 * var(--run-step, 0.22s)); }
|
|
165
|
+
[data-motion='run'] > [data-beat='15'] { animation-delay: calc(15 * var(--run-step, 0.22s)); }
|
|
166
|
+
|
|
118
167
|
@media (prefers-reduced-motion: reduce) {
|
|
119
|
-
[data-motion]
|
|
168
|
+
[data-motion],
|
|
169
|
+
[data-motion='run'] > * {
|
|
120
170
|
animation: none;
|
|
121
171
|
transition: none;
|
|
122
172
|
}
|
package/dist/styles.css
CHANGED
|
@@ -1585,6 +1585,20 @@
|
|
|
1585
1585
|
}
|
|
1586
1586
|
}
|
|
1587
1587
|
|
|
1588
|
+
/* ── Solid — the one way out of the material ─────────────────────────────────
|
|
1589
|
+
A panel over something that moves (a menu over a streaming transcript) reads
|
|
1590
|
+
the motion through 72% frost. `<PopoverContent solid>` marks itself, and every
|
|
1591
|
+
popover opened from inside it, with `data-material="solid"`: the ground is
|
|
1592
|
+
design's opaque `--popover` and nothing behind is blurred into it. The rung's
|
|
1593
|
+
shadow, lit edge and prism lip stay, so it is the same surface at the same
|
|
1594
|
+
height with a solid fill. Declared after the material so the later rule wins
|
|
1595
|
+
between two !important declarations of equal weight. */
|
|
1596
|
+
[data-material="solid"] {
|
|
1597
|
+
background-color: var(--popover, #0f0f0f) !important;
|
|
1598
|
+
-webkit-backdrop-filter: none;
|
|
1599
|
+
backdrop-filter: none;
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1588
1602
|
/* ── Depth — three rungs, and the lit edge is the load-bearing half ──────────
|
|
1589
1603
|
A cast shadow is how a light page shows lift. On a near-black canvas it is
|
|
1590
1604
|
nearly free of information: black on near-black moves no pixels, so a raised
|
|
@@ -1805,13 +1819,15 @@
|
|
|
1805
1819
|
itself. Every animation is off under `prefers-reduced-motion: reduce`.
|
|
1806
1820
|
|
|
1807
1821
|
rise enter: fade up 10px over 400ms FadeIn, Timeline, tooltips
|
|
1822
|
+
`data-beat="n"` staggers it n x 70ms
|
|
1808
1823
|
fade opacity eases 240ms SlideOver's scrim
|
|
1809
1824
|
slide transform eases 260ms SlideOver's panel
|
|
1810
1825
|
drag a row eases into place while one is held Reorder
|
|
1811
1826
|
pulse opacity dims and returns, 2s Pulse, StatusDot, Skeleton
|
|
1812
1827
|
blink on/off, 1s Caret
|
|
1813
1828
|
shimmer a highlight sweeps a placeholder product Skeleton
|
|
1814
|
-
unfold a sheet turns open about its hinge unfold()
|
|
1829
|
+
unfold a sheet turns open about its hinge unfold()
|
|
1830
|
+
run a light sweeps a set, child by child Run */
|
|
1815
1831
|
|
|
1816
1832
|
@keyframes rise {
|
|
1817
1833
|
from {
|
|
@@ -1829,6 +1845,17 @@
|
|
|
1829
1845
|
will-change: transform, opacity;
|
|
1830
1846
|
}
|
|
1831
1847
|
|
|
1848
|
+
/* A staged entrance: `data-beat="n"` holds a rise back n beats of 70ms, so a set
|
|
1849
|
+
that arrives together still reads in order. Reduced motion drops the
|
|
1850
|
+
animation and the delay with it, so nothing waits hidden. */
|
|
1851
|
+
[data-motion='rise'][data-beat='1'] { animation-delay: 70ms; }
|
|
1852
|
+
[data-motion='rise'][data-beat='2'] { animation-delay: 140ms; }
|
|
1853
|
+
[data-motion='rise'][data-beat='3'] { animation-delay: 210ms; }
|
|
1854
|
+
[data-motion='rise'][data-beat='4'] { animation-delay: 280ms; }
|
|
1855
|
+
[data-motion='rise'][data-beat='5'] { animation-delay: 350ms; }
|
|
1856
|
+
[data-motion='rise'][data-beat='6'] { animation-delay: 420ms; }
|
|
1857
|
+
[data-motion='rise'][data-beat='7'] { animation-delay: 490ms; }
|
|
1858
|
+
|
|
1832
1859
|
[data-motion='fade'] {
|
|
1833
1860
|
transition: opacity 240ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
1834
1861
|
will-change: opacity;
|
|
@@ -1909,8 +1936,45 @@
|
|
|
1909
1936
|
--turn: 7deg;
|
|
1910
1937
|
}
|
|
1911
1938
|
|
|
1939
|
+
/* A run: a light crosses a set of things that are all true at once (`<Run>`).
|
|
1940
|
+
Each direct child is lit `data-beat` steps of `--run-step` after the first;
|
|
1941
|
+
the sweep owns `color` and returns it to `--run-rest`. */
|
|
1942
|
+
@keyframes run {
|
|
1943
|
+
0%,
|
|
1944
|
+
26%,
|
|
1945
|
+
100% {
|
|
1946
|
+
color: var(--run-rest, var(--neutral-400));
|
|
1947
|
+
border-color: var(--neutral-800);
|
|
1948
|
+
}
|
|
1949
|
+
8% {
|
|
1950
|
+
color: var(--foreground);
|
|
1951
|
+
border-color: var(--muted-foreground);
|
|
1952
|
+
}
|
|
1953
|
+
}
|
|
1954
|
+
|
|
1955
|
+
[data-motion='run'] > * {
|
|
1956
|
+
animation: run 5.4s var(--ease-in-out) infinite;
|
|
1957
|
+
}
|
|
1958
|
+
|
|
1959
|
+
[data-motion='run'] > [data-beat='1'] { animation-delay: calc(1 * var(--run-step, 0.22s)); }
|
|
1960
|
+
[data-motion='run'] > [data-beat='2'] { animation-delay: calc(2 * var(--run-step, 0.22s)); }
|
|
1961
|
+
[data-motion='run'] > [data-beat='3'] { animation-delay: calc(3 * var(--run-step, 0.22s)); }
|
|
1962
|
+
[data-motion='run'] > [data-beat='4'] { animation-delay: calc(4 * var(--run-step, 0.22s)); }
|
|
1963
|
+
[data-motion='run'] > [data-beat='5'] { animation-delay: calc(5 * var(--run-step, 0.22s)); }
|
|
1964
|
+
[data-motion='run'] > [data-beat='6'] { animation-delay: calc(6 * var(--run-step, 0.22s)); }
|
|
1965
|
+
[data-motion='run'] > [data-beat='7'] { animation-delay: calc(7 * var(--run-step, 0.22s)); }
|
|
1966
|
+
[data-motion='run'] > [data-beat='8'] { animation-delay: calc(8 * var(--run-step, 0.22s)); }
|
|
1967
|
+
[data-motion='run'] > [data-beat='9'] { animation-delay: calc(9 * var(--run-step, 0.22s)); }
|
|
1968
|
+
[data-motion='run'] > [data-beat='10'] { animation-delay: calc(10 * var(--run-step, 0.22s)); }
|
|
1969
|
+
[data-motion='run'] > [data-beat='11'] { animation-delay: calc(11 * var(--run-step, 0.22s)); }
|
|
1970
|
+
[data-motion='run'] > [data-beat='12'] { animation-delay: calc(12 * var(--run-step, 0.22s)); }
|
|
1971
|
+
[data-motion='run'] > [data-beat='13'] { animation-delay: calc(13 * var(--run-step, 0.22s)); }
|
|
1972
|
+
[data-motion='run'] > [data-beat='14'] { animation-delay: calc(14 * var(--run-step, 0.22s)); }
|
|
1973
|
+
[data-motion='run'] > [data-beat='15'] { animation-delay: calc(15 * var(--run-step, 0.22s)); }
|
|
1974
|
+
|
|
1912
1975
|
@media (prefers-reduced-motion: reduce) {
|
|
1913
|
-
[data-motion]
|
|
1976
|
+
[data-motion],
|
|
1977
|
+
[data-motion='run'] > * {
|
|
1914
1978
|
animation: none;
|
|
1915
1979
|
transition: none;
|
|
1916
1980
|
}
|
|
@@ -2486,13 +2550,15 @@ a svg,
|
|
|
2486
2550
|
itself. Every animation is off under `prefers-reduced-motion: reduce`.
|
|
2487
2551
|
|
|
2488
2552
|
rise enter: fade up 10px over 400ms FadeIn, Timeline, tooltips
|
|
2553
|
+
`data-beat="n"` staggers it n x 70ms
|
|
2489
2554
|
fade opacity eases 240ms SlideOver's scrim
|
|
2490
2555
|
slide transform eases 260ms SlideOver's panel
|
|
2491
2556
|
drag a row eases into place while one is held Reorder
|
|
2492
2557
|
pulse opacity dims and returns, 2s Pulse, StatusDot, Skeleton
|
|
2493
2558
|
blink on/off, 1s Caret
|
|
2494
2559
|
shimmer a highlight sweeps a placeholder product Skeleton
|
|
2495
|
-
unfold a sheet turns open about its hinge unfold()
|
|
2560
|
+
unfold a sheet turns open about its hinge unfold()
|
|
2561
|
+
run a light sweeps a set, child by child Run */
|
|
2496
2562
|
|
|
2497
2563
|
@keyframes rise {
|
|
2498
2564
|
from {
|
|
@@ -2510,6 +2576,17 @@ a svg,
|
|
|
2510
2576
|
will-change: transform, opacity;
|
|
2511
2577
|
}
|
|
2512
2578
|
|
|
2579
|
+
/* A staged entrance: `data-beat="n"` holds a rise back n beats of 70ms, so a set
|
|
2580
|
+
that arrives together still reads in order. Reduced motion drops the
|
|
2581
|
+
animation and the delay with it, so nothing waits hidden. */
|
|
2582
|
+
[data-motion='rise'][data-beat='1'] { animation-delay: 70ms; }
|
|
2583
|
+
[data-motion='rise'][data-beat='2'] { animation-delay: 140ms; }
|
|
2584
|
+
[data-motion='rise'][data-beat='3'] { animation-delay: 210ms; }
|
|
2585
|
+
[data-motion='rise'][data-beat='4'] { animation-delay: 280ms; }
|
|
2586
|
+
[data-motion='rise'][data-beat='5'] { animation-delay: 350ms; }
|
|
2587
|
+
[data-motion='rise'][data-beat='6'] { animation-delay: 420ms; }
|
|
2588
|
+
[data-motion='rise'][data-beat='7'] { animation-delay: 490ms; }
|
|
2589
|
+
|
|
2513
2590
|
[data-motion='fade'] {
|
|
2514
2591
|
transition: opacity 240ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
2515
2592
|
will-change: opacity;
|
|
@@ -2590,8 +2667,45 @@ a svg,
|
|
|
2590
2667
|
--turn: 7deg;
|
|
2591
2668
|
}
|
|
2592
2669
|
|
|
2670
|
+
/* A run: a light crosses a set of things that are all true at once (`<Run>`).
|
|
2671
|
+
Each direct child is lit `data-beat` steps of `--run-step` after the first;
|
|
2672
|
+
the sweep owns `color` and returns it to `--run-rest`. */
|
|
2673
|
+
@keyframes run {
|
|
2674
|
+
0%,
|
|
2675
|
+
26%,
|
|
2676
|
+
100% {
|
|
2677
|
+
color: var(--run-rest, var(--neutral-400));
|
|
2678
|
+
border-color: var(--neutral-800);
|
|
2679
|
+
}
|
|
2680
|
+
8% {
|
|
2681
|
+
color: var(--foreground);
|
|
2682
|
+
border-color: var(--muted-foreground);
|
|
2683
|
+
}
|
|
2684
|
+
}
|
|
2685
|
+
|
|
2686
|
+
[data-motion='run'] > * {
|
|
2687
|
+
animation: run 5.4s var(--ease-in-out) infinite;
|
|
2688
|
+
}
|
|
2689
|
+
|
|
2690
|
+
[data-motion='run'] > [data-beat='1'] { animation-delay: calc(1 * var(--run-step, 0.22s)); }
|
|
2691
|
+
[data-motion='run'] > [data-beat='2'] { animation-delay: calc(2 * var(--run-step, 0.22s)); }
|
|
2692
|
+
[data-motion='run'] > [data-beat='3'] { animation-delay: calc(3 * var(--run-step, 0.22s)); }
|
|
2693
|
+
[data-motion='run'] > [data-beat='4'] { animation-delay: calc(4 * var(--run-step, 0.22s)); }
|
|
2694
|
+
[data-motion='run'] > [data-beat='5'] { animation-delay: calc(5 * var(--run-step, 0.22s)); }
|
|
2695
|
+
[data-motion='run'] > [data-beat='6'] { animation-delay: calc(6 * var(--run-step, 0.22s)); }
|
|
2696
|
+
[data-motion='run'] > [data-beat='7'] { animation-delay: calc(7 * var(--run-step, 0.22s)); }
|
|
2697
|
+
[data-motion='run'] > [data-beat='8'] { animation-delay: calc(8 * var(--run-step, 0.22s)); }
|
|
2698
|
+
[data-motion='run'] > [data-beat='9'] { animation-delay: calc(9 * var(--run-step, 0.22s)); }
|
|
2699
|
+
[data-motion='run'] > [data-beat='10'] { animation-delay: calc(10 * var(--run-step, 0.22s)); }
|
|
2700
|
+
[data-motion='run'] > [data-beat='11'] { animation-delay: calc(11 * var(--run-step, 0.22s)); }
|
|
2701
|
+
[data-motion='run'] > [data-beat='12'] { animation-delay: calc(12 * var(--run-step, 0.22s)); }
|
|
2702
|
+
[data-motion='run'] > [data-beat='13'] { animation-delay: calc(13 * var(--run-step, 0.22s)); }
|
|
2703
|
+
[data-motion='run'] > [data-beat='14'] { animation-delay: calc(14 * var(--run-step, 0.22s)); }
|
|
2704
|
+
[data-motion='run'] > [data-beat='15'] { animation-delay: calc(15 * var(--run-step, 0.22s)); }
|
|
2705
|
+
|
|
2593
2706
|
@media (prefers-reduced-motion: reduce) {
|
|
2594
|
-
[data-motion]
|
|
2707
|
+
[data-motion],
|
|
2708
|
+
[data-motion='run'] > * {
|
|
2595
2709
|
animation: none;
|
|
2596
2710
|
transition: none;
|
|
2597
2711
|
}
|
package/dist/theme.css
CHANGED
|
@@ -1583,6 +1583,20 @@
|
|
|
1583
1583
|
}
|
|
1584
1584
|
}
|
|
1585
1585
|
|
|
1586
|
+
/* ── Solid — the one way out of the material ─────────────────────────────────
|
|
1587
|
+
A panel over something that moves (a menu over a streaming transcript) reads
|
|
1588
|
+
the motion through 72% frost. `<PopoverContent solid>` marks itself, and every
|
|
1589
|
+
popover opened from inside it, with `data-material="solid"`: the ground is
|
|
1590
|
+
design's opaque `--popover` and nothing behind is blurred into it. The rung's
|
|
1591
|
+
shadow, lit edge and prism lip stay, so it is the same surface at the same
|
|
1592
|
+
height with a solid fill. Declared after the material so the later rule wins
|
|
1593
|
+
between two !important declarations of equal weight. */
|
|
1594
|
+
[data-material="solid"] {
|
|
1595
|
+
background-color: var(--popover, #0f0f0f) !important;
|
|
1596
|
+
-webkit-backdrop-filter: none;
|
|
1597
|
+
backdrop-filter: none;
|
|
1598
|
+
}
|
|
1599
|
+
|
|
1586
1600
|
/* ── Depth — three rungs, and the lit edge is the load-bearing half ──────────
|
|
1587
1601
|
A cast shadow is how a light page shows lift. On a near-black canvas it is
|
|
1588
1602
|
nearly free of information: black on near-black moves no pixels, so a raised
|
|
@@ -1803,13 +1817,15 @@
|
|
|
1803
1817
|
itself. Every animation is off under `prefers-reduced-motion: reduce`.
|
|
1804
1818
|
|
|
1805
1819
|
rise enter: fade up 10px over 400ms FadeIn, Timeline, tooltips
|
|
1820
|
+
`data-beat="n"` staggers it n x 70ms
|
|
1806
1821
|
fade opacity eases 240ms SlideOver's scrim
|
|
1807
1822
|
slide transform eases 260ms SlideOver's panel
|
|
1808
1823
|
drag a row eases into place while one is held Reorder
|
|
1809
1824
|
pulse opacity dims and returns, 2s Pulse, StatusDot, Skeleton
|
|
1810
1825
|
blink on/off, 1s Caret
|
|
1811
1826
|
shimmer a highlight sweeps a placeholder product Skeleton
|
|
1812
|
-
unfold a sheet turns open about its hinge unfold()
|
|
1827
|
+
unfold a sheet turns open about its hinge unfold()
|
|
1828
|
+
run a light sweeps a set, child by child Run */
|
|
1813
1829
|
|
|
1814
1830
|
@keyframes rise {
|
|
1815
1831
|
from {
|
|
@@ -1827,6 +1843,17 @@
|
|
|
1827
1843
|
will-change: transform, opacity;
|
|
1828
1844
|
}
|
|
1829
1845
|
|
|
1846
|
+
/* A staged entrance: `data-beat="n"` holds a rise back n beats of 70ms, so a set
|
|
1847
|
+
that arrives together still reads in order. Reduced motion drops the
|
|
1848
|
+
animation and the delay with it, so nothing waits hidden. */
|
|
1849
|
+
[data-motion='rise'][data-beat='1'] { animation-delay: 70ms; }
|
|
1850
|
+
[data-motion='rise'][data-beat='2'] { animation-delay: 140ms; }
|
|
1851
|
+
[data-motion='rise'][data-beat='3'] { animation-delay: 210ms; }
|
|
1852
|
+
[data-motion='rise'][data-beat='4'] { animation-delay: 280ms; }
|
|
1853
|
+
[data-motion='rise'][data-beat='5'] { animation-delay: 350ms; }
|
|
1854
|
+
[data-motion='rise'][data-beat='6'] { animation-delay: 420ms; }
|
|
1855
|
+
[data-motion='rise'][data-beat='7'] { animation-delay: 490ms; }
|
|
1856
|
+
|
|
1830
1857
|
[data-motion='fade'] {
|
|
1831
1858
|
transition: opacity 240ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
1832
1859
|
will-change: opacity;
|
|
@@ -1907,8 +1934,45 @@
|
|
|
1907
1934
|
--turn: 7deg;
|
|
1908
1935
|
}
|
|
1909
1936
|
|
|
1937
|
+
/* A run: a light crosses a set of things that are all true at once (`<Run>`).
|
|
1938
|
+
Each direct child is lit `data-beat` steps of `--run-step` after the first;
|
|
1939
|
+
the sweep owns `color` and returns it to `--run-rest`. */
|
|
1940
|
+
@keyframes run {
|
|
1941
|
+
0%,
|
|
1942
|
+
26%,
|
|
1943
|
+
100% {
|
|
1944
|
+
color: var(--run-rest, var(--neutral-400));
|
|
1945
|
+
border-color: var(--neutral-800);
|
|
1946
|
+
}
|
|
1947
|
+
8% {
|
|
1948
|
+
color: var(--foreground);
|
|
1949
|
+
border-color: var(--muted-foreground);
|
|
1950
|
+
}
|
|
1951
|
+
}
|
|
1952
|
+
|
|
1953
|
+
[data-motion='run'] > * {
|
|
1954
|
+
animation: run 5.4s var(--ease-in-out) infinite;
|
|
1955
|
+
}
|
|
1956
|
+
|
|
1957
|
+
[data-motion='run'] > [data-beat='1'] { animation-delay: calc(1 * var(--run-step, 0.22s)); }
|
|
1958
|
+
[data-motion='run'] > [data-beat='2'] { animation-delay: calc(2 * var(--run-step, 0.22s)); }
|
|
1959
|
+
[data-motion='run'] > [data-beat='3'] { animation-delay: calc(3 * var(--run-step, 0.22s)); }
|
|
1960
|
+
[data-motion='run'] > [data-beat='4'] { animation-delay: calc(4 * var(--run-step, 0.22s)); }
|
|
1961
|
+
[data-motion='run'] > [data-beat='5'] { animation-delay: calc(5 * var(--run-step, 0.22s)); }
|
|
1962
|
+
[data-motion='run'] > [data-beat='6'] { animation-delay: calc(6 * var(--run-step, 0.22s)); }
|
|
1963
|
+
[data-motion='run'] > [data-beat='7'] { animation-delay: calc(7 * var(--run-step, 0.22s)); }
|
|
1964
|
+
[data-motion='run'] > [data-beat='8'] { animation-delay: calc(8 * var(--run-step, 0.22s)); }
|
|
1965
|
+
[data-motion='run'] > [data-beat='9'] { animation-delay: calc(9 * var(--run-step, 0.22s)); }
|
|
1966
|
+
[data-motion='run'] > [data-beat='10'] { animation-delay: calc(10 * var(--run-step, 0.22s)); }
|
|
1967
|
+
[data-motion='run'] > [data-beat='11'] { animation-delay: calc(11 * var(--run-step, 0.22s)); }
|
|
1968
|
+
[data-motion='run'] > [data-beat='12'] { animation-delay: calc(12 * var(--run-step, 0.22s)); }
|
|
1969
|
+
[data-motion='run'] > [data-beat='13'] { animation-delay: calc(13 * var(--run-step, 0.22s)); }
|
|
1970
|
+
[data-motion='run'] > [data-beat='14'] { animation-delay: calc(14 * var(--run-step, 0.22s)); }
|
|
1971
|
+
[data-motion='run'] > [data-beat='15'] { animation-delay: calc(15 * var(--run-step, 0.22s)); }
|
|
1972
|
+
|
|
1910
1973
|
@media (prefers-reduced-motion: reduce) {
|
|
1911
|
-
[data-motion]
|
|
1974
|
+
[data-motion],
|
|
1975
|
+
[data-motion='run'] > * {
|
|
1912
1976
|
animation: none;
|
|
1913
1977
|
transition: none;
|
|
1914
1978
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "8.27.
|
|
3
|
+
"version": "8.27.47",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
|
|
6
6
|
"exports": {
|
|
@@ -247,6 +247,7 @@
|
|
|
247
247
|
"default": "./dist/telemetry.js"
|
|
248
248
|
},
|
|
249
249
|
"./styles/motion.css": "./dist/styles/motion.css",
|
|
250
|
+
"./styles/document.css": "./dist/styles/document.css",
|
|
250
251
|
"./package.json": "./package.json",
|
|
251
252
|
"./tw": {
|
|
252
253
|
"types": "./dist/tw.d.ts",
|
|
@@ -412,7 +413,7 @@
|
|
|
412
413
|
"license": "Apache-2.0 OR MIT",
|
|
413
414
|
"author": "Hanzo AI <dev@hanzo.ai>",
|
|
414
415
|
"scripts": {
|
|
415
|
-
"build": "rm -rf dist dist-cjs && tsc -p tsconfig.build.json && tsc -p tsconfig.cjs.json --noCheck && mkdir -p dist/styles && node scripts/compose-theme.mjs && cp src/styles/motion.css dist/styles/motion.css && cp src/next.cjs dist/next.cjs && node scripts/postbuild.mjs && node scripts/gen-css.mjs",
|
|
416
|
+
"build": "rm -rf dist dist-cjs && tsc -p tsconfig.build.json && tsc -p tsconfig.cjs.json --noCheck && mkdir -p dist/styles && node scripts/compose-theme.mjs && cp src/styles/motion.css dist/styles/motion.css && cp src/styles/document.css dist/styles/document.css && cp src/next.cjs dist/next.cjs && node scripts/postbuild.mjs && node scripts/gen-css.mjs",
|
|
416
417
|
"clean": "rm -rf dist dist-cjs types",
|
|
417
418
|
"gen:primitives": "node scripts/gen-primitives.mjs",
|
|
418
419
|
"tc": "tsc --noEmit",
|