@enonic/ui 1.0.0-beta.1 → 1.0.0-beta.3

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.
@@ -1 +1,9 @@
1
- @layer base{:root,:host{font-size:16px;color:var(--color-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}
1
+ @layer base {
2
+ :root,
3
+ :host {
4
+ font-size: 16px;
5
+ color: var(--color-main);
6
+ -webkit-font-smoothing: antialiased;
7
+ -moz-osx-font-smoothing: grayscale;
8
+ }
9
+ }
@@ -1 +1,372 @@
1
- @layer base{:root,:host{--color-black: #000000;--color-grey-950: #242829;--color-grey-900: #3d4142;--color-grey-800: #5b5f60;--color-grey-700: #797d7e;--color-grey-600: #8d9192;--color-grey-500: #b2b2b2;--color-grey-400: #b5b9ba;--color-grey-300: #d3d7d8;--color-grey-200: #dde1e2;--color-grey-100: #e7ebeb;--color-grey-50: #f1f5f6;--color-white: #ffffff;--color-fbk-info: #0270a0;--color-fbk-info-subtle: #208ebe;--color-fbk-info-surface-light: #d7f3ff;--color-fbk-info-surface-dark: #1a5a6e;--color-fbk-warn: #cb9126;--color-fbk-warn-subtle: #e9af44;--color-fbk-warn-surface-light: #f7e5c4;--color-fbk-warn-surface-dark: #5c4422;--color-fbk-success: #499349;--color-fbk-success-subtle: #67b167;--color-fbk-success-surface-light: #cee2ce;--color-fbk-success-surface-dark: #2d5a3d;--color-fbk-danger: #d33030;--color-fbk-danger-subtle: #f56262;--color-fbk-danger-surface-light: #f6d7d7;--color-fbk-danger-surface-dark: #5c3333;--color-purple: #800080;--color-purple-subtle: #e46ee4;--color-juke: #9747ff;--color-blue: #009bf5;--color-blue-subtle: #1fa5f5}}@layer base{:root,:host{--color-main: var(--color-black);--color-main-hover: var(--color-grey-800);--color-subtle: var(--color-grey-800);--color-alt: var(--color-white);--color-rev: var(--color-white);--color-alt-rev: var(--color-black);--color-muted: var(--color-grey-200);--color-decorative: var(--color-grey-400);--color-info: var(--color-fbk-info);--color-info-rev: var(--color-fbk-info-subtle);--color-warn: var(--color-fbk-warn);--color-warn-rev: var(--color-fbk-warn-subtle);--color-success: var(--color-fbk-success);--color-success-rev: var(--color-fbk-success-subtle);--color-error: var(--color-fbk-danger);--color-error-rev: var(--color-fbk-danger-subtle);--color-surface-neutral: var(--color-white);--color-surface-neutral-hover: var(--color-grey-50);--color-surface-selected: var(--color-grey-800);--color-surface-selected-hover: var(--color-grey-900);--color-surface-primary: var(--color-grey-50);--color-surface-secondary: var(--color-black);--color-surface-tertiary: var(--color-grey-950);--color-surface-info: var(--color-fbk-info-surface-light);--color-surface-warn: var(--color-fbk-warn-surface-light);--color-surface-success: var(--color-fbk-success-surface-light);--color-surface-error: var(--color-fbk-danger-surface-light);--color-surface-muted: var(--color-grey-500);--color-bdr-subtle: var(--color-grey-500);--color-bdr-soft: var(--color-grey-200);--color-bdr-strong: var(--color-black);--color-bdr-select: var(--color-blue);--color-ring: var(--color-black);--color-ring-alt: var(--color-white);--color-ring-offset: var(--color-white);--color-ring-offset-alt: var(--color-grey-950);--color-btn-primary: var(--color-white);--color-btn-primary-hover: var(--color-grey-50);--color-btn-secondary: var(--color-grey-50);--color-btn-secondary-hover: var(--color-grey-100);--color-btn-tertiary: var(--color-black);--color-btn-tertiary-hover: var(--color-grey-900);--color-btn-active: var(--color-grey-800);--color-btn-active-hover: var(--color-grey-900);--color-input-disabled: var(--color-grey-100);--color-link-visited: var(--color-purple);--color-tooltip: var(--color-black);--color-tooltip-foreground: var(--color-white);--color-overlay: oklch(0 0 0 / .4);--color-docs: var(--color-juke)}}@layer base{.dark,:host(.dark){--color-main: var(--color-white);--color-main-hover: var(--color-grey-200);--color-subtle: var(--color-grey-400);--color-alt: var(--color-white);--color-rev: var(--color-black);--color-alt-rev: var(--color-black);--color-muted: var(--color-grey-800);--color-decorative: var(--color-grey-700);--color-info: var(--color-fbk-info-subtle);--color-info-rev: var(--color-fbk-info);--color-warn: var(--color-fbk-warn-subtle);--color-warn-rev: var(--color-fbk-warn);--color-success: var(--color-fbk-success-subtle);--color-success-rev: var(--color-fbk-success);--color-error: var(--color-fbk-danger-subtle);--color-error-rev: var(--color-fbk-danger);--color-surface-neutral: var(--color-grey-950);--color-surface-neutral-hover: var(--color-grey-900);--color-surface-selected: var(--color-grey-800);--color-surface-selected-hover: var(--color-grey-900);--color-surface-primary: var(--color-grey-900);--color-surface-secondary: var(--color-grey-700);--color-surface-tertiary: var(--color-grey-900);--color-surface-info: var(--color-fbk-info-surface-dark);--color-surface-warn: var(--color-fbk-warn-surface-dark);--color-surface-success: var(--color-fbk-success-surface-dark);--color-surface-error: var(--color-fbk-danger-surface-dark);--color-surface-muted: var(--color-grey-500);--color-bdr-subtle: var(--color-grey-800);--color-bdr-soft: var(--color-grey-800);--color-bdr-strong: var(--color-white);--color-bdr-select: var(--color-blue-subtle);--color-ring: var(--color-white);--color-ring-alt: var(--color-white);--color-ring-offset: var(--color-grey-950);--color-ring-offset-alt: var(--color-grey-950);--color-btn-primary: var(--color-grey-950);--color-btn-primary-hover: var(--color-grey-900);--color-btn-secondary: var(--color-grey-900);--color-btn-secondary-hover: var(--color-grey-800);--color-btn-tertiary: var(--color-grey-800);--color-btn-tertiary-hover: var(--color-grey-700);--color-btn-active: var(--color-grey-800);--color-btn-active-hover: var(--color-grey-700);--color-input-disabled: var(--color-grey-800);--color-link-visited: var(--color-purple-subtle);--color-tooltip: var(--color-grey-800);--color-tooltip-foreground: var(--color-white);--color-overlay: oklch(0 0 0 / .6);--color-docs: var(--color-juke)}}@custom-variant dark (&:where(.dark,.dark *));@theme{ --color-main: var(--color-main); --color-main-hover: var(--color-main-hover); --color-subtle: var(--color-subtle); --color-alt: var(--color-alt); --color-rev: var(--color-rev); --color-alt-rev: var(--color-alt-rev); --color-muted: var(--color-muted); --color-decorative: var(--color-decorative); --color-info: var(--color-info); --color-info-rev: var(--color-info-rev); --color-warn: var(--color-warn); --color-warn-rev: var(--color-warn-rev); --color-success: var(--color-success); --color-success-rev: var(--color-success-rev); --color-error: var(--color-error); --color-error-rev: var(--color-error-rev); --color-surface-neutral: var(--color-surface-neutral); --color-surface-neutral-hover: var(--color-surface-neutral-hover); --color-surface-selected: var(--color-surface-selected); --color-surface-selected-hover: var(--color-surface-selected-hover); --color-surface-primary: var(--color-surface-primary); --color-surface-secondary: var(--color-surface-secondary); --color-surface-tertiary: var(--color-surface-tertiary); --color-surface-info: var(--color-surface-info); --color-surface-warn: var(--color-surface-warn); --color-surface-success: var(--color-surface-success); --color-surface-error: var(--color-surface-error); --color-surface-muted: var(--color-surface-muted); --color-bdr-subtle: var(--color-bdr-subtle); --color-bdr-soft: var(--color-bdr-soft); --color-bdr-strong: var(--color-bdr-strong); --color-bdr-select: var(--color-bdr-select); --color-ring: var(--color-ring); --color-ring-offset: var(--color-ring-offset); --color-btn-primary: var(--color-btn-primary); --color-btn-primary-hover: var(--color-btn-primary-hover); --color-btn-secondary: var(--color-btn-secondary); --color-btn-secondary-hover: var(--color-btn-secondary-hover); --color-btn-tertiary: var(--color-btn-tertiary); --color-btn-tertiary-hover: var(--color-btn-tertiary-hover); --color-btn-active: var(--color-btn-active); --color-btn-active-hover: var(--color-btn-active-hover); --color-btn-error: var(--color-fbk-danger); --color-btn-error-hover: color-mix(in srgb, var(--color-fbk-danger), black 10%); --color-btn-error-active: color-mix(in srgb, var(--color-fbk-danger), black 19%); --color-input-disabled: var(--color-input-disabled); --color-link-visited: var(--color-link-visited); --color-tooltip: var(--color-tooltip); --color-tooltip-foreground: var(--color-tooltip-foreground); --color-overlay: var(--color-overlay); --color-docs: var(--color-docs); --sizing-11\.5: calc(var(--spacing) * 11.5); }@layer base{:root,:host{font-size:16px;color:var(--color-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@utility scrollbar-none{scrollbar-width: none; &::-webkit-scrollbar {display: none;}}@utility transition-highlight{transition-property: color,box-shadow; transition-duration: .1s;}@keyframes skeleton-shimmer{0%{background-position-x:calc(-1 * var(--shimmer-band-size))}to{background-position-x:calc(var(--shimmer-end, 100%) + var(--shimmer-band-size))}}@utility animate-skeleton-shimmer{ --shimmer-band-size: 200px; background-image: linear-gradient(90deg, transparent 0%, var(--color-surface-neutral-hover) 50%, transparent 100%); background-size: var(--shimmer-band-size) 100%; background-repeat: no-repeat; animation: skeleton-shimmer 1.5s ease-in-out infinite; mask-repeat: no-repeat; -webkit-mask-repeat: no-repeat; opacity: 0; &[data-ready="true"] { opacity: 1; } }
1
+ @layer base {
2
+ :root,
3
+ :host {
4
+ /* Neutrals */
5
+ --color-black: #000000;
6
+ --color-grey-950: #242829;
7
+ --color-grey-900: #3d4142;
8
+ --color-grey-850: #4c5051;
9
+ --color-grey-800: #5b5f60;
10
+ --color-grey-700: #797d7e;
11
+ --color-grey-600: #8d9192;
12
+ --color-grey-500: #b2b2b2;
13
+ --color-grey-400: #b5b9ba;
14
+ --color-grey-300: #d3d7d8;
15
+ --color-grey-200: #dde1e2;
16
+ --color-grey-100: #e7ebeb;
17
+ --color-grey-50: #f1f5f6;
18
+ --color-white: #ffffff;
19
+
20
+ /* Feedback */
21
+ --color-fbk-info: #0270a0;
22
+ --color-fbk-info-subtle: #208ebe;
23
+ --color-fbk-info-surface-light: #d7f3ff;
24
+ --color-fbk-info-surface-dark: #1a5a6e;
25
+
26
+ --color-fbk-warn: #cb9126;
27
+ --color-fbk-warn-subtle: #e9af44;
28
+ --color-fbk-warn-surface-light: #f7e5c4;
29
+ --color-fbk-warn-surface-dark: #5c4422;
30
+
31
+ --color-fbk-success: #499349;
32
+ --color-fbk-success-subtle: #67b167;
33
+ --color-fbk-success-surface-light: #cee2ce;
34
+ --color-fbk-success-surface-dark: #2d5a3d;
35
+
36
+ --color-fbk-danger: #d33030;
37
+ --color-fbk-danger-subtle: #f56262;
38
+ --color-fbk-danger-surface-light: #f6d7d7;
39
+ --color-fbk-danger-surface-dark: #5c3333;
40
+
41
+ /* Misc */
42
+ --color-purple: #800080;
43
+ --color-purple-subtle: #e46ee4;
44
+ --color-juke: #9747ff;
45
+ --color-blue: #009bf5;
46
+ --color-blue-subtle: #1fa5f5;
47
+ }
48
+ }
49
+
50
+ @layer base {
51
+ :root,
52
+ :host {
53
+ /* Main Colors */
54
+ --color-main: var(--color-black);
55
+ --color-main-hover: var(--color-grey-800);
56
+ --color-subtle: var(--color-grey-800);
57
+ --color-alt: var(--color-white);
58
+ --color-rev: var(--color-white);
59
+ --color-alt-rev: var(--color-black);
60
+ --color-muted: var(--color-grey-200);
61
+ --color-decorative: var(--color-grey-400);
62
+
63
+ --color-info: var(--color-fbk-info);
64
+ --color-info-rev: var(--color-fbk-info-subtle);
65
+ --color-warn: var(--color-fbk-warn);
66
+ --color-warn-rev: var(--color-fbk-warn-subtle);
67
+ --color-success: var(--color-fbk-success);
68
+ --color-success-rev: var(--color-fbk-success-subtle);
69
+ --color-error: var(--color-fbk-danger);
70
+ --color-error-rev: var(--color-fbk-danger-subtle);
71
+
72
+ /* Surface Colors */
73
+ --color-surface-neutral: var(--color-white);
74
+ --color-surface-neutral-hover: var(--color-grey-50);
75
+ --color-surface-selected: var(--color-grey-800);
76
+ --color-surface-selected-hover: var(--color-grey-900);
77
+ --color-surface-primary: var(--color-grey-50);
78
+ --color-surface-secondary: var(--color-black);
79
+ --color-surface-tertiary: var(--color-grey-950);
80
+ --color-surface-shimmer: var(--color-white);
81
+ --color-surface-info: var(--color-fbk-info-surface-light);
82
+ --color-surface-warn: var(--color-fbk-warn-surface-light);
83
+ --color-surface-success: var(--color-fbk-success-surface-light);
84
+ --color-surface-error: var(--color-fbk-danger-surface-light);
85
+ --color-surface-muted: var(--color-grey-500);
86
+
87
+ /* Borders */
88
+ --color-bdr-subtle: var(--color-grey-500);
89
+ --color-bdr-soft: var(--color-grey-200);
90
+ --color-bdr-strong: var(--color-black);
91
+ --color-bdr-select: var(--color-blue);
92
+
93
+ /* Outline Ring */
94
+ --color-ring: var(--color-black);
95
+ --color-ring-alt: var(--color-white);
96
+ --color-ring-offset: var(--color-white);
97
+ --color-ring-offset-alt: var(--color-grey-950);
98
+
99
+ /* Buttons */
100
+ --color-btn-primary: var(--color-white);
101
+ --color-btn-primary-hover: var(--color-grey-50);
102
+ --color-btn-secondary: var(--color-grey-50);
103
+ --color-btn-secondary-hover: var(--color-grey-100);
104
+ --color-btn-tertiary: var(--color-black);
105
+ --color-btn-tertiary-hover: var(--color-grey-900);
106
+ --color-btn-active: var(--color-grey-800);
107
+ --color-btn-active-hover: var(--color-grey-900);
108
+
109
+ /* Inputs */
110
+ --color-input-disabled: var(--color-grey-100);
111
+
112
+ /*Links*/
113
+ --color-link-visited: var(--color-purple);
114
+
115
+ /* Tooltips */
116
+ --color-tooltip: var(--color-black);
117
+ --color-tooltip-foreground: var(--color-white);
118
+
119
+ /* Overlay */
120
+ --color-overlay: oklch(0 0 0 / 0.4);
121
+
122
+ /* Documentation */
123
+ --color-docs: var(--color-juke);
124
+ }
125
+ }
126
+
127
+ @layer base {
128
+ .dark,
129
+ :host(.dark) {
130
+ /* Main Colors */
131
+ --color-main: var(--color-white);
132
+ --color-main-hover: var(--color-grey-200);
133
+ --color-subtle: var(--color-grey-400);
134
+ --color-alt: var(--color-white);
135
+ --color-rev: var(--color-black);
136
+ --color-alt-rev: var(--color-black);
137
+ --color-muted: var(--color-grey-800);
138
+ --color-decorative: var(--color-grey-700);
139
+
140
+ --color-info: var(--color-fbk-info-subtle);
141
+ --color-info-rev: var(--color-fbk-info);
142
+ --color-warn: var(--color-fbk-warn-subtle);
143
+ --color-warn-rev: var(--color-fbk-warn);
144
+ --color-success: var(--color-fbk-success-subtle);
145
+ --color-success-rev: var(--color-fbk-success);
146
+ --color-error: var(--color-fbk-danger-subtle);
147
+ --color-error-rev: var(--color-fbk-danger);
148
+
149
+ /* Surface Colors */
150
+ --color-surface-neutral: var(--color-grey-950);
151
+ --color-surface-neutral-hover: var(--color-grey-900);
152
+ --color-surface-selected: var(--color-grey-800);
153
+ --color-surface-selected-hover: var(--color-grey-900);
154
+ --color-surface-primary: var(--color-grey-900);
155
+ --color-surface-secondary: var(--color-grey-700);
156
+ --color-surface-tertiary: var(--color-grey-900);
157
+ --color-surface-shimmer: var(--color-grey-850);
158
+ --color-surface-info: var(--color-fbk-info-surface-dark);
159
+ --color-surface-warn: var(--color-fbk-warn-surface-dark);
160
+ --color-surface-success: var(--color-fbk-success-surface-dark);
161
+ --color-surface-error: var(--color-fbk-danger-surface-dark);
162
+ --color-surface-muted: var(--color-grey-500);
163
+
164
+ /* Borders */
165
+ --color-bdr-subtle: var(--color-grey-800);
166
+ --color-bdr-soft: var(--color-grey-800);
167
+ --color-bdr-strong: var(--color-white);
168
+ --color-bdr-select: var(--color-blue-subtle);
169
+
170
+ /* Outline Ring */
171
+ --color-ring: var(--color-white);
172
+ --color-ring-alt: var(--color-white);
173
+ --color-ring-offset: var(--color-grey-950);
174
+ --color-ring-offset-alt: var(--color-grey-950);
175
+
176
+ /* Buttons */
177
+ --color-btn-primary: var(--color-grey-950);
178
+ --color-btn-primary-hover: var(--color-grey-900);
179
+ --color-btn-secondary: var(--color-grey-900);
180
+ --color-btn-secondary-hover: var(--color-grey-800);
181
+ --color-btn-tertiary: var(--color-grey-800);
182
+ --color-btn-tertiary-hover: var(--color-grey-700);
183
+ --color-btn-active: var(--color-grey-800);
184
+ --color-btn-active-hover: var(--color-grey-700);
185
+
186
+ /* Inputs */
187
+ --color-input-disabled: var(--color-grey-800);
188
+
189
+ /*Links*/
190
+ --color-link-visited: var(--color-purple-subtle);
191
+
192
+ /* Tooltips */
193
+ --color-tooltip: var(--color-grey-800);
194
+ --color-tooltip-foreground: var(--color-white);
195
+
196
+ /* Overlay */
197
+ --color-overlay: oklch(0 0 0 / 0.6);
198
+
199
+ /* Documentation */
200
+ --color-docs: var(--color-juke);
201
+ }
202
+ }
203
+
204
+ @custom-variant dark (&:where(.dark, .dark *));
205
+
206
+ @theme {
207
+ /* COLORS */
208
+ /* Main Colors */
209
+ --color-main: var(--color-main);
210
+ --color-main-hover: var(--color-main-hover);
211
+ --color-subtle: var(--color-subtle);
212
+ --color-alt: var(--color-alt);
213
+ --color-rev: var(--color-rev);
214
+ --color-alt-rev: var(--color-alt-rev);
215
+ --color-muted: var(--color-muted);
216
+ --color-decorative: var(--color-decorative);
217
+
218
+ --color-info: var(--color-info);
219
+ --color-info-rev: var(--color-info-rev);
220
+ --color-warn: var(--color-warn);
221
+ --color-warn-rev: var(--color-warn-rev);
222
+ --color-success: var(--color-success);
223
+ --color-success-rev: var(--color-success-rev);
224
+ --color-error: var(--color-error);
225
+ --color-error-rev: var(--color-error-rev);
226
+
227
+ /* Surface Colors */
228
+ --color-surface-neutral: var(--color-surface-neutral);
229
+ --color-surface-neutral-hover: var(--color-surface-neutral-hover);
230
+ --color-surface-selected: var(--color-surface-selected);
231
+ --color-surface-selected-hover: var(--color-surface-selected-hover);
232
+ --color-surface-primary: var(--color-surface-primary);
233
+ --color-surface-secondary: var(--color-surface-secondary);
234
+ --color-surface-tertiary: var(--color-surface-tertiary);
235
+ --color-surface-shimmer: var(--color-surface-shimmer);
236
+ --color-surface-info: var(--color-surface-info);
237
+ --color-surface-warn: var(--color-surface-warn);
238
+ --color-surface-success: var(--color-surface-success);
239
+ --color-surface-error: var(--color-surface-error);
240
+ --color-surface-muted: var(--color-surface-muted);
241
+
242
+ /* Borders */
243
+ --color-bdr-subtle: var(--color-bdr-subtle);
244
+ --color-bdr-soft: var(--color-bdr-soft);
245
+ --color-bdr-strong: var(--color-bdr-strong);
246
+ --color-bdr-select: var(--color-bdr-select);
247
+
248
+ /* Outline Ring */
249
+ --color-ring: var(--color-ring);
250
+ --color-ring-offset: var(--color-ring-offset);
251
+
252
+ /* Buttons */
253
+ --color-btn-primary: var(--color-btn-primary);
254
+ --color-btn-primary-hover: var(--color-btn-primary-hover);
255
+ --color-btn-secondary: var(--color-btn-secondary);
256
+ --color-btn-secondary-hover: var(--color-btn-secondary-hover);
257
+ --color-btn-tertiary: var(--color-btn-tertiary);
258
+ --color-btn-tertiary-hover: var(--color-btn-tertiary-hover);
259
+ --color-btn-active: var(--color-btn-active);
260
+ --color-btn-active-hover: var(--color-btn-active-hover);
261
+ --color-btn-error: var(--color-fbk-danger);
262
+ --color-btn-error-hover: color-mix(in srgb, var(--color-fbk-danger), black 10%);
263
+ --color-btn-error-active: color-mix(in srgb, var(--color-fbk-danger), black 19%);
264
+
265
+ /* Inputs */
266
+ --color-input-disabled: var(--color-input-disabled);
267
+
268
+ /*Links*/
269
+ --color-link-visited: var(--color-link-visited);
270
+
271
+ /* Tooltips */
272
+ --color-tooltip: var(--color-tooltip);
273
+ --color-tooltip-foreground: var(--color-tooltip-foreground);
274
+
275
+ /* Overlay */
276
+ --color-overlay: var(--color-overlay);
277
+
278
+ /* Documentation */
279
+ --color-docs: var(--color-docs);
280
+
281
+ /* SIZINGS */
282
+ --sizing-11\.5: calc(var(--spacing) * 11.5);
283
+ }
284
+
285
+ @layer base {
286
+ :root,
287
+ :host {
288
+ font-size: 16px;
289
+ color: var(--color-main);
290
+ -webkit-font-smoothing: antialiased;
291
+ -moz-osx-font-smoothing: grayscale;
292
+ }
293
+ }
294
+
295
+ @utility scrollbar-none {
296
+ scrollbar-width: none;
297
+ &::-webkit-scrollbar {
298
+ display: none;
299
+ }
300
+ }
301
+
302
+ @utility transition-highlight {
303
+ transition-property: color, box-shadow;
304
+ transition-duration: 100ms;
305
+ }
306
+
307
+ @keyframes skeleton-shimmer {
308
+ 0% {
309
+ background-position-x: calc(-1 * var(--shimmer-band-size, 200px));
310
+ }
311
+ 100% {
312
+ background-position-x: calc(var(--shimmer-end, 100%) + var(--shimmer-band-size, 200px));
313
+ }
314
+ }
315
+
316
+ @utility animate-skeleton-shimmer {
317
+ --shimmer-band-size: 200px;
318
+ background-image: linear-gradient(90deg, transparent 0%, var(--color-surface-neutral-hover) 50%, transparent 100%);
319
+ background-size: var(--shimmer-band-size) 100%;
320
+ background-repeat: no-repeat;
321
+ animation: skeleton-shimmer 1.5s ease-in-out infinite;
322
+ mask-repeat: no-repeat;
323
+ -webkit-mask-repeat: no-repeat;
324
+ opacity: 0;
325
+ &[data-ready='true'] {
326
+ opacity: 1;
327
+ }
328
+ }
329
+
330
+ @keyframes input-blink-ring {
331
+ 0% {
332
+ box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-bdr-select) 45%, transparent);
333
+ }
334
+ 70% {
335
+ box-shadow: 0 0 0 8px transparent;
336
+ }
337
+ 100% {
338
+ box-shadow: 0 0 0 0 transparent;
339
+ }
340
+ }
341
+
342
+ @utility input-animated-border {
343
+ position: relative;
344
+ &::before {
345
+ content: '';
346
+ position: absolute;
347
+ inset: 0;
348
+ padding: 1px;
349
+ border-radius: inherit;
350
+ background-color: var(--color-bdr-subtle);
351
+ background-image: linear-gradient(90deg, transparent 0%, var(--color-bdr-select) 50%, transparent 100%);
352
+ background-size: var(--shimmer-band-size, 200px) 100%;
353
+ background-repeat: no-repeat;
354
+ animation: skeleton-shimmer 1.6s ease-in-out infinite;
355
+ -webkit-mask-image: linear-gradient(#000 0 0), linear-gradient(#000 0 0);
356
+ -webkit-mask-clip: content-box, border-box;
357
+ -webkit-mask-composite: xor;
358
+ mask-image: linear-gradient(#000 0 0), linear-gradient(#000 0 0);
359
+ mask-clip: content-box, border-box;
360
+ mask-composite: exclude;
361
+ pointer-events: none;
362
+ z-index: 1;
363
+ }
364
+ }
365
+
366
+ @utility input-blink-attention {
367
+ animation: input-blink-ring 0.6s ease-out 2;
368
+ /* Doubled `:focus-within` bumps specificity above Tailwind's `focus-within:ring-*` so the blink ring isn't fighting the focus ring during the animation. */
369
+ &:focus-within:focus-within {
370
+ box-shadow: none;
371
+ }
372
+ }