@hanzo/ui 8.27.53 → 8.27.55
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/progress.cjs +2 -2
- package/dist/backends/gui/progress.d.ts +3 -1
- package/dist/backends/gui/progress.d.ts.map +1 -1
- package/dist/backends/gui/progress.js +2 -2
- package/dist/backends/gui/progress.js.map +1 -1
- package/dist/gallery.cjs +17 -1
- package/dist/gallery.d.ts.map +1 -1
- package/dist/gallery.html +43 -341
- package/dist/gallery.js +17 -1
- package/dist/gallery.js.map +1 -1
- package/dist/marketing/rows.cjs +5 -11
- package/dist/marketing/rows.d.ts +2 -1
- package/dist/marketing/rows.d.ts.map +1 -1
- package/dist/marketing/rows.js +5 -11
- package/dist/marketing/rows.js.map +1 -1
- package/dist/models/ModelSelector.cjs +7 -3
- package/dist/models/ModelSelector.d.ts +9 -1
- package/dist/models/ModelSelector.d.ts.map +1 -1
- package/dist/models/ModelSelector.js +7 -3
- package/dist/models/ModelSelector.js.map +1 -1
- package/dist/product/LimitedBanner.cjs +22 -0
- package/dist/product/LimitedBanner.d.ts +10 -0
- package/dist/product/LimitedBanner.d.ts.map +1 -0
- package/dist/product/LimitedBanner.js +20 -0
- package/dist/product/LimitedBanner.js.map +1 -0
- package/dist/product/UsageMeter.cjs +48 -0
- package/dist/product/UsageMeter.d.ts +18 -0
- package/dist/product/UsageMeter.d.ts.map +1 -0
- package/dist/product/UsageMeter.js +45 -0
- package/dist/product/UsageMeter.js.map +1 -0
- package/dist/product/index.cjs +6 -0
- package/dist/product/index.d.ts +4 -0
- package/dist/product/index.d.ts.map +1 -1
- package/dist/product/index.js +6 -0
- package/dist/product/index.js.map +1 -1
- package/dist/product/limits.cjs +246 -0
- package/dist/product/limits.d.ts +113 -0
- package/dist/product/limits.d.ts.map +1 -0
- package/dist/product/limits.js +233 -0
- package/dist/product/limits.js.map +1 -0
- package/dist/product/pure.cjs +17 -0
- package/dist/product/pure.d.ts +1 -0
- package/dist/product/pure.d.ts.map +1 -1
- package/dist/product/pure.js +3 -0
- package/dist/product/pure.js.map +1 -1
- package/dist/product/useLimits.cjs +124 -0
- package/dist/product/useLimits.d.ts +27 -0
- package/dist/product/useLimits.d.ts.map +1 -0
- package/dist/product/useLimits.js +120 -0
- package/dist/product/useLimits.js.map +1 -0
- package/dist/styles/motion.css +2 -160
- package/dist/styles.css +39 -337
- package/dist/theme.css +20 -177
- package/package.json +2 -2
package/dist/styles/motion.css
CHANGED
|
@@ -189,166 +189,8 @@
|
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
|
|
192
|
-
/*
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
Left to the platform this is not neutral: Linux/GTK Chrome draws a wide track
|
|
196
|
-
with STEPPER ARROWS at both ends, so a dark product grows two grey buttons per
|
|
197
|
-
scroll region. Windows draws a wide light track. macOS overlays a thin one,
|
|
198
|
-
which is the behaviour the other two should have had.
|
|
199
|
-
|
|
200
|
-
THE TWO HALVES MUST NOT BE DECLARED TOGETHER, and that is the whole subtlety.
|
|
201
|
-
Chromium supports both the standard properties and the `::-webkit-scrollbar`
|
|
202
|
-
pseudo-elements — but the moment `scrollbar-width` or `scrollbar-color` is
|
|
203
|
-
anything other than `auto`, it takes the standard path and DISCARDS the entire
|
|
204
|
-
webkit block. Shipping both is how 8.1.19 removed nothing: measured headed on
|
|
205
|
-
Linux, as-shipped gave a 10px gutter with arrows, while the authored webkit
|
|
206
|
-
rule alone gives 8px with none. Isolated: webkit-only 8px no arrows;
|
|
207
|
-
standard-only 10px arrows; both together 10px arrows.
|
|
208
|
-
|
|
209
|
-
Neither half is redundant, so neither can simply be deleted — Firefox
|
|
210
|
-
implements ONLY the standard properties, Safari ONLY the webkit ones. They are
|
|
211
|
-
separated by engine instead: the webkit block applies wherever the selector is
|
|
212
|
-
understood, and the standard properties apply only where it is not.
|
|
213
|
-
|
|
214
|
-
And it is invisible headless. Chromium's headless shell paints OVERLAY
|
|
215
|
-
scrollbars, so nothing is drawn, `offsetWidth - clientWidth` is 0 on a blank
|
|
216
|
-
page, and `getComputedStyle(el, '::-webkit-scrollbar-button').display` happily
|
|
217
|
-
reports `none` for a rule that never ran. This must be checked headed.
|
|
218
|
-
───────────────────────────────────────────────────────────────────────────── */
|
|
219
|
-
|
|
220
|
-
/* Firefox and anything else with no webkit pseudo-elements. */
|
|
221
|
-
@supports not selector(::-webkit-scrollbar) {
|
|
222
|
-
:where(
|
|
223
|
-
[data-slot='fill'],
|
|
224
|
-
[data-slot='thread'],
|
|
225
|
-
[data-slot='sources-strip'],
|
|
226
|
-
[data-slot='sidebar-scroll'],
|
|
227
|
-
[data-slot='scroll-area-viewport'],
|
|
228
|
-
[data-slot='textarea'],
|
|
229
|
-
[data-slot='composer-field']
|
|
230
|
-
) {
|
|
231
|
-
scrollbar-width: thin;
|
|
232
|
-
scrollbar-color: rgb(255 255 255 / 0.18) transparent;
|
|
233
|
-
}
|
|
234
|
-
.t_light :where(
|
|
235
|
-
[data-slot='fill'],
|
|
236
|
-
[data-slot='thread'],
|
|
237
|
-
[data-slot='sources-strip'],
|
|
238
|
-
[data-slot='sidebar-scroll'],
|
|
239
|
-
[data-slot='scroll-area-viewport'],
|
|
240
|
-
[data-slot='textarea'],
|
|
241
|
-
[data-slot='composer-field']
|
|
242
|
-
) { scrollbar-color: rgb(0 0 0 / 0.20) transparent; }
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/* Chromium and Safari.
|
|
246
|
-
The first rule is the load-bearing one and it is a RESET, not a style.
|
|
247
|
-
@hanzo/design sets `scrollbar-color` and `scrollbar-width` on `:where(html)`
|
|
248
|
-
(theme.css), and both INHERIT — so every element in the document already
|
|
249
|
-
carries a non-`auto` value, Chromium takes the standard path, and the whole
|
|
250
|
-
webkit block below is discarded before it is read. Nothing declared here can
|
|
251
|
-
win until the inherited value is put back to `auto` on the element itself.
|
|
252
|
-
That is why the arrows survived 8.1.19: the competing declaration was one
|
|
253
|
-
level up and inherited, not a rule anyone would find in this file. */
|
|
254
|
-
@supports selector(::-webkit-scrollbar) {
|
|
255
|
-
:where(
|
|
256
|
-
[data-slot='fill'],
|
|
257
|
-
[data-slot='thread'],
|
|
258
|
-
[data-slot='sources-strip'],
|
|
259
|
-
[data-slot='sidebar-scroll'],
|
|
260
|
-
[data-slot='scroll-area-viewport'],
|
|
261
|
-
[data-slot='textarea'],
|
|
262
|
-
[data-slot='composer-field']
|
|
263
|
-
) {
|
|
264
|
-
scrollbar-width: auto;
|
|
265
|
-
scrollbar-color: auto;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
:where(
|
|
269
|
-
[data-slot='fill'],
|
|
270
|
-
[data-slot='thread'],
|
|
271
|
-
[data-slot='sources-strip'],
|
|
272
|
-
[data-slot='sidebar-scroll'],
|
|
273
|
-
[data-slot='scroll-area-viewport'],
|
|
274
|
-
[data-slot='textarea'],
|
|
275
|
-
[data-slot='composer-field']
|
|
276
|
-
)::-webkit-scrollbar { width: 8px; height: 8px; }
|
|
277
|
-
|
|
278
|
-
/* The steppers. This is the rule that removes the arrows, and the reason the
|
|
279
|
-
two halves had to be separated at all. */
|
|
280
|
-
:where(
|
|
281
|
-
[data-slot='fill'],
|
|
282
|
-
[data-slot='thread'],
|
|
283
|
-
[data-slot='sources-strip'],
|
|
284
|
-
[data-slot='sidebar-scroll'],
|
|
285
|
-
[data-slot='scroll-area-viewport'],
|
|
286
|
-
[data-slot='textarea'],
|
|
287
|
-
[data-slot='composer-field']
|
|
288
|
-
)::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
|
|
289
|
-
|
|
290
|
-
:where(
|
|
291
|
-
[data-slot='fill'],
|
|
292
|
-
[data-slot='thread'],
|
|
293
|
-
[data-slot='sources-strip'],
|
|
294
|
-
[data-slot='sidebar-scroll'],
|
|
295
|
-
[data-slot='scroll-area-viewport'],
|
|
296
|
-
[data-slot='textarea'],
|
|
297
|
-
[data-slot='composer-field']
|
|
298
|
-
)::-webkit-scrollbar-track { background: transparent; }
|
|
299
|
-
|
|
300
|
-
:where(
|
|
301
|
-
[data-slot='fill'],
|
|
302
|
-
[data-slot='thread'],
|
|
303
|
-
[data-slot='sources-strip'],
|
|
304
|
-
[data-slot='sidebar-scroll'],
|
|
305
|
-
[data-slot='scroll-area-viewport'],
|
|
306
|
-
[data-slot='textarea'],
|
|
307
|
-
[data-slot='composer-field']
|
|
308
|
-
)::-webkit-scrollbar-thumb {
|
|
309
|
-
background: rgb(255 255 255 / 0.18);
|
|
310
|
-
border-radius: 999px;
|
|
311
|
-
/* A transparent border with background-clip keeps the thumb off the very
|
|
312
|
-
edge without a track colour doing it, so it reads as an overlay rather
|
|
313
|
-
than a channel. */
|
|
314
|
-
border: 2px solid transparent;
|
|
315
|
-
background-clip: content-box;
|
|
316
|
-
}
|
|
317
|
-
:where(
|
|
318
|
-
[data-slot='fill'],
|
|
319
|
-
[data-slot='thread'],
|
|
320
|
-
[data-slot='sources-strip'],
|
|
321
|
-
[data-slot='sidebar-scroll'],
|
|
322
|
-
[data-slot='scroll-area-viewport'],
|
|
323
|
-
[data-slot='textarea'],
|
|
324
|
-
[data-slot='composer-field']
|
|
325
|
-
)::-webkit-scrollbar-thumb:hover {
|
|
326
|
-
background: rgb(255 255 255 / 0.30);
|
|
327
|
-
background-clip: content-box;
|
|
328
|
-
}
|
|
329
|
-
:where(
|
|
330
|
-
[data-slot='fill'],
|
|
331
|
-
[data-slot='thread'],
|
|
332
|
-
[data-slot='sources-strip'],
|
|
333
|
-
[data-slot='sidebar-scroll'],
|
|
334
|
-
[data-slot='scroll-area-viewport'],
|
|
335
|
-
[data-slot='textarea'],
|
|
336
|
-
[data-slot='composer-field']
|
|
337
|
-
)::-webkit-scrollbar-corner { background: transparent; }
|
|
338
|
-
|
|
339
|
-
.t_light :where(
|
|
340
|
-
[data-slot='fill'],
|
|
341
|
-
[data-slot='thread'],
|
|
342
|
-
[data-slot='sources-strip'],
|
|
343
|
-
[data-slot='sidebar-scroll'],
|
|
344
|
-
[data-slot='scroll-area-viewport'],
|
|
345
|
-
[data-slot='textarea'],
|
|
346
|
-
[data-slot='composer-field']
|
|
347
|
-
)::-webkit-scrollbar-thumb {
|
|
348
|
-
background: rgb(0 0 0 / 0.20);
|
|
349
|
-
background-clip: content-box;
|
|
350
|
-
}
|
|
351
|
-
}
|
|
192
|
+
/* Scrollbars are @hanzo/design's (base.css, ≥ 0.5.34): a thin thumb on every
|
|
193
|
+
scroller and no stepper buttons, stated once for the page. */
|
|
352
194
|
|
|
353
195
|
/* A carousel scrolls but shows no bar: the arrows and the snap already say it
|
|
354
196
|
scrolls, and a bar appearing mid-drag shifts the slides under the pointer.
|
package/dist/styles.css
CHANGED
|
@@ -1154,34 +1154,35 @@
|
|
|
1154
1154
|
::selection{background:var(--selection);color:var(--text-primary)}
|
|
1155
1155
|
|
|
1156
1156
|
/* ——— the scrollbar ———
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1157
|
+
6px, no track, no stepper buttons, the thumb on the same hairline ladder as
|
|
1158
|
+
everything else. ONE treatment per engine. Chromium 121+ reads the standard
|
|
1159
|
+
`scrollbar-color`/`scrollbar-width` as well as the `::-webkit-*` pseudos,
|
|
1160
|
+
and an element with either standard property set ignores its pseudos —
|
|
1161
|
+
`scrollbar-color` inherits, so stated on html it gives every scroller the
|
|
1162
|
+
native bar, which on Linux/GTK draws a boxed arrow at each end. So the
|
|
1163
|
+
standard pair goes only to an engine without the pseudos (Firefox), and the
|
|
1164
|
+
pseudos serve the rest. Check 1e holds that.
|
|
1164
1165
|
The thumb is a --white-* rung, so it does not invert; the `.light`
|
|
1165
1166
|
restatements sit here rather than in colors.css because a scrollbar is an
|
|
1166
1167
|
element default and this file is where element defaults live. Everything
|
|
1167
1168
|
stays INSIDE the layer — an unlayered rule here would outrank an app's own
|
|
1168
1169
|
utilities, which is the defect check 1c exists to catch. */
|
|
1169
|
-
|
|
1170
|
-
|
|
1170
|
+
@supports not selector(::-webkit-scrollbar){
|
|
1171
|
+
:where(html){scrollbar-color:var(--white-15) transparent;scrollbar-width:thin}
|
|
1172
|
+
.light, :root.t_light, .t_light{scrollbar-color:rgb(0 0 0 / .18) transparent}
|
|
1173
|
+
}
|
|
1171
1174
|
:where(*)::-webkit-scrollbar{width:6px;height:6px}
|
|
1172
1175
|
:where(*)::-webkit-scrollbar-track{background:transparent}
|
|
1173
1176
|
:where(*)::-webkit-scrollbar-thumb{background:var(--white-15);border-radius:var(--radius-full)}
|
|
1174
1177
|
:where(*)::-webkit-scrollbar-thumb:hover{background:var(--white-30)}
|
|
1175
1178
|
:where(*)::-webkit-scrollbar-corner{background:transparent}
|
|
1176
|
-
/* The
|
|
1177
|
-
|
|
1178
|
-
and ships a classic GTK scrollbar — a boxed arrow at each end of every
|
|
1179
|
-
scroller, on both axes — to everyone on Ubuntu. Styling the other pseudos
|
|
1180
|
-
does not suppress them; only this does. Zero width AND height because the
|
|
1181
|
-
horizontal and vertical bars each read one of them. */
|
|
1179
|
+
/* The steppers. Styling the other pseudos does not remove them; only this
|
|
1180
|
+
does. Zero width AND height because each axis reads one of them. */
|
|
1182
1181
|
:where(*)::-webkit-scrollbar-button{display:none;width:0;height:0}
|
|
1183
|
-
|
|
1184
|
-
|
|
1182
|
+
/* `.light` itself as well as its subtree: with the theme class on <html>,
|
|
1183
|
+
html's own pseudos draw the page's scrollbar. */
|
|
1184
|
+
.light::-webkit-scrollbar-thumb,.light :where(*)::-webkit-scrollbar-thumb{background:rgb(0 0 0 / .18)}
|
|
1185
|
+
.light::-webkit-scrollbar-thumb:hover,.light :where(*)::-webkit-scrollbar-thumb:hover{background:rgb(0 0 0 / .32)}
|
|
1185
1186
|
}
|
|
1186
1187
|
|
|
1187
1188
|
/**
|
|
@@ -2042,166 +2043,8 @@
|
|
|
2042
2043
|
}
|
|
2043
2044
|
|
|
2044
2045
|
|
|
2045
|
-
/*
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
Left to the platform this is not neutral: Linux/GTK Chrome draws a wide track
|
|
2049
|
-
with STEPPER ARROWS at both ends, so a dark product grows two grey buttons per
|
|
2050
|
-
scroll region. Windows draws a wide light track. macOS overlays a thin one,
|
|
2051
|
-
which is the behaviour the other two should have had.
|
|
2052
|
-
|
|
2053
|
-
THE TWO HALVES MUST NOT BE DECLARED TOGETHER, and that is the whole subtlety.
|
|
2054
|
-
Chromium supports both the standard properties and the `::-webkit-scrollbar`
|
|
2055
|
-
pseudo-elements — but the moment `scrollbar-width` or `scrollbar-color` is
|
|
2056
|
-
anything other than `auto`, it takes the standard path and DISCARDS the entire
|
|
2057
|
-
webkit block. Shipping both is how 8.1.19 removed nothing: measured headed on
|
|
2058
|
-
Linux, as-shipped gave a 10px gutter with arrows, while the authored webkit
|
|
2059
|
-
rule alone gives 8px with none. Isolated: webkit-only 8px no arrows;
|
|
2060
|
-
standard-only 10px arrows; both together 10px arrows.
|
|
2061
|
-
|
|
2062
|
-
Neither half is redundant, so neither can simply be deleted — Firefox
|
|
2063
|
-
implements ONLY the standard properties, Safari ONLY the webkit ones. They are
|
|
2064
|
-
separated by engine instead: the webkit block applies wherever the selector is
|
|
2065
|
-
understood, and the standard properties apply only where it is not.
|
|
2066
|
-
|
|
2067
|
-
And it is invisible headless. Chromium's headless shell paints OVERLAY
|
|
2068
|
-
scrollbars, so nothing is drawn, `offsetWidth - clientWidth` is 0 on a blank
|
|
2069
|
-
page, and `getComputedStyle(el, '::-webkit-scrollbar-button').display` happily
|
|
2070
|
-
reports `none` for a rule that never ran. This must be checked headed.
|
|
2071
|
-
───────────────────────────────────────────────────────────────────────────── */
|
|
2072
|
-
|
|
2073
|
-
/* Firefox and anything else with no webkit pseudo-elements. */
|
|
2074
|
-
@supports not selector(::-webkit-scrollbar) {
|
|
2075
|
-
:where(
|
|
2076
|
-
[data-slot='fill'],
|
|
2077
|
-
[data-slot='thread'],
|
|
2078
|
-
[data-slot='sources-strip'],
|
|
2079
|
-
[data-slot='sidebar-scroll'],
|
|
2080
|
-
[data-slot='scroll-area-viewport'],
|
|
2081
|
-
[data-slot='textarea'],
|
|
2082
|
-
[data-slot='composer-field']
|
|
2083
|
-
) {
|
|
2084
|
-
scrollbar-width: thin;
|
|
2085
|
-
scrollbar-color: rgb(255 255 255 / 0.18) transparent;
|
|
2086
|
-
}
|
|
2087
|
-
.t_light :where(
|
|
2088
|
-
[data-slot='fill'],
|
|
2089
|
-
[data-slot='thread'],
|
|
2090
|
-
[data-slot='sources-strip'],
|
|
2091
|
-
[data-slot='sidebar-scroll'],
|
|
2092
|
-
[data-slot='scroll-area-viewport'],
|
|
2093
|
-
[data-slot='textarea'],
|
|
2094
|
-
[data-slot='composer-field']
|
|
2095
|
-
) { scrollbar-color: rgb(0 0 0 / 0.20) transparent; }
|
|
2096
|
-
}
|
|
2097
|
-
|
|
2098
|
-
/* Chromium and Safari.
|
|
2099
|
-
The first rule is the load-bearing one and it is a RESET, not a style.
|
|
2100
|
-
@hanzo/design sets `scrollbar-color` and `scrollbar-width` on `:where(html)`
|
|
2101
|
-
(theme.css), and both INHERIT — so every element in the document already
|
|
2102
|
-
carries a non-`auto` value, Chromium takes the standard path, and the whole
|
|
2103
|
-
webkit block below is discarded before it is read. Nothing declared here can
|
|
2104
|
-
win until the inherited value is put back to `auto` on the element itself.
|
|
2105
|
-
That is why the arrows survived 8.1.19: the competing declaration was one
|
|
2106
|
-
level up and inherited, not a rule anyone would find in this file. */
|
|
2107
|
-
@supports selector(::-webkit-scrollbar) {
|
|
2108
|
-
:where(
|
|
2109
|
-
[data-slot='fill'],
|
|
2110
|
-
[data-slot='thread'],
|
|
2111
|
-
[data-slot='sources-strip'],
|
|
2112
|
-
[data-slot='sidebar-scroll'],
|
|
2113
|
-
[data-slot='scroll-area-viewport'],
|
|
2114
|
-
[data-slot='textarea'],
|
|
2115
|
-
[data-slot='composer-field']
|
|
2116
|
-
) {
|
|
2117
|
-
scrollbar-width: auto;
|
|
2118
|
-
scrollbar-color: auto;
|
|
2119
|
-
}
|
|
2120
|
-
|
|
2121
|
-
:where(
|
|
2122
|
-
[data-slot='fill'],
|
|
2123
|
-
[data-slot='thread'],
|
|
2124
|
-
[data-slot='sources-strip'],
|
|
2125
|
-
[data-slot='sidebar-scroll'],
|
|
2126
|
-
[data-slot='scroll-area-viewport'],
|
|
2127
|
-
[data-slot='textarea'],
|
|
2128
|
-
[data-slot='composer-field']
|
|
2129
|
-
)::-webkit-scrollbar { width: 8px; height: 8px; }
|
|
2130
|
-
|
|
2131
|
-
/* The steppers. This is the rule that removes the arrows, and the reason the
|
|
2132
|
-
two halves had to be separated at all. */
|
|
2133
|
-
:where(
|
|
2134
|
-
[data-slot='fill'],
|
|
2135
|
-
[data-slot='thread'],
|
|
2136
|
-
[data-slot='sources-strip'],
|
|
2137
|
-
[data-slot='sidebar-scroll'],
|
|
2138
|
-
[data-slot='scroll-area-viewport'],
|
|
2139
|
-
[data-slot='textarea'],
|
|
2140
|
-
[data-slot='composer-field']
|
|
2141
|
-
)::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
|
|
2142
|
-
|
|
2143
|
-
:where(
|
|
2144
|
-
[data-slot='fill'],
|
|
2145
|
-
[data-slot='thread'],
|
|
2146
|
-
[data-slot='sources-strip'],
|
|
2147
|
-
[data-slot='sidebar-scroll'],
|
|
2148
|
-
[data-slot='scroll-area-viewport'],
|
|
2149
|
-
[data-slot='textarea'],
|
|
2150
|
-
[data-slot='composer-field']
|
|
2151
|
-
)::-webkit-scrollbar-track { background: transparent; }
|
|
2152
|
-
|
|
2153
|
-
:where(
|
|
2154
|
-
[data-slot='fill'],
|
|
2155
|
-
[data-slot='thread'],
|
|
2156
|
-
[data-slot='sources-strip'],
|
|
2157
|
-
[data-slot='sidebar-scroll'],
|
|
2158
|
-
[data-slot='scroll-area-viewport'],
|
|
2159
|
-
[data-slot='textarea'],
|
|
2160
|
-
[data-slot='composer-field']
|
|
2161
|
-
)::-webkit-scrollbar-thumb {
|
|
2162
|
-
background: rgb(255 255 255 / 0.18);
|
|
2163
|
-
border-radius: 999px;
|
|
2164
|
-
/* A transparent border with background-clip keeps the thumb off the very
|
|
2165
|
-
edge without a track colour doing it, so it reads as an overlay rather
|
|
2166
|
-
than a channel. */
|
|
2167
|
-
border: 2px solid transparent;
|
|
2168
|
-
background-clip: content-box;
|
|
2169
|
-
}
|
|
2170
|
-
:where(
|
|
2171
|
-
[data-slot='fill'],
|
|
2172
|
-
[data-slot='thread'],
|
|
2173
|
-
[data-slot='sources-strip'],
|
|
2174
|
-
[data-slot='sidebar-scroll'],
|
|
2175
|
-
[data-slot='scroll-area-viewport'],
|
|
2176
|
-
[data-slot='textarea'],
|
|
2177
|
-
[data-slot='composer-field']
|
|
2178
|
-
)::-webkit-scrollbar-thumb:hover {
|
|
2179
|
-
background: rgb(255 255 255 / 0.30);
|
|
2180
|
-
background-clip: content-box;
|
|
2181
|
-
}
|
|
2182
|
-
:where(
|
|
2183
|
-
[data-slot='fill'],
|
|
2184
|
-
[data-slot='thread'],
|
|
2185
|
-
[data-slot='sources-strip'],
|
|
2186
|
-
[data-slot='sidebar-scroll'],
|
|
2187
|
-
[data-slot='scroll-area-viewport'],
|
|
2188
|
-
[data-slot='textarea'],
|
|
2189
|
-
[data-slot='composer-field']
|
|
2190
|
-
)::-webkit-scrollbar-corner { background: transparent; }
|
|
2191
|
-
|
|
2192
|
-
.t_light :where(
|
|
2193
|
-
[data-slot='fill'],
|
|
2194
|
-
[data-slot='thread'],
|
|
2195
|
-
[data-slot='sources-strip'],
|
|
2196
|
-
[data-slot='sidebar-scroll'],
|
|
2197
|
-
[data-slot='scroll-area-viewport'],
|
|
2198
|
-
[data-slot='textarea'],
|
|
2199
|
-
[data-slot='composer-field']
|
|
2200
|
-
)::-webkit-scrollbar-thumb {
|
|
2201
|
-
background: rgb(0 0 0 / 0.20);
|
|
2202
|
-
background-clip: content-box;
|
|
2203
|
-
}
|
|
2204
|
-
}
|
|
2046
|
+
/* Scrollbars are @hanzo/design's (base.css, ≥ 0.5.34): a thin thumb on every
|
|
2047
|
+
scroller and no stepper buttons, stated once for the page. */
|
|
2205
2048
|
|
|
2206
2049
|
/* A carousel scrolls but shows no bar: the arrows and the snap already say it
|
|
2207
2050
|
scrolls, and a bar appearing mid-drag shifts the slides under the pointer.
|
|
@@ -2773,166 +2616,8 @@ a svg,
|
|
|
2773
2616
|
}
|
|
2774
2617
|
|
|
2775
2618
|
|
|
2776
|
-
/*
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
Left to the platform this is not neutral: Linux/GTK Chrome draws a wide track
|
|
2780
|
-
with STEPPER ARROWS at both ends, so a dark product grows two grey buttons per
|
|
2781
|
-
scroll region. Windows draws a wide light track. macOS overlays a thin one,
|
|
2782
|
-
which is the behaviour the other two should have had.
|
|
2783
|
-
|
|
2784
|
-
THE TWO HALVES MUST NOT BE DECLARED TOGETHER, and that is the whole subtlety.
|
|
2785
|
-
Chromium supports both the standard properties and the `::-webkit-scrollbar`
|
|
2786
|
-
pseudo-elements — but the moment `scrollbar-width` or `scrollbar-color` is
|
|
2787
|
-
anything other than `auto`, it takes the standard path and DISCARDS the entire
|
|
2788
|
-
webkit block. Shipping both is how 8.1.19 removed nothing: measured headed on
|
|
2789
|
-
Linux, as-shipped gave a 10px gutter with arrows, while the authored webkit
|
|
2790
|
-
rule alone gives 8px with none. Isolated: webkit-only 8px no arrows;
|
|
2791
|
-
standard-only 10px arrows; both together 10px arrows.
|
|
2792
|
-
|
|
2793
|
-
Neither half is redundant, so neither can simply be deleted — Firefox
|
|
2794
|
-
implements ONLY the standard properties, Safari ONLY the webkit ones. They are
|
|
2795
|
-
separated by engine instead: the webkit block applies wherever the selector is
|
|
2796
|
-
understood, and the standard properties apply only where it is not.
|
|
2797
|
-
|
|
2798
|
-
And it is invisible headless. Chromium's headless shell paints OVERLAY
|
|
2799
|
-
scrollbars, so nothing is drawn, `offsetWidth - clientWidth` is 0 on a blank
|
|
2800
|
-
page, and `getComputedStyle(el, '::-webkit-scrollbar-button').display` happily
|
|
2801
|
-
reports `none` for a rule that never ran. This must be checked headed.
|
|
2802
|
-
───────────────────────────────────────────────────────────────────────────── */
|
|
2803
|
-
|
|
2804
|
-
/* Firefox and anything else with no webkit pseudo-elements. */
|
|
2805
|
-
@supports not selector(::-webkit-scrollbar) {
|
|
2806
|
-
:where(
|
|
2807
|
-
[data-slot='fill'],
|
|
2808
|
-
[data-slot='thread'],
|
|
2809
|
-
[data-slot='sources-strip'],
|
|
2810
|
-
[data-slot='sidebar-scroll'],
|
|
2811
|
-
[data-slot='scroll-area-viewport'],
|
|
2812
|
-
[data-slot='textarea'],
|
|
2813
|
-
[data-slot='composer-field']
|
|
2814
|
-
) {
|
|
2815
|
-
scrollbar-width: thin;
|
|
2816
|
-
scrollbar-color: rgb(255 255 255 / 0.18) transparent;
|
|
2817
|
-
}
|
|
2818
|
-
.t_light :where(
|
|
2819
|
-
[data-slot='fill'],
|
|
2820
|
-
[data-slot='thread'],
|
|
2821
|
-
[data-slot='sources-strip'],
|
|
2822
|
-
[data-slot='sidebar-scroll'],
|
|
2823
|
-
[data-slot='scroll-area-viewport'],
|
|
2824
|
-
[data-slot='textarea'],
|
|
2825
|
-
[data-slot='composer-field']
|
|
2826
|
-
) { scrollbar-color: rgb(0 0 0 / 0.20) transparent; }
|
|
2827
|
-
}
|
|
2828
|
-
|
|
2829
|
-
/* Chromium and Safari.
|
|
2830
|
-
The first rule is the load-bearing one and it is a RESET, not a style.
|
|
2831
|
-
@hanzo/design sets `scrollbar-color` and `scrollbar-width` on `:where(html)`
|
|
2832
|
-
(theme.css), and both INHERIT — so every element in the document already
|
|
2833
|
-
carries a non-`auto` value, Chromium takes the standard path, and the whole
|
|
2834
|
-
webkit block below is discarded before it is read. Nothing declared here can
|
|
2835
|
-
win until the inherited value is put back to `auto` on the element itself.
|
|
2836
|
-
That is why the arrows survived 8.1.19: the competing declaration was one
|
|
2837
|
-
level up and inherited, not a rule anyone would find in this file. */
|
|
2838
|
-
@supports selector(::-webkit-scrollbar) {
|
|
2839
|
-
:where(
|
|
2840
|
-
[data-slot='fill'],
|
|
2841
|
-
[data-slot='thread'],
|
|
2842
|
-
[data-slot='sources-strip'],
|
|
2843
|
-
[data-slot='sidebar-scroll'],
|
|
2844
|
-
[data-slot='scroll-area-viewport'],
|
|
2845
|
-
[data-slot='textarea'],
|
|
2846
|
-
[data-slot='composer-field']
|
|
2847
|
-
) {
|
|
2848
|
-
scrollbar-width: auto;
|
|
2849
|
-
scrollbar-color: auto;
|
|
2850
|
-
}
|
|
2851
|
-
|
|
2852
|
-
:where(
|
|
2853
|
-
[data-slot='fill'],
|
|
2854
|
-
[data-slot='thread'],
|
|
2855
|
-
[data-slot='sources-strip'],
|
|
2856
|
-
[data-slot='sidebar-scroll'],
|
|
2857
|
-
[data-slot='scroll-area-viewport'],
|
|
2858
|
-
[data-slot='textarea'],
|
|
2859
|
-
[data-slot='composer-field']
|
|
2860
|
-
)::-webkit-scrollbar { width: 8px; height: 8px; }
|
|
2861
|
-
|
|
2862
|
-
/* The steppers. This is the rule that removes the arrows, and the reason the
|
|
2863
|
-
two halves had to be separated at all. */
|
|
2864
|
-
:where(
|
|
2865
|
-
[data-slot='fill'],
|
|
2866
|
-
[data-slot='thread'],
|
|
2867
|
-
[data-slot='sources-strip'],
|
|
2868
|
-
[data-slot='sidebar-scroll'],
|
|
2869
|
-
[data-slot='scroll-area-viewport'],
|
|
2870
|
-
[data-slot='textarea'],
|
|
2871
|
-
[data-slot='composer-field']
|
|
2872
|
-
)::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
|
|
2873
|
-
|
|
2874
|
-
:where(
|
|
2875
|
-
[data-slot='fill'],
|
|
2876
|
-
[data-slot='thread'],
|
|
2877
|
-
[data-slot='sources-strip'],
|
|
2878
|
-
[data-slot='sidebar-scroll'],
|
|
2879
|
-
[data-slot='scroll-area-viewport'],
|
|
2880
|
-
[data-slot='textarea'],
|
|
2881
|
-
[data-slot='composer-field']
|
|
2882
|
-
)::-webkit-scrollbar-track { background: transparent; }
|
|
2883
|
-
|
|
2884
|
-
:where(
|
|
2885
|
-
[data-slot='fill'],
|
|
2886
|
-
[data-slot='thread'],
|
|
2887
|
-
[data-slot='sources-strip'],
|
|
2888
|
-
[data-slot='sidebar-scroll'],
|
|
2889
|
-
[data-slot='scroll-area-viewport'],
|
|
2890
|
-
[data-slot='textarea'],
|
|
2891
|
-
[data-slot='composer-field']
|
|
2892
|
-
)::-webkit-scrollbar-thumb {
|
|
2893
|
-
background: rgb(255 255 255 / 0.18);
|
|
2894
|
-
border-radius: 999px;
|
|
2895
|
-
/* A transparent border with background-clip keeps the thumb off the very
|
|
2896
|
-
edge without a track colour doing it, so it reads as an overlay rather
|
|
2897
|
-
than a channel. */
|
|
2898
|
-
border: 2px solid transparent;
|
|
2899
|
-
background-clip: content-box;
|
|
2900
|
-
}
|
|
2901
|
-
:where(
|
|
2902
|
-
[data-slot='fill'],
|
|
2903
|
-
[data-slot='thread'],
|
|
2904
|
-
[data-slot='sources-strip'],
|
|
2905
|
-
[data-slot='sidebar-scroll'],
|
|
2906
|
-
[data-slot='scroll-area-viewport'],
|
|
2907
|
-
[data-slot='textarea'],
|
|
2908
|
-
[data-slot='composer-field']
|
|
2909
|
-
)::-webkit-scrollbar-thumb:hover {
|
|
2910
|
-
background: rgb(255 255 255 / 0.30);
|
|
2911
|
-
background-clip: content-box;
|
|
2912
|
-
}
|
|
2913
|
-
:where(
|
|
2914
|
-
[data-slot='fill'],
|
|
2915
|
-
[data-slot='thread'],
|
|
2916
|
-
[data-slot='sources-strip'],
|
|
2917
|
-
[data-slot='sidebar-scroll'],
|
|
2918
|
-
[data-slot='scroll-area-viewport'],
|
|
2919
|
-
[data-slot='textarea'],
|
|
2920
|
-
[data-slot='composer-field']
|
|
2921
|
-
)::-webkit-scrollbar-corner { background: transparent; }
|
|
2922
|
-
|
|
2923
|
-
.t_light :where(
|
|
2924
|
-
[data-slot='fill'],
|
|
2925
|
-
[data-slot='thread'],
|
|
2926
|
-
[data-slot='sources-strip'],
|
|
2927
|
-
[data-slot='sidebar-scroll'],
|
|
2928
|
-
[data-slot='scroll-area-viewport'],
|
|
2929
|
-
[data-slot='textarea'],
|
|
2930
|
-
[data-slot='composer-field']
|
|
2931
|
-
)::-webkit-scrollbar-thumb {
|
|
2932
|
-
background: rgb(0 0 0 / 0.20);
|
|
2933
|
-
background-clip: content-box;
|
|
2934
|
-
}
|
|
2935
|
-
}
|
|
2619
|
+
/* Scrollbars are @hanzo/design's (base.css, ≥ 0.5.34): a thin thumb on every
|
|
2620
|
+
scroller and no stepper buttons, stated once for the page. */
|
|
2936
2621
|
|
|
2937
2622
|
/* A carousel scrolls but shows no bar: the arrows and the snap already say it
|
|
2938
2623
|
scrolls, and a bar appearing mid-drag shifts the slides under the pointer.
|
|
@@ -3171,6 +2856,7 @@ a svg,
|
|
|
3171
2856
|
:root ._bblr-10px{border-bottom-left-radius:10px;}
|
|
3172
2857
|
:root ._bblr-1px{border-bottom-left-radius:1px;}
|
|
3173
2858
|
:root ._bblr-3px{border-bottom-left-radius:3px;}
|
|
2859
|
+
:root ._bblr-4px{border-bottom-left-radius:4px;}
|
|
3174
2860
|
:root ._bblr-7px{border-bottom-left-radius:7px;}
|
|
3175
2861
|
:root ._bblr-9999px{border-bottom-left-radius:9999px;}
|
|
3176
2862
|
:root ._bblr-999px{border-bottom-left-radius:999px;}
|
|
@@ -3190,6 +2876,7 @@ a svg,
|
|
|
3190
2876
|
:root ._bbrr-10px{border-bottom-right-radius:10px;}
|
|
3191
2877
|
:root ._bbrr-1px{border-bottom-right-radius:1px;}
|
|
3192
2878
|
:root ._bbrr-3px{border-bottom-right-radius:3px;}
|
|
2879
|
+
:root ._bbrr-4px{border-bottom-right-radius:4px;}
|
|
3193
2880
|
:root ._bbrr-7px{border-bottom-right-radius:7px;}
|
|
3194
2881
|
:root ._bbrr-9999px{border-bottom-right-radius:9999px;}
|
|
3195
2882
|
:root ._bbrr-999px{border-bottom-right-radius:999px;}
|
|
@@ -3239,6 +2926,7 @@ a svg,
|
|
|
3239
2926
|
:root ._bg-destructive{background-color:var(--destructive);}
|
|
3240
2927
|
:root ._bg-edge{background-color:var(--edge);}
|
|
3241
2928
|
:root ._bg-faint{background-color:var(--faint);}
|
|
2929
|
+
:root ._bg-good{background-color:var(--good);}
|
|
3242
2930
|
:root ._bg-green1{background-color:var(--green1);}
|
|
3243
2931
|
:root ._bg-green9{background-color:var(--green9);}
|
|
3244
2932
|
:root ._bg-hover{background-color:var(--hover);}
|
|
@@ -3254,6 +2942,7 @@ a svg,
|
|
|
3254
2942
|
:root ._bg-soft{background-color:var(--soft);}
|
|
3255
2943
|
:root ._bg-sunken{background-color:var(--sunken);}
|
|
3256
2944
|
:root ._bg-transparent{background-color:transparent;}
|
|
2945
|
+
:root ._bg-yellow10{background-color:var(--yellow10);}
|
|
3257
2946
|
:root ._bls-solid._bls-solid{border-left-style:solid;}
|
|
3258
2947
|
:root:root:root ._borderBottomColor-0active-borderColor._borderBottomColor-0active-borderColor:active{border-bottom-color:var(--borderColor) !important;}
|
|
3259
2948
|
:root:root:root ._borderBottomColor-0active-borderColor68052152._borderBottomColor-0active-borderColor68052152:active{border-bottom-color:var(--borderColorFocus) !important;}
|
|
@@ -3274,6 +2963,7 @@ a svg,
|
|
|
3274
2963
|
:root ._borderBottomColor-borderColor._borderBottomColor-borderColor{border-bottom-color:var(--borderColor);}
|
|
3275
2964
|
:root ._borderBottomColor-bound._borderBottomColor-bound{border-bottom-color:var(--bound);}
|
|
3276
2965
|
:root ._borderBottomColor-color12._borderBottomColor-color12{border-bottom-color:var(--color12);}
|
|
2966
|
+
:root ._borderBottomColor-edge._borderBottomColor-edge{border-bottom-color:var(--edge);}
|
|
3277
2967
|
:root ._borderBottomColor-faint._borderBottomColor-faint{border-bottom-color:var(--faint);}
|
|
3278
2968
|
:root ._borderBottomColor-green3._borderBottomColor-green3{border-bottom-color:var(--green3);}
|
|
3279
2969
|
:root ._borderBottomColor-ink._borderBottomColor-ink{border-bottom-color:var(--ink);}
|
|
@@ -3301,6 +2991,7 @@ a svg,
|
|
|
3301
2991
|
:root ._borderLeftColor-borderColor._borderLeftColor-borderColor{border-left-color:var(--borderColor);}
|
|
3302
2992
|
:root ._borderLeftColor-bound._borderLeftColor-bound{border-left-color:var(--bound);}
|
|
3303
2993
|
:root ._borderLeftColor-color12._borderLeftColor-color12{border-left-color:var(--color12);}
|
|
2994
|
+
:root ._borderLeftColor-edge._borderLeftColor-edge{border-left-color:var(--edge);}
|
|
3304
2995
|
:root ._borderLeftColor-faint._borderLeftColor-faint{border-left-color:var(--faint);}
|
|
3305
2996
|
:root ._borderLeftColor-green3._borderLeftColor-green3{border-left-color:var(--green3);}
|
|
3306
2997
|
:root ._borderLeftColor-ink._borderLeftColor-ink{border-left-color:var(--ink);}
|
|
@@ -3327,6 +3018,7 @@ a svg,
|
|
|
3327
3018
|
:root ._brc-borderColor._brc-borderColor{border-right-color:var(--borderColor);}
|
|
3328
3019
|
:root ._brc-bound._brc-bound{border-right-color:var(--bound);}
|
|
3329
3020
|
:root ._brc-color12._brc-color12{border-right-color:var(--color12);}
|
|
3021
|
+
:root ._brc-edge._brc-edge{border-right-color:var(--edge);}
|
|
3330
3022
|
:root ._brc-faint._brc-faint{border-right-color:var(--faint);}
|
|
3331
3023
|
:root ._brc-green3._brc-green3{border-right-color:var(--green3);}
|
|
3332
3024
|
:root ._brc-ink._brc-ink{border-right-color:var(--ink);}
|
|
@@ -3354,6 +3046,7 @@ a svg,
|
|
|
3354
3046
|
:root ._btc-borderColor._btc-borderColor{border-top-color:var(--borderColor);}
|
|
3355
3047
|
:root ._btc-bound._btc-bound{border-top-color:var(--bound);}
|
|
3356
3048
|
:root ._btc-color12._btc-color12{border-top-color:var(--color12);}
|
|
3049
|
+
:root ._btc-edge._btc-edge{border-top-color:var(--edge);}
|
|
3357
3050
|
:root ._btc-faint._btc-faint{border-top-color:var(--faint);}
|
|
3358
3051
|
:root ._btc-green3._btc-green3{border-top-color:var(--green3);}
|
|
3359
3052
|
:root ._btc-ink._btc-ink{border-top-color:var(--ink);}
|
|
@@ -3365,6 +3058,7 @@ a svg,
|
|
|
3365
3058
|
:root ._btlr-10px{border-top-left-radius:10px;}
|
|
3366
3059
|
:root ._btlr-1px{border-top-left-radius:1px;}
|
|
3367
3060
|
:root ._btlr-3px{border-top-left-radius:3px;}
|
|
3061
|
+
:root ._btlr-4px{border-top-left-radius:4px;}
|
|
3368
3062
|
:root ._btlr-7px{border-top-left-radius:7px;}
|
|
3369
3063
|
:root ._btlr-9999px{border-top-left-radius:9999px;}
|
|
3370
3064
|
:root ._btlr-999px{border-top-left-radius:999px;}
|
|
@@ -3384,6 +3078,7 @@ a svg,
|
|
|
3384
3078
|
:root ._btrr-10px{border-top-right-radius:10px;}
|
|
3385
3079
|
:root ._btrr-1px{border-top-right-radius:1px;}
|
|
3386
3080
|
:root ._btrr-3px{border-top-right-radius:3px;}
|
|
3081
|
+
:root ._btrr-4px{border-top-right-radius:4px;}
|
|
3387
3082
|
:root ._btrr-7px{border-top-right-radius:7px;}
|
|
3388
3083
|
:root ._btrr-9999px{border-top-right-radius:9999px;}
|
|
3389
3084
|
:root ._btrr-999px{border-top-right-radius:999px;}
|
|
@@ -3446,6 +3141,7 @@ a svg,
|
|
|
3446
3141
|
:root ._fd-column{flex-direction:column;}
|
|
3447
3142
|
:root ._fd-row{flex-direction:row;}
|
|
3448
3143
|
:root ._ff-f-family{font-family:var(--f-family);}
|
|
3144
|
+
:root ._fontVariant-tabular-num115{font-variant:tabular-nums;}
|
|
3449
3145
|
:root ._fs-f-size-1{font-size:var(--f-size-1);}
|
|
3450
3146
|
:root ._fs-f-size-10{font-size:var(--f-size-10);}
|
|
3451
3147
|
:root ._fs-f-size-11{font-size:var(--f-size-11);}
|
|
@@ -3523,6 +3219,7 @@ a svg,
|
|
|
3523
3219
|
:root ._height-40px{height:40px;}
|
|
3524
3220
|
:root ._height-44px{height:44px;}
|
|
3525
3221
|
:root ._height-48px{height:48px;}
|
|
3222
|
+
:root ._height-4px{height:4px;}
|
|
3526
3223
|
:root ._height-5px{height:5px;}
|
|
3527
3224
|
:root ._height-6px{height:6px;}
|
|
3528
3225
|
:root ._height-72px{height:72px;}
|
|
@@ -3535,6 +3232,7 @@ a svg,
|
|
|
3535
3232
|
:root ._height-c-size-true{height:var(--c-size-true);}
|
|
3536
3233
|
:root ._height-initial{height:initial;}
|
|
3537
3234
|
:root ._height-min72vh620p38286157{height:min(72vh, 620px);}
|
|
3235
|
+
:root ._items-baseline{align-items:baseline;}
|
|
3538
3236
|
:root ._items-center{align-items:center;}
|
|
3539
3237
|
:root ._items-flex-start{align-items:flex-start;}
|
|
3540
3238
|
:root ._items-stretch{align-items:stretch;}
|
|
@@ -3626,6 +3324,7 @@ a svg,
|
|
|
3626
3324
|
:root ._minW-0px{min-width:0px;}
|
|
3627
3325
|
:root ._minW-140px{min-width:140px;}
|
|
3628
3326
|
:root ._minW-16px{min-width:16px;}
|
|
3327
|
+
:root ._minW-200px{min-width:200px;}
|
|
3629
3328
|
:root ._minW-220px{min-width:220px;}
|
|
3630
3329
|
:root ._minW-24px{min-width:24px;}
|
|
3631
3330
|
:root ._minW-28px{min-width:28px;}
|
|
@@ -3787,7 +3486,10 @@ a svg,
|
|
|
3787
3486
|
:root ._textOverflow-ellipsis{text-overflow:ellipsis;}
|
|
3788
3487
|
:root ._tr-rotate0deg1281{transform:rotate(0deg);}
|
|
3789
3488
|
:root ._tr-rotate180de41674{transform:rotate(180deg);}
|
|
3489
|
+
:root ._tr-translateX-1584997259{transform:translateX(-57.5%);}
|
|
3490
|
+
:root ._tr-translateX-38567079{transform:translateX(-50%);}
|
|
3790
3491
|
:root ._tr-translateX-38656452{transform:translateX(-80%);}
|
|
3492
|
+
:root ._tr-translateX-38686243{transform:translateX(-90%);}
|
|
3791
3493
|
:root ._tr-translateX01303033{transform:translateX(0px);}
|
|
3792
3494
|
:root ._tr-translateY-162820732{transform:translateY(-8px) translateX(-7.2px);}
|
|
3793
3495
|
:root ._tr-translateY-1736186894{transform:translateY(-0.5px);}
|