@nxgt/material 3.5.0 → 3.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 +92 -0
- package/README.md +46 -1
- package/dist/components/components.css +2 -0
- package/dist/components/theme-tokens.css +84 -72
- package/dist/components/tones/tokens.css +5 -5
- package/dist/components/ui/display/chip/chip-hairline.css +1 -1
- package/dist/components/ui/layout/sidebar/sidebar-tokens.css +1 -1
- package/dist/components/ui/overlays/dialog/dialog.css +2 -2
- package/dist/components/ui/primitives/field-box/field-box-tokens.css +1 -1
- package/dist/components/ui/primitives/toggle-group/toggle-group-segmented.css +2 -2
- package/dist/components/ui/primitives/toggle-group/toggle-group-separate.css +1 -1
- package/dist/components/ui/widgets/drawing/drawing-animate.css +123 -0
- package/dist/components/ui/widgets/drawing/drawing.css +459 -0
- package/dist/{components-CXpL1zEs.js → components-BX4icy-g.js} +734 -734
- package/dist/components.js +16 -16
- package/dist/{dialog-JQT6iETD.js → dialog-DdJ1C4BR.js} +168 -168
- package/dist/dnd.js +1 -1
- package/dist/draw-animate.js +106 -0
- package/dist/draw-png.js +2 -0
- package/dist/draw-sketch.js +38 -0
- package/dist/draw.js +65 -0
- package/dist/drawing-B8VuG7nx.js +390 -0
- package/dist/drawing-context-CeKeZE6b.js +10 -0
- package/dist/editor.js +110 -110
- package/dist/{icon-badge-C30yKsAM.js → icon-badge-Bb5-73XP.js} +18 -18
- package/dist/{icon-button-BXlI3DJ_.js → icon-button-5A6Mrj6w.js} +60 -90
- package/dist/lib/components/ui/display/shape/use-shape-morph.d.ts +1 -0
- package/dist/lib/components/ui/widgets/drawing/drawing-a11y.d.ts +20 -0
- package/dist/lib/components/ui/widgets/drawing/drawing-context.d.ts +23 -0
- package/dist/lib/components/ui/widgets/drawing/drawing-types.d.ts +63 -0
- package/dist/lib/components/ui/widgets/drawing/drawing.d.ts +17 -0
- package/dist/lib/components/ui/widgets/drawing/index.d.ts +5 -0
- package/dist/lib/components/ui/widgets/drawing/partials/drawing-root.d.ts +17 -0
- package/dist/lib/components/ui/widgets/drawing/partials/interactive-node.d.ts +22 -0
- package/dist/lib/components/ui/widgets/drawing/partials/primitives/content.d.ts +20 -0
- package/dist/lib/components/ui/widgets/drawing/partials/primitives/path.d.ts +29 -0
- package/dist/lib/components/ui/widgets/drawing/partials/primitives/primitive.d.ts +19 -0
- package/dist/lib/components/ui/widgets/drawing/partials/primitives/shapes.d.ts +18 -0
- package/dist/lib/components/ui/widgets/drawing/partials/react-attrs.d.ts +5 -0
- package/dist/lib/components/ui/widgets/drawing/partials/ring.d.ts +9 -0
- package/dist/lib/components/ui/widgets/drawing/partials/svg-tree.d.ts +29 -0
- package/dist/lib/components/ui/widgets/drawing/use-exact-text.d.ts +16 -0
- package/dist/lib/draw/index.d.ts +32 -0
- package/dist/lib/draw-animate/index.d.ts +19 -0
- package/dist/lib/draw-animate/morph-drawing.d.ts +32 -0
- package/dist/lib/draw-animate/reduced-motion.d.ts +2 -0
- package/dist/lib/draw-animate/use-drawing-controls.d.ts +27 -0
- package/dist/lib/draw-animate/use-scene-morph.d.ts +15 -0
- package/dist/lib/draw-png/index.d.ts +11 -0
- package/dist/lib/draw-sketch/index.d.ts +17 -0
- package/dist/lib/draw-sketch/sketch.d.ts +19 -0
- package/dist/lib/print/components/print-drawing.d.ts +16 -0
- package/dist/lib/print/index.d.ts +2 -1
- package/dist/main.js +21 -21
- package/dist/map.js +63 -63
- package/dist/material.css +1 -1
- package/dist/pdf-reader.js +1 -1
- package/dist/print.js +123 -115
- package/dist/{public-Cde8_SN8.js → public-CBlV2XuA.js} +742 -742
- package/dist/{sortable-provider-DYlpq8lP.js → sortable-provider-BvD98s8Y.js} +19 -19
- package/dist/{use-chat-composer-BwpSgP_D.js → use-chat-composer-BhdPNmYm.js} +912 -911
- package/dist/use-shape-morph-BKA_R5P5.js +35 -0
- package/docs/README.md +1 -0
- package/docs/components/data-display.md +2 -2
- package/docs/components/rich-widgets.md +196 -0
- package/docs/guides/drawing.md +499 -0
- package/docs/guides/printing.md +47 -0
- package/docs/guides/theming.md +86 -43
- package/docs/previews/rich-widgets-drawing.webp +0 -0
- package/docs/roadmap.md +17 -0
- package/docs/troubleshooting.md +166 -2
- package/lib/components/components.css +2 -0
- package/lib/components/theme-tokens.css +84 -72
- package/lib/components/tones/tokens.css +5 -5
- package/lib/components/ui/display/chip/chip-hairline.css +1 -1
- package/lib/components/ui/layout/sidebar/sidebar-tokens.css +1 -1
- package/lib/components/ui/overlays/dialog/dialog.css +2 -2
- package/lib/components/ui/primitives/field-box/field-box-tokens.css +1 -1
- package/lib/components/ui/primitives/toggle-group/toggle-group-segmented.css +2 -2
- package/lib/components/ui/primitives/toggle-group/toggle-group-separate.css +1 -1
- package/lib/components/ui/widgets/drawing/drawing-animate.css +123 -0
- package/lib/components/ui/widgets/drawing/drawing.css +459 -0
- package/package.json +22 -2
|
@@ -3,52 +3,59 @@
|
|
|
3
3
|
* after importing the stylesheet, under the same selectors. */
|
|
4
4
|
:root {
|
|
5
5
|
--radius: 0.625rem;
|
|
6
|
-
--background: oklch(
|
|
7
|
-
--foreground: oklch(0.
|
|
6
|
+
--background: oklch(0.973 0.008 293.9);
|
|
7
|
+
--foreground: oklch(0.227 0.017 290);
|
|
8
8
|
--card: oklch(1 0 0);
|
|
9
|
-
--card-foreground: oklch(0.
|
|
9
|
+
--card-foreground: oklch(0.227 0.017 290);
|
|
10
10
|
--strix: oklch(45.91% 0.1864 310.75);
|
|
11
11
|
--popover: oklch(1 0 0);
|
|
12
|
-
--popover-foreground: oklch(0.
|
|
12
|
+
--popover-foreground: oklch(0.227 0.017 290);
|
|
13
13
|
--primary: oklch(46% 0.1135 276.35);
|
|
14
14
|
--primary-foreground: oklch(0.984 0.003 247.858);
|
|
15
15
|
/* Primary drawn as text or an icon on a normal surface (`text-primary-text`):
|
|
16
|
-
the colour
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
the colour mixed 4 % toward black in light, which keeps it 7.3:1 or more on
|
|
17
|
+
the violet page (7.9:1 on a Card; the colour itself gives 6.8:1 on the
|
|
18
|
+
page); the dark theme lifts it. */
|
|
19
|
+
--primary-text: color-mix(in oklab, var(--primary) 96%, black);
|
|
20
|
+
/* --secondary, --success and --info are 0.02 darker than before: on the
|
|
21
|
+
violet page tint (--background, 97.3 %) their own 15 % tonal tint gave the
|
|
22
|
+
text 4.3 to 4.5:1; now 4.7:1 or more on the page and on a Card. */
|
|
23
|
+
--secondary: oklch(48% 0.1135 245.65);
|
|
19
24
|
--secondary-foreground: oklch(0.984 0.003 247.858);
|
|
20
|
-
--muted: oklch(0.
|
|
21
|
-
--muted-foreground: oklch(0.
|
|
25
|
+
--muted: oklch(0.955 0.012 292);
|
|
26
|
+
--muted-foreground: oklch(0.478 0.032 292);
|
|
22
27
|
/* Non-text (WCAG 1.4.11): the empty part of a slider, a meter, a drawer
|
|
23
28
|
handle. Light keeps the pale track; the value reads from the thumb. */
|
|
24
|
-
--track: oklch(0.
|
|
29
|
+
--track: oklch(0.955 0.012 292);
|
|
25
30
|
--track-fill: var(--primary);
|
|
26
|
-
--tooltip: oklch(0.446 0.043
|
|
31
|
+
--tooltip: oklch(0.446 0.043 291);
|
|
27
32
|
--tooltip-foreground: oklch(1 0 0);
|
|
28
|
-
--accent: oklch(0.
|
|
29
|
-
--accent-foreground: oklch(0.
|
|
33
|
+
--accent: oklch(0.91 0.016 293);
|
|
34
|
+
--accent-foreground: oklch(0.227 0.017 290);
|
|
30
35
|
/* Darker than the dark theme's: near-white text on a filled error surface
|
|
31
36
|
reaches 4.8:1 (4.6 at 0.577), and the colour as text 5.0:1 on white. */
|
|
32
37
|
--error: oklch(0.56 0.245 27.325);
|
|
33
38
|
--error-foreground: oklch(0.984 0.003 247.858);
|
|
34
39
|
/* Error drawn as text (a field's message, HelperText, a focused error menu
|
|
35
|
-
item):
|
|
36
|
-
--error itself gives 5.0 and 4.2:1. */
|
|
37
|
-
--error-text: color-mix(in oklab, var(--error)
|
|
40
|
+
item): 6.0:1 on white and 5.0:1 on the menu's bg-error/10 tint (4.7:1 on that
|
|
41
|
+
tint over the violet page), where --error itself gives 5.0 and 4.2:1. */
|
|
42
|
+
--error-text: color-mix(in oklab, var(--error) 92%, black);
|
|
38
43
|
/* The foregrounds are near-white: these three are dark enough for WCAG AA
|
|
39
44
|
text (4.5:1) on them, and for the same colours used as text on white. */
|
|
40
|
-
--success: oklch(0.
|
|
45
|
+
--success: oklch(0.46 0.118 184.704);
|
|
41
46
|
--success-foreground: oklch(0.984 0.003 247.858);
|
|
42
|
-
--info: oklch(0.
|
|
47
|
+
--info: oklch(0.48 0.165 254.624);
|
|
43
48
|
--info-foreground: oklch(0.984 0.003 247.858);
|
|
44
49
|
/* Amber, a hue apart from --error (27): a warning must not read as a
|
|
45
50
|
failure. 5.7:1 as text on white, 5.0:1 on its 10% tint, 5.5:1 under near-white text. */
|
|
46
51
|
--warning: oklch(0.52 0.13 62);
|
|
47
52
|
--warning-foreground: oklch(0.984 0.003 247.858);
|
|
48
53
|
--destructive: var(--error);
|
|
49
|
-
--border: oklch(0.
|
|
50
|
-
--input: oklch(0.
|
|
51
|
-
|
|
54
|
+
--border: oklch(0.912 0.016 293.7);
|
|
55
|
+
--input: oklch(0.912 0.016 293.7);
|
|
56
|
+
/* The focus indicator (WCAG 1.4.11, 3:1): 3.40:1 on --background, 3.69:1 on
|
|
57
|
+
--card, 3.23:1 on --muted. */
|
|
58
|
+
--ring: oklch(0.62 0.04 291);
|
|
52
59
|
--chart-1: oklch(0.646 0.222 41.116);
|
|
53
60
|
--chart-2: oklch(0.6 0.118 184.704);
|
|
54
61
|
--chart-3: oklch(0.398 0.07 227.392);
|
|
@@ -74,63 +81,68 @@
|
|
|
74
81
|
--chart-soft-4-ink: oklch(0.52 0.16 310);
|
|
75
82
|
--chart-soft-5: oklch(0.9 0.05 25);
|
|
76
83
|
--chart-soft-5-ink: oklch(0.56 0.15 25);
|
|
77
|
-
--sidebar: oklch(0.
|
|
78
|
-
--sidebar-foreground: oklch(0.
|
|
79
|
-
--sidebar-primary: oklch(0.
|
|
84
|
+
--sidebar: oklch(0.985 0.006 293.9);
|
|
85
|
+
--sidebar-foreground: oklch(0.227 0.017 290);
|
|
86
|
+
--sidebar-primary: oklch(0.227 0.017 290);
|
|
80
87
|
--sidebar-primary-foreground: oklch(0.984 0.003 247.858);
|
|
81
|
-
--sidebar-accent: oklch(0.
|
|
82
|
-
--sidebar-accent-foreground: oklch(0.
|
|
83
|
-
--sidebar-border: oklch(0.
|
|
84
|
-
--sidebar-ring: oklch(0.
|
|
88
|
+
--sidebar-accent: oklch(0.955 0.012 292);
|
|
89
|
+
--sidebar-accent-foreground: oklch(0.227 0.017 290);
|
|
90
|
+
--sidebar-border: oklch(0.912 0.016 293.7);
|
|
91
|
+
--sidebar-ring: oklch(0.62 0.04 291);
|
|
85
92
|
}
|
|
86
93
|
|
|
87
94
|
.dark,
|
|
88
95
|
[data-theme="dark"] {
|
|
89
|
-
--background: oklch(0.
|
|
90
|
-
--foreground: oklch(0.
|
|
91
|
-
--card: oklch(0.
|
|
92
|
-
--card-foreground: oklch(0.
|
|
93
|
-
--popover: oklch(0.
|
|
94
|
-
--popover-foreground: oklch(0.
|
|
96
|
+
--background: oklch(0.192 0.016 290.5);
|
|
97
|
+
--foreground: oklch(0.943 0.012 291.3);
|
|
98
|
+
--card: oklch(0.232 0.019 289.4);
|
|
99
|
+
--card-foreground: oklch(0.943 0.012 291.3);
|
|
100
|
+
--popover: oklch(0.232 0.019 289.4);
|
|
101
|
+
--popover-foreground: oklch(0.943 0.012 291.3);
|
|
95
102
|
--primary: oklch(46% 0.1135 276.35);
|
|
96
|
-
--primary-foreground: oklch(0.
|
|
103
|
+
--primary-foreground: oklch(0.995 0.002 291.3);
|
|
97
104
|
/* Mixed 60 % toward white (the tonal Button labels' recipe): readable as text
|
|
98
105
|
on --background and --card. */
|
|
99
106
|
--primary-text: color-mix(in oklab, var(--primary) 40%, white);
|
|
100
|
-
/* Brighter than the light one: it is read as text on the dark surfaces (6.
|
|
101
|
-
on --background, 5.8:1 on --card
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
--secondary
|
|
105
|
-
--
|
|
106
|
-
--muted
|
|
107
|
-
|
|
108
|
-
--
|
|
107
|
+
/* Brighter than the light one: it is read as text on the dark surfaces (6.3:1
|
|
108
|
+
on --background, 5.8:1 on --card; 4.6:1 on its own 15 % tonal tint over a
|
|
109
|
+
Card). A filled secondary surface mixes it toward --background (the opaque
|
|
110
|
+
70 % mix) to keep 5.2:1 under its near-white text (4.9:1 over a Card). */
|
|
111
|
+
--secondary: oklch(0.675 0.1135 245.65);
|
|
112
|
+
--secondary-foreground: oklch(0.995 0.002 291.3);
|
|
113
|
+
--muted: oklch(0.27 0.022 290);
|
|
114
|
+
--muted-foreground: oklch(0.725 0.03 292.2);
|
|
115
|
+
/* 3.5:1 on --background, 3.2:1 on --card; the fill 3.3:1 on the track. */
|
|
116
|
+
--track: oklch(0.53 0.03 290);
|
|
109
117
|
--track-fill: oklch(0.85 0.09 276.35);
|
|
110
|
-
--tooltip: oklch(0.
|
|
111
|
-
--tooltip-foreground: oklch(0.446 0.043
|
|
112
|
-
--accent: oklch(0.
|
|
113
|
-
--accent-foreground: oklch(0.
|
|
118
|
+
--tooltip: oklch(0.925 0.012 291.3);
|
|
119
|
+
--tooltip-foreground: oklch(0.446 0.043 291);
|
|
120
|
+
--accent: oklch(0.27 0.022 290);
|
|
121
|
+
--accent-foreground: oklch(0.943 0.012 291.3);
|
|
114
122
|
--error: oklch(0.577 0.245 27.325);
|
|
115
|
-
--error-foreground: oklch(0.
|
|
123
|
+
--error-foreground: oklch(0.995 0.002 291.3);
|
|
116
124
|
/* --error stays the fill under near-white text; as text it would give only
|
|
117
|
-
|
|
118
|
-
|
|
125
|
+
3.9:1 on --background and 3.5:1 on --card. Lightened (76 % --error), 5.85
|
|
126
|
+
and 5.35:1, and 4.78:1 on a focused error menu item (bg-error/20 over the
|
|
127
|
+
popover; 4.45:1 at the former 80 %, which missed 4.5:1 once rendered). */
|
|
128
|
+
--error-text: color-mix(in oklab, var(--error) 76%, white);
|
|
119
129
|
/* The light brights: on the dark surfaces they read as text and as the
|
|
120
|
-
badge's 60% tint, which keeps its contrast
|
|
130
|
+
badge's 60% tint, which keeps its contrast under near-white text (success
|
|
131
|
+
7.1:1, info 5.6:1, error 9.1:1). */
|
|
121
132
|
--success: oklch(0.6 0.118 184.704);
|
|
122
|
-
--success-foreground: oklch(0.
|
|
133
|
+
--success-foreground: oklch(0.995 0.002 291.3);
|
|
123
134
|
--info: oklch(0.707 0.165 254.624);
|
|
124
|
-
--info-foreground: oklch(0.
|
|
125
|
-
/* Amber too, as text: 7
|
|
126
|
-
5.
|
|
127
|
-
|
|
135
|
+
--info-foreground: oklch(0.995 0.002 291.3);
|
|
136
|
+
/* Amber too, as text: 6.7:1 on --background and 6.1:1 on --card, 5.9:1 and
|
|
137
|
+
5.3:1 on its 10% tint; the badge's 60% fill under near-white text is
|
|
138
|
+
5.8:1 on a page and 5.5:1 on a Card. */
|
|
128
139
|
--warning: oklch(0.7 0.15 70);
|
|
129
|
-
--warning-foreground: oklch(0.
|
|
140
|
+
--warning-foreground: oklch(0.995 0.002 291.3);
|
|
130
141
|
--destructive: oklch(0.704 0.191 22.216);
|
|
131
|
-
--border: oklch(
|
|
132
|
-
--input: oklch(
|
|
133
|
-
--
|
|
142
|
+
--border: oklch(0.301 0.025 291.4);
|
|
143
|
+
--input: oklch(0.34 0.027 291.4);
|
|
144
|
+
/* 3.78:1 on --background, 3.45:1 on --card, 3.09:1 on --muted. */
|
|
145
|
+
--ring: oklch(0.551 0.03 290);
|
|
134
146
|
--chart-1: oklch(0.488 0.243 264.376);
|
|
135
147
|
--chart-2: oklch(0.696 0.17 162.48);
|
|
136
148
|
--chart-3: oklch(0.769 0.188 70.08);
|
|
@@ -138,7 +150,7 @@
|
|
|
138
150
|
--chart-5: oklch(0.645 0.246 16.439);
|
|
139
151
|
/* The soft palette on the dark card: mid-tone fills (L 0.49, the sand a
|
|
140
152
|
warmer 0.5 0.1 75), light inks of the same hues. Ink on the card:
|
|
141
|
-
1 8.
|
|
153
|
+
1 8.44:1, 2 9.46, 3 10.17, 4 8.03, 5 8.06; at the 0.85 dim 6.17:1 or
|
|
142
154
|
more. Ink on its own fill (the outline): 1 3.13:1, 2 3.40, 3 3.69,
|
|
143
155
|
4 3.11, 5 3.13. Every pair at least 54 degrees and ΔEOK 0.109 apart. */
|
|
144
156
|
--chart-soft-1: oklch(0.49 0.08 255);
|
|
@@ -151,14 +163,14 @@
|
|
|
151
163
|
--chart-soft-4-ink: oklch(0.78 0.13 310);
|
|
152
164
|
--chart-soft-5: oklch(0.49 0.09 25);
|
|
153
165
|
--chart-soft-5-ink: oklch(0.78 0.11 25);
|
|
154
|
-
--sidebar: oklch(0.
|
|
155
|
-
--sidebar-foreground: oklch(0.
|
|
166
|
+
--sidebar: oklch(0.232 0.019 289.4);
|
|
167
|
+
--sidebar-foreground: oklch(0.943 0.012 291.3);
|
|
156
168
|
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
157
|
-
--sidebar-primary-foreground: oklch(0.
|
|
158
|
-
--sidebar-accent: oklch(0.
|
|
159
|
-
--sidebar-accent-foreground: oklch(0.
|
|
160
|
-
--sidebar-border: oklch(
|
|
161
|
-
--sidebar-ring: oklch(0.551 0.
|
|
169
|
+
--sidebar-primary-foreground: oklch(0.995 0.002 291.3);
|
|
170
|
+
--sidebar-accent: oklch(0.27 0.022 290);
|
|
171
|
+
--sidebar-accent-foreground: oklch(0.943 0.012 291.3);
|
|
172
|
+
--sidebar-border: oklch(0.301 0.025 291.4);
|
|
173
|
+
--sidebar-ring: oklch(0.551 0.03 290);
|
|
162
174
|
}
|
|
163
175
|
|
|
164
176
|
/* The tertiary colour (the strix violet), for accents and backgrounds beside
|
|
@@ -168,10 +180,10 @@
|
|
|
168
180
|
--tertiary-foreground: oklch(0.984 0.003 247.858);
|
|
169
181
|
}
|
|
170
182
|
|
|
171
|
-
/* Dark: lifted like --secondary, as it is read as text (
|
|
172
|
-
|
|
183
|
+
/* Dark: lifted like --secondary, as it is read as text (6.5:1 on --background,
|
|
184
|
+
5.9:1 on --card); its foreground is the dark surface, 6.5:1 on the fill. */
|
|
173
185
|
.dark,
|
|
174
186
|
[data-theme="dark"] {
|
|
175
187
|
--tertiary: oklch(0.7 0.15 310.75);
|
|
176
|
-
--tertiary-foreground: oklch(0.
|
|
188
|
+
--tertiary-foreground: oklch(0.192 0.016 290.5);
|
|
177
189
|
}
|
|
@@ -23,14 +23,14 @@
|
|
|
23
23
|
* one, which the zone never touches. */
|
|
24
24
|
--nxgt-tint-status: 20%;
|
|
25
25
|
/* The share of the tone's text colour in a hairline (--nxgt-tone-ring): 3:1
|
|
26
|
-
* or more against the surface in light and dark at
|
|
27
|
-
--nxgt-tone-ring-share:
|
|
26
|
+
* or more against the surface in light and dark at 68 %. */
|
|
27
|
+
--nxgt-tone-ring-share: 68%;
|
|
28
28
|
|
|
29
29
|
/* Neutral, the grey tone: the muted foreground, on the page colour. */
|
|
30
30
|
--neutral: var(--muted-foreground);
|
|
31
31
|
--neutral-foreground: var(--background);
|
|
32
32
|
|
|
33
|
-
/* Text: the tone darkened (80 % tone, 20 % black), 6.
|
|
33
|
+
/* Text: the tone darkened (80 % tone, 20 % black), 6.1:1 or more on
|
|
34
34
|
* --background and --card and on its own container (over either). Primary and error keep
|
|
35
35
|
* the tokens theme-tokens.css defines. */
|
|
36
36
|
--secondary-text: color-mix(in oklab, var(--secondary) 80%, black);
|
|
@@ -88,8 +88,8 @@
|
|
|
88
88
|
--neutral-text: color-mix(in oklab, var(--neutral) 75%, white);
|
|
89
89
|
|
|
90
90
|
/* On the fill: the dark theme lifts these tones, and near-white on them
|
|
91
|
-
* would give 2.5 to 3.5:1. The page colour is 5.
|
|
92
|
-
* Primary, tertiary and error keep their foreground (7.
|
|
91
|
+
* would give 2.5 to 3.5:1. The page colour is 5.0:1 or more on each.
|
|
92
|
+
* Primary, tertiary and error keep their foreground (7.2, 6.5, 4.7:1). */
|
|
93
93
|
--primary-on: var(--primary-foreground);
|
|
94
94
|
--tertiary-on: var(--tertiary-foreground);
|
|
95
95
|
--error-on: var(--error-foreground);
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
--chip-face: var(--background);
|
|
28
28
|
border-color: var(--chip-line);
|
|
29
29
|
background: var(--chip-face);
|
|
30
|
-
box-shadow: 0 1px 1px oklch(0.2 0.03
|
|
30
|
+
box-shadow: 0 1px 1px oklch(0.2 0.03 290 / 0.05);
|
|
31
31
|
}
|
|
32
32
|
.nxgt-chip[data-look="hairline"][data-size="sm"] {
|
|
33
33
|
--chip-r: 0.4375rem;
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
.dark,
|
|
21
21
|
[data-theme="dark"] {
|
|
22
22
|
/* The dark theme's primary is too dark to read on its surfaces (2.5:1), so
|
|
23
|
-
* the rail's label is a saturated lavender of its hue (
|
|
23
|
+
* the rail's label is a saturated lavender of its hue (5.3:1: lightness
|
|
24
24
|
* 0.72, chroma 0.15) on a denser pill (30 %, 35 % hovered). Light keeps the
|
|
25
25
|
* lightness and chroma of primary (the `l` and `c` fallbacks). */
|
|
26
26
|
--nxgt-sidebar-active-share: 30%;
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* motion: reduced-motion.css ends every animation at once. */
|
|
11
11
|
@layer components {
|
|
12
12
|
.nxgt-scrim {
|
|
13
|
-
background-color: oklch(0.2 0.035
|
|
13
|
+
background-color: oklch(0.2 0.035 290 / 0.42);
|
|
14
14
|
}
|
|
15
15
|
:where(.dark, [data-theme="dark"]) .nxgt-scrim {
|
|
16
|
-
background-color: oklch(0.04 0.01
|
|
16
|
+
background-color: oklch(0.04 0.01 290 / 0.62);
|
|
17
17
|
}
|
|
18
18
|
.nxgt-scrim[data-scrim="blur"] {
|
|
19
19
|
-webkit-backdrop-filter: blur(6px) saturate(1.15);
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
var(--error) 5%,
|
|
27
27
|
var(--background)
|
|
28
28
|
);
|
|
29
|
-
--nxgt-field-border: color-mix(in oklab, var(--foreground)
|
|
29
|
+
--nxgt-field-border: color-mix(in oklab, var(--foreground) 14%, transparent);
|
|
30
30
|
--nxgt-field-border-hover: color-mix(
|
|
31
31
|
in oklab,
|
|
32
32
|
var(--foreground) 24%,
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
--tg-pill: color-mix(in oklab, var(--primary) 10%, var(--background));
|
|
14
14
|
--tg-ring: color-mix(in oklab, var(--primary-text) 82%, var(--background));
|
|
15
15
|
--tg-lift:
|
|
16
|
-
0 1px 2px oklch(0.2 0.04
|
|
17
|
-
0 2px 6px -2px oklch(0.2 0.04
|
|
16
|
+
0 1px 2px oklch(0.2 0.04 290 / 0.1),
|
|
17
|
+
0 2px 6px -2px oklch(0.2 0.04 290 / 0.12);
|
|
18
18
|
--tg-i: 0;
|
|
19
19
|
--tg-n: 1;
|
|
20
20
|
position: relative;
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
--tg-lift:
|
|
24
24
|
0 1px 2px oklch(0.25 0.06 270 / 0.08),
|
|
25
25
|
0 3px 8px -3px oklch(0.35 0.1 276 / 0.22);
|
|
26
|
-
--tg-rest: 0 1px 1px oklch(0.2 0.03
|
|
26
|
+
--tg-rest: 0 1px 1px oklch(0.2 0.03 290 / 0.04);
|
|
27
27
|
gap: 0.375rem;
|
|
28
28
|
}
|
|
29
29
|
.nxgt-toggle-group[data-variant="separate"][data-size="sm"] {
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/* Entry animations (`drawOn` and `appear` of @nxgt/material/draw/animate).
|
|
2
|
+
* A node carries `nxgt-draw-on` or `nxgt-draw-appear`, a delay step
|
|
3
|
+
* `nxgt-draw-d-<0..19>` and a duration `nxgt-draw-t-<s|m|l>`: never an inline
|
|
4
|
+
* style. The delay is the step times `--nxgt-draw-stagger` (60ms), set on the
|
|
5
|
+
* drawing or an ancestor to speed it up or slow it down. The animations fill
|
|
6
|
+
* both ways, so a replay (`useDrawingControls`) can find them and the last
|
|
7
|
+
* frame is the drawing itself: a stroke is traced with a dash as long as its
|
|
8
|
+
* path (`pathLength` 1), a fill fades in, a node fades and grows in. */
|
|
9
|
+
.nxgt-draw-t-s {
|
|
10
|
+
--nxgt-draw-dur: 300ms;
|
|
11
|
+
}
|
|
12
|
+
.nxgt-draw-t-m {
|
|
13
|
+
--nxgt-draw-dur: 600ms;
|
|
14
|
+
}
|
|
15
|
+
.nxgt-draw-t-l {
|
|
16
|
+
--nxgt-draw-dur: 1000ms;
|
|
17
|
+
}
|
|
18
|
+
.nxgt-draw-d-0 {
|
|
19
|
+
--nxgt-draw-i: 0;
|
|
20
|
+
}
|
|
21
|
+
.nxgt-draw-d-1 {
|
|
22
|
+
--nxgt-draw-i: 1;
|
|
23
|
+
}
|
|
24
|
+
.nxgt-draw-d-2 {
|
|
25
|
+
--nxgt-draw-i: 2;
|
|
26
|
+
}
|
|
27
|
+
.nxgt-draw-d-3 {
|
|
28
|
+
--nxgt-draw-i: 3;
|
|
29
|
+
}
|
|
30
|
+
.nxgt-draw-d-4 {
|
|
31
|
+
--nxgt-draw-i: 4;
|
|
32
|
+
}
|
|
33
|
+
.nxgt-draw-d-5 {
|
|
34
|
+
--nxgt-draw-i: 5;
|
|
35
|
+
}
|
|
36
|
+
.nxgt-draw-d-6 {
|
|
37
|
+
--nxgt-draw-i: 6;
|
|
38
|
+
}
|
|
39
|
+
.nxgt-draw-d-7 {
|
|
40
|
+
--nxgt-draw-i: 7;
|
|
41
|
+
}
|
|
42
|
+
.nxgt-draw-d-8 {
|
|
43
|
+
--nxgt-draw-i: 8;
|
|
44
|
+
}
|
|
45
|
+
.nxgt-draw-d-9 {
|
|
46
|
+
--nxgt-draw-i: 9;
|
|
47
|
+
}
|
|
48
|
+
.nxgt-draw-d-10 {
|
|
49
|
+
--nxgt-draw-i: 10;
|
|
50
|
+
}
|
|
51
|
+
.nxgt-draw-d-11 {
|
|
52
|
+
--nxgt-draw-i: 11;
|
|
53
|
+
}
|
|
54
|
+
.nxgt-draw-d-12 {
|
|
55
|
+
--nxgt-draw-i: 12;
|
|
56
|
+
}
|
|
57
|
+
.nxgt-draw-d-13 {
|
|
58
|
+
--nxgt-draw-i: 13;
|
|
59
|
+
}
|
|
60
|
+
.nxgt-draw-d-14 {
|
|
61
|
+
--nxgt-draw-i: 14;
|
|
62
|
+
}
|
|
63
|
+
.nxgt-draw-d-15 {
|
|
64
|
+
--nxgt-draw-i: 15;
|
|
65
|
+
}
|
|
66
|
+
.nxgt-draw-d-16 {
|
|
67
|
+
--nxgt-draw-i: 16;
|
|
68
|
+
}
|
|
69
|
+
.nxgt-draw-d-17 {
|
|
70
|
+
--nxgt-draw-i: 17;
|
|
71
|
+
}
|
|
72
|
+
.nxgt-draw-d-18 {
|
|
73
|
+
--nxgt-draw-i: 18;
|
|
74
|
+
}
|
|
75
|
+
.nxgt-draw-d-19 {
|
|
76
|
+
--nxgt-draw-i: 19;
|
|
77
|
+
}
|
|
78
|
+
.nxgt-draw-on,
|
|
79
|
+
.nxgt-draw-appear {
|
|
80
|
+
animation-duration: var(--nxgt-draw-dur, 600ms);
|
|
81
|
+
animation-delay: calc(var(--nxgt-draw-i, 0) * var(--nxgt-draw-stagger, 60ms));
|
|
82
|
+
animation-timing-function: cubic-bezier(0.2, 0, 0, 1);
|
|
83
|
+
animation-fill-mode: both;
|
|
84
|
+
}
|
|
85
|
+
.nxgt-draw-on {
|
|
86
|
+
animation-name: nxgt-draw-trace, nxgt-draw-fill;
|
|
87
|
+
}
|
|
88
|
+
.nxgt-draw-appear {
|
|
89
|
+
animation-name: nxgt-draw-fade, nxgt-draw-grow;
|
|
90
|
+
transform-box: fill-box;
|
|
91
|
+
transform-origin: center;
|
|
92
|
+
}
|
|
93
|
+
@keyframes nxgt-draw-trace {
|
|
94
|
+
from {
|
|
95
|
+
stroke-dasharray: 1;
|
|
96
|
+
stroke-dashoffset: 1;
|
|
97
|
+
}
|
|
98
|
+
to {
|
|
99
|
+
stroke-dasharray: 1;
|
|
100
|
+
stroke-dashoffset: 0;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
@keyframes nxgt-draw-fill {
|
|
104
|
+
from {
|
|
105
|
+
fill-opacity: 0;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
@keyframes nxgt-draw-fade {
|
|
109
|
+
from {
|
|
110
|
+
opacity: 0;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
@keyframes nxgt-draw-grow {
|
|
114
|
+
from {
|
|
115
|
+
scale: 0.92;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
@media (prefers-reduced-motion: reduce) {
|
|
119
|
+
.nxgt-draw-on,
|
|
120
|
+
.nxgt-draw-appear {
|
|
121
|
+
animation: none;
|
|
122
|
+
}
|
|
123
|
+
}
|