@nxgt/material 3.20.0 → 3.22.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 +69 -0
- package/README.md +6 -4
- package/bin/nxgt-backdrop-sprite.js +15 -0
- package/dist/background-BtSZsTvY.js +286 -0
- package/dist/backgrounds/css-react/icons-quiet.css +5 -5
- package/dist/backgrounds/css-react/icons-tint.css +98 -0
- package/dist/backgrounds/css-react/icons.css +100 -33
- package/dist/backgrounds.js +1 -1
- package/dist/{celestial-scene-DaOsRFF3.js → celestial-scene-8Muu6f7O.js} +1 -1
- package/dist/components/background-shared.css +5 -0
- package/dist/components/components.css +4 -7
- package/dist/components/ui/display/chip/chip-parts.css +17 -30
- package/dist/components/ui/fields/attributes/attributes.css +3 -0
- package/dist/components/ui/layout/app-shell/activity-backdrop-shapes.css +1 -1
- package/dist/components/ui/layout/auth-card/auth-card-backdrop.css +30 -0
- package/dist/{components-SJxc3fpp.js → components-B0oezhGe.js} +13966 -13937
- package/dist/components.js +16 -16
- package/dist/editor.js +1 -1
- package/dist/{empty-state-CJh9f2pc.js → empty-state-lj7vjYWG.js} +1 -1
- package/dist/icon-sprites-CaYXzOL4.js +46 -0
- package/dist/icons-scene-M4HBeN2c.js +54 -0
- package/dist/{illustration-BmQmvW_4.js → illustration-B4_W-OUS.js} +2 -2
- package/dist/illustrations.js +1 -1
- package/dist/lib/backgrounds/background/partials/icons-check.d.ts +2 -2
- package/dist/lib/backgrounds/background/partials/icons-keys.d.ts +21 -1
- package/dist/lib/backgrounds/background/partials/icons-scene.d.ts +15 -6
- package/dist/lib/backgrounds/background/partials/use-icons-scene.d.ts +13 -8
- package/dist/lib/backgrounds/background/types.d.ts +26 -12
- package/dist/lib/backgrounds/index.d.ts +1 -1
- package/dist/lib/components/ui/dates/date-field/use-typed-date.d.ts +2 -2
- package/dist/lib/components/ui/dates/picker-trigger/typed-day.d.ts +7 -2
- package/dist/lib/components/ui/display/chip/partials/chip-dismiss-button.d.ts +1 -1
- package/dist/lib/components/ui/layout/app-shell/keep-shapes-inside.d.ts +7 -2
- package/dist/lib/components/ui/layout/app-shell/shapes-clear-content.d.ts +10 -3
- package/dist/lib/components/ui/layout/app-shell/theme-backdrop.d.ts +3 -1
- package/dist/lib/components/ui/layout/app-shell/use-keep-shapes-inside.d.ts +3 -3
- package/dist/lib/components/ui/layout/app-shell/watch-content.d.ts +28 -8
- package/dist/lib/components/ui/layout/auth-card/auth-card-backdrop.d.ts +23 -0
- package/dist/lib/components/ui/layout/auth-card/auth-card.d.ts +15 -1
- package/dist/lib/components/ui/primitives/icon/icon-sprites.d.ts +40 -1
- package/dist/lib/themes/define-theme.d.ts +8 -0
- package/dist/lib/themes/index.d.ts +2 -1
- package/dist/lib/vite/index.d.ts +1 -1
- package/dist/main.js +28 -28
- package/dist/material.css +1 -1
- package/dist/pdf-reader.js +1 -1
- package/dist/{public-DWuBn4t_.js → public-DAF5SCWH.js} +1 -1
- package/dist/{scene-options-CCy3V7XS.js → scene-options-2zNF3ZkQ.js} +4 -2
- package/dist/theme-picker.js +3 -3
- package/dist/themes.js +9 -4
- package/dist/{use-chat-composer-BBFuKNqC.js → use-chat-composer-B0ze1cU9.js} +3 -3
- package/docs/components/data-display.md +1 -1
- package/docs/components/date-and-time.md +8 -4
- package/docs/components/navigation-and-layout.md +22 -0
- package/docs/components/primitives.md +21 -0
- package/docs/guides/app-shell.md +9 -8
- package/docs/guides/backgrounds.md +214 -16
- package/docs/guides/icon-motifs.md +30 -12
- package/docs/guides/themes.md +25 -4
- package/docs/guides/theming.md +7 -0
- package/docs/guides/vite-plugin.md +26 -0
- package/docs/previews/backgrounds-background-from-theme.webp +0 -0
- package/docs/previews/backgrounds-icons.webp +0 -0
- package/docs/previews/backgrounds-matrix.webp +0 -0
- package/docs/previews/date-time-datefield.webp +0 -0
- package/docs/previews/date-time-daterangefield.webp +0 -0
- package/docs/previews/foundations-themes-icon-motifs.webp +0 -0
- package/docs/roadmap.md +6 -0
- package/docs/troubleshooting.md +80 -4
- package/lib/backgrounds/css-react/icons-quiet.css +5 -5
- package/lib/backgrounds/css-react/icons-tint.css +98 -0
- package/lib/backgrounds/css-react/icons.css +100 -33
- package/lib/components/background-shared.css +5 -0
- package/lib/components/components.css +4 -7
- package/lib/components/ui/display/chip/chip-parts.css +17 -30
- package/lib/components/ui/fields/attributes/attributes.css +3 -0
- package/lib/components/ui/layout/app-shell/activity-backdrop-shapes.css +1 -1
- package/lib/components/ui/layout/auth-card/auth-card-backdrop.css +30 -0
- package/package.json +8 -3
- package/dist/background-Ce7M5V42.js +0 -250
- package/dist/icon-sprites-FxHyqyhg.js +0 -30
- package/dist/icons-scene-BpIauJ5d.js +0 -27
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
* its constellation threads and its motion. A scene holds no `style`: an icon
|
|
5
5
|
* carries a tone class (`k1..k3`, colours in scene.css) and the root carries
|
|
6
6
|
* `ic-so0..ic-so10` and `ic-so85` (a duotone icon's second layer, in tenths, or 0.85) and, for
|
|
7
|
-
* `duotone: 'tones'`, `ic-tones`.
|
|
7
|
+
* `duotone: 'tones'`, `ic-tones`. The rules are keyed on `icons` and `shapes`
|
|
8
|
+
* (the `shapes` preset with `motif.icons` draws the same icons). The
|
|
9
|
+
* tint (`ic-c-one`, `ic-c-palette`) is icons-tint.css; `ic-c-classic` is the
|
|
10
|
+
* tones below at full strength.
|
|
8
11
|
*
|
|
9
12
|
* The sprites read `--fa-primary-color`, `--fa-secondary-color` and
|
|
10
13
|
* `--fa-secondary-opacity`; custom properties inherit into the `<use>` copy.
|
|
@@ -17,6 +20,7 @@
|
|
|
17
20
|
@import "../css/motifs.css";
|
|
18
21
|
|
|
19
22
|
@import "./icons-quiet.css";
|
|
23
|
+
@import "./icons-tint.css";
|
|
20
24
|
|
|
21
25
|
@layer components {
|
|
22
26
|
[data-background="icons"] > [data-layer="wash"] {
|
|
@@ -35,95 +39,158 @@
|
|
|
35
39
|
);
|
|
36
40
|
}
|
|
37
41
|
|
|
38
|
-
[data-background="icons"] > [data-scene] {
|
|
42
|
+
:is([data-background="icons"], [data-background="shapes"]) > [data-scene] {
|
|
39
43
|
overflow: hidden;
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
/* Primary layer: the icon's tone. Second layer: the same tone, faded. */
|
|
43
|
-
[data-background="icons"]
|
|
47
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
48
|
+
> [data-scene]
|
|
49
|
+
.ic.k1 {
|
|
44
50
|
--fa-primary-color: var(--nxgt-bg-c1);
|
|
45
51
|
--fa-secondary-color: var(--nxgt-bg-c1);
|
|
46
52
|
}
|
|
47
|
-
[data-background="icons"]
|
|
53
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
54
|
+
> [data-scene]
|
|
55
|
+
.ic.k2 {
|
|
48
56
|
--fa-primary-color: var(--nxgt-bg-c2);
|
|
49
57
|
--fa-secondary-color: var(--nxgt-bg-c2);
|
|
50
58
|
}
|
|
51
|
-
[data-background="icons"]
|
|
59
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
60
|
+
> [data-scene]
|
|
61
|
+
.ic.k3 {
|
|
52
62
|
--fa-primary-color: var(--nxgt-bg-c3);
|
|
53
63
|
--fa-secondary-color: var(--nxgt-bg-c3);
|
|
54
64
|
}
|
|
55
65
|
|
|
56
66
|
/* Two tones: the second layer takes the next tone. */
|
|
57
|
-
[data-background="icons"]
|
|
67
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
68
|
+
> [data-scene]
|
|
69
|
+
> .ic-tones
|
|
70
|
+
.ic.k1 {
|
|
58
71
|
--fa-secondary-color: var(--nxgt-bg-c2);
|
|
59
72
|
}
|
|
60
|
-
[data-background="icons"]
|
|
73
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
74
|
+
> [data-scene]
|
|
75
|
+
> .ic-tones
|
|
76
|
+
.ic.k2 {
|
|
61
77
|
--fa-secondary-color: var(--nxgt-bg-c3);
|
|
62
78
|
}
|
|
63
|
-
[data-background="icons"]
|
|
79
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
80
|
+
> [data-scene]
|
|
81
|
+
> .ic-tones
|
|
82
|
+
.ic.k3 {
|
|
64
83
|
--fa-secondary-color: var(--nxgt-bg-c1);
|
|
65
84
|
}
|
|
66
85
|
|
|
67
86
|
/* The second layer's opacity, in tenths (`secondaryOpacity`). */
|
|
68
|
-
[data-background="icons"]
|
|
87
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
88
|
+
> [data-scene]
|
|
89
|
+
> .ic-so0
|
|
90
|
+
.ic {
|
|
69
91
|
--fa-secondary-opacity: 0;
|
|
70
92
|
}
|
|
71
|
-
[data-background="icons"]
|
|
93
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
94
|
+
> [data-scene]
|
|
95
|
+
> .ic-so1
|
|
96
|
+
.ic {
|
|
72
97
|
--fa-secondary-opacity: 0.1;
|
|
73
98
|
}
|
|
74
|
-
[data-background="icons"]
|
|
99
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
100
|
+
> [data-scene]
|
|
101
|
+
> .ic-so2
|
|
102
|
+
.ic {
|
|
75
103
|
--fa-secondary-opacity: 0.2;
|
|
76
104
|
}
|
|
77
|
-
[data-background="icons"]
|
|
105
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
106
|
+
> [data-scene]
|
|
107
|
+
> .ic-so3
|
|
108
|
+
.ic {
|
|
78
109
|
--fa-secondary-opacity: 0.3;
|
|
79
110
|
}
|
|
80
|
-
[data-background="icons"]
|
|
111
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
112
|
+
> [data-scene]
|
|
113
|
+
> .ic-so4
|
|
114
|
+
.ic {
|
|
81
115
|
--fa-secondary-opacity: 0.4;
|
|
82
116
|
}
|
|
83
|
-
[data-background="icons"]
|
|
117
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
118
|
+
> [data-scene]
|
|
119
|
+
> .ic-so5
|
|
120
|
+
.ic {
|
|
84
121
|
--fa-secondary-opacity: 0.5;
|
|
85
122
|
}
|
|
86
|
-
[data-background="icons"]
|
|
123
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
124
|
+
> [data-scene]
|
|
125
|
+
> .ic-so6
|
|
126
|
+
.ic {
|
|
87
127
|
--fa-secondary-opacity: 0.6;
|
|
88
128
|
}
|
|
89
|
-
[data-background="icons"]
|
|
129
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
130
|
+
> [data-scene]
|
|
131
|
+
> .ic-so7
|
|
132
|
+
.ic {
|
|
90
133
|
--fa-secondary-opacity: 0.7;
|
|
91
134
|
}
|
|
92
|
-
[data-background="icons"]
|
|
135
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
136
|
+
> [data-scene]
|
|
137
|
+
> .ic-so8
|
|
138
|
+
.ic {
|
|
93
139
|
--fa-secondary-opacity: 0.8;
|
|
94
140
|
}
|
|
95
|
-
[data-background="icons"]
|
|
141
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
142
|
+
> [data-scene]
|
|
143
|
+
> .ic-so9
|
|
144
|
+
.ic {
|
|
96
145
|
--fa-secondary-opacity: 0.9;
|
|
97
146
|
}
|
|
98
|
-
[data-background="icons"]
|
|
147
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
148
|
+
> [data-scene]
|
|
149
|
+
> .ic-so10
|
|
150
|
+
.ic {
|
|
99
151
|
--fa-secondary-opacity: 1;
|
|
100
152
|
}
|
|
101
153
|
/* 0.85: the default of two tones, or a `secondaryOpacity` of 0.85. */
|
|
102
|
-
[data-background="icons"]
|
|
154
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
155
|
+
> [data-scene]
|
|
156
|
+
> .ic-so85
|
|
157
|
+
.ic {
|
|
103
158
|
--fa-secondary-opacity: 0.85;
|
|
104
159
|
}
|
|
105
160
|
|
|
106
161
|
/* The constellation's threads and dots. */
|
|
107
|
-
[data-background="icons"]
|
|
162
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
163
|
+
> [data-scene]
|
|
164
|
+
.ic-ln {
|
|
108
165
|
stroke: var(--nxgt-bg-c1);
|
|
109
166
|
stroke-width: 0.7;
|
|
110
167
|
stroke-linecap: round;
|
|
111
168
|
opacity: 0.4;
|
|
112
169
|
}
|
|
113
|
-
[data-background="icons"]
|
|
170
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
171
|
+
> [data-scene]
|
|
172
|
+
.ic-dt {
|
|
114
173
|
fill: var(--nxgt-bg-c1);
|
|
115
174
|
opacity: 0.5;
|
|
116
175
|
}
|
|
117
|
-
[data-background="icons"]
|
|
176
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
177
|
+
> [data-scene]
|
|
178
|
+
.ic-ln.k2 {
|
|
118
179
|
stroke: var(--nxgt-bg-c2);
|
|
119
180
|
}
|
|
120
|
-
[data-background="icons"]
|
|
181
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
182
|
+
> [data-scene]
|
|
183
|
+
.ic-ln.k3 {
|
|
121
184
|
stroke: var(--nxgt-bg-c3);
|
|
122
185
|
}
|
|
123
|
-
[data-background="icons"]
|
|
186
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
187
|
+
> [data-scene]
|
|
188
|
+
.ic-dt.k2 {
|
|
124
189
|
fill: var(--nxgt-bg-c2);
|
|
125
190
|
}
|
|
126
|
-
[data-background="icons"]
|
|
191
|
+
:is([data-background="icons"], [data-background="shapes"])
|
|
192
|
+
> [data-scene]
|
|
193
|
+
.ic-dt.k3 {
|
|
127
194
|
fill: var(--nxgt-bg-c3);
|
|
128
195
|
}
|
|
129
196
|
}
|
|
@@ -151,26 +218,26 @@
|
|
|
151
218
|
}
|
|
152
219
|
|
|
153
220
|
@layer components {
|
|
154
|
-
[data-background
|
|
221
|
+
[data-background][data-animated] > [data-scene] .ia {
|
|
155
222
|
animation: nxgt-bg-ic-1 18s ease-in-out infinite alternate
|
|
156
223
|
var(--nxgt-bg-play, running);
|
|
157
224
|
}
|
|
158
|
-
[data-background
|
|
225
|
+
[data-background][data-animated] > [data-scene] .iv2 {
|
|
159
226
|
animation-name: nxgt-bg-ic-2;
|
|
160
227
|
}
|
|
161
|
-
[data-background
|
|
228
|
+
[data-background][data-animated] > [data-scene] .iv3 {
|
|
162
229
|
animation-name: nxgt-bg-ic-3;
|
|
163
230
|
}
|
|
164
|
-
[data-background
|
|
231
|
+
[data-background][data-animated] > [data-scene] .iv4 {
|
|
165
232
|
animation-name: nxgt-bg-ic-4;
|
|
166
233
|
}
|
|
167
|
-
[data-background
|
|
234
|
+
[data-background][data-animated] > [data-scene] .id2 {
|
|
168
235
|
animation-delay: -4s;
|
|
169
236
|
}
|
|
170
|
-
[data-background
|
|
237
|
+
[data-background][data-animated] > [data-scene] .id3 {
|
|
171
238
|
animation-delay: -9s;
|
|
172
239
|
}
|
|
173
|
-
[data-background
|
|
240
|
+
[data-background][data-animated] > [data-scene] .id4 {
|
|
174
241
|
animation-delay: -13s;
|
|
175
242
|
}
|
|
176
243
|
}
|
package/dist/backgrounds.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { r as e, t } from "./background-
|
|
1
|
+
import { r as e, t } from "./background-BtSZsTvY.js";
|
|
2
2
|
import { BACKGROUND_INTENSITIES as n, BACKGROUND_PRESETS as r, BACKGROUND_TONES as i, MOTIF_SHAPES as a, MOTIF_SHAPES_ALL as o, SHIPPED_BACKGROUND_PRESETS as s } from "@nxgt/material-core/backgrounds";
|
|
3
3
|
export { e as AVAILABLE_BACKGROUND_PRESETS, n as BACKGROUND_INTENSITIES, r as BACKGROUND_PRESETS, i as BACKGROUND_TONES, t as Background, a as MOTIF_SHAPES, o as MOTIF_SHAPES_ALL, s as SHIPPED_BACKGROUND_PRESETS };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "./scene-svg-DJKa5vsg.js";
|
|
2
|
-
import { i as t, r as n } from "./scene-options-
|
|
2
|
+
import { i as t, r as n } from "./scene-options-2zNF3ZkQ.js";
|
|
3
3
|
import { useMemo as r } from "react";
|
|
4
4
|
import { jsx as i } from "react/jsx-runtime";
|
|
5
5
|
import { buildCelestialScene as a, buildSkyScene as o } from "@nxgt/material-core/backgrounds/celestial";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/* What the Background in `/components` always needs: the base, the gradient
|
|
2
|
+
* preset and the motion rules. Imported once by components/components.css. */
|
|
3
|
+
@import "../backgrounds/css/base.css";
|
|
4
|
+
@import "../backgrounds/css/gradient.css";
|
|
5
|
+
@import "../backgrounds/css/motion.css";
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
@import "./ui/layout/app-shell/route-transition.css";
|
|
57
57
|
@import "./ui/layout/app-shell/activity-backdrop.css";
|
|
58
58
|
@import "./ui/layout/app-shell/activity-backdrop-shapes.css";
|
|
59
|
+
@import "./ui/layout/auth-card/auth-card-backdrop.css";
|
|
59
60
|
/* DataTable cards and tiles: the item shell (hairline, tint, start bar, columns by the list's width). */
|
|
60
61
|
@import "./ui/collections/data-table/data-table-items.css";
|
|
61
62
|
@import "./ui/collections/data-table/data-table-items-compact.css";
|
|
@@ -192,12 +193,8 @@
|
|
|
192
193
|
/* Gallery: the View Transition from a tile to its lightbox. */
|
|
193
194
|
@import "./ui/media/galleries/gallery-transitions.css";
|
|
194
195
|
@import "./print-only.css";
|
|
195
|
-
@import "./ui/fields/attributes/
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
* (lib/backgrounds/css). The other presets are opt-in: backgrounds.css. */
|
|
199
|
-
@import "../backgrounds/css/base.css";
|
|
200
|
-
@import "../backgrounds/css/gradient.css";
|
|
201
|
-
@import "../backgrounds/css/motion.css";
|
|
196
|
+
@import "./ui/fields/attributes/attributes.css";
|
|
197
|
+
/* Background: the gradient preset's CSS, shared (lib/backgrounds/css); the other presets are opt-in: backgrounds.css. */
|
|
198
|
+
@import "./background-shared.css";
|
|
202
199
|
@import "./ui/widgets/drawing/drawing.css"; /* @nxgt/material/draw: role colours, focus ring */
|
|
203
200
|
@import "./ui/widgets/drawing/drawing-animate.css";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* Chip: focus, the dismiss button (drawn
|
|
2
|
-
* small
|
|
2
|
+
* small in a 24x24 box, 44x44 on a coarse pointer, its own ring), disabled, the dashed
|
|
3
3
|
* "add" chip and the tones. */
|
|
4
4
|
@layer components {
|
|
5
5
|
/* Focus: the chip's ring (2px primary-text, 2px away); the ✕ its own. */
|
|
@@ -8,54 +8,41 @@
|
|
|
8
8
|
outline-color: var(--primary-text);
|
|
9
9
|
outline-width: 2px;
|
|
10
10
|
}
|
|
11
|
+
/* The ✕ is drawn small (--chip-x), but its own box is the target (#1584):
|
|
12
|
+
* axe's `target-size` reads the bounding box, never a pseudo-element. The
|
|
13
|
+
* box is 24x24 (44x44 on a coarse pointer, #1067, #1102); the padding with
|
|
14
|
+
* `background-clip: content-box` keeps the hover disc and the focus ring at
|
|
15
|
+
* the drawn size, and the negative margin takes the extra back, so the chip
|
|
16
|
+
* and the glyph are unchanged. */
|
|
11
17
|
.nxgt-chip > [data-slot="chip-dismiss"] {
|
|
18
|
+
--chip-hit: 24px;
|
|
19
|
+
--chip-pad: calc((var(--chip-hit) - var(--chip-x)) / 2);
|
|
12
20
|
position: relative;
|
|
13
21
|
display: inline-grid;
|
|
14
22
|
place-items: center;
|
|
15
23
|
flex: none;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
24
|
+
box-sizing: border-box;
|
|
25
|
+
width: var(--chip-hit);
|
|
26
|
+
height: var(--chip-hit);
|
|
27
|
+
margin: calc(-1 * var(--chip-pad));
|
|
28
|
+
padding: var(--chip-pad);
|
|
19
29
|
border: 0;
|
|
20
30
|
border-radius: 9999px;
|
|
21
31
|
background: transparent;
|
|
32
|
+
background-clip: content-box;
|
|
22
33
|
color: color-mix(in oklab, var(--foreground) 62%, transparent);
|
|
23
34
|
cursor: pointer;
|
|
24
35
|
/* Width 0 at rest: forced colours would paint a transparent outline. */
|
|
25
36
|
outline: 0 solid transparent;
|
|
26
|
-
outline-offset: 1px;
|
|
37
|
+
outline-offset: calc(1px - var(--chip-pad));
|
|
27
38
|
transition:
|
|
28
39
|
background-color 120ms ease-out,
|
|
29
40
|
color 120ms ease-out,
|
|
30
41
|
outline-color 120ms ease-out;
|
|
31
42
|
}
|
|
32
|
-
.nxgt-chip > [data-slot="chip-dismiss"]::after {
|
|
33
|
-
content: "";
|
|
34
|
-
position: absolute;
|
|
35
|
-
inset: calc((var(--chip-x) - 24px) / 2);
|
|
36
|
-
border-radius: 9999px;
|
|
37
|
-
}
|
|
38
|
-
/* Touch (#1067, #1102): on a coarse pointer the ✕ is a real 44x44 box,
|
|
39
|
-
* not a pseudo-element, which a tap-target check and axe do not measure.
|
|
40
|
-
* The negative margin takes the extra back, so the chip is unchanged, and
|
|
41
|
-
* the padding with `background-clip: content-box` keeps the hover disc
|
|
42
|
-
* and the focus ring at the drawn size (the outline is pulled in by the
|
|
43
|
-
* padding). */
|
|
44
43
|
@media (pointer: coarse) {
|
|
45
44
|
.nxgt-chip > [data-slot="chip-dismiss"] {
|
|
46
|
-
--chip-
|
|
47
|
-
box-sizing: border-box;
|
|
48
|
-
width: 44px;
|
|
49
|
-
height: 44px;
|
|
50
|
-
margin: calc(-1 * var(--chip-pad));
|
|
51
|
-
padding: var(--chip-pad);
|
|
52
|
-
background-clip: content-box;
|
|
53
|
-
outline-offset: calc(1px - var(--chip-pad));
|
|
54
|
-
}
|
|
55
|
-
/* The box is the target now: the 24px pseudo-element would reach
|
|
56
|
-
* past it. */
|
|
57
|
-
.nxgt-chip > [data-slot="chip-dismiss"]::after {
|
|
58
|
-
inset: 0;
|
|
45
|
+
--chip-hit: 44px;
|
|
59
46
|
}
|
|
60
47
|
}
|
|
61
48
|
.nxgt-chip > [data-slot="chip-dismiss"] > svg {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
visibility: hidden;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
/* A shape over the page's text or
|
|
21
|
+
/* A shape over the page's text, controls or surfaces (cards, tables, lists) fades out and comes back once
|
|
22
22
|
* clear (watch-content.ts): it is hidden, never moved. A compound body (the
|
|
23
23
|
* moon, the planet, the eclipse: `.pt.mg`) is hidden whole, with its halo
|
|
24
24
|
* (`.pt.mh`). The scene stays invisible until the first check, so nothing
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/* An AuthCard's backdrop (auth-card-backdrop.tsx) keeps its shapes the way
|
|
2
|
+
* ActivityLayout's does (activity-backdrop-shapes.css): whole inside its layer
|
|
3
|
+
* and clear of the card and the brand row. Plain CSS in `@layer components`. */
|
|
4
|
+
@layer components {
|
|
5
|
+
[data-slot="auth-card-backdrop"] > [data-background] {
|
|
6
|
+
width: 100%;
|
|
7
|
+
height: 100%;
|
|
8
|
+
}
|
|
9
|
+
/* The scene stays hidden until the first pass; a shape that crosses the
|
|
10
|
+
* layer's edge is hidden, never cut. */
|
|
11
|
+
[data-slot="auth-card-backdrop"] [data-background]:not([data-checked]) .mo,
|
|
12
|
+
[data-slot="auth-card-backdrop"] [data-background] .mo > [data-outside] {
|
|
13
|
+
visibility: hidden;
|
|
14
|
+
}
|
|
15
|
+
/* A shape over the card or the brand row fades out (watch-content.ts). */
|
|
16
|
+
[data-slot="auth-card-backdrop"] [data-background] .mo > *,
|
|
17
|
+
[data-slot="auth-card-backdrop"] [data-background] .pt {
|
|
18
|
+
transition: opacity 150ms ease;
|
|
19
|
+
}
|
|
20
|
+
[data-slot="auth-card-backdrop"] [data-background] .mo > [data-hidden],
|
|
21
|
+
[data-slot="auth-card-backdrop"] [data-background] .pt[data-hidden] {
|
|
22
|
+
opacity: 0 !important;
|
|
23
|
+
}
|
|
24
|
+
@media (prefers-reduced-motion: reduce) {
|
|
25
|
+
[data-slot="auth-card-backdrop"] [data-background] .mo > *,
|
|
26
|
+
[data-slot="auth-card-backdrop"] [data-background] .pt {
|
|
27
|
+
transition: none;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|