@hanzo/ui 8.0.111 → 8.0.114
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/control.cjs +21 -0
- package/dist/backends/gui/control.d.ts +21 -0
- package/dist/backends/gui/control.d.ts.map +1 -1
- package/dist/backends/gui/control.js +21 -0
- package/dist/backends/gui/control.js.map +1 -1
- package/dist/backends/gui/input.cjs +1 -2
- package/dist/backends/gui/input.d.ts.map +1 -1
- package/dist/backends/gui/input.js +1 -2
- package/dist/backends/gui/input.js.map +1 -1
- package/dist/backends/gui/textarea.cjs +1 -2
- package/dist/backends/gui/textarea.d.ts.map +1 -1
- package/dist/backends/gui/textarea.js +1 -2
- package/dist/backends/gui/textarea.js.map +1 -1
- package/dist/gui-config.cjs +2 -2
- package/dist/gui-config.js +2 -2
- package/dist/styles.css +124 -23
- package/dist/theme.css +123 -17
- package/package.json +2 -2
- package/dist/backends/gui/focus.cjs +0 -36
- package/dist/backends/gui/focus.d.ts +0 -39
- package/dist/backends/gui/focus.d.ts.map +0 -1
- package/dist/backends/gui/focus.js +0 -34
- package/dist/backends/gui/focus.js.map +0 -1
|
@@ -49,3 +49,24 @@ exports.FIELD = {
|
|
|
49
49
|
borderColor: '$borderColor',
|
|
50
50
|
bg: 'transparent',
|
|
51
51
|
};
|
|
52
|
+
/**
|
|
53
|
+
* Focus is @hanzo/design's, and a field says nothing about it.
|
|
54
|
+
*
|
|
55
|
+
* design draws ONE indicator for everything focusable —
|
|
56
|
+
* `:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px }` — and
|
|
57
|
+
* `gui-config.ts` re-bases `$outlineColor` onto that same `--ring` in every
|
|
58
|
+
* theme. So the outline gui already draws on a field IS that ring, and design's
|
|
59
|
+
* offset lands on top of it, because gui emits no `outline-offset` of its own.
|
|
60
|
+
*
|
|
61
|
+
* A field cannot abstain by writing a prop. gui carries the outline in its
|
|
62
|
+
* variant defaults, and a prop REPLACES that atomic class rather than dropping
|
|
63
|
+
* it — `focusVisibleStyle={{}}` emits the same three rules as no prop at all.
|
|
64
|
+
* Whatever a call site writes is compiled to
|
|
65
|
+
* `:root:root:root:root … :focus-visible { … !important }`, which outranks every
|
|
66
|
+
* stylesheet in the document, so `outlineWidth: 0` does not hand the decision
|
|
67
|
+
* back to the sheet: it deletes the indicator on every surface at once, and no
|
|
68
|
+
* consuming app can argue with it.
|
|
69
|
+
*
|
|
70
|
+
* A field that should ring differently from a button says so in @hanzo/design,
|
|
71
|
+
* where the rule lives. `focus.test.tsx` holds this.
|
|
72
|
+
*/
|
|
@@ -46,4 +46,25 @@ export declare const FIELD: {
|
|
|
46
46
|
readonly borderColor: "$borderColor";
|
|
47
47
|
readonly bg: "transparent";
|
|
48
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* Focus is @hanzo/design's, and a field says nothing about it.
|
|
51
|
+
*
|
|
52
|
+
* design draws ONE indicator for everything focusable —
|
|
53
|
+
* `:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px }` — and
|
|
54
|
+
* `gui-config.ts` re-bases `$outlineColor` onto that same `--ring` in every
|
|
55
|
+
* theme. So the outline gui already draws on a field IS that ring, and design's
|
|
56
|
+
* offset lands on top of it, because gui emits no `outline-offset` of its own.
|
|
57
|
+
*
|
|
58
|
+
* A field cannot abstain by writing a prop. gui carries the outline in its
|
|
59
|
+
* variant defaults, and a prop REPLACES that atomic class rather than dropping
|
|
60
|
+
* it — `focusVisibleStyle={{}}` emits the same three rules as no prop at all.
|
|
61
|
+
* Whatever a call site writes is compiled to
|
|
62
|
+
* `:root:root:root:root … :focus-visible { … !important }`, which outranks every
|
|
63
|
+
* stylesheet in the document, so `outlineWidth: 0` does not hand the decision
|
|
64
|
+
* back to the sheet: it deletes the indicator on every surface at once, and no
|
|
65
|
+
* consuming app can argue with it.
|
|
66
|
+
*
|
|
67
|
+
* A field that should ring differently from a button says so in @hanzo/design,
|
|
68
|
+
* where the rule lives. `focus.test.tsx` holds this.
|
|
69
|
+
*/
|
|
49
70
|
//# sourceMappingURL=control.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,SAAS,KAAK,CAAA;AAE3B,4CAA4C;AAC5C,eAAO,MAAM,MAAM,KAAK,CAAA;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,KAAK;;;;;;CAMR,CAAA"}
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,SAAS,KAAK,CAAA;AAE3B,4CAA4C;AAC5C,eAAO,MAAM,MAAM,KAAK,CAAA;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,KAAK;;;;;;CAMR,CAAA;AAEV;;;;;;;;;;;;;;;;;;;;GAoBG"}
|
|
@@ -46,4 +46,25 @@ export const FIELD = {
|
|
|
46
46
|
borderColor: '$borderColor',
|
|
47
47
|
bg: 'transparent',
|
|
48
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* Focus is @hanzo/design's, and a field says nothing about it.
|
|
51
|
+
*
|
|
52
|
+
* design draws ONE indicator for everything focusable —
|
|
53
|
+
* `:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px }` — and
|
|
54
|
+
* `gui-config.ts` re-bases `$outlineColor` onto that same `--ring` in every
|
|
55
|
+
* theme. So the outline gui already draws on a field IS that ring, and design's
|
|
56
|
+
* offset lands on top of it, because gui emits no `outline-offset` of its own.
|
|
57
|
+
*
|
|
58
|
+
* A field cannot abstain by writing a prop. gui carries the outline in its
|
|
59
|
+
* variant defaults, and a prop REPLACES that atomic class rather than dropping
|
|
60
|
+
* it — `focusVisibleStyle={{}}` emits the same three rules as no prop at all.
|
|
61
|
+
* Whatever a call site writes is compiled to
|
|
62
|
+
* `:root:root:root:root … :focus-visible { … !important }`, which outranks every
|
|
63
|
+
* stylesheet in the document, so `outlineWidth: 0` does not hand the decision
|
|
64
|
+
* back to the sheet: it deletes the indicator on every surface at once, and no
|
|
65
|
+
* consuming app can argue with it.
|
|
66
|
+
*
|
|
67
|
+
* A field that should ring differently from a button says so in @hanzo/design,
|
|
68
|
+
* where the rule lives. `focus.test.tsx` holds this.
|
|
69
|
+
*/
|
|
49
70
|
//# sourceMappingURL=control.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/backends/gui/control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAA;AAE3B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,CAAA;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,cAAc;IAC3B,EAAE,EAAE,aAAa;CACT,CAAA"}
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/backends/gui/control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAA;AAE3B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,CAAA;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,cAAc;IAC3B,EAAE,EAAE,aAAa;CACT,CAAA;AAEV;;;;;;;;;;;;;;;;;;;;GAoBG"}
|
|
@@ -15,7 +15,6 @@ const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
|
|
|
15
15
|
const react_1 = require("react");
|
|
16
16
|
const slot_1 = require("./slot.cjs");
|
|
17
17
|
const gesture_1 = require("./gesture.cjs");
|
|
18
|
-
const focus_1 = require("./focus.cjs");
|
|
19
18
|
const mask_1 = require("./mask.cjs");
|
|
20
19
|
const control_1 = require("./control.cjs");
|
|
21
20
|
const HEIGHT = control_1.CONTROL_H;
|
|
@@ -33,7 +32,7 @@ const Input = /* @__PURE__ */ (0, react_1.forwardRef)(function Input({ startAdor
|
|
|
33
32
|
const [revealed, setRevealed] = (0, react_1.useState)(false);
|
|
34
33
|
const isPassword = type === 'password' || secureTextEntry === true;
|
|
35
34
|
const toggle = isPassword && reveal;
|
|
36
|
-
const field = ((0, jsx_runtime_1.jsx)(gui_1.Input, { ref: ref, ...(0, slot_1.slot)('input'), ...(isPassword ? (0, mask_1.masked)(!revealed) : { type, secureTextEntry }), ...control_1.FIELD, height: HEIGHT, width: "100%", minW: 0,
|
|
35
|
+
const field = ((0, jsx_runtime_1.jsx)(gui_1.Input, { ref: ref, ...(0, slot_1.slot)('input'), ...(isPassword ? (0, mask_1.masked)(!revealed) : { type, secureTextEntry }), ...control_1.FIELD, height: HEIGHT, width: "100%", minW: 0, placeholderTextColor: "$color10", fontSize: "$3", pl: startAdornment ? WELL : control_1.GUTTER, pr: endAdornment || toggle ? WELL : control_1.GUTTER, ...props }));
|
|
37
36
|
if (!startAdornment && !endAdornment && !toggle)
|
|
38
37
|
return field;
|
|
39
38
|
return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { position: "relative", width: "100%", items: "center", children: [startAdornment ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...well('l'), pointerEvents: "none", opacity: 0.6, children: startAdornment })) : null, field, toggle ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...well('r'), cursor: "pointer", ...(0, gesture_1.touch)(20), onPress: () => setRevealed((v) => !v), "aria-label": revealed ? 'Hide password' : 'Show password', children: revealed ? (0, jsx_runtime_1.jsx)(lucide_icons_2_1.EyeOff, { size: 16 }) : (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Eye, { size: 16 }) })) : endAdornment ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...well('r'), opacity: 0.6, children: endAdornment })) : null] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/input.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAU,MAAM,YAAY,CAAA;AAEtD,OAAO,EAAwB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/input.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAU,MAAM,YAAY,CAAA;AAEtD,OAAO,EAAwB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAUjF,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,EAAE,UAAU,CAAC,GAAG;IAC3E,yEAAyE;IACzE,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAYD,QAAA,MAAM,KAAK,sHAoET,CAAA;AAEF,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -12,7 +12,6 @@ import { Eye, EyeOff } from '@hanzogui/lucide-icons-2';
|
|
|
12
12
|
import { forwardRef, useState } from 'react';
|
|
13
13
|
import { slot } from './slot.js';
|
|
14
14
|
import { touch } from './gesture.js';
|
|
15
|
-
import { FOCUS } from './focus.js';
|
|
16
15
|
import { masked } from './mask.js';
|
|
17
16
|
import { CONTROL_H, FIELD, GUTTER } from './control.js';
|
|
18
17
|
const HEIGHT = CONTROL_H;
|
|
@@ -30,7 +29,7 @@ const Input = /* @__PURE__ */ forwardRef(function Input({ startAdornment, endAdo
|
|
|
30
29
|
const [revealed, setRevealed] = useState(false);
|
|
31
30
|
const isPassword = type === 'password' || secureTextEntry === true;
|
|
32
31
|
const toggle = isPassword && reveal;
|
|
33
|
-
const field = (_jsx(GuiInput, { ref: ref, ...slot('input'), ...(isPassword ? masked(!revealed) : { type, secureTextEntry }), ...FIELD, height: HEIGHT, width: "100%", minW: 0,
|
|
32
|
+
const field = (_jsx(GuiInput, { ref: ref, ...slot('input'), ...(isPassword ? masked(!revealed) : { type, secureTextEntry }), ...FIELD, height: HEIGHT, width: "100%", minW: 0, placeholderTextColor: "$color10", fontSize: "$3", pl: startAdornment ? WELL : GUTTER, pr: endAdornment || toggle ? WELL : GUTTER, ...props }));
|
|
34
33
|
if (!startAdornment && !endAdornment && !toggle)
|
|
35
34
|
return field;
|
|
36
35
|
return (_jsxs(XStack, { position: "relative", width: "100%", items: "center", children: [startAdornment ? (_jsx(XStack, { ...well('l'), pointerEvents: "none", opacity: 0.6, children: startAdornment })) : null, field, toggle ? (_jsx(XStack, { ...well('r'), cursor: "pointer", ...touch(20), onPress: () => setRevealed((v) => !v), "aria-label": revealed ? 'Hide password' : 'Show password', children: revealed ? _jsx(EyeOff, { size: 16 }) : _jsx(Eye, { size: 16 }) })) : endAdornment ? (_jsx(XStack, { ...well('r'), opacity: 0.6, children: endAdornment })) : null] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/backends/gui/input.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAuC,MAAM,OAAO,CAAA;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/backends/gui/input.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAuC,MAAM,OAAO,CAAA;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEpD,MAAM,MAAM,GAAG,SAAS,CAAA;AACxB,wDAAwD;AACxD,MAAM,IAAI,GAAG,EAAE,CAAA;AAmBf,MAAM,IAAI,GAAG,CAAC,IAAe,EAAE,EAAE,CAC/B,CAAC;IACC,QAAQ,EAAE,UAAmB;IAC7B,CAAC,IAAI,CAAC,EAAE,MAAM;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,KAAK,EAAE,QAAiB;IACxB,OAAO,EAAE,QAAiB;CAC3B,CAAC,CAAA;AAEJ,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAA+B,SAAS,KAAK,CACnF,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,EAChF,GAAG;IAEH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,UAAU,GAAG,IAAI,KAAK,UAAU,IAAI,eAAe,KAAK,IAAI,CAAA;IAClE,MAAM,MAAM,GAAG,UAAU,IAAI,MAAM,CAAA;IAEnC,MAAM,KAAK,GAAG,CACZ,KAAC,QAAQ,IACP,GAAG,EAAE,GAAY,KACb,IAAI,CAAC,OAAO,CAAC,KAYb,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,KAM5D,KAAK,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAC,MAAM,EACZ,IAAI,EAAE,CAAC,EACP,oBAAoB,EAAC,UAAU,EAC/B,QAAQ,EAAC,IAAI,EACb,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAClC,EAAE,EAAE,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KACtC,KAAK,GACT,CACH,CAAA;IAED,IAAI,CAAC,cAAc,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAE7D,OAAO,CACL,MAAC,MAAM,IAAC,QAAQ,EAAC,UAAU,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,QAAQ,aACpD,cAAc,CAAC,CAAC,CAAC,CAChB,KAAC,MAAM,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,EAAC,MAAM,EAAC,OAAO,EAAE,GAAG,YACrD,cAAc,GACR,CACV,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,EACL,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,MAAM,OACD,IAAI,CAAC,GAAG,CAAC,EACb,MAAM,EAAC,SAAS,KACZ,KAAK,CAAC,EAAE,CAAC,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gBACzB,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,YAEvD,QAAQ,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,GAAI,GAC7C,CACV,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CACjB,KAAC,MAAM,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,YAChC,YAAY,GACN,CACV,CAAC,CAAC,CAAC,IAAI,IACD,CACV,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -38,7 +38,6 @@ exports.Textarea = void 0;
|
|
|
38
38
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
39
|
const React = __importStar(require("react"));
|
|
40
40
|
const gui_1 = require("@hanzo/gui");
|
|
41
|
-
const focus_1 = require("./focus.cjs");
|
|
42
41
|
const control_1 = require("./control.cjs");
|
|
43
42
|
const slot_1 = require("./slot.cjs");
|
|
44
43
|
/** Floor for the grown row count. */
|
|
@@ -53,6 +52,6 @@ const Textarea = /* @__PURE__ */ React.forwardRef(function Textarea({ rows, valu
|
|
|
53
52
|
// `textAreaSizeVariant`, which computes its own horizontal padding and
|
|
54
53
|
// landed on 20 — so the one field a form makes tall was also the one
|
|
55
54
|
// indented differently from the two above it.
|
|
56
|
-
borderColor: invalid && invalid !== "false" ? "$red7" : "$borderColor",
|
|
55
|
+
borderColor: invalid && invalid !== "false" ? "$red7" : "$borderColor", placeholderTextColor: "$color10", fontSize: "$3", opacity: props.disabled ? 0.5 : 1, ...props }));
|
|
57
56
|
});
|
|
58
57
|
exports.Textarea = Textarea;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/textarea.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/textarea.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAUrC;;;;;;;GAOG;AACH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,EAAE,UAAU,CAAC,GACjF,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,CAAA;AAE9D,QAAA,MAAM,QAAQ,wGA4Bb,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { TextArea } from "@hanzo/gui";
|
|
5
|
-
import { FOCUS } from "./focus.js";
|
|
6
5
|
import { FIELD } from "./control.js";
|
|
7
6
|
import { slot } from "./slot.js";
|
|
8
7
|
/** Floor for the grown row count. */
|
|
@@ -17,7 +16,7 @@ const Textarea = /* @__PURE__ */ React.forwardRef(function Textarea({ rows, valu
|
|
|
17
16
|
// `textAreaSizeVariant`, which computes its own horizontal padding and
|
|
18
17
|
// landed on 20 — so the one field a form makes tall was also the one
|
|
19
18
|
// indented differently from the two above it.
|
|
20
|
-
borderColor: invalid && invalid !== "false" ? "$red7" : "$borderColor",
|
|
19
|
+
borderColor: invalid && invalid !== "false" ? "$red7" : "$borderColor", placeholderTextColor: "$color10", fontSize: "$3", opacity: props.disabled ? 0.5 : 1, ...props }));
|
|
21
20
|
});
|
|
22
21
|
export { Textarea };
|
|
23
22
|
//# sourceMappingURL=textarea.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/backends/gui/textarea.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/backends/gui/textarea.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,qCAAqC;AACrC,MAAM,QAAQ,GAAG,CAAC,CAAA;AAElB,MAAM,MAAM,GAAG,CAAC,CAAU,EAAE,EAAE,CAC5B,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAkBlD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAC/C,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IAC9D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IACpE,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,CAAA;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,CAAA;IACrC,OAAO,CACL,KAAC,QAAQ,IACP,GAAG,EAAE,GAAY,KACb,IAAI,CAAC,UAAU,CAAC,EACpB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACtE,KAAK,EAAE,KAA2B,EAClC,YAAY,EAAE,YAAkC,EAChD,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KACpE,KAAK,EACT,KAAK,EAAC,MAAM,EACZ,IAAI,EAAE,EAAE;QACR,6DAA6D;QAC7D,uEAAuE;QACvE,qEAAqE;QACrE,8CAA8C;QAC9C,WAAW,EAAE,OAAO,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EACtE,oBAAoB,EAAC,UAAU,EAC/B,QAAQ,EAAC,IAAI,EACb,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAC5B,KAAiC,GACtC,CACH,CAAA;AACD,CAAC,CACF,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
package/dist/gui-config.cjs
CHANGED
|
@@ -220,7 +220,7 @@ space['-true'] = step(-STEP['4']);
|
|
|
220
220
|
* `$color12` shipped `hsla(0, 0%, 100%, 1)` — PURE WHITE, and it is the label
|
|
221
221
|
* colour for Button's default/primary, for every Badge, and for the `accent`
|
|
222
222
|
* recipe, the one loud control a page is allowed. design sets `--foreground`
|
|
223
|
-
* to `#
|
|
223
|
+
* to `#e5e5e5` on purpose: pure white halates on near-black.
|
|
224
224
|
*
|
|
225
225
|
* `$outlineColor` shipped `hsla(0, 0%, 27%, 0.6)` — the FOCUS RING, and on a
|
|
226
226
|
* near-black ground that composites to about `rgb(45,45,45)`, roughly 1.2:1
|
|
@@ -246,7 +246,7 @@ space['-true'] = step(-STEP['4']);
|
|
|
246
246
|
* design publishes, so the copy cannot drift.
|
|
247
247
|
*/
|
|
248
248
|
const EDGE = { dark: 'rgb(255 255 255 / .10)', light: 'rgb(0 0 0 / .10)' };
|
|
249
|
-
const LABEL = { dark: '#
|
|
249
|
+
const LABEL = { dark: '#e5e5e5', light: '#0a0a0a' };
|
|
250
250
|
const RING = { dark: 'rgb(255 255 255 / .40)', light: 'rgb(0 0 0 / .5)' };
|
|
251
251
|
/**
|
|
252
252
|
* The ground, the placeholder, and the one loud fill — the rest of what a brand
|
package/dist/gui-config.js
CHANGED
|
@@ -216,7 +216,7 @@ space['-true'] = step(-STEP['4']);
|
|
|
216
216
|
* `$color12` shipped `hsla(0, 0%, 100%, 1)` — PURE WHITE, and it is the label
|
|
217
217
|
* colour for Button's default/primary, for every Badge, and for the `accent`
|
|
218
218
|
* recipe, the one loud control a page is allowed. design sets `--foreground`
|
|
219
|
-
* to `#
|
|
219
|
+
* to `#e5e5e5` on purpose: pure white halates on near-black.
|
|
220
220
|
*
|
|
221
221
|
* `$outlineColor` shipped `hsla(0, 0%, 27%, 0.6)` — the FOCUS RING, and on a
|
|
222
222
|
* near-black ground that composites to about `rgb(45,45,45)`, roughly 1.2:1
|
|
@@ -242,7 +242,7 @@ space['-true'] = step(-STEP['4']);
|
|
|
242
242
|
* design publishes, so the copy cannot drift.
|
|
243
243
|
*/
|
|
244
244
|
const EDGE = { dark: 'rgb(255 255 255 / .10)', light: 'rgb(0 0 0 / .10)' };
|
|
245
|
-
const LABEL = { dark: '#
|
|
245
|
+
const LABEL = { dark: '#e5e5e5', light: '#0a0a0a' };
|
|
246
246
|
const RING = { dark: 'rgb(255 255 255 / .40)', light: 'rgb(0 0 0 / .5)' };
|
|
247
247
|
/**
|
|
248
248
|
* The ground, the placeholder, and the one loud fill — the rest of what a brand
|
package/dist/styles.css
CHANGED
|
@@ -58,28 +58,56 @@
|
|
|
58
58
|
/* ——— the opacity ladder: the real palette ——— */
|
|
59
59
|
/* Every rung below .30 is a HAIRLINE or a LIFT — the two things this system
|
|
60
60
|
draws with. The rungs are the reference's own values, not a rounded ramp. */
|
|
61
|
+
/* The five rungs marked (chrome) below were being retyped as raw rgba in
|
|
62
|
+
@hanzogui/shell's theme.ts, which is the shared bar every Hanzo property
|
|
63
|
+
mounts. That is the same defect this ladder exists to end — a value in two
|
|
64
|
+
places drifts, and this pair already had: the shell's resting hairline sat
|
|
65
|
+
at .06 against this file's .10 for long enough that the bar and the page
|
|
66
|
+
under it drew different hairlines. They are rungs here now, and the shell
|
|
67
|
+
references them, so the chrome has no colour of its own left to drift.
|
|
68
|
+
|
|
69
|
+
They are the shell's OWN measured values, added at the alpha it already
|
|
70
|
+
ships. Snapping them to neighbouring rungs instead would have been a
|
|
71
|
+
silent redesign of the estate's chrome, and two of them carry decisions
|
|
72
|
+
that a round number would have destroyed: .92 is ink deliberately short of
|
|
73
|
+
the .98 hover so a hover still reads as a response, and .03 is the one
|
|
74
|
+
lift that must stay below the .05 hairline it sits inside. */
|
|
75
|
+
--white-03:rgb(255 255 255 / .03); /* (chrome) the raised fill */
|
|
61
76
|
--white-05:rgb(255 255 255 / .05);
|
|
62
77
|
--white-06:rgb(255 255 255 / .06);
|
|
63
78
|
--white-08:rgb(255 255 255 / .08);
|
|
64
79
|
--white-10:rgb(255 255 255 / .10);
|
|
80
|
+
--white-14:rgb(255 255 255 / .14); /* (chrome) selection wash */
|
|
65
81
|
--white-15:rgb(255 255 255 / .15);
|
|
66
82
|
--white-16:rgb(255 255 255 / .16);
|
|
83
|
+
--white-18:rgb(255 255 255 / .18); /* (chrome) selection tint */
|
|
67
84
|
--white-20:rgb(255 255 255 / .20);
|
|
68
85
|
--white-22:rgb(255 255 255 / .22);
|
|
69
86
|
--white-30:rgb(255 255 255 / .30);
|
|
70
87
|
--white-40:rgb(255 255 255 / .40);
|
|
88
|
+
--white-45:rgb(255 255 255 / .45); /* (chrome) the dimmest ink */
|
|
71
89
|
--white-55:rgb(255 255 255 / .55);
|
|
72
90
|
--white-60:rgb(255 255 255 / .60);
|
|
73
91
|
--white-78:rgb(255 255 255 / .78);
|
|
74
92
|
--white-80:rgb(255 255 255 / .80);
|
|
93
|
+
--white-92:rgb(255 255 255 / .92); /* (chrome) body ink */
|
|
75
94
|
|
|
76
95
|
/* ——— semantic aliases (dark, the default) ——— */
|
|
77
96
|
--background:#0a0a0a;
|
|
78
|
-
|
|
97
|
+
/* READING ink, one rung below the top of the ramp. The note at the head of this
|
|
98
|
+
file already made this argument once — #ffffff on #000000 halates, so #fafafa
|
|
99
|
+
— and the argument does not stop being true at 19.0:1. Every heading and
|
|
100
|
+
paragraph on every surface was set in the brightest ink the system has, while
|
|
101
|
+
the CHROME beside them draws body text at --white-92; a page read as glare
|
|
102
|
+
against its own header. #e5e5e5 is the neutral-200 rung this file already
|
|
103
|
+
spends on --primary-hover, so the ramp gains no new value: 15.7:1 on the page,
|
|
104
|
+
15.2:1 on a card, both more than twice the 7:1 AAA asks of body text.
|
|
105
|
+
Something that genuinely needs the brightest ink names --primary. */
|
|
106
|
+
--foreground:#e5e5e5;
|
|
79
107
|
--card:#0f0f0f;
|
|
80
|
-
--card-foreground:#
|
|
108
|
+
--card-foreground:#e5e5e5;
|
|
81
109
|
--popover:#0f0f0f;
|
|
82
|
-
--popover-foreground:#
|
|
110
|
+
--popover-foreground:#e5e5e5;
|
|
83
111
|
--primary:#fafafa;
|
|
84
112
|
/* A 5% step, not the 16% this used to be. A filled button's fill is already
|
|
85
113
|
the top of the ink ramp, so the only directions available on hover are
|
|
@@ -298,19 +326,56 @@
|
|
|
298
326
|
@hanzo/design's `vars({type})` emits exactly this name. */
|
|
299
327
|
--type-scale:1;
|
|
300
328
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
329
|
+
/* The CONTRAST knob — how far apart the rungs sit, where --type-scale is how
|
|
330
|
+
big they all are. Two different questions, and only the first one was
|
|
331
|
+
askable: a surface could take the whole ramp up 15% but could not flatten a
|
|
332
|
+
dense table's steps or open up a marketing page's, so both settled for the
|
|
333
|
+
app register's tight default.
|
|
334
|
+
|
|
335
|
+
It is authored as a TRANSFORM and not as a generated ramp, which is the
|
|
336
|
+
whole point. `base + (authored - base) * ratio` keeps each rung's authored
|
|
337
|
+
value as the INPUT, so ratio 1 reduces to exactly the published number by
|
|
338
|
+
algebra rather than by care — the deltas below are just `authored - 0.875`.
|
|
339
|
+
The alternative, deriving each rung as base * ratio^n, would restate the
|
|
340
|
+
ramp in a second place, and this scale is not geometric anyway: the app
|
|
341
|
+
register (11/13/14/15/17) is near-linear on purpose and a ratio applied to
|
|
342
|
+
it would erase the 1px steps the compact register is FOR. That drift is not
|
|
343
|
+
hypothetical here — see src/preference.ts, where a recomputed copy of this
|
|
344
|
+
ramp shipped `lg: 16px` against this file's 15px.
|
|
345
|
+
|
|
346
|
+
A rung is one place, so a rung added later needs a delta and nothing else. */
|
|
347
|
+
--type-ratio:1;
|
|
348
|
+
|
|
349
|
+
/* EVERY rung is bounded at BOTH ends, by one rule, because the knobs COMPOUND
|
|
350
|
+
and they compound in both directions. Clamping each knob's range separately
|
|
351
|
+
cannot fix either end — 0.85 x 0.9 is inside both bounds and lands at 8.5px
|
|
352
|
+
— so the RESULT is what carries the bound:
|
|
353
|
+
|
|
354
|
+
--text-floor 10px below this a label is not small, it is unreadable
|
|
355
|
+
--text-ceiling 30vw above this a heading is not type, it is a texture
|
|
356
|
+
|
|
357
|
+
The ceiling is in the VIEWPORT's units because that is what "too big" means:
|
|
358
|
+
measured, the tallest rung (--text-9xl, 112px) is 28.7vw on a 390px phone
|
|
359
|
+
and 7.8vw at 1440, so 30vw binds no published value at any real screen and
|
|
360
|
+
catches only a scale that has run away. Both bounds are stated once here and
|
|
361
|
+
`vars()` emits the same clamp for a modular scale, so a regenerated rung and
|
|
362
|
+
an authored one are bounded identically — the rule does not depend on which
|
|
363
|
+
produced the value. */
|
|
364
|
+
--text-floor:0.625rem;
|
|
365
|
+
--text-ceiling:30vw;
|
|
366
|
+
--text-xs:clamp(var(--text-floor), calc((0.875rem - 0.1875rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-xs:calc((1.35rem - 0.35rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 11px — eyebrows / section labels */
|
|
367
|
+
--text-sm:clamp(var(--text-floor), calc((0.875rem - 0.0625rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-sm:calc((1.35rem - 0.2rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 13px — nav labels, dense body */
|
|
368
|
+
--text-base:clamp(var(--text-floor), calc(0.875rem * var(--type-scale, 1)), var(--text-ceiling)); --leading-base:calc(1.35rem * var(--type-scale, 1)); /* 14px — the ANCHOR: the rung the ratio pivots on, so it carries no ratio term */
|
|
369
|
+
--text-lg:clamp(var(--text-floor), calc((0.875rem + 0.0625rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-lg:calc((1.35rem + 0.05rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 15px */
|
|
370
|
+
--text-xl:clamp(var(--text-floor), calc((0.875rem + 0.1875rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-xl:calc((1.35rem + 0.2rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 17px */
|
|
371
|
+
--text-2xl:clamp(var(--text-floor), calc((0.875rem + 0.4375rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-2xl:calc((1.35rem + 0.35rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 21px */
|
|
372
|
+
--text-3xl:clamp(var(--text-floor), calc((0.875rem + 0.75rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-3xl:calc((1.35rem + 0.6rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 26px */
|
|
373
|
+
--text-4xl:clamp(var(--text-floor), calc((0.875rem + 1.125rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-4xl:calc((1.35rem + 0.9rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 32px */
|
|
374
|
+
--text-5xl:clamp(var(--text-floor), calc((0.875rem + 1.625rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-5xl:1.05; /* 40px — display leading is unitless, so it tracks its own size */
|
|
375
|
+
--text-6xl:clamp(var(--text-floor), calc((0.875rem + 2.375rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-6xl:1; /* 52px */
|
|
376
|
+
--text-7xl:clamp(var(--text-floor), calc((0.875rem + 3.125rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-7xl:1; /* 64px */
|
|
377
|
+
--text-8xl:clamp(var(--text-floor), calc((0.875rem + 4.375rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-8xl:1; /* 84px */
|
|
378
|
+
--text-9xl:clamp(var(--text-floor), calc((0.875rem + 6.125rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-9xl:1; /* 112px */
|
|
314
379
|
|
|
315
380
|
/* The SAME scale under @hanzo/brand's spelling. @hanzo/gui's shell theme and
|
|
316
381
|
Hanzo Studio address the ramp as --font-size-*; both names are one value, so
|
|
@@ -449,6 +514,26 @@
|
|
|
449
514
|
hanzoai/id's stylesheet — one app knowing something the system did not. */
|
|
450
515
|
--tap-target:44px;
|
|
451
516
|
|
|
517
|
+
/* ——— controls ——— */
|
|
518
|
+
/* A control's OWN height, which the floor above does not answer: 44px is the
|
|
519
|
+
smallest a finger may aim at, not the size a thing should be. Nothing named
|
|
520
|
+
the second question, so each surface answered it privately and they drifted
|
|
521
|
+
— @hanzo/ui keeps `CONTROL_H = 36` in TypeScript, hanzoai/app pins a 30px
|
|
522
|
+
`--control-h` over that same 36px library, and hanzoai/id spelled
|
|
523
|
+
`min-height:52px` into three separate rules.
|
|
524
|
+
The first three rungs ARE @hanzo/ui's size table (default/sm/lg), moved
|
|
525
|
+
down to the layer that holds values so a host can answer it once instead of
|
|
526
|
+
each library carrying a private copy. They sit under the tap floor on
|
|
527
|
+
purpose: base.css lifts whichever one is spent to 44px under
|
|
528
|
+
`pointer:coarse`, so one declaration serves a compact pointer control and a
|
|
529
|
+
hittable touch one. -xl is what a surface earns when the control IS the
|
|
530
|
+
content — one field, one button, nothing competing — where the default
|
|
531
|
+
reads as one of a stack rather than as the thing the screen is for. */
|
|
532
|
+
--control-height-sm:32px;
|
|
533
|
+
--control-height:36px;
|
|
534
|
+
--control-height-lg:40px;
|
|
535
|
+
--control-height-xl:52px;
|
|
536
|
+
|
|
452
537
|
/* ——— safe areas ——— */
|
|
453
538
|
/* The notch/home-indicator insets, named once. Anything pinned to a viewport
|
|
454
539
|
edge — a fixed header, a bottom bar, a sheet — adds the matching one. */
|
|
@@ -884,6 +969,22 @@
|
|
|
884
969
|
its buttons at 8-10px and nothing at 6px except 22px chips. */
|
|
885
970
|
border-radius:var(--radius-md);
|
|
886
971
|
padding:0 var(--space-3);
|
|
972
|
+
/* A field's ring is drawn INSIDE its own box. The one focus rule below
|
|
973
|
+
reads this; nothing else about the indicator changes.
|
|
974
|
+
|
|
975
|
+
A field lives in containers a button does not — composers, palettes and
|
|
976
|
+
panels that round their corners with `overflow:hidden`. An outline at a
|
|
977
|
+
POSITIVE offset is painted outside the border box, so any such ancestor
|
|
978
|
+
clips it, and the computed style still says `2px solid` while nothing is
|
|
979
|
+
drawn: a chat composer measured byte-identical screenshots focused and
|
|
980
|
+
unfocused, and a search pill kept only its left and right edges. A
|
|
981
|
+
negative offset cannot be clipped by anything, so a field needs to know
|
|
982
|
+
nothing about what contains it.
|
|
983
|
+
|
|
984
|
+
-2 against a 2px ring lays the outline over the outermost 2px of the box,
|
|
985
|
+
so it REPLACES the 1px edge for as long as focus is there rather than
|
|
986
|
+
drawing a second line a pixel inside the first. */
|
|
987
|
+
--ring-offset:-2px;
|
|
887
988
|
}
|
|
888
989
|
:where(textarea){padding:var(--space-2) var(--space-3);resize:vertical}
|
|
889
990
|
/* A field has NO focus rule of its own — see the ring at the bottom of this
|
|
@@ -950,6 +1051,11 @@
|
|
|
950
1051
|
canvas and clears the 2px perimeter WCAG 2.4.13 asks for; the gate in
|
|
951
1052
|
check-tokens holds --ring to that and nothing else here may weaken it.
|
|
952
1053
|
|
|
1054
|
+
WHERE the ring sits is the one thing that varies, and it varies as a VALUE
|
|
1055
|
+
the element carries, never as a second rule: `--ring-offset` defaults to 2
|
|
1056
|
+
and a field sets it to -2 (see the field block above). Two rules is what
|
|
1057
|
+
0.4.9 removed, and a second one here would be the same defect again.
|
|
1058
|
+
|
|
953
1059
|
There were two rules until 0.4.9, and they collided invisibly. Both computed
|
|
954
1060
|
to (0,1,0) — :where() zeroes whatever it wraps, leaving one pseudo-class on
|
|
955
1061
|
each side — so the cascade fell through to SOURCE ORDER inside this layer,
|
|
@@ -958,7 +1064,7 @@
|
|
|
958
1064
|
drew BOTH the ring and the edge+halo. Each rule read as correct alone, which
|
|
959
1065
|
is why it survived review in both files; the defect existed only in their
|
|
960
1066
|
order. One rule cannot disagree with itself. */
|
|
961
|
-
:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
|
|
1067
|
+
:focus-visible{outline:2px solid var(--ring);outline-offset:var(--ring-offset,2px)}
|
|
962
1068
|
/* --white-20 is white-on-white in the light theme, so selection reads through
|
|
963
1069
|
--selection, which BOTH themes define. */
|
|
964
1070
|
::selection{background:var(--selection);color:var(--text-primary)}
|
|
@@ -1859,7 +1965,7 @@
|
|
|
1859
1965
|
._hsb-y::-webkit-scrollbar:vertical { display: none !important; }
|
|
1860
1966
|
._hsb-x { scrollbar-width: none !important; }
|
|
1861
1967
|
._hsb-y { scrollbar-width: none !important; }
|
|
1862
|
-
:root{--t0:var(--primary, #fafafa);--t1:var(--primary-foreground, #0a0a0a);--t2:hsla(0, 0%, 4%, 0);--t3:hsla(0, 0%, 8%, 0.2);--t4:hsla(0, 0%, 8%, 0.4);--t5:hsla(0, 0%, 8%, 0.6);--t6:hsla(0, 0%, 8%, 0.8);--t7:hsla(0, 0%, 4%, 1);--t8:hsla(0, 0%, 8%, 1);--t9:hsla(0, 0%, 10%, 1);--t10:var(--border, rgb(255 255 255 / .10));--t11:hsla(0, 0%, 20%, 1);--t12:hsla(0, 0%, 27%, 1);--t13:hsla(0, 0%, 40%, 1);--t14:hsla(0, 0%, 47%, 1);--t15:hsla(0, 0%, 52%, 1);--t16:hsla(0, 0%, 67%, 1);--t17:hsla(0, 0%, 80%, 1);--t18:var(--foreground, #fafafa);--t19:hsla(0, 0%, 100%, 0);--t20:hsla(0, 0%, 100%, 0.2);--t21:hsla(0, 0%, 100%, 0.4);--t22:hsla(0, 0%, 100%, 0.6);--t23:hsla(0, 0%, 100%, 0.8);--t24:hsla(0, 0%, 100%, 1);--t25:#0a0a0a;--t26:hsla(0, 0%, 14%, 1);--t27:var(--text-tertiary, rgb(255 255 255 / .55));--t28:#090909;--t29:#151515;--t30:#191919;--t31:#232323;--t32:#333;--t33:#444;--t34:#666;--t35:#777;--t36:#858585;--t37:#aaa;--t38:#ccc;--t39:#ffffff;--t40:#fff;--t41:#f8f8f8;--t42:hsl(0, 0%, 93%);--t43:hsl(0, 0%, 85%);--t44:hsl(0, 0%, 80%);--t45:hsl(0, 0%, 70%);--t46:hsl(0, 0%, 59%);--t47:hsl(0, 0%, 45%);--t48:hsl(0, 0%, 30%);--t49:hsl(0, 0%, 20%);--t50:hsl(0, 0%, 14%);--t51:hsl(0, 0%, 2%);--t52:rgba(255,255,255,1);--t53:rgba(255,255,255,0);--t54:rgba(255,255,255,0.2);--t55:rgba(255,255,255,0.4);--t56:rgba(255,255,255,0.6);--t57:rgba(255,255,255,0.8);--t58:rgba(0,0,0,1);--t59:rgba(0,0,0,0);--t60:rgba(0,0,0,0.2);--t61:rgba(0,0,0,0.4);--t62:rgba(0,0,0,0.6);--t63:rgba(0,0,0,0.8);--t64:rgba(0,0,0,0.15);--t65:rgba(0,0,0,0.23);--t66:rgba(0,0,0,0.33);--t67:rgba(0,0,0,0.45);--t68:rgba(0,0,0,0.65);--t69:rgba(0,0,0,0.9);--t70:rgba(255,255,255,0.1);--t71:rgba(255,255,255,0.3);--t72:rgba(255,255,255,0.45);--t73:rgba(255,255,255,0.65);--t74:rgba(255,255,255,0.85);--t75:rgba(255,255,255,0.95);--t76:#111111;--t77:#222222;--t78:#2a2a2a;--t79:#313131;--t80:#3a3a3a;--t81:#484848;--t82:#606060;--t83:#6e6e6e;--t84:#7b7b7b;--t85:#b4b4b4;--t86:#eeeeee;--t87:#0d1520;--t88:#111927;--t89:#0d2847;--t90:#003362;--t91:#004074;--t92:#104d87;--t93:#205d9e;--t94:#2870bd;--t95:#0090ff;--t96:#3b9eff;--t97:#70b8ff;--t98:#c2e6ff;--t99:#191111;--t100:#201314;--t101:#3b1219;--t102:#500f1c;--t103:#611623;--t104:#72232d;--t105:#8c333a;--t106:#b54548;--t107:#e5484d;--t108:#ec5d5e;--t109:#ff9592;--t110:#ffd1d9;--t111:#14120b;--t112:#1b180f;--t113:#2d2305;--t114:#362b00;--t115:#433500;--t116:#524202;--t117:#665417;--t118:#836a21;--t119:#ffe629;--t120:#ffff57;--t121:#f5e147;--t122:#f6eeb4;--t123:#0e1512;--t124:#121b17;--t125:#132d21;--t126:#113b29;--t127:#174933;--t128:#20573e;--t129:#28684a;--t130:#2f7c57;--t131:#30a46c;--t132:#33b074;--t133:#3dd68c;--t134:#b1f1cb;--t135:#17120e;--t136:#1e160f;--t137:#331e0b;--t138:#462100;--t139:#562800;--t140:#66350c;--t141:#7e451d;--t142:#a35829;--t143:#f76b15;--t144:#ff801f;--t145:#ffa057;--t146:#ffe0c2;--t147:#191117;--t148:#21121d;--t149:#37172f;--t150:#4b143d;--t151:#591c47;--t152:#692955;--t153:#833869;--t154:#a84885;--t155:#d6409f;--t156:#de51a8;--t157:#ff8dcc;--t158:#fdd1ea;--t159:#18111b;--t160:#1e1523;--t161:#301c3b;--t162:#3d224e;--t163:#48295c;--t164:#54346b;--t165:#664282;--t166:#8457aa;--t167:#8e4ec6;--t168:#9a5cd0;--t169:#d19dff;--t170:#ecd9fa;--t171:#0d1514;--t172:#111c1b;--t173:#0d2d2a;--t174:#023b37;--t175:#084843;--t176:#145750;--t177:#1c6961;--t178:#207e73;--t179:#12a594;--t180:#0eb39e;--t181:#0bd8b6;--t182:#adf0dd;--t183:hsl(0, 0%, 68%);--t184:hsl(0, 0%, 65%);--t185:hsl(0, 0%, 62%);--t186:hsl(0, 0%, 56%);--t187:hsl(0, 0%, 53%);--t188:hsl(0, 0%, 50%);--t189:hsl(0, 0%, 47%);--t190:hsl(0, 0%, 44%);--t191:hsl(0, 0%, 41%);--t192:hsl(0, 0%, 38%);--t193:hsl(0, 0%, 32%);--t194:hsla(0, 0%, 97%, 1);--t195:hsla(0, 0%, 93%, 1);--t196:hsla(0, 0%, 85%, 1);--t197:hsla(0, 0%, 70%, 1);--t198:hsla(0, 0%, 59%, 1);--t199:hsla(0, 0%, 45%, 1);--t200:hsla(0, 0%, 30%, 1);--t201:hsla(0, 0%, 2%, 1);--t202:hsla(0, 0%, 100%, 0.1);--t203:hsla(0, 0%, 100%, 0.075);--t204:hsla(0, 0%, 100%, 0.05);--t205:hsla(0, 0%, 100%, 0.025);--t206:hsla(0, 0%, 100%, 0.02);--t207:hsla(0, 0%, 100%, 0.01);--t208:hsla(0, 0%, 8%, 0.1);--t209:hsla(0, 0%, 8%, 0.075);--t210:hsla(0, 0%, 8%, 0.05);--t211:hsla(0, 0%, 8%, 0.025);--t212:hsla(0, 0%, 8%, 0.02);--t213:hsla(0, 0%, 8%, 0.01);--t214:var(--ring, rgb(255 255 255 / .40));--t215:hsla(0, 0%, 4%, 0.2);--t216:hsla(0, 0%, 4%, 0.4);--t217:hsla(0, 0%, 4%, 0.6);--t218:hsla(0, 0%, 4%, 0.8);--t219:hsla(0, 0%, 97%, 0.2);--t220:hsla(0, 0%, 97%, 0.4);--t221:hsla(0, 0%, 97%, 0.6);--t222:hsla(0, 0%, 97%, 0.8);--t223:hsla(0, 0%, 2%, 0);--t224:hsla(0, 0%, 2%, 0.2);--t225:hsla(0, 0%, 2%, 0.4);--t226:hsla(0, 0%, 2%, 0.6);--t227:hsla(0, 0%, 2%, 0.8);--t228:hsla(0, 0%, 2%, 0.1);--t229:hsla(0, 0%, 2%, 0.075);--t230:hsla(0, 0%, 2%, 0.05);--t231:hsla(0, 0%, 2%, 0.025);--t232:hsla(0, 0%, 2%, 0.02);--t233:hsla(0, 0%, 2%, 0.01);--t234:hsla(0, 0%, 97%, 0.1);--t235:hsla(0, 0%, 97%, 0.075);--t236:hsla(0, 0%, 97%, 0.05);--t237:hsla(0, 0%, 97%, 0.025);--t238:hsla(0, 0%, 97%, 0.02);--t239:hsla(0, 0%, 97%, 0.01);--t240:hsla(216, 43%, 9%, 0);--t241:hsla(218, 39%, 11%, 0.2);--t242:hsla(218, 39%, 11%, 0.4);--t243:hsla(218, 39%, 11%, 0.6);--t244:hsla(218, 39%, 11%, 0.8);--t245:hsla(215, 42%, 9%, 1);--t246:hsla(218, 39%, 11%, 1);--t247:hsla(212, 69%, 16%, 1);--t248:hsla(209, 100%, 19%, 1);--t249:hsla(207, 100%, 23%, 1);--t250:hsla(209, 79%, 30%, 1);--t251:hsla(211, 66%, 37%, 1);--t252:hsla(211, 65%, 45%, 1);--t253:hsla(206, 100%, 50%, 1);--t254:hsla(210, 100%, 62%, 1);--t255:hsla(210, 100%, 72%, 1);--t256:hsla(205, 100%, 88%, 1);--t257:hsla(205, 100%, 88%, 0);--t258:hsla(205, 100%, 88%, 0.2);--t259:hsla(205, 100%, 88%, 0.4);--t260:hsla(205, 100%, 88%, 0.6);--t261:hsla(205, 100%, 88%, 0.8);--t262:hsla(205, 100%, 88%, 0.1);--t263:hsla(205, 100%, 88%, 0.075);--t264:hsla(205, 100%, 88%, 0.05);--t265:hsla(205, 100%, 88%, 0.025);--t266:hsla(205, 100%, 88%, 0.02);--t267:hsla(205, 100%, 88%, 0.01);--t268:hsla(218, 39%, 11%, 0.1);--t269:hsla(218, 39%, 11%, 0.075);--t270:hsla(218, 39%, 11%, 0.05);--t271:hsla(218, 39%, 11%, 0.025);--t272:hsla(218, 39%, 11%, 0.02);--t273:hsla(218, 39%, 11%, 0.01);--t274:hsla(216, 43%, 9%, 0.2);--t275:hsla(216, 43%, 9%, 0.4);--t276:hsla(216, 43%, 9%, 0.6);--t277:hsla(216, 43%, 9%, 0.8);--t278:hsla(0, 0%, 7%, 0);--t279:hsla(0, 0%, 10%, 0.2);--t280:hsla(0, 0%, 10%, 0.4);--t281:hsla(0, 0%, 10%, 0.6);--t282:hsla(0, 0%, 10%, 0.8);--t283:hsla(0, 0%, 7%, 1);--t284:hsla(0, 0%, 13%, 1);--t285:hsla(0, 0%, 16%, 1);--t286:hsla(0, 0%, 19%, 1);--t287:hsla(0, 0%, 23%, 1);--t288:hsla(0, 0%, 28%, 1);--t289:hsla(0, 0%, 38%, 1);--t290:hsla(0, 0%, 43%, 1);--t291:hsla(0, 0%, 48%, 1);--t292:hsla(0, 0%, 71%, 1);--t293:hsla(0, 0%, 93%, 0);--t294:hsla(0, 0%, 93%, 0.2);--t295:hsla(0, 0%, 93%, 0.4);--t296:hsla(0, 0%, 93%, 0.6);--t297:hsla(0, 0%, 93%, 0.8);--t298:hsla(0, 0%, 93%, 0.1);--t299:hsla(0, 0%, 93%, 0.075);--t300:hsla(0, 0%, 93%, 0.05);--t301:hsla(0, 0%, 93%, 0.025);--t302:hsla(0, 0%, 93%, 0.02);--t303:hsla(0, 0%, 93%, 0.01);--t304:hsla(0, 0%, 10%, 0.1);--t305:hsla(0, 0%, 10%, 0.075);--t306:hsla(0, 0%, 10%, 0.05);--t307:hsla(0, 0%, 10%, 0.025);--t308:hsla(0, 0%, 10%, 0.02);--t309:hsla(0, 0%, 10%, 0.01);--t310:hsla(0, 0%, 7%, 0.2);--t311:hsla(0, 0%, 7%, 0.4);--t312:hsla(0, 0%, 7%, 0.6);--t313:hsla(0, 0%, 7%, 0.8);--t314:hsla(154, 20%, 7%, 0);--t315:hsla(153, 20%, 9%, 0.2);--t316:hsla(153, 20%, 9%, 0.4);--t317:hsla(153, 20%, 9%, 0.6);--t318:hsla(153, 20%, 9%, 0.8);--t319:hsla(154, 20%, 7%, 1);--t320:hsla(153, 20%, 9%, 1);--t321:hsla(152, 41%, 13%, 1);--t322:hsla(154, 55%, 15%, 1);--t323:hsla(154, 52%, 19%, 1);--t324:hsla(153, 46%, 23%, 1);--t325:hsla(152, 44%, 28%, 1);--t326:hsla(151, 45%, 34%, 1);--t327:hsla(151, 55%, 42%, 1);--t328:hsla(151, 55%, 45%, 1);--t329:hsla(151, 65%, 54%, 1);--t330:hsla(144, 70%, 82%, 1);--t331:hsla(144, 70%, 82%, 0);--t332:hsla(144, 70%, 82%, 0.2);--t333:hsla(144, 70%, 82%, 0.4);--t334:hsla(144, 70%, 82%, 0.6);--t335:hsla(144, 70%, 82%, 0.8);--t336:hsla(144, 70%, 82%, 0.1);--t337:hsla(144, 70%, 82%, 0.075);--t338:hsla(144, 70%, 82%, 0.05);--t339:hsla(144, 70%, 82%, 0.025);--t340:hsla(144, 70%, 82%, 0.02);--t341:hsla(144, 70%, 82%, 0.01);--t342:hsla(153, 20%, 9%, 0.1);--t343:hsla(153, 20%, 9%, 0.075);--t344:hsla(153, 20%, 9%, 0.05);--t345:hsla(153, 20%, 9%, 0.025);--t346:hsla(153, 20%, 9%, 0.02);--t347:hsla(153, 20%, 9%, 0.01);--t348:hsla(154, 20%, 7%, 0.2);--t349:hsla(154, 20%, 7%, 0.4);--t350:hsla(154, 20%, 7%, 0.6);--t351:hsla(154, 20%, 7%, 0.8);--t352:hsla(0, 0%, 68%, 0);--t353:hsla(0, 0%, 65%, 0.2);--t354:hsla(0, 0%, 65%, 0.4);--t355:hsla(0, 0%, 65%, 0.6);--t356:hsla(0, 0%, 65%, 0.8);--t357:hsla(0, 0%, 68%, 1);--t358:hsla(0, 0%, 65%, 1);--t359:hsla(0, 0%, 62%, 1);--t360:hsla(0, 0%, 56%, 1);--t361:hsla(0, 0%, 53%, 1);--t362:hsla(0, 0%, 50%, 1);--t363:hsla(0, 0%, 44%, 1);--t364:hsla(0, 0%, 41%, 1);--t365:hsla(0, 0%, 32%, 1);--t366:hsla(0, 0%, 32%, 0);--t367:hsla(0, 0%, 32%, 0.2);--t368:hsla(0, 0%, 32%, 0.4);--t369:hsla(0, 0%, 32%, 0.6);--t370:hsla(0, 0%, 32%, 0.8);--t371:hsla(0, 0%, 32%, 0.1);--t372:hsla(0, 0%, 32%, 0.075);--t373:hsla(0, 0%, 32%, 0.05);--t374:hsla(0, 0%, 32%, 0.025);--t375:hsla(0, 0%, 32%, 0.02);--t376:hsla(0, 0%, 32%, 0.01);--t377:hsla(0, 0%, 65%, 0.1);--t378:hsla(0, 0%, 65%, 0.075);--t379:hsla(0, 0%, 65%, 0.05);--t380:hsla(0, 0%, 65%, 0.025);--t381:hsla(0, 0%, 65%, 0.02);--t382:hsla(0, 0%, 65%, 0.01);--t383:hsla(0, 0%, 68%, 0.2);--t384:hsla(0, 0%, 68%, 0.4);--t385:hsla(0, 0%, 68%, 0.6);--t386:hsla(0, 0%, 68%, 0.8);--t387:hsla(23, 22%, 7%, 0);--t388:hsla(28, 33%, 9%, 0.2);--t389:hsla(28, 33%, 9%, 0.4);--t390:hsla(28, 33%, 9%, 0.6);--t391:hsla(28, 33%, 9%, 0.8);--t392:hsla(27, 24%, 7%, 1);--t393:hsla(28, 33%, 9%, 1);--t394:hsla(29, 65%, 12%, 1);--t395:hsla(28, 100%, 14%, 1);--t396:hsla(28, 100%, 17%, 1);--t397:hsla(27, 79%, 22%, 1);--t398:hsla(25, 63%, 30%, 1);--t399:hsla(23, 60%, 40%, 1);--t400:hsla(23, 93%, 53%, 1);--t401:hsla(26, 100%, 56%, 1);--t402:hsla(26, 100%, 67%, 1);--t403:hsla(30, 100%, 88%, 1);--t404:hsla(30, 100%, 88%, 0);--t405:hsla(30, 100%, 88%, 0.2);--t406:hsla(30, 100%, 88%, 0.4);--t407:hsla(30, 100%, 88%, 0.6);--t408:hsla(30, 100%, 88%, 0.8);--t409:hsla(30, 100%, 88%, 0.1);--t410:hsla(30, 100%, 88%, 0.075);--t411:hsla(30, 100%, 88%, 0.05);--t412:hsla(30, 100%, 88%, 0.025);--t413:hsla(30, 100%, 88%, 0.02);--t414:hsla(30, 100%, 88%, 0.01);--t415:hsla(28, 33%, 9%, 0.1);--t416:hsla(28, 33%, 9%, 0.075);--t417:hsla(28, 33%, 9%, 0.05);--t418:hsla(28, 33%, 9%, 0.025);--t419:hsla(28, 33%, 9%, 0.02);--t420:hsla(28, 33%, 9%, 0.01);--t421:hsla(23, 22%, 7%, 0.2);--t422:hsla(23, 22%, 7%, 0.4);--t423:hsla(23, 22%, 7%, 0.6);--t424:hsla(23, 22%, 7%, 0.8);--t425:hsla(317, 17%, 8%, 0);--t426:hsla(316, 29%, 10%, 0.2);--t427:hsla(316, 29%, 10%, 0.4);--t428:hsla(316, 29%, 10%, 0.6);--t429:hsla(316, 29%, 10%, 0.8);--t430:hsla(315, 19%, 8%, 1);--t431:hsla(316, 29%, 10%, 1);--t432:hsla(315, 41%, 15%, 1);--t433:hsla(315, 58%, 19%, 1);--t434:hsla(318, 52%, 23%, 1);--t435:hsla(319, 44%, 29%, 1);--t436:hsla(321, 40%, 37%, 1);--t437:hsla(322, 40%, 47%, 1);--t438:hsla(322, 65%, 55%, 1);--t439:hsla(323, 68%, 59%, 1);--t440:hsla(327, 100%, 78%, 1);--t441:hsla(326, 92%, 91%, 1);--t442:hsla(326, 91%, 91%, 0);--t443:hsla(326, 91%, 91%, 0.2);--t444:hsla(326, 91%, 91%, 0.4);--t445:hsla(326, 91%, 91%, 0.6);--t446:hsla(326, 91%, 91%, 0.8);--t447:hsla(326, 91%, 91%, 0.1);--t448:hsla(326, 91%, 91%, 0.075);--t449:hsla(326, 91%, 91%, 0.05);--t450:hsla(326, 91%, 91%, 0.025);--t451:hsla(326, 91%, 91%, 0.02);--t452:hsla(326, 91%, 91%, 0.01);--t453:hsla(316, 29%, 10%, 0.1);--t454:hsla(316, 29%, 10%, 0.075);--t455:hsla(316, 29%, 10%, 0.05);--t456:hsla(316, 29%, 10%, 0.025);--t457:hsla(316, 29%, 10%, 0.02);--t458:hsla(316, 29%, 10%, 0.01);--t459:hsla(317, 17%, 8%, 0.2);--t460:hsla(317, 17%, 8%, 0.4);--t461:hsla(317, 17%, 8%, 0.6);--t462:hsla(317, 17%, 8%, 0.8);--t463:hsla(282, 22%, 9%, 0);--t464:hsla(279, 25%, 11%, 0.2);--t465:hsla(279, 25%, 11%, 0.4);--t466:hsla(279, 25%, 11%, 0.6);--t467:hsla(279, 25%, 11%, 0.8);--t468:hsla(282, 23%, 9%, 1);--t469:hsla(279, 25%, 11%, 1);--t470:hsla(279, 36%, 17%, 1);--t471:hsla(277, 39%, 22%, 1);--t472:hsla(276, 38%, 26%, 1);--t473:hsla(275, 35%, 31%, 1);--t474:hsla(274, 33%, 38%, 1);--t475:hsla(273, 33%, 50%, 1);--t476:hsla(272, 51%, 54%, 1);--t477:hsla(272, 55%, 59%, 1);--t478:hsla(272, 100%, 81%, 1);--t479:hsla(275, 77%, 92%, 1);--t480:hsla(275, 76%, 92%, 0);--t481:hsla(275, 76%, 92%, 0.2);--t482:hsla(275, 76%, 92%, 0.4);--t483:hsla(275, 76%, 92%, 0.6);--t484:hsla(275, 76%, 92%, 0.8);--t485:hsla(275, 76%, 92%, 0.1);--t486:hsla(275, 76%, 92%, 0.075);--t487:hsla(275, 76%, 92%, 0.05);--t488:hsla(275, 76%, 92%, 0.025);--t489:hsla(275, 76%, 92%, 0.02);--t490:hsla(275, 76%, 92%, 0.01);--t491:hsla(279, 25%, 11%, 0.1);--t492:hsla(279, 25%, 11%, 0.075);--t493:hsla(279, 25%, 11%, 0.05);--t494:hsla(279, 25%, 11%, 0.025);--t495:hsla(279, 25%, 11%, 0.02);--t496:hsla(279, 25%, 11%, 0.01);--t497:hsla(282, 22%, 9%, 0.2);--t498:hsla(282, 22%, 9%, 0.4);--t499:hsla(282, 22%, 9%, 0.6);--t500:hsla(282, 22%, 9%, 0.8);--t501:hsla(0, 17%, 8%, 0);--t502:hsla(355, 25%, 10%, 0.2);--t503:hsla(355, 25%, 10%, 0.4);--t504:hsla(355, 25%, 10%, 0.6);--t505:hsla(355, 25%, 10%, 0.8);--t506:hsla(0, 19%, 8%, 1);--t507:hsla(355, 25%, 10%, 1);--t508:hsla(350, 53%, 15%, 1);--t509:hsla(348, 68%, 19%, 1);--t510:hsla(350, 63%, 23%, 1);--t511:hsla(352, 53%, 29%, 1);--t512:hsla(355, 47%, 37%, 1);--t513:hsla(358, 45%, 49%, 1);--t514:hsla(358, 75%, 59%, 1);--t515:hsla(360, 79%, 65%, 1);--t516:hsla(2, 100%, 79%, 1);--t517:hsla(350, 100%, 91%, 1);--t518:hsla(350, 100%, 91%, 0);--t519:hsla(350, 100%, 91%, 0.2);--t520:hsla(350, 100%, 91%, 0.4);--t521:hsla(350, 100%, 91%, 0.6);--t522:hsla(350, 100%, 91%, 0.8);--t523:hsla(350, 100%, 91%, 0.1);--t524:hsla(350, 100%, 91%, 0.075);--t525:hsla(350, 100%, 91%, 0.05);--t526:hsla(350, 100%, 91%, 0.025);--t527:hsla(350, 100%, 91%, 0.02);--t528:hsla(350, 100%, 91%, 0.01);--t529:hsla(355, 25%, 10%, 0.1);--t530:hsla(355, 25%, 10%, 0.075);--t531:hsla(355, 25%, 10%, 0.05);--t532:hsla(355, 25%, 10%, 0.025);--t533:hsla(355, 25%, 10%, 0.02);--t534:hsla(355, 25%, 10%, 0.01);--t535:hsla(0, 17%, 8%, 0.2);--t536:hsla(0, 17%, 8%, 0.4);--t537:hsla(0, 17%, 8%, 0.6);--t538:hsla(0, 17%, 8%, 0.8);--t539:hsla(173, 22%, 7%, 0);--t540:hsla(175, 24%, 9%, 0.2);--t541:hsla(175, 24%, 9%, 0.4);--t542:hsla(175, 24%, 9%, 0.6);--t543:hsla(175, 24%, 9%, 0.8);--t544:hsla(173, 24%, 7%, 1);--t545:hsla(175, 24%, 9%, 1);--t546:hsla(174, 55%, 11%, 1);--t547:hsla(176, 93%, 12%, 1);--t548:hsla(175, 80%, 16%, 1);--t549:hsla(174, 63%, 21%, 1);--t550:hsla(174, 58%, 26%, 1);--t551:hsla(173, 59%, 31%, 1);--t552:hsla(173, 80%, 36%, 1);--t553:hsla(172, 85%, 38%, 1);--t554:hsla(170, 90%, 45%, 1);--t555:hsla(163, 69%, 81%, 1);--t556:hsla(163, 69%, 81%, 0);--t557:hsla(163, 69%, 81%, 0.2);--t558:hsla(163, 69%, 81%, 0.4);--t559:hsla(163, 69%, 81%, 0.6);--t560:hsla(163, 69%, 81%, 0.8);--t561:hsla(163, 69%, 81%, 0.1);--t562:hsla(163, 69%, 81%, 0.075);--t563:hsla(163, 69%, 81%, 0.05);--t564:hsla(163, 69%, 81%, 0.025);--t565:hsla(163, 69%, 81%, 0.02);--t566:hsla(163, 69%, 81%, 0.01);--t567:hsla(175, 24%, 9%, 0.1);--t568:hsla(175, 24%, 9%, 0.075);--t569:hsla(175, 24%, 9%, 0.05);--t570:hsla(175, 24%, 9%, 0.025);--t571:hsla(175, 24%, 9%, 0.02);--t572:hsla(175, 24%, 9%, 0.01);--t573:hsla(173, 22%, 7%, 0.2);--t574:hsla(173, 22%, 7%, 0.4);--t575:hsla(173, 22%, 7%, 0.6);--t576:hsla(173, 22%, 7%, 0.8);--t577:hsla(47, 29%, 6%, 0);--t578:hsla(45, 29%, 8%, 0.2);--t579:hsla(45, 29%, 8%, 0.4);--t580:hsla(45, 29%, 8%, 0.6);--t581:hsla(45, 29%, 8%, 0.8);--t582:hsla(47, 29%, 6%, 1);--t583:hsla(45, 29%, 8%, 1);--t584:hsla(45, 80%, 10%, 1);--t585:hsla(48, 100%, 11%, 1);--t586:hsla(47, 100%, 13%, 1);--t587:hsla(48, 95%, 16%, 1);--t588:hsla(46, 63%, 25%, 1);--t589:hsla(45, 60%, 32%, 1);--t590:hsla(53, 100%, 58%, 1);--t591:hsla(60, 100%, 67%, 1);--t592:hsla(53, 90%, 62%, 1);--t593:hsla(53, 79%, 84%, 1);--t594:hsla(53, 78%, 84%, 0);--t595:hsla(53, 78%, 84%, 0.2);--t596:hsla(53, 78%, 84%, 0.4);--t597:hsla(53, 78%, 84%, 0.6);--t598:hsla(53, 78%, 84%, 0.8);--t599:hsla(53, 78%, 84%, 0.1);--t600:hsla(53, 78%, 84%, 0.075);--t601:hsla(53, 78%, 84%, 0.05);--t602:hsla(53, 78%, 84%, 0.025);--t603:hsla(53, 78%, 84%, 0.02);--t604:hsla(53, 78%, 84%, 0.01);--t605:hsla(45, 29%, 8%, 0.1);--t606:hsla(45, 29%, 8%, 0.075);--t607:hsla(45, 29%, 8%, 0.05);--t608:hsla(45, 29%, 8%, 0.025);--t609:hsla(45, 29%, 8%, 0.02);--t610:hsla(45, 29%, 8%, 0.01);--t611:hsla(47, 29%, 6%, 0.2);--t612:hsla(47, 29%, 6%, 0.4);--t613:hsla(47, 29%, 6%, 0.6);--t614:hsla(47, 29%, 6%, 0.8);--t615:var(--primary, #0a0a0a);--t616:var(--primary-foreground, #fafafa);--t617:var(--border, rgb(0 0 0 / .10));--t618:var(--foreground, #0a0a0a);--t619:#f7f7f7;--t620:var(--text-tertiary, rgb(10 10 10 / .55));--t621:rgba(0,0,0,0.04);--t622:rgba(0,0,0,0.08);--t623:rgba(0,0,0,0.12);--t624:rgba(0,0,0,0.22);--t625:rgba(0,0,0,0.44);--t626:rgba(0,0,0,0.75);--t627:rgba(255,255,255,0.05);--t628:rgba(255,255,255,0.15);--t629:rgba(255,255,255,0.55);--t630:rgba(255,255,255,0.7);--t631:#fcfcfc;--t632:#f9f9f9;--t633:#f0f0f0;--t634:#e8e8e8;--t635:#e0e0e0;--t636:#d9d9d9;--t637:#cecece;--t638:#bbbbbb;--t639:#8d8d8d;--t640:#838383;--t641:#646464;--t642:#202020;--t643:#fbfdff;--t644:#f4faff;--t645:#e6f4fe;--t646:#d5efff;--t647:#c2e5ff;--t648:#acd8fc;--t649:#8ec8f6;--t650:#5eb1ef;--t651:#0588f0;--t652:#0d74ce;--t653:#113264;--t654:#fffcfc;--t655:#fff7f7;--t656:#feebec;--t657:#ffdbdc;--t658:#ffcdce;--t659:#fdbdbe;--t660:#f4a9aa;--t661:#eb8e90;--t662:#dc3e42;--t663:#ce2c31;--t664:#641723;--t665:#fdfdf9;--t666:#fefce9;--t667:#fffab8;--t668:#fff394;--t669:#ffe770;--t670:#f3d768;--t671:#e4c767;--t672:#d5ae39;--t673:#ffdc00;--t674:#9e6c00;--t675:#473b1f;--t676:#fbfefc;--t677:#f4fbf6;--t678:#e6f6eb;--t679:#d6f1df;--t680:#c4e8d1;--t681:#adddc0;--t682:#8eceaa;--t683:#5bb98b;--t684:#2b9a66;--t685:#218358;--t686:#193b2d;--t687:#fefcfb;--t688:#fff7ed;--t689:#ffefd6;--t690:#ffdfb5;--t691:#ffd19a;--t692:#ffc182;--t693:#f5ae73;--t694:#ec9455;--t695:#ef5f00;--t696:#cc4e00;--t697:#582d1d;--t698:#fffcfe;--t699:#fef7fb;--t700:#fee9f5;--t701:#fbdcef;--t702:#f6cee7;--t703:#efbfdd;--t704:#e7acd0;--t705:#dd93c2;--t706:#cf3897;--t707:#c2298a;--t708:#651249;--t709:#fefcfe;--t710:#fbf7fe;--t711:#f7edfe;--t712:#f2e2fc;--t713:#ead5f9;--t714:#e0c4f4;--t715:#d1afec;--t716:#be93e4;--t717:#8347b9;--t718:#8145b5;--t719:#402060;--t720:#fafefd;--t721:#f3fbf9;--t722:#e0f8f3;--t723:#ccf3ea;--t724:#b8eae0;--t725:#a1ded2;--t726:#83cdc1;--t727:#53b9ab;--t728:#0d9b8a;--t729:#008573;--t730:#0d3d38;--t731:var(--ring, rgb(0 0 0 / .5));--t732:hsla(216, 100%, 99%, 0);--t733:hsla(207, 100%, 98%, 0.2);--t734:hsla(207, 100%, 98%, 0.4);--t735:hsla(207, 100%, 98%, 0.6);--t736:hsla(207, 100%, 98%, 0.8);--t737:hsla(210, 100%, 99%, 1);--t738:hsla(207, 100%, 98%, 1);--t739:hsla(205, 92%, 95%, 1);--t740:hsla(203, 100%, 92%, 1);--t741:hsla(206, 100%, 88%, 1);--t742:hsla(207, 93%, 83%, 1);--t743:hsla(207, 85%, 76%, 1);--t744:hsla(206, 82%, 65%, 1);--t745:hsla(207, 96%, 48%, 1);--t746:hsla(208, 88%, 43%, 1);--t747:hsla(216, 71%, 23%, 1);--t748:hsla(216, 71%, 23%, 0);--t749:hsla(216, 71%, 23%, 0.2);--t750:hsla(216, 71%, 23%, 0.4);--t751:hsla(216, 71%, 23%, 0.6);--t752:hsla(216, 71%, 23%, 0.8);--t753:hsla(216, 71%, 23%, 0.1);--t754:hsla(216, 71%, 23%, 0.075);--t755:hsla(216, 71%, 23%, 0.05);--t756:hsla(216, 71%, 23%, 0.025);--t757:hsla(216, 71%, 23%, 0.02);--t758:hsla(216, 71%, 23%, 0.01);--t759:hsla(207, 100%, 98%, 0.1);--t760:hsla(207, 100%, 98%, 0.075);--t761:hsla(207, 100%, 98%, 0.05);--t762:hsla(207, 100%, 98%, 0.025);--t763:hsla(207, 100%, 98%, 0.02);--t764:hsla(207, 100%, 98%, 0.01);--t765:hsla(216, 100%, 99%, 0.2);--t766:hsla(216, 100%, 99%, 0.4);--t767:hsla(216, 100%, 99%, 0.6);--t768:hsla(216, 100%, 99%, 0.8);--t769:hsla(0, 0%, 99%, 0);--t770:hsla(0, 0%, 98%, 0.2);--t771:hsla(0, 0%, 98%, 0.4);--t772:hsla(0, 0%, 98%, 0.6);--t773:hsla(0, 0%, 98%, 0.8);--t774:hsla(0, 0%, 99%, 1);--t775:hsla(0, 0%, 98%, 1);--t776:hsla(0, 0%, 94%, 1);--t777:hsla(0, 0%, 91%, 1);--t778:hsla(0, 0%, 88%, 1);--t779:hsla(0, 0%, 81%, 1);--t780:hsla(0, 0%, 73%, 1);--t781:hsla(0, 0%, 55%, 1);--t782:hsla(0, 0%, 51%, 1);--t783:hsla(0, 0%, 39%, 1);--t784:hsla(0, 0%, 13%, 0);--t785:hsla(0, 0%, 13%, 0.2);--t786:hsla(0, 0%, 13%, 0.4);--t787:hsla(0, 0%, 13%, 0.6);--t788:hsla(0, 0%, 13%, 0.8);--t789:hsla(0, 0%, 13%, 0.1);--t790:hsla(0, 0%, 13%, 0.075);--t791:hsla(0, 0%, 13%, 0.05);--t792:hsla(0, 0%, 13%, 0.025);--t793:hsla(0, 0%, 13%, 0.02);--t794:hsla(0, 0%, 13%, 0.01);--t795:hsla(0, 0%, 98%, 0.1);--t796:hsla(0, 0%, 98%, 0.075);--t797:hsla(0, 0%, 98%, 0.05);--t798:hsla(0, 0%, 98%, 0.025);--t799:hsla(0, 0%, 98%, 0.02);--t800:hsla(0, 0%, 98%, 0.01);--t801:hsla(0, 0%, 99%, 0.2);--t802:hsla(0, 0%, 99%, 0.4);--t803:hsla(0, 0%, 99%, 0.6);--t804:hsla(0, 0%, 99%, 0.8);--t805:hsla(140, 60%, 99%, 0);--t806:hsla(137, 47%, 97%, 0.2);--t807:hsla(137, 47%, 97%, 0.4);--t808:hsla(137, 47%, 97%, 0.6);--t809:hsla(137, 47%, 97%, 0.8);--t810:hsla(140, 60%, 99%, 1);--t811:hsla(137, 47%, 97%, 1);--t812:hsla(139, 47%, 93%, 1);--t813:hsla(140, 49%, 89%, 1);--t814:hsla(142, 44%, 84%, 1);--t815:hsla(144, 41%, 77%, 1);--t816:hsla(146, 40%, 68%, 1);--t817:hsla(151, 40%, 54%, 1);--t818:hsla(152, 56%, 39%, 1);--t819:hsla(154, 60%, 32%, 1);--t820:hsla(155, 40%, 16%, 1);--t821:hsla(156, 41%, 16%, 0);--t822:hsla(156, 41%, 16%, 0.2);--t823:hsla(156, 41%, 16%, 0.4);--t824:hsla(156, 41%, 16%, 0.6);--t825:hsla(156, 41%, 16%, 0.8);--t826:hsla(156, 41%, 16%, 0.1);--t827:hsla(156, 41%, 16%, 0.075);--t828:hsla(156, 41%, 16%, 0.05);--t829:hsla(156, 41%, 16%, 0.025);--t830:hsla(156, 41%, 16%, 0.02);--t831:hsla(156, 41%, 16%, 0.01);--t832:hsla(137, 47%, 97%, 0.1);--t833:hsla(137, 47%, 97%, 0.075);--t834:hsla(137, 47%, 97%, 0.05);--t835:hsla(137, 47%, 97%, 0.025);--t836:hsla(137, 47%, 97%, 0.02);--t837:hsla(137, 47%, 97%, 0.01);--t838:hsla(140, 60%, 99%, 0.2);--t839:hsla(140, 60%, 99%, 0.4);--t840:hsla(140, 60%, 99%, 0.6);--t841:hsla(140, 60%, 99%, 0.8);--t842:hsla(20, 60%, 99%, 0);--t843:hsla(33, 100%, 96%, 0.2);--t844:hsla(33, 100%, 96%, 0.4);--t845:hsla(33, 100%, 96%, 0.6);--t846:hsla(33, 100%, 96%, 0.8);--t847:hsla(20, 60%, 99%, 1);--t848:hsla(33, 100%, 96%, 1);--t849:hsla(37, 100%, 92%, 1);--t850:hsla(34, 100%, 85%, 1);--t851:hsla(33, 100%, 80%, 1);--t852:hsla(30, 100%, 75%, 1);--t853:hsla(27, 87%, 71%, 1);--t854:hsla(25, 80%, 63%, 1);--t855:hsla(24, 100%, 47%, 1);--t856:hsla(23, 100%, 40%, 1);--t857:hsla(16, 50%, 23%, 1);--t858:hsla(16, 50%, 23%, 0);--t859:hsla(16, 50%, 23%, 0.2);--t860:hsla(16, 50%, 23%, 0.4);--t861:hsla(16, 50%, 23%, 0.6);--t862:hsla(16, 50%, 23%, 0.8);--t863:hsla(16, 50%, 23%, 0.1);--t864:hsla(16, 50%, 23%, 0.075);--t865:hsla(16, 50%, 23%, 0.05);--t866:hsla(16, 50%, 23%, 0.025);--t867:hsla(16, 50%, 23%, 0.02);--t868:hsla(16, 50%, 23%, 0.01);--t869:hsla(33, 100%, 96%, 0.1);--t870:hsla(33, 100%, 96%, 0.075);--t871:hsla(33, 100%, 96%, 0.05);--t872:hsla(33, 100%, 96%, 0.025);--t873:hsla(33, 100%, 96%, 0.02);--t874:hsla(33, 100%, 96%, 0.01);--t875:hsla(20, 60%, 99%, 0.2);--t876:hsla(20, 60%, 99%, 0.4);--t877:hsla(20, 60%, 99%, 0.6);--t878:hsla(20, 60%, 99%, 0.8);--t879:hsla(324, 100%, 99%, 0);--t880:hsla(326, 78%, 98%, 0.2);--t881:hsla(326, 78%, 98%, 0.4);--t882:hsla(326, 78%, 98%, 0.6);--t883:hsla(326, 78%, 98%, 0.8);--t884:hsla(320, 100%, 99%, 1);--t885:hsla(326, 78%, 98%, 1);--t886:hsla(326, 91%, 95%, 1);--t887:hsla(323, 79%, 92%, 1);--t888:hsla(323, 69%, 89%, 1);--t889:hsla(323, 60%, 84%, 1);--t890:hsla(323, 55%, 79%, 1);--t891:hsla(322, 52%, 72%, 1);--t892:hsla(322, 61%, 52%, 1);--t893:hsla(322, 65%, 46%, 1);--t894:hsla(320, 70%, 23%, 1);--t895:hsla(320, 69%, 23%, 0);--t896:hsla(320, 69%, 23%, 0.2);--t897:hsla(320, 69%, 23%, 0.4);--t898:hsla(320, 69%, 23%, 0.6);--t899:hsla(320, 69%, 23%, 0.8);--t900:hsla(320, 69%, 23%, 0.1);--t901:hsla(320, 69%, 23%, 0.075);--t902:hsla(320, 69%, 23%, 0.05);--t903:hsla(320, 69%, 23%, 0.025);--t904:hsla(320, 69%, 23%, 0.02);--t905:hsla(320, 69%, 23%, 0.01);--t906:hsla(326, 78%, 98%, 0.1);--t907:hsla(326, 78%, 98%, 0.075);--t908:hsla(326, 78%, 98%, 0.05);--t909:hsla(326, 78%, 98%, 0.025);--t910:hsla(326, 78%, 98%, 0.02);--t911:hsla(326, 78%, 98%, 0.01);--t912:hsla(324, 100%, 99%, 0.2);--t913:hsla(324, 100%, 99%, 0.4);--t914:hsla(324, 100%, 99%, 0.6);--t915:hsla(324, 100%, 99%, 0.8);--t916:hsla(300, 60%, 99%, 0);--t917:hsla(274, 78%, 98%, 0.2);--t918:hsla(274, 78%, 98%, 0.4);--t919:hsla(274, 78%, 98%, 0.6);--t920:hsla(274, 78%, 98%, 0.8);--t921:hsla(300, 50%, 99%, 1);--t922:hsla(274, 78%, 98%, 1);--t923:hsla(275, 89%, 96%, 1);--t924:hsla(277, 81%, 94%, 1);--t925:hsla(275, 75%, 91%, 1);--t926:hsla(275, 69%, 86%, 1);--t927:hsla(273, 62%, 81%, 1);--t928:hsla(272, 60%, 74%, 1);--t929:hsla(272, 45%, 50%, 1);--t930:hsla(272, 45%, 49%, 1);--t931:hsla(270, 50%, 25%, 1);--t932:hsla(270, 50%, 25%, 0);--t933:hsla(270, 50%, 25%, 0.2);--t934:hsla(270, 50%, 25%, 0.4);--t935:hsla(270, 50%, 25%, 0.6);--t936:hsla(270, 50%, 25%, 0.8);--t937:hsla(270, 50%, 25%, 0.1);--t938:hsla(270, 50%, 25%, 0.075);--t939:hsla(270, 50%, 25%, 0.05);--t940:hsla(270, 50%, 25%, 0.025);--t941:hsla(270, 50%, 25%, 0.02);--t942:hsla(270, 50%, 25%, 0.01);--t943:hsla(274, 78%, 98%, 0.1);--t944:hsla(274, 78%, 98%, 0.075);--t945:hsla(274, 78%, 98%, 0.05);--t946:hsla(274, 78%, 98%, 0.025);--t947:hsla(274, 78%, 98%, 0.02);--t948:hsla(274, 78%, 98%, 0.01);--t949:hsla(300, 60%, 99%, 0.2);--t950:hsla(300, 60%, 99%, 0.4);--t951:hsla(300, 60%, 99%, 0.6);--t952:hsla(300, 60%, 99%, 0.8);--t953:hsla(0, 100%, 99%, 0);--t954:hsla(0, 100%, 98%, 0.2);--t955:hsla(0, 100%, 98%, 0.4);--t956:hsla(0, 100%, 98%, 0.6);--t957:hsla(0, 100%, 98%, 0.8);--t958:hsla(0, 100%, 99%, 1);--t959:hsla(0, 100%, 98%, 1);--t960:hsla(357, 90%, 96%, 1);--t961:hsla(358, 100%, 93%, 1);--t962:hsla(359, 100%, 90%, 1);--t963:hsla(359, 94%, 87%, 1);--t964:hsla(359, 77%, 81%, 1);--t965:hsla(359, 70%, 74%, 1);--t966:hsla(358, 69%, 55%, 1);--t967:hsla(358, 65%, 49%, 1);--t968:hsla(351, 63%, 24%, 1);--t969:hsla(351, 63%, 24%, 0);--t970:hsla(351, 63%, 24%, 0.2);--t971:hsla(351, 63%, 24%, 0.4);--t972:hsla(351, 63%, 24%, 0.6);--t973:hsla(351, 63%, 24%, 0.8);--t974:hsla(351, 63%, 24%, 0.1);--t975:hsla(351, 63%, 24%, 0.075);--t976:hsla(351, 63%, 24%, 0.05);--t977:hsla(351, 63%, 24%, 0.025);--t978:hsla(351, 63%, 24%, 0.02);--t979:hsla(351, 63%, 24%, 0.01);--t980:hsla(0, 100%, 98%, 0.1);--t981:hsla(0, 100%, 98%, 0.075);--t982:hsla(0, 100%, 98%, 0.05);--t983:hsla(0, 100%, 98%, 0.025);--t984:hsla(0, 100%, 98%, 0.02);--t985:hsla(0, 100%, 98%, 0.01);--t986:hsla(0, 100%, 99%, 0.2);--t987:hsla(0, 100%, 99%, 0.4);--t988:hsla(0, 100%, 99%, 0.6);--t989:hsla(0, 100%, 99%, 0.8);--t990:hsla(160, 60%, 99%, 0);--t991:hsla(165, 50%, 97%, 0.2);--t992:hsla(165, 50%, 97%, 0.4);--t993:hsla(165, 50%, 97%, 0.6);--t994:hsla(165, 50%, 97%, 0.8);--t995:hsla(165, 67%, 99%, 1);--t996:hsla(165, 50%, 97%, 1);--t997:hsla(167, 63%, 93%, 1);--t998:hsla(166, 62%, 88%, 1);--t999:hsla(168, 54%, 82%, 1);--t1000:hsla(168, 48%, 75%, 1);--t1001:hsla(170, 43%, 66%, 1);--t1002:hsla(172, 42%, 53%, 1);--t1003:hsla(173, 85%, 33%, 1);--t1004:hsla(172, 100%, 26%, 1);--t1005:hsla(174, 65%, 15%, 1);--t1006:hsla(174, 66%, 15%, 0);--t1007:hsla(174, 66%, 15%, 0.2);--t1008:hsla(174, 66%, 15%, 0.4);--t1009:hsla(174, 66%, 15%, 0.6);--t1010:hsla(174, 66%, 15%, 0.8);--t1011:hsla(174, 66%, 15%, 0.1);--t1012:hsla(174, 66%, 15%, 0.075);--t1013:hsla(174, 66%, 15%, 0.05);--t1014:hsla(174, 66%, 15%, 0.025);--t1015:hsla(174, 66%, 15%, 0.02);--t1016:hsla(174, 66%, 15%, 0.01);--t1017:hsla(165, 50%, 97%, 0.1);--t1018:hsla(165, 50%, 97%, 0.075);--t1019:hsla(165, 50%, 97%, 0.05);--t1020:hsla(165, 50%, 97%, 0.025);--t1021:hsla(165, 50%, 97%, 0.02);--t1022:hsla(165, 50%, 97%, 0.01);--t1023:hsla(160, 60%, 99%, 0.2);--t1024:hsla(160, 60%, 99%, 0.4);--t1025:hsla(160, 60%, 99%, 0.6);--t1026:hsla(160, 60%, 99%, 0.8);--t1027:hsla(60, 45%, 98%, 0);--t1028:hsla(54, 91%, 95%, 0.2);--t1029:hsla(54, 91%, 95%, 0.4);--t1030:hsla(54, 91%, 95%, 0.6);--t1031:hsla(54, 91%, 95%, 0.8);--t1032:hsla(60, 50%, 98%, 1);--t1033:hsla(54, 91%, 95%, 1);--t1034:hsla(56, 100%, 86%, 1);--t1035:hsla(53, 100%, 79%, 1);--t1036:hsla(50, 100%, 72%, 1);--t1037:hsla(48, 85%, 68%, 1);--t1038:hsla(46, 70%, 65%, 1);--t1039:hsla(45, 65%, 53%, 1);--t1040:hsla(52, 100%, 50%, 1);--t1041:hsla(41, 100%, 31%, 1);--t1042:hsla(42, 39%, 20%, 1);--t1043:hsla(42, 39%, 20%, 0);--t1044:hsla(42, 39%, 20%, 0.2);--t1045:hsla(42, 39%, 20%, 0.4);--t1046:hsla(42, 39%, 20%, 0.6);--t1047:hsla(42, 39%, 20%, 0.8);--t1048:hsla(42, 39%, 20%, 0.1);--t1049:hsla(42, 39%, 20%, 0.075);--t1050:hsla(42, 39%, 20%, 0.05);--t1051:hsla(42, 39%, 20%, 0.025);--t1052:hsla(42, 39%, 20%, 0.02);--t1053:hsla(42, 39%, 20%, 0.01);--t1054:hsla(54, 91%, 95%, 0.1);--t1055:hsla(54, 91%, 95%, 0.075);--t1056:hsla(54, 91%, 95%, 0.05);--t1057:hsla(54, 91%, 95%, 0.025);--t1058:hsla(54, 91%, 95%, 0.02);--t1059:hsla(54, 91%, 95%, 0.01);--t1060:hsla(60, 45%, 98%, 0.2);--t1061:hsla(60, 45%, 98%, 0.4);--t1062:hsla(60, 45%, 98%, 0.6);--t1063:hsla(60, 45%, 98%, 0.8)}
|
|
1968
|
+
:root{--t0:var(--primary, #fafafa);--t1:var(--primary-foreground, #0a0a0a);--t2:hsla(0, 0%, 4%, 0);--t3:hsla(0, 0%, 8%, 0.2);--t4:hsla(0, 0%, 8%, 0.4);--t5:hsla(0, 0%, 8%, 0.6);--t6:hsla(0, 0%, 8%, 0.8);--t7:hsla(0, 0%, 4%, 1);--t8:hsla(0, 0%, 8%, 1);--t9:hsla(0, 0%, 10%, 1);--t10:var(--border, rgb(255 255 255 / .10));--t11:hsla(0, 0%, 20%, 1);--t12:hsla(0, 0%, 27%, 1);--t13:hsla(0, 0%, 40%, 1);--t14:hsla(0, 0%, 47%, 1);--t15:hsla(0, 0%, 52%, 1);--t16:hsla(0, 0%, 67%, 1);--t17:hsla(0, 0%, 80%, 1);--t18:var(--foreground, #e5e5e5);--t19:hsla(0, 0%, 100%, 0);--t20:hsla(0, 0%, 100%, 0.2);--t21:hsla(0, 0%, 100%, 0.4);--t22:hsla(0, 0%, 100%, 0.6);--t23:hsla(0, 0%, 100%, 0.8);--t24:hsla(0, 0%, 100%, 1);--t25:#0a0a0a;--t26:hsla(0, 0%, 14%, 1);--t27:var(--text-tertiary, rgb(255 255 255 / .55));--t28:#090909;--t29:#151515;--t30:#191919;--t31:#232323;--t32:#333;--t33:#444;--t34:#666;--t35:#777;--t36:#858585;--t37:#aaa;--t38:#ccc;--t39:#ffffff;--t40:#fff;--t41:#f8f8f8;--t42:hsl(0, 0%, 93%);--t43:hsl(0, 0%, 85%);--t44:hsl(0, 0%, 80%);--t45:hsl(0, 0%, 70%);--t46:hsl(0, 0%, 59%);--t47:hsl(0, 0%, 45%);--t48:hsl(0, 0%, 30%);--t49:hsl(0, 0%, 20%);--t50:hsl(0, 0%, 14%);--t51:hsl(0, 0%, 2%);--t52:rgba(255,255,255,1);--t53:rgba(255,255,255,0);--t54:rgba(255,255,255,0.2);--t55:rgba(255,255,255,0.4);--t56:rgba(255,255,255,0.6);--t57:rgba(255,255,255,0.8);--t58:rgba(0,0,0,1);--t59:rgba(0,0,0,0);--t60:rgba(0,0,0,0.2);--t61:rgba(0,0,0,0.4);--t62:rgba(0,0,0,0.6);--t63:rgba(0,0,0,0.8);--t64:rgba(0,0,0,0.15);--t65:rgba(0,0,0,0.23);--t66:rgba(0,0,0,0.33);--t67:rgba(0,0,0,0.45);--t68:rgba(0,0,0,0.65);--t69:rgba(0,0,0,0.9);--t70:rgba(255,255,255,0.1);--t71:rgba(255,255,255,0.3);--t72:rgba(255,255,255,0.45);--t73:rgba(255,255,255,0.65);--t74:rgba(255,255,255,0.85);--t75:rgba(255,255,255,0.95);--t76:#111111;--t77:#222222;--t78:#2a2a2a;--t79:#313131;--t80:#3a3a3a;--t81:#484848;--t82:#606060;--t83:#6e6e6e;--t84:#7b7b7b;--t85:#b4b4b4;--t86:#eeeeee;--t87:#0d1520;--t88:#111927;--t89:#0d2847;--t90:#003362;--t91:#004074;--t92:#104d87;--t93:#205d9e;--t94:#2870bd;--t95:#0090ff;--t96:#3b9eff;--t97:#70b8ff;--t98:#c2e6ff;--t99:#191111;--t100:#201314;--t101:#3b1219;--t102:#500f1c;--t103:#611623;--t104:#72232d;--t105:#8c333a;--t106:#b54548;--t107:#e5484d;--t108:#ec5d5e;--t109:#ff9592;--t110:#ffd1d9;--t111:#14120b;--t112:#1b180f;--t113:#2d2305;--t114:#362b00;--t115:#433500;--t116:#524202;--t117:#665417;--t118:#836a21;--t119:#ffe629;--t120:#ffff57;--t121:#f5e147;--t122:#f6eeb4;--t123:#0e1512;--t124:#121b17;--t125:#132d21;--t126:#113b29;--t127:#174933;--t128:#20573e;--t129:#28684a;--t130:#2f7c57;--t131:#30a46c;--t132:#33b074;--t133:#3dd68c;--t134:#b1f1cb;--t135:#17120e;--t136:#1e160f;--t137:#331e0b;--t138:#462100;--t139:#562800;--t140:#66350c;--t141:#7e451d;--t142:#a35829;--t143:#f76b15;--t144:#ff801f;--t145:#ffa057;--t146:#ffe0c2;--t147:#191117;--t148:#21121d;--t149:#37172f;--t150:#4b143d;--t151:#591c47;--t152:#692955;--t153:#833869;--t154:#a84885;--t155:#d6409f;--t156:#de51a8;--t157:#ff8dcc;--t158:#fdd1ea;--t159:#18111b;--t160:#1e1523;--t161:#301c3b;--t162:#3d224e;--t163:#48295c;--t164:#54346b;--t165:#664282;--t166:#8457aa;--t167:#8e4ec6;--t168:#9a5cd0;--t169:#d19dff;--t170:#ecd9fa;--t171:#0d1514;--t172:#111c1b;--t173:#0d2d2a;--t174:#023b37;--t175:#084843;--t176:#145750;--t177:#1c6961;--t178:#207e73;--t179:#12a594;--t180:#0eb39e;--t181:#0bd8b6;--t182:#adf0dd;--t183:hsl(0, 0%, 68%);--t184:hsl(0, 0%, 65%);--t185:hsl(0, 0%, 62%);--t186:hsl(0, 0%, 56%);--t187:hsl(0, 0%, 53%);--t188:hsl(0, 0%, 50%);--t189:hsl(0, 0%, 47%);--t190:hsl(0, 0%, 44%);--t191:hsl(0, 0%, 41%);--t192:hsl(0, 0%, 38%);--t193:hsl(0, 0%, 32%);--t194:hsla(0, 0%, 97%, 1);--t195:hsla(0, 0%, 93%, 1);--t196:hsla(0, 0%, 85%, 1);--t197:hsla(0, 0%, 70%, 1);--t198:hsla(0, 0%, 59%, 1);--t199:hsla(0, 0%, 45%, 1);--t200:hsla(0, 0%, 30%, 1);--t201:hsla(0, 0%, 2%, 1);--t202:hsla(0, 0%, 100%, 0.1);--t203:hsla(0, 0%, 100%, 0.075);--t204:hsla(0, 0%, 100%, 0.05);--t205:hsla(0, 0%, 100%, 0.025);--t206:hsla(0, 0%, 100%, 0.02);--t207:hsla(0, 0%, 100%, 0.01);--t208:hsla(0, 0%, 8%, 0.1);--t209:hsla(0, 0%, 8%, 0.075);--t210:hsla(0, 0%, 8%, 0.05);--t211:hsla(0, 0%, 8%, 0.025);--t212:hsla(0, 0%, 8%, 0.02);--t213:hsla(0, 0%, 8%, 0.01);--t214:var(--ring, rgb(255 255 255 / .40));--t215:hsla(0, 0%, 4%, 0.2);--t216:hsla(0, 0%, 4%, 0.4);--t217:hsla(0, 0%, 4%, 0.6);--t218:hsla(0, 0%, 4%, 0.8);--t219:hsla(0, 0%, 97%, 0.2);--t220:hsla(0, 0%, 97%, 0.4);--t221:hsla(0, 0%, 97%, 0.6);--t222:hsla(0, 0%, 97%, 0.8);--t223:hsla(0, 0%, 2%, 0);--t224:hsla(0, 0%, 2%, 0.2);--t225:hsla(0, 0%, 2%, 0.4);--t226:hsla(0, 0%, 2%, 0.6);--t227:hsla(0, 0%, 2%, 0.8);--t228:hsla(0, 0%, 2%, 0.1);--t229:hsla(0, 0%, 2%, 0.075);--t230:hsla(0, 0%, 2%, 0.05);--t231:hsla(0, 0%, 2%, 0.025);--t232:hsla(0, 0%, 2%, 0.02);--t233:hsla(0, 0%, 2%, 0.01);--t234:hsla(0, 0%, 97%, 0.1);--t235:hsla(0, 0%, 97%, 0.075);--t236:hsla(0, 0%, 97%, 0.05);--t237:hsla(0, 0%, 97%, 0.025);--t238:hsla(0, 0%, 97%, 0.02);--t239:hsla(0, 0%, 97%, 0.01);--t240:hsla(216, 43%, 9%, 0);--t241:hsla(218, 39%, 11%, 0.2);--t242:hsla(218, 39%, 11%, 0.4);--t243:hsla(218, 39%, 11%, 0.6);--t244:hsla(218, 39%, 11%, 0.8);--t245:hsla(215, 42%, 9%, 1);--t246:hsla(218, 39%, 11%, 1);--t247:hsla(212, 69%, 16%, 1);--t248:hsla(209, 100%, 19%, 1);--t249:hsla(207, 100%, 23%, 1);--t250:hsla(209, 79%, 30%, 1);--t251:hsla(211, 66%, 37%, 1);--t252:hsla(211, 65%, 45%, 1);--t253:hsla(206, 100%, 50%, 1);--t254:hsla(210, 100%, 62%, 1);--t255:hsla(210, 100%, 72%, 1);--t256:hsla(205, 100%, 88%, 1);--t257:hsla(205, 100%, 88%, 0);--t258:hsla(205, 100%, 88%, 0.2);--t259:hsla(205, 100%, 88%, 0.4);--t260:hsla(205, 100%, 88%, 0.6);--t261:hsla(205, 100%, 88%, 0.8);--t262:hsla(205, 100%, 88%, 0.1);--t263:hsla(205, 100%, 88%, 0.075);--t264:hsla(205, 100%, 88%, 0.05);--t265:hsla(205, 100%, 88%, 0.025);--t266:hsla(205, 100%, 88%, 0.02);--t267:hsla(205, 100%, 88%, 0.01);--t268:hsla(218, 39%, 11%, 0.1);--t269:hsla(218, 39%, 11%, 0.075);--t270:hsla(218, 39%, 11%, 0.05);--t271:hsla(218, 39%, 11%, 0.025);--t272:hsla(218, 39%, 11%, 0.02);--t273:hsla(218, 39%, 11%, 0.01);--t274:hsla(216, 43%, 9%, 0.2);--t275:hsla(216, 43%, 9%, 0.4);--t276:hsla(216, 43%, 9%, 0.6);--t277:hsla(216, 43%, 9%, 0.8);--t278:hsla(0, 0%, 7%, 0);--t279:hsla(0, 0%, 10%, 0.2);--t280:hsla(0, 0%, 10%, 0.4);--t281:hsla(0, 0%, 10%, 0.6);--t282:hsla(0, 0%, 10%, 0.8);--t283:hsla(0, 0%, 7%, 1);--t284:hsla(0, 0%, 13%, 1);--t285:hsla(0, 0%, 16%, 1);--t286:hsla(0, 0%, 19%, 1);--t287:hsla(0, 0%, 23%, 1);--t288:hsla(0, 0%, 28%, 1);--t289:hsla(0, 0%, 38%, 1);--t290:hsla(0, 0%, 43%, 1);--t291:hsla(0, 0%, 48%, 1);--t292:hsla(0, 0%, 71%, 1);--t293:hsla(0, 0%, 93%, 0);--t294:hsla(0, 0%, 93%, 0.2);--t295:hsla(0, 0%, 93%, 0.4);--t296:hsla(0, 0%, 93%, 0.6);--t297:hsla(0, 0%, 93%, 0.8);--t298:hsla(0, 0%, 93%, 0.1);--t299:hsla(0, 0%, 93%, 0.075);--t300:hsla(0, 0%, 93%, 0.05);--t301:hsla(0, 0%, 93%, 0.025);--t302:hsla(0, 0%, 93%, 0.02);--t303:hsla(0, 0%, 93%, 0.01);--t304:hsla(0, 0%, 10%, 0.1);--t305:hsla(0, 0%, 10%, 0.075);--t306:hsla(0, 0%, 10%, 0.05);--t307:hsla(0, 0%, 10%, 0.025);--t308:hsla(0, 0%, 10%, 0.02);--t309:hsla(0, 0%, 10%, 0.01);--t310:hsla(0, 0%, 7%, 0.2);--t311:hsla(0, 0%, 7%, 0.4);--t312:hsla(0, 0%, 7%, 0.6);--t313:hsla(0, 0%, 7%, 0.8);--t314:hsla(154, 20%, 7%, 0);--t315:hsla(153, 20%, 9%, 0.2);--t316:hsla(153, 20%, 9%, 0.4);--t317:hsla(153, 20%, 9%, 0.6);--t318:hsla(153, 20%, 9%, 0.8);--t319:hsla(154, 20%, 7%, 1);--t320:hsla(153, 20%, 9%, 1);--t321:hsla(152, 41%, 13%, 1);--t322:hsla(154, 55%, 15%, 1);--t323:hsla(154, 52%, 19%, 1);--t324:hsla(153, 46%, 23%, 1);--t325:hsla(152, 44%, 28%, 1);--t326:hsla(151, 45%, 34%, 1);--t327:hsla(151, 55%, 42%, 1);--t328:hsla(151, 55%, 45%, 1);--t329:hsla(151, 65%, 54%, 1);--t330:hsla(144, 70%, 82%, 1);--t331:hsla(144, 70%, 82%, 0);--t332:hsla(144, 70%, 82%, 0.2);--t333:hsla(144, 70%, 82%, 0.4);--t334:hsla(144, 70%, 82%, 0.6);--t335:hsla(144, 70%, 82%, 0.8);--t336:hsla(144, 70%, 82%, 0.1);--t337:hsla(144, 70%, 82%, 0.075);--t338:hsla(144, 70%, 82%, 0.05);--t339:hsla(144, 70%, 82%, 0.025);--t340:hsla(144, 70%, 82%, 0.02);--t341:hsla(144, 70%, 82%, 0.01);--t342:hsla(153, 20%, 9%, 0.1);--t343:hsla(153, 20%, 9%, 0.075);--t344:hsla(153, 20%, 9%, 0.05);--t345:hsla(153, 20%, 9%, 0.025);--t346:hsla(153, 20%, 9%, 0.02);--t347:hsla(153, 20%, 9%, 0.01);--t348:hsla(154, 20%, 7%, 0.2);--t349:hsla(154, 20%, 7%, 0.4);--t350:hsla(154, 20%, 7%, 0.6);--t351:hsla(154, 20%, 7%, 0.8);--t352:hsla(0, 0%, 68%, 0);--t353:hsla(0, 0%, 65%, 0.2);--t354:hsla(0, 0%, 65%, 0.4);--t355:hsla(0, 0%, 65%, 0.6);--t356:hsla(0, 0%, 65%, 0.8);--t357:hsla(0, 0%, 68%, 1);--t358:hsla(0, 0%, 65%, 1);--t359:hsla(0, 0%, 62%, 1);--t360:hsla(0, 0%, 56%, 1);--t361:hsla(0, 0%, 53%, 1);--t362:hsla(0, 0%, 50%, 1);--t363:hsla(0, 0%, 44%, 1);--t364:hsla(0, 0%, 41%, 1);--t365:hsla(0, 0%, 32%, 1);--t366:hsla(0, 0%, 32%, 0);--t367:hsla(0, 0%, 32%, 0.2);--t368:hsla(0, 0%, 32%, 0.4);--t369:hsla(0, 0%, 32%, 0.6);--t370:hsla(0, 0%, 32%, 0.8);--t371:hsla(0, 0%, 32%, 0.1);--t372:hsla(0, 0%, 32%, 0.075);--t373:hsla(0, 0%, 32%, 0.05);--t374:hsla(0, 0%, 32%, 0.025);--t375:hsla(0, 0%, 32%, 0.02);--t376:hsla(0, 0%, 32%, 0.01);--t377:hsla(0, 0%, 65%, 0.1);--t378:hsla(0, 0%, 65%, 0.075);--t379:hsla(0, 0%, 65%, 0.05);--t380:hsla(0, 0%, 65%, 0.025);--t381:hsla(0, 0%, 65%, 0.02);--t382:hsla(0, 0%, 65%, 0.01);--t383:hsla(0, 0%, 68%, 0.2);--t384:hsla(0, 0%, 68%, 0.4);--t385:hsla(0, 0%, 68%, 0.6);--t386:hsla(0, 0%, 68%, 0.8);--t387:hsla(23, 22%, 7%, 0);--t388:hsla(28, 33%, 9%, 0.2);--t389:hsla(28, 33%, 9%, 0.4);--t390:hsla(28, 33%, 9%, 0.6);--t391:hsla(28, 33%, 9%, 0.8);--t392:hsla(27, 24%, 7%, 1);--t393:hsla(28, 33%, 9%, 1);--t394:hsla(29, 65%, 12%, 1);--t395:hsla(28, 100%, 14%, 1);--t396:hsla(28, 100%, 17%, 1);--t397:hsla(27, 79%, 22%, 1);--t398:hsla(25, 63%, 30%, 1);--t399:hsla(23, 60%, 40%, 1);--t400:hsla(23, 93%, 53%, 1);--t401:hsla(26, 100%, 56%, 1);--t402:hsla(26, 100%, 67%, 1);--t403:hsla(30, 100%, 88%, 1);--t404:hsla(30, 100%, 88%, 0);--t405:hsla(30, 100%, 88%, 0.2);--t406:hsla(30, 100%, 88%, 0.4);--t407:hsla(30, 100%, 88%, 0.6);--t408:hsla(30, 100%, 88%, 0.8);--t409:hsla(30, 100%, 88%, 0.1);--t410:hsla(30, 100%, 88%, 0.075);--t411:hsla(30, 100%, 88%, 0.05);--t412:hsla(30, 100%, 88%, 0.025);--t413:hsla(30, 100%, 88%, 0.02);--t414:hsla(30, 100%, 88%, 0.01);--t415:hsla(28, 33%, 9%, 0.1);--t416:hsla(28, 33%, 9%, 0.075);--t417:hsla(28, 33%, 9%, 0.05);--t418:hsla(28, 33%, 9%, 0.025);--t419:hsla(28, 33%, 9%, 0.02);--t420:hsla(28, 33%, 9%, 0.01);--t421:hsla(23, 22%, 7%, 0.2);--t422:hsla(23, 22%, 7%, 0.4);--t423:hsla(23, 22%, 7%, 0.6);--t424:hsla(23, 22%, 7%, 0.8);--t425:hsla(317, 17%, 8%, 0);--t426:hsla(316, 29%, 10%, 0.2);--t427:hsla(316, 29%, 10%, 0.4);--t428:hsla(316, 29%, 10%, 0.6);--t429:hsla(316, 29%, 10%, 0.8);--t430:hsla(315, 19%, 8%, 1);--t431:hsla(316, 29%, 10%, 1);--t432:hsla(315, 41%, 15%, 1);--t433:hsla(315, 58%, 19%, 1);--t434:hsla(318, 52%, 23%, 1);--t435:hsla(319, 44%, 29%, 1);--t436:hsla(321, 40%, 37%, 1);--t437:hsla(322, 40%, 47%, 1);--t438:hsla(322, 65%, 55%, 1);--t439:hsla(323, 68%, 59%, 1);--t440:hsla(327, 100%, 78%, 1);--t441:hsla(326, 92%, 91%, 1);--t442:hsla(326, 91%, 91%, 0);--t443:hsla(326, 91%, 91%, 0.2);--t444:hsla(326, 91%, 91%, 0.4);--t445:hsla(326, 91%, 91%, 0.6);--t446:hsla(326, 91%, 91%, 0.8);--t447:hsla(326, 91%, 91%, 0.1);--t448:hsla(326, 91%, 91%, 0.075);--t449:hsla(326, 91%, 91%, 0.05);--t450:hsla(326, 91%, 91%, 0.025);--t451:hsla(326, 91%, 91%, 0.02);--t452:hsla(326, 91%, 91%, 0.01);--t453:hsla(316, 29%, 10%, 0.1);--t454:hsla(316, 29%, 10%, 0.075);--t455:hsla(316, 29%, 10%, 0.05);--t456:hsla(316, 29%, 10%, 0.025);--t457:hsla(316, 29%, 10%, 0.02);--t458:hsla(316, 29%, 10%, 0.01);--t459:hsla(317, 17%, 8%, 0.2);--t460:hsla(317, 17%, 8%, 0.4);--t461:hsla(317, 17%, 8%, 0.6);--t462:hsla(317, 17%, 8%, 0.8);--t463:hsla(282, 22%, 9%, 0);--t464:hsla(279, 25%, 11%, 0.2);--t465:hsla(279, 25%, 11%, 0.4);--t466:hsla(279, 25%, 11%, 0.6);--t467:hsla(279, 25%, 11%, 0.8);--t468:hsla(282, 23%, 9%, 1);--t469:hsla(279, 25%, 11%, 1);--t470:hsla(279, 36%, 17%, 1);--t471:hsla(277, 39%, 22%, 1);--t472:hsla(276, 38%, 26%, 1);--t473:hsla(275, 35%, 31%, 1);--t474:hsla(274, 33%, 38%, 1);--t475:hsla(273, 33%, 50%, 1);--t476:hsla(272, 51%, 54%, 1);--t477:hsla(272, 55%, 59%, 1);--t478:hsla(272, 100%, 81%, 1);--t479:hsla(275, 77%, 92%, 1);--t480:hsla(275, 76%, 92%, 0);--t481:hsla(275, 76%, 92%, 0.2);--t482:hsla(275, 76%, 92%, 0.4);--t483:hsla(275, 76%, 92%, 0.6);--t484:hsla(275, 76%, 92%, 0.8);--t485:hsla(275, 76%, 92%, 0.1);--t486:hsla(275, 76%, 92%, 0.075);--t487:hsla(275, 76%, 92%, 0.05);--t488:hsla(275, 76%, 92%, 0.025);--t489:hsla(275, 76%, 92%, 0.02);--t490:hsla(275, 76%, 92%, 0.01);--t491:hsla(279, 25%, 11%, 0.1);--t492:hsla(279, 25%, 11%, 0.075);--t493:hsla(279, 25%, 11%, 0.05);--t494:hsla(279, 25%, 11%, 0.025);--t495:hsla(279, 25%, 11%, 0.02);--t496:hsla(279, 25%, 11%, 0.01);--t497:hsla(282, 22%, 9%, 0.2);--t498:hsla(282, 22%, 9%, 0.4);--t499:hsla(282, 22%, 9%, 0.6);--t500:hsla(282, 22%, 9%, 0.8);--t501:hsla(0, 17%, 8%, 0);--t502:hsla(355, 25%, 10%, 0.2);--t503:hsla(355, 25%, 10%, 0.4);--t504:hsla(355, 25%, 10%, 0.6);--t505:hsla(355, 25%, 10%, 0.8);--t506:hsla(0, 19%, 8%, 1);--t507:hsla(355, 25%, 10%, 1);--t508:hsla(350, 53%, 15%, 1);--t509:hsla(348, 68%, 19%, 1);--t510:hsla(350, 63%, 23%, 1);--t511:hsla(352, 53%, 29%, 1);--t512:hsla(355, 47%, 37%, 1);--t513:hsla(358, 45%, 49%, 1);--t514:hsla(358, 75%, 59%, 1);--t515:hsla(360, 79%, 65%, 1);--t516:hsla(2, 100%, 79%, 1);--t517:hsla(350, 100%, 91%, 1);--t518:hsla(350, 100%, 91%, 0);--t519:hsla(350, 100%, 91%, 0.2);--t520:hsla(350, 100%, 91%, 0.4);--t521:hsla(350, 100%, 91%, 0.6);--t522:hsla(350, 100%, 91%, 0.8);--t523:hsla(350, 100%, 91%, 0.1);--t524:hsla(350, 100%, 91%, 0.075);--t525:hsla(350, 100%, 91%, 0.05);--t526:hsla(350, 100%, 91%, 0.025);--t527:hsla(350, 100%, 91%, 0.02);--t528:hsla(350, 100%, 91%, 0.01);--t529:hsla(355, 25%, 10%, 0.1);--t530:hsla(355, 25%, 10%, 0.075);--t531:hsla(355, 25%, 10%, 0.05);--t532:hsla(355, 25%, 10%, 0.025);--t533:hsla(355, 25%, 10%, 0.02);--t534:hsla(355, 25%, 10%, 0.01);--t535:hsla(0, 17%, 8%, 0.2);--t536:hsla(0, 17%, 8%, 0.4);--t537:hsla(0, 17%, 8%, 0.6);--t538:hsla(0, 17%, 8%, 0.8);--t539:hsla(173, 22%, 7%, 0);--t540:hsla(175, 24%, 9%, 0.2);--t541:hsla(175, 24%, 9%, 0.4);--t542:hsla(175, 24%, 9%, 0.6);--t543:hsla(175, 24%, 9%, 0.8);--t544:hsla(173, 24%, 7%, 1);--t545:hsla(175, 24%, 9%, 1);--t546:hsla(174, 55%, 11%, 1);--t547:hsla(176, 93%, 12%, 1);--t548:hsla(175, 80%, 16%, 1);--t549:hsla(174, 63%, 21%, 1);--t550:hsla(174, 58%, 26%, 1);--t551:hsla(173, 59%, 31%, 1);--t552:hsla(173, 80%, 36%, 1);--t553:hsla(172, 85%, 38%, 1);--t554:hsla(170, 90%, 45%, 1);--t555:hsla(163, 69%, 81%, 1);--t556:hsla(163, 69%, 81%, 0);--t557:hsla(163, 69%, 81%, 0.2);--t558:hsla(163, 69%, 81%, 0.4);--t559:hsla(163, 69%, 81%, 0.6);--t560:hsla(163, 69%, 81%, 0.8);--t561:hsla(163, 69%, 81%, 0.1);--t562:hsla(163, 69%, 81%, 0.075);--t563:hsla(163, 69%, 81%, 0.05);--t564:hsla(163, 69%, 81%, 0.025);--t565:hsla(163, 69%, 81%, 0.02);--t566:hsla(163, 69%, 81%, 0.01);--t567:hsla(175, 24%, 9%, 0.1);--t568:hsla(175, 24%, 9%, 0.075);--t569:hsla(175, 24%, 9%, 0.05);--t570:hsla(175, 24%, 9%, 0.025);--t571:hsla(175, 24%, 9%, 0.02);--t572:hsla(175, 24%, 9%, 0.01);--t573:hsla(173, 22%, 7%, 0.2);--t574:hsla(173, 22%, 7%, 0.4);--t575:hsla(173, 22%, 7%, 0.6);--t576:hsla(173, 22%, 7%, 0.8);--t577:hsla(47, 29%, 6%, 0);--t578:hsla(45, 29%, 8%, 0.2);--t579:hsla(45, 29%, 8%, 0.4);--t580:hsla(45, 29%, 8%, 0.6);--t581:hsla(45, 29%, 8%, 0.8);--t582:hsla(47, 29%, 6%, 1);--t583:hsla(45, 29%, 8%, 1);--t584:hsla(45, 80%, 10%, 1);--t585:hsla(48, 100%, 11%, 1);--t586:hsla(47, 100%, 13%, 1);--t587:hsla(48, 95%, 16%, 1);--t588:hsla(46, 63%, 25%, 1);--t589:hsla(45, 60%, 32%, 1);--t590:hsla(53, 100%, 58%, 1);--t591:hsla(60, 100%, 67%, 1);--t592:hsla(53, 90%, 62%, 1);--t593:hsla(53, 79%, 84%, 1);--t594:hsla(53, 78%, 84%, 0);--t595:hsla(53, 78%, 84%, 0.2);--t596:hsla(53, 78%, 84%, 0.4);--t597:hsla(53, 78%, 84%, 0.6);--t598:hsla(53, 78%, 84%, 0.8);--t599:hsla(53, 78%, 84%, 0.1);--t600:hsla(53, 78%, 84%, 0.075);--t601:hsla(53, 78%, 84%, 0.05);--t602:hsla(53, 78%, 84%, 0.025);--t603:hsla(53, 78%, 84%, 0.02);--t604:hsla(53, 78%, 84%, 0.01);--t605:hsla(45, 29%, 8%, 0.1);--t606:hsla(45, 29%, 8%, 0.075);--t607:hsla(45, 29%, 8%, 0.05);--t608:hsla(45, 29%, 8%, 0.025);--t609:hsla(45, 29%, 8%, 0.02);--t610:hsla(45, 29%, 8%, 0.01);--t611:hsla(47, 29%, 6%, 0.2);--t612:hsla(47, 29%, 6%, 0.4);--t613:hsla(47, 29%, 6%, 0.6);--t614:hsla(47, 29%, 6%, 0.8);--t615:var(--primary, #0a0a0a);--t616:var(--primary-foreground, #fafafa);--t617:var(--border, rgb(0 0 0 / .10));--t618:var(--foreground, #0a0a0a);--t619:#f7f7f7;--t620:var(--text-tertiary, rgb(10 10 10 / .55));--t621:rgba(0,0,0,0.04);--t622:rgba(0,0,0,0.08);--t623:rgba(0,0,0,0.12);--t624:rgba(0,0,0,0.22);--t625:rgba(0,0,0,0.44);--t626:rgba(0,0,0,0.75);--t627:rgba(255,255,255,0.05);--t628:rgba(255,255,255,0.15);--t629:rgba(255,255,255,0.55);--t630:rgba(255,255,255,0.7);--t631:#fcfcfc;--t632:#f9f9f9;--t633:#f0f0f0;--t634:#e8e8e8;--t635:#e0e0e0;--t636:#d9d9d9;--t637:#cecece;--t638:#bbbbbb;--t639:#8d8d8d;--t640:#838383;--t641:#646464;--t642:#202020;--t643:#fbfdff;--t644:#f4faff;--t645:#e6f4fe;--t646:#d5efff;--t647:#c2e5ff;--t648:#acd8fc;--t649:#8ec8f6;--t650:#5eb1ef;--t651:#0588f0;--t652:#0d74ce;--t653:#113264;--t654:#fffcfc;--t655:#fff7f7;--t656:#feebec;--t657:#ffdbdc;--t658:#ffcdce;--t659:#fdbdbe;--t660:#f4a9aa;--t661:#eb8e90;--t662:#dc3e42;--t663:#ce2c31;--t664:#641723;--t665:#fdfdf9;--t666:#fefce9;--t667:#fffab8;--t668:#fff394;--t669:#ffe770;--t670:#f3d768;--t671:#e4c767;--t672:#d5ae39;--t673:#ffdc00;--t674:#9e6c00;--t675:#473b1f;--t676:#fbfefc;--t677:#f4fbf6;--t678:#e6f6eb;--t679:#d6f1df;--t680:#c4e8d1;--t681:#adddc0;--t682:#8eceaa;--t683:#5bb98b;--t684:#2b9a66;--t685:#218358;--t686:#193b2d;--t687:#fefcfb;--t688:#fff7ed;--t689:#ffefd6;--t690:#ffdfb5;--t691:#ffd19a;--t692:#ffc182;--t693:#f5ae73;--t694:#ec9455;--t695:#ef5f00;--t696:#cc4e00;--t697:#582d1d;--t698:#fffcfe;--t699:#fef7fb;--t700:#fee9f5;--t701:#fbdcef;--t702:#f6cee7;--t703:#efbfdd;--t704:#e7acd0;--t705:#dd93c2;--t706:#cf3897;--t707:#c2298a;--t708:#651249;--t709:#fefcfe;--t710:#fbf7fe;--t711:#f7edfe;--t712:#f2e2fc;--t713:#ead5f9;--t714:#e0c4f4;--t715:#d1afec;--t716:#be93e4;--t717:#8347b9;--t718:#8145b5;--t719:#402060;--t720:#fafefd;--t721:#f3fbf9;--t722:#e0f8f3;--t723:#ccf3ea;--t724:#b8eae0;--t725:#a1ded2;--t726:#83cdc1;--t727:#53b9ab;--t728:#0d9b8a;--t729:#008573;--t730:#0d3d38;--t731:var(--ring, rgb(0 0 0 / .5));--t732:hsla(216, 100%, 99%, 0);--t733:hsla(207, 100%, 98%, 0.2);--t734:hsla(207, 100%, 98%, 0.4);--t735:hsla(207, 100%, 98%, 0.6);--t736:hsla(207, 100%, 98%, 0.8);--t737:hsla(210, 100%, 99%, 1);--t738:hsla(207, 100%, 98%, 1);--t739:hsla(205, 92%, 95%, 1);--t740:hsla(203, 100%, 92%, 1);--t741:hsla(206, 100%, 88%, 1);--t742:hsla(207, 93%, 83%, 1);--t743:hsla(207, 85%, 76%, 1);--t744:hsla(206, 82%, 65%, 1);--t745:hsla(207, 96%, 48%, 1);--t746:hsla(208, 88%, 43%, 1);--t747:hsla(216, 71%, 23%, 1);--t748:hsla(216, 71%, 23%, 0);--t749:hsla(216, 71%, 23%, 0.2);--t750:hsla(216, 71%, 23%, 0.4);--t751:hsla(216, 71%, 23%, 0.6);--t752:hsla(216, 71%, 23%, 0.8);--t753:hsla(216, 71%, 23%, 0.1);--t754:hsla(216, 71%, 23%, 0.075);--t755:hsla(216, 71%, 23%, 0.05);--t756:hsla(216, 71%, 23%, 0.025);--t757:hsla(216, 71%, 23%, 0.02);--t758:hsla(216, 71%, 23%, 0.01);--t759:hsla(207, 100%, 98%, 0.1);--t760:hsla(207, 100%, 98%, 0.075);--t761:hsla(207, 100%, 98%, 0.05);--t762:hsla(207, 100%, 98%, 0.025);--t763:hsla(207, 100%, 98%, 0.02);--t764:hsla(207, 100%, 98%, 0.01);--t765:hsla(216, 100%, 99%, 0.2);--t766:hsla(216, 100%, 99%, 0.4);--t767:hsla(216, 100%, 99%, 0.6);--t768:hsla(216, 100%, 99%, 0.8);--t769:hsla(0, 0%, 99%, 0);--t770:hsla(0, 0%, 98%, 0.2);--t771:hsla(0, 0%, 98%, 0.4);--t772:hsla(0, 0%, 98%, 0.6);--t773:hsla(0, 0%, 98%, 0.8);--t774:hsla(0, 0%, 99%, 1);--t775:hsla(0, 0%, 98%, 1);--t776:hsla(0, 0%, 94%, 1);--t777:hsla(0, 0%, 91%, 1);--t778:hsla(0, 0%, 88%, 1);--t779:hsla(0, 0%, 81%, 1);--t780:hsla(0, 0%, 73%, 1);--t781:hsla(0, 0%, 55%, 1);--t782:hsla(0, 0%, 51%, 1);--t783:hsla(0, 0%, 39%, 1);--t784:hsla(0, 0%, 13%, 0);--t785:hsla(0, 0%, 13%, 0.2);--t786:hsla(0, 0%, 13%, 0.4);--t787:hsla(0, 0%, 13%, 0.6);--t788:hsla(0, 0%, 13%, 0.8);--t789:hsla(0, 0%, 13%, 0.1);--t790:hsla(0, 0%, 13%, 0.075);--t791:hsla(0, 0%, 13%, 0.05);--t792:hsla(0, 0%, 13%, 0.025);--t793:hsla(0, 0%, 13%, 0.02);--t794:hsla(0, 0%, 13%, 0.01);--t795:hsla(0, 0%, 98%, 0.1);--t796:hsla(0, 0%, 98%, 0.075);--t797:hsla(0, 0%, 98%, 0.05);--t798:hsla(0, 0%, 98%, 0.025);--t799:hsla(0, 0%, 98%, 0.02);--t800:hsla(0, 0%, 98%, 0.01);--t801:hsla(0, 0%, 99%, 0.2);--t802:hsla(0, 0%, 99%, 0.4);--t803:hsla(0, 0%, 99%, 0.6);--t804:hsla(0, 0%, 99%, 0.8);--t805:hsla(140, 60%, 99%, 0);--t806:hsla(137, 47%, 97%, 0.2);--t807:hsla(137, 47%, 97%, 0.4);--t808:hsla(137, 47%, 97%, 0.6);--t809:hsla(137, 47%, 97%, 0.8);--t810:hsla(140, 60%, 99%, 1);--t811:hsla(137, 47%, 97%, 1);--t812:hsla(139, 47%, 93%, 1);--t813:hsla(140, 49%, 89%, 1);--t814:hsla(142, 44%, 84%, 1);--t815:hsla(144, 41%, 77%, 1);--t816:hsla(146, 40%, 68%, 1);--t817:hsla(151, 40%, 54%, 1);--t818:hsla(152, 56%, 39%, 1);--t819:hsla(154, 60%, 32%, 1);--t820:hsla(155, 40%, 16%, 1);--t821:hsla(156, 41%, 16%, 0);--t822:hsla(156, 41%, 16%, 0.2);--t823:hsla(156, 41%, 16%, 0.4);--t824:hsla(156, 41%, 16%, 0.6);--t825:hsla(156, 41%, 16%, 0.8);--t826:hsla(156, 41%, 16%, 0.1);--t827:hsla(156, 41%, 16%, 0.075);--t828:hsla(156, 41%, 16%, 0.05);--t829:hsla(156, 41%, 16%, 0.025);--t830:hsla(156, 41%, 16%, 0.02);--t831:hsla(156, 41%, 16%, 0.01);--t832:hsla(137, 47%, 97%, 0.1);--t833:hsla(137, 47%, 97%, 0.075);--t834:hsla(137, 47%, 97%, 0.05);--t835:hsla(137, 47%, 97%, 0.025);--t836:hsla(137, 47%, 97%, 0.02);--t837:hsla(137, 47%, 97%, 0.01);--t838:hsla(140, 60%, 99%, 0.2);--t839:hsla(140, 60%, 99%, 0.4);--t840:hsla(140, 60%, 99%, 0.6);--t841:hsla(140, 60%, 99%, 0.8);--t842:hsla(20, 60%, 99%, 0);--t843:hsla(33, 100%, 96%, 0.2);--t844:hsla(33, 100%, 96%, 0.4);--t845:hsla(33, 100%, 96%, 0.6);--t846:hsla(33, 100%, 96%, 0.8);--t847:hsla(20, 60%, 99%, 1);--t848:hsla(33, 100%, 96%, 1);--t849:hsla(37, 100%, 92%, 1);--t850:hsla(34, 100%, 85%, 1);--t851:hsla(33, 100%, 80%, 1);--t852:hsla(30, 100%, 75%, 1);--t853:hsla(27, 87%, 71%, 1);--t854:hsla(25, 80%, 63%, 1);--t855:hsla(24, 100%, 47%, 1);--t856:hsla(23, 100%, 40%, 1);--t857:hsla(16, 50%, 23%, 1);--t858:hsla(16, 50%, 23%, 0);--t859:hsla(16, 50%, 23%, 0.2);--t860:hsla(16, 50%, 23%, 0.4);--t861:hsla(16, 50%, 23%, 0.6);--t862:hsla(16, 50%, 23%, 0.8);--t863:hsla(16, 50%, 23%, 0.1);--t864:hsla(16, 50%, 23%, 0.075);--t865:hsla(16, 50%, 23%, 0.05);--t866:hsla(16, 50%, 23%, 0.025);--t867:hsla(16, 50%, 23%, 0.02);--t868:hsla(16, 50%, 23%, 0.01);--t869:hsla(33, 100%, 96%, 0.1);--t870:hsla(33, 100%, 96%, 0.075);--t871:hsla(33, 100%, 96%, 0.05);--t872:hsla(33, 100%, 96%, 0.025);--t873:hsla(33, 100%, 96%, 0.02);--t874:hsla(33, 100%, 96%, 0.01);--t875:hsla(20, 60%, 99%, 0.2);--t876:hsla(20, 60%, 99%, 0.4);--t877:hsla(20, 60%, 99%, 0.6);--t878:hsla(20, 60%, 99%, 0.8);--t879:hsla(324, 100%, 99%, 0);--t880:hsla(326, 78%, 98%, 0.2);--t881:hsla(326, 78%, 98%, 0.4);--t882:hsla(326, 78%, 98%, 0.6);--t883:hsla(326, 78%, 98%, 0.8);--t884:hsla(320, 100%, 99%, 1);--t885:hsla(326, 78%, 98%, 1);--t886:hsla(326, 91%, 95%, 1);--t887:hsla(323, 79%, 92%, 1);--t888:hsla(323, 69%, 89%, 1);--t889:hsla(323, 60%, 84%, 1);--t890:hsla(323, 55%, 79%, 1);--t891:hsla(322, 52%, 72%, 1);--t892:hsla(322, 61%, 52%, 1);--t893:hsla(322, 65%, 46%, 1);--t894:hsla(320, 70%, 23%, 1);--t895:hsla(320, 69%, 23%, 0);--t896:hsla(320, 69%, 23%, 0.2);--t897:hsla(320, 69%, 23%, 0.4);--t898:hsla(320, 69%, 23%, 0.6);--t899:hsla(320, 69%, 23%, 0.8);--t900:hsla(320, 69%, 23%, 0.1);--t901:hsla(320, 69%, 23%, 0.075);--t902:hsla(320, 69%, 23%, 0.05);--t903:hsla(320, 69%, 23%, 0.025);--t904:hsla(320, 69%, 23%, 0.02);--t905:hsla(320, 69%, 23%, 0.01);--t906:hsla(326, 78%, 98%, 0.1);--t907:hsla(326, 78%, 98%, 0.075);--t908:hsla(326, 78%, 98%, 0.05);--t909:hsla(326, 78%, 98%, 0.025);--t910:hsla(326, 78%, 98%, 0.02);--t911:hsla(326, 78%, 98%, 0.01);--t912:hsla(324, 100%, 99%, 0.2);--t913:hsla(324, 100%, 99%, 0.4);--t914:hsla(324, 100%, 99%, 0.6);--t915:hsla(324, 100%, 99%, 0.8);--t916:hsla(300, 60%, 99%, 0);--t917:hsla(274, 78%, 98%, 0.2);--t918:hsla(274, 78%, 98%, 0.4);--t919:hsla(274, 78%, 98%, 0.6);--t920:hsla(274, 78%, 98%, 0.8);--t921:hsla(300, 50%, 99%, 1);--t922:hsla(274, 78%, 98%, 1);--t923:hsla(275, 89%, 96%, 1);--t924:hsla(277, 81%, 94%, 1);--t925:hsla(275, 75%, 91%, 1);--t926:hsla(275, 69%, 86%, 1);--t927:hsla(273, 62%, 81%, 1);--t928:hsla(272, 60%, 74%, 1);--t929:hsla(272, 45%, 50%, 1);--t930:hsla(272, 45%, 49%, 1);--t931:hsla(270, 50%, 25%, 1);--t932:hsla(270, 50%, 25%, 0);--t933:hsla(270, 50%, 25%, 0.2);--t934:hsla(270, 50%, 25%, 0.4);--t935:hsla(270, 50%, 25%, 0.6);--t936:hsla(270, 50%, 25%, 0.8);--t937:hsla(270, 50%, 25%, 0.1);--t938:hsla(270, 50%, 25%, 0.075);--t939:hsla(270, 50%, 25%, 0.05);--t940:hsla(270, 50%, 25%, 0.025);--t941:hsla(270, 50%, 25%, 0.02);--t942:hsla(270, 50%, 25%, 0.01);--t943:hsla(274, 78%, 98%, 0.1);--t944:hsla(274, 78%, 98%, 0.075);--t945:hsla(274, 78%, 98%, 0.05);--t946:hsla(274, 78%, 98%, 0.025);--t947:hsla(274, 78%, 98%, 0.02);--t948:hsla(274, 78%, 98%, 0.01);--t949:hsla(300, 60%, 99%, 0.2);--t950:hsla(300, 60%, 99%, 0.4);--t951:hsla(300, 60%, 99%, 0.6);--t952:hsla(300, 60%, 99%, 0.8);--t953:hsla(0, 100%, 99%, 0);--t954:hsla(0, 100%, 98%, 0.2);--t955:hsla(0, 100%, 98%, 0.4);--t956:hsla(0, 100%, 98%, 0.6);--t957:hsla(0, 100%, 98%, 0.8);--t958:hsla(0, 100%, 99%, 1);--t959:hsla(0, 100%, 98%, 1);--t960:hsla(357, 90%, 96%, 1);--t961:hsla(358, 100%, 93%, 1);--t962:hsla(359, 100%, 90%, 1);--t963:hsla(359, 94%, 87%, 1);--t964:hsla(359, 77%, 81%, 1);--t965:hsla(359, 70%, 74%, 1);--t966:hsla(358, 69%, 55%, 1);--t967:hsla(358, 65%, 49%, 1);--t968:hsla(351, 63%, 24%, 1);--t969:hsla(351, 63%, 24%, 0);--t970:hsla(351, 63%, 24%, 0.2);--t971:hsla(351, 63%, 24%, 0.4);--t972:hsla(351, 63%, 24%, 0.6);--t973:hsla(351, 63%, 24%, 0.8);--t974:hsla(351, 63%, 24%, 0.1);--t975:hsla(351, 63%, 24%, 0.075);--t976:hsla(351, 63%, 24%, 0.05);--t977:hsla(351, 63%, 24%, 0.025);--t978:hsla(351, 63%, 24%, 0.02);--t979:hsla(351, 63%, 24%, 0.01);--t980:hsla(0, 100%, 98%, 0.1);--t981:hsla(0, 100%, 98%, 0.075);--t982:hsla(0, 100%, 98%, 0.05);--t983:hsla(0, 100%, 98%, 0.025);--t984:hsla(0, 100%, 98%, 0.02);--t985:hsla(0, 100%, 98%, 0.01);--t986:hsla(0, 100%, 99%, 0.2);--t987:hsla(0, 100%, 99%, 0.4);--t988:hsla(0, 100%, 99%, 0.6);--t989:hsla(0, 100%, 99%, 0.8);--t990:hsla(160, 60%, 99%, 0);--t991:hsla(165, 50%, 97%, 0.2);--t992:hsla(165, 50%, 97%, 0.4);--t993:hsla(165, 50%, 97%, 0.6);--t994:hsla(165, 50%, 97%, 0.8);--t995:hsla(165, 67%, 99%, 1);--t996:hsla(165, 50%, 97%, 1);--t997:hsla(167, 63%, 93%, 1);--t998:hsla(166, 62%, 88%, 1);--t999:hsla(168, 54%, 82%, 1);--t1000:hsla(168, 48%, 75%, 1);--t1001:hsla(170, 43%, 66%, 1);--t1002:hsla(172, 42%, 53%, 1);--t1003:hsla(173, 85%, 33%, 1);--t1004:hsla(172, 100%, 26%, 1);--t1005:hsla(174, 65%, 15%, 1);--t1006:hsla(174, 66%, 15%, 0);--t1007:hsla(174, 66%, 15%, 0.2);--t1008:hsla(174, 66%, 15%, 0.4);--t1009:hsla(174, 66%, 15%, 0.6);--t1010:hsla(174, 66%, 15%, 0.8);--t1011:hsla(174, 66%, 15%, 0.1);--t1012:hsla(174, 66%, 15%, 0.075);--t1013:hsla(174, 66%, 15%, 0.05);--t1014:hsla(174, 66%, 15%, 0.025);--t1015:hsla(174, 66%, 15%, 0.02);--t1016:hsla(174, 66%, 15%, 0.01);--t1017:hsla(165, 50%, 97%, 0.1);--t1018:hsla(165, 50%, 97%, 0.075);--t1019:hsla(165, 50%, 97%, 0.05);--t1020:hsla(165, 50%, 97%, 0.025);--t1021:hsla(165, 50%, 97%, 0.02);--t1022:hsla(165, 50%, 97%, 0.01);--t1023:hsla(160, 60%, 99%, 0.2);--t1024:hsla(160, 60%, 99%, 0.4);--t1025:hsla(160, 60%, 99%, 0.6);--t1026:hsla(160, 60%, 99%, 0.8);--t1027:hsla(60, 45%, 98%, 0);--t1028:hsla(54, 91%, 95%, 0.2);--t1029:hsla(54, 91%, 95%, 0.4);--t1030:hsla(54, 91%, 95%, 0.6);--t1031:hsla(54, 91%, 95%, 0.8);--t1032:hsla(60, 50%, 98%, 1);--t1033:hsla(54, 91%, 95%, 1);--t1034:hsla(56, 100%, 86%, 1);--t1035:hsla(53, 100%, 79%, 1);--t1036:hsla(50, 100%, 72%, 1);--t1037:hsla(48, 85%, 68%, 1);--t1038:hsla(46, 70%, 65%, 1);--t1039:hsla(45, 65%, 53%, 1);--t1040:hsla(52, 100%, 50%, 1);--t1041:hsla(41, 100%, 31%, 1);--t1042:hsla(42, 39%, 20%, 1);--t1043:hsla(42, 39%, 20%, 0);--t1044:hsla(42, 39%, 20%, 0.2);--t1045:hsla(42, 39%, 20%, 0.4);--t1046:hsla(42, 39%, 20%, 0.6);--t1047:hsla(42, 39%, 20%, 0.8);--t1048:hsla(42, 39%, 20%, 0.1);--t1049:hsla(42, 39%, 20%, 0.075);--t1050:hsla(42, 39%, 20%, 0.05);--t1051:hsla(42, 39%, 20%, 0.025);--t1052:hsla(42, 39%, 20%, 0.02);--t1053:hsla(42, 39%, 20%, 0.01);--t1054:hsla(54, 91%, 95%, 0.1);--t1055:hsla(54, 91%, 95%, 0.075);--t1056:hsla(54, 91%, 95%, 0.05);--t1057:hsla(54, 91%, 95%, 0.025);--t1058:hsla(54, 91%, 95%, 0.02);--t1059:hsla(54, 91%, 95%, 0.01);--t1060:hsla(60, 45%, 98%, 0.2);--t1061:hsla(60, 45%, 98%, 0.4);--t1062:hsla(60, 45%, 98%, 0.6);--t1063:hsla(60, 45%, 98%, 0.8)}
|
|
1863
1969
|
:root { --c-radius-0:0px; --c-radius-1:6px; --c-radius-10:9999px; --c-radius-11:9999px; --c-radius-12:9999px; --c-radius-2:6px; --c-radius-3:8px; --c-radius-4:8px; --c-radius-5:12px; --c-radius-6:12px; --c-radius-7:12px; --c-radius-8:12px; --c-radius-9:12px; --c-radius-true:8px; --c-size-0:0px; --c-size-0--25:2px; --c-size-0--5:4px; --c-size-0--75:8px; --c-size-1:20px; --c-size-1--5:24px; --c-size-10:104px; --c-size-11:124px; --c-size-12:144px; --c-size-13:164px; --c-size-14:184px; --c-size-15:204px; --c-size-16:224px; --c-size-17:224px; --c-size-18:244px; --c-size-19:264px; --c-size-2:28px; --c-size-2--5:32px; --c-size-20:284px; --c-size-3:36px; --c-size-3--5:40px; --c-size-4:44px; --c-size-4--5:48px; --c-size-5:52px; --c-size-6:64px; --c-size-7:74px; --c-size-8:84px; --c-size-9:94px; --c-size-true:44px; --c-space--0:0px; --c-space--0--25:calc(-1px * var(--density, 1)); --c-space--0--5:calc(-2px * var(--density, 1)); --c-space--0--75:calc(-3px * var(--density, 1)); --c-space--1:calc(-4px * var(--density, 1)); --c-space--1--5:calc(-6px * var(--density, 1)); --c-space--10:calc(-64px * var(--density, 1)); --c-space--11:calc(-80px * var(--density, 1)); --c-space--12:calc(-96px * var(--density, 1)); --c-space--13:calc(-112px * var(--density, 1)); --c-space--14:calc(-128px * var(--density, 1)); --c-space--15:calc(-144px * var(--density, 1)); --c-space--16:calc(-160px * var(--density, 1)); --c-space--17:calc(-160px * var(--density, 1)); --c-space--18:calc(-176px * var(--density, 1)); --c-space--19:calc(-192px * var(--density, 1)); --c-space--2:calc(-8px * var(--density, 1)); --c-space--2--5:calc(-10px * var(--density, 1)); --c-space--20:calc(-208px * var(--density, 1)); --c-space--3:calc(-12px * var(--density, 1)); --c-space--3--5:calc(-14px * var(--density, 1)); --c-space--4:calc(-16px * var(--density, 1)); --c-space--4--5:calc(-20px * var(--density, 1)); --c-space--5:calc(-24px * var(--density, 1)); --c-space--6:calc(-32px * var(--density, 1)); --c-space--7:calc(-40px * var(--density, 1)); --c-space--8:calc(-48px * var(--density, 1)); --c-space--9:calc(-56px * var(--density, 1)); --c-space--true:calc(-16px * var(--density, 1)); --c-space-0:0px; --c-space-0--25:calc(1px * var(--density, 1)); --c-space-0--5:calc(2px * var(--density, 1)); --c-space-0--75:calc(3px * var(--density, 1)); --c-space-1:calc(4px * var(--density, 1)); --c-space-1--5:calc(6px * var(--density, 1)); --c-space-10:calc(64px * var(--density, 1)); --c-space-11:calc(80px * var(--density, 1)); --c-space-12:calc(96px * var(--density, 1)); --c-space-13:calc(112px * var(--density, 1)); --c-space-14:calc(128px * var(--density, 1)); --c-space-15:calc(144px * var(--density, 1)); --c-space-16:calc(160px * var(--density, 1)); --c-space-17:calc(160px * var(--density, 1)); --c-space-18:calc(176px * var(--density, 1)); --c-space-19:calc(192px * var(--density, 1)); --c-space-2:calc(8px * var(--density, 1)); --c-space-2--5:calc(10px * var(--density, 1)); --c-space-20:calc(208px * var(--density, 1)); --c-space-3:calc(12px * var(--density, 1)); --c-space-3--5:calc(14px * var(--density, 1)); --c-space-4:calc(16px * var(--density, 1)); --c-space-4--5:calc(20px * var(--density, 1)); --c-space-5:calc(24px * var(--density, 1)); --c-space-6:calc(32px * var(--density, 1)); --c-space-7:calc(40px * var(--density, 1)); --c-space-8:calc(48px * var(--density, 1)); --c-space-9:calc(56px * var(--density, 1)); --c-space-true:calc(16px * var(--density, 1)); --c-zIndex-0:0; --c-zIndex-1:100; --c-zIndex-2:200; --c-zIndex-3:300; --c-zIndex-4:400; --c-zIndex-5:500
|
|
1864
1970
|
}
|
|
1865
1971
|
:root .font_body, :root .t_lang-body-default .font_body { --f-family:var(--font-sans, 'Geist', system-ui, -apple-system, sans-serif); --f-lineHeight-1:calc(16px * var(--type-scale, 1)); --f-lineHeight-2:calc(18px * var(--type-scale, 1)); --f-lineHeight-3:calc(20px * var(--type-scale, 1)); --f-lineHeight-4:calc(22px * var(--type-scale, 1)); --f-lineHeight-5:calc(22px * var(--type-scale, 1)); --f-lineHeight-6:calc(24px * var(--type-scale, 1)); --f-lineHeight-7:calc(28px * var(--type-scale, 1)); --f-lineHeight-8:calc(32px * var(--type-scale, 1)); --f-lineHeight-9:calc(32px * var(--type-scale, 1)); --f-lineHeight-10:calc(38px * var(--type-scale, 1)); --f-lineHeight-11:calc(46px * var(--type-scale, 1)); --f-lineHeight-12:calc(54px * var(--type-scale, 1)); --f-lineHeight-13:calc(62px * var(--type-scale, 1)); --f-lineHeight-14:calc(70px * var(--type-scale, 1)); --f-lineHeight-15:calc(86px * var(--type-scale, 1)); --f-lineHeight-16:calc(102px * var(--type-scale, 1)); --f-lineHeight-true:calc(20px * var(--type-scale, 1)); --f-weight-1:400; --f-weight-2:400; --f-weight-3:400; --f-weight-4:400; --f-weight-5:400; --f-weight-6:400; --f-weight-7:400; --f-weight-8:400; --f-weight-9:400; --f-weight-10:400; --f-weight-11:400; --f-weight-12:400; --f-weight-13:400; --f-weight-14:400; --f-weight-15:400; --f-weight-16:400; --f-weight-true:400; --f-letterSpacing-1:0px; --f-letterSpacing-2:0px; --f-letterSpacing-3:0px; --f-letterSpacing-4:0px; --f-letterSpacing-5:0px; --f-letterSpacing-6:0px; --f-letterSpacing-7:0px; --f-letterSpacing-8:0px; --f-letterSpacing-9:0px; --f-letterSpacing-10:0px; --f-letterSpacing-11:0px; --f-letterSpacing-12:0px; --f-letterSpacing-13:0px; --f-letterSpacing-14:0px; --f-letterSpacing-15:0px; --f-letterSpacing-16:0px; --f-letterSpacing-true:0px; --f-size-1:var(--text-xs, 11px); --f-size-2:var(--text-sm, 13px); --f-size-3:var(--text-base, 14px); --f-size-4:var(--text-lg, 15px); --f-size-5:var(--text-lg, 15px); --f-size-6:var(--text-xl, 17px); --f-size-7:var(--text-2xl, 21px); --f-size-8:var(--text-3xl, 26px); --f-size-9:var(--text-3xl, 26px); --f-size-10:var(--text-4xl, 32px); --f-size-11:var(--text-5xl, 40px); --f-size-12:calc(var(--text-5xl, 40px) + (var(--text-7xl, 64px) - var(--text-5xl, 40px)) / 3); --f-size-13:calc(var(--text-5xl, 40px) + 2 * (var(--text-7xl, 64px) - var(--text-5xl, 40px)) / 3); --f-size-14:var(--text-7xl, 64px); --f-size-15:calc(var(--text-7xl, 64px) + 4 * (var(--text-8xl, 84px) - var(--text-7xl, 64px)) / 5); --f-size-16:calc(var(--text-8xl, 84px) + 3 * (var(--text-9xl, 112px) - var(--text-8xl, 84px)) / 7); --f-size-true:var(--text-base, 14px)
|
|
@@ -2112,7 +2218,6 @@
|
|
|
2112
2218
|
:root:root:root ._borderBottomColor-0active-borderColor77378595._borderBottomColor-0active-borderColor77378595:active{border-bottom-color:var(--borderColorPress) !important;}
|
|
2113
2219
|
:root:root:root:root ._borderBottomColor-0focus-borderColor68052152._borderBottomColor-0focus-borderColor68052152:focus{border-bottom-color:var(--borderColorFocus) !important;}
|
|
2114
2220
|
:root:root:root:root ._borderBottomColor-0focus-borderColor69916956._borderBottomColor-0focus-borderColor69916956:focus{border-bottom-color:var(--borderColorHover) !important;}
|
|
2115
|
-
:root:root:root:root ._borderBottomColor-0focus-color06._borderBottomColor-0focus-color06:focus{border-bottom-color:var(--color06) !important;}
|
|
2116
2221
|
:root:root:root:root ._borderBottomColor-0focus-color7._borderBottomColor-0focus-color7:focus{border-bottom-color:var(--color7) !important;}
|
|
2117
2222
|
:root:root:root:root ._borderBottomColor-0focus-color8._borderBottomColor-0focus-color8:focus{border-bottom-color:var(--color8) !important;}
|
|
2118
2223
|
@media (hover) {:root:root ._borderBottomColor-0hover-borderColor._borderBottomColor-0hover-borderColor:hover{border-bottom-color:var(--borderColor) !important;}}
|
|
@@ -2135,7 +2240,6 @@
|
|
|
2135
2240
|
:root:root:root ._borderLeftColor-0active-borderColor77378595._borderLeftColor-0active-borderColor77378595:active{border-left-color:var(--borderColorPress) !important;}
|
|
2136
2241
|
:root:root:root:root ._borderLeftColor-0focus-borderColor68052152._borderLeftColor-0focus-borderColor68052152:focus{border-left-color:var(--borderColorFocus) !important;}
|
|
2137
2242
|
:root:root:root:root ._borderLeftColor-0focus-borderColor69916956._borderLeftColor-0focus-borderColor69916956:focus{border-left-color:var(--borderColorHover) !important;}
|
|
2138
|
-
:root:root:root:root ._borderLeftColor-0focus-color06._borderLeftColor-0focus-color06:focus{border-left-color:var(--color06) !important;}
|
|
2139
2243
|
:root:root:root:root ._borderLeftColor-0focus-color7._borderLeftColor-0focus-color7:focus{border-left-color:var(--color7) !important;}
|
|
2140
2244
|
:root:root:root:root ._borderLeftColor-0focus-color8._borderLeftColor-0focus-color8:focus{border-left-color:var(--color8) !important;}
|
|
2141
2245
|
@media (hover) {:root:root ._borderLeftColor-0hover-borderColor._borderLeftColor-0hover-borderColor:hover{border-left-color:var(--borderColor) !important;}}
|
|
@@ -2158,7 +2262,6 @@
|
|
|
2158
2262
|
:root:root:root ._brc-0active-borderColor77378595._brc-0active-borderColor77378595:active{border-right-color:var(--borderColorPress) !important;}
|
|
2159
2263
|
:root:root:root:root ._brc-0focus-borderColor68052152._brc-0focus-borderColor68052152:focus{border-right-color:var(--borderColorFocus) !important;}
|
|
2160
2264
|
:root:root:root:root ._brc-0focus-borderColor69916956._brc-0focus-borderColor69916956:focus{border-right-color:var(--borderColorHover) !important;}
|
|
2161
|
-
:root:root:root:root ._brc-0focus-color06._brc-0focus-color06:focus{border-right-color:var(--color06) !important;}
|
|
2162
2265
|
:root:root:root:root ._brc-0focus-color7._brc-0focus-color7:focus{border-right-color:var(--color7) !important;}
|
|
2163
2266
|
:root:root:root:root ._brc-0focus-color8._brc-0focus-color8:focus{border-right-color:var(--color8) !important;}
|
|
2164
2267
|
@media (hover) {:root:root ._brc-0hover-borderColor._brc-0hover-borderColor:hover{border-right-color:var(--borderColor) !important;}}
|
|
@@ -2182,7 +2285,6 @@
|
|
|
2182
2285
|
:root:root:root ._btc-0active-borderColor77378595._btc-0active-borderColor77378595:active{border-top-color:var(--borderColorPress) !important;}
|
|
2183
2286
|
:root:root:root:root ._btc-0focus-borderColor68052152._btc-0focus-borderColor68052152:focus{border-top-color:var(--borderColorFocus) !important;}
|
|
2184
2287
|
:root:root:root:root ._btc-0focus-borderColor69916956._btc-0focus-borderColor69916956:focus{border-top-color:var(--borderColorHover) !important;}
|
|
2185
|
-
:root:root:root:root ._btc-0focus-color06._btc-0focus-color06:focus{border-top-color:var(--color06) !important;}
|
|
2186
2288
|
:root:root:root:root ._btc-0focus-color7._btc-0focus-color7:focus{border-top-color:var(--color7) !important;}
|
|
2187
2289
|
:root:root:root:root ._btc-0focus-color8._btc-0focus-color8:focus{border-top-color:var(--color8) !important;}
|
|
2188
2290
|
@media (hover) {:root:root ._btc-0hover-borderColor._btc-0hover-borderColor:hover{border-top-color:var(--borderColor) !important;}}
|
|
@@ -2350,7 +2452,6 @@
|
|
|
2350
2452
|
:root:root:root:root ._outlineColor-0focus-color8._outlineColor-0focus-color8:focus{outline-color:var(--color8) !important;}
|
|
2351
2453
|
:root:root:root:root ._outlineColor-0focus-visible-outlineColo114._outlineColor-0focus-visible-outlineColo114:focus-visible{outline-color:var(--outlineColor) !important;}
|
|
2352
2454
|
:root:root:root:root ._outlineStyle-0focus-solid._outlineStyle-0focus-solid:focus{outline-style:solid !important;}
|
|
2353
|
-
:root:root:root:root ._outlineStyle-0focus-visible-none._outlineStyle-0focus-visible-none:focus-visible{outline-style:none !important;}
|
|
2354
2455
|
:root:root:root:root ._outlineStyle-0focus-visible-solid._outlineStyle-0focus-visible-solid:focus-visible{outline-style:solid !important;}
|
|
2355
2456
|
:root ._outlineStyle-none._outlineStyle-none{outline-style:none;}
|
|
2356
2457
|
:root:root:root:root ._outlineWidth-0focus-2px._outlineWidth-0focus-2px:focus{outline-width:2px !important;}
|
package/dist/theme.css
CHANGED
|
@@ -56,28 +56,56 @@
|
|
|
56
56
|
/* ——— the opacity ladder: the real palette ——— */
|
|
57
57
|
/* Every rung below .30 is a HAIRLINE or a LIFT — the two things this system
|
|
58
58
|
draws with. The rungs are the reference's own values, not a rounded ramp. */
|
|
59
|
+
/* The five rungs marked (chrome) below were being retyped as raw rgba in
|
|
60
|
+
@hanzogui/shell's theme.ts, which is the shared bar every Hanzo property
|
|
61
|
+
mounts. That is the same defect this ladder exists to end — a value in two
|
|
62
|
+
places drifts, and this pair already had: the shell's resting hairline sat
|
|
63
|
+
at .06 against this file's .10 for long enough that the bar and the page
|
|
64
|
+
under it drew different hairlines. They are rungs here now, and the shell
|
|
65
|
+
references them, so the chrome has no colour of its own left to drift.
|
|
66
|
+
|
|
67
|
+
They are the shell's OWN measured values, added at the alpha it already
|
|
68
|
+
ships. Snapping them to neighbouring rungs instead would have been a
|
|
69
|
+
silent redesign of the estate's chrome, and two of them carry decisions
|
|
70
|
+
that a round number would have destroyed: .92 is ink deliberately short of
|
|
71
|
+
the .98 hover so a hover still reads as a response, and .03 is the one
|
|
72
|
+
lift that must stay below the .05 hairline it sits inside. */
|
|
73
|
+
--white-03:rgb(255 255 255 / .03); /* (chrome) the raised fill */
|
|
59
74
|
--white-05:rgb(255 255 255 / .05);
|
|
60
75
|
--white-06:rgb(255 255 255 / .06);
|
|
61
76
|
--white-08:rgb(255 255 255 / .08);
|
|
62
77
|
--white-10:rgb(255 255 255 / .10);
|
|
78
|
+
--white-14:rgb(255 255 255 / .14); /* (chrome) selection wash */
|
|
63
79
|
--white-15:rgb(255 255 255 / .15);
|
|
64
80
|
--white-16:rgb(255 255 255 / .16);
|
|
81
|
+
--white-18:rgb(255 255 255 / .18); /* (chrome) selection tint */
|
|
65
82
|
--white-20:rgb(255 255 255 / .20);
|
|
66
83
|
--white-22:rgb(255 255 255 / .22);
|
|
67
84
|
--white-30:rgb(255 255 255 / .30);
|
|
68
85
|
--white-40:rgb(255 255 255 / .40);
|
|
86
|
+
--white-45:rgb(255 255 255 / .45); /* (chrome) the dimmest ink */
|
|
69
87
|
--white-55:rgb(255 255 255 / .55);
|
|
70
88
|
--white-60:rgb(255 255 255 / .60);
|
|
71
89
|
--white-78:rgb(255 255 255 / .78);
|
|
72
90
|
--white-80:rgb(255 255 255 / .80);
|
|
91
|
+
--white-92:rgb(255 255 255 / .92); /* (chrome) body ink */
|
|
73
92
|
|
|
74
93
|
/* ——— semantic aliases (dark, the default) ——— */
|
|
75
94
|
--background:#0a0a0a;
|
|
76
|
-
|
|
95
|
+
/* READING ink, one rung below the top of the ramp. The note at the head of this
|
|
96
|
+
file already made this argument once — #ffffff on #000000 halates, so #fafafa
|
|
97
|
+
— and the argument does not stop being true at 19.0:1. Every heading and
|
|
98
|
+
paragraph on every surface was set in the brightest ink the system has, while
|
|
99
|
+
the CHROME beside them draws body text at --white-92; a page read as glare
|
|
100
|
+
against its own header. #e5e5e5 is the neutral-200 rung this file already
|
|
101
|
+
spends on --primary-hover, so the ramp gains no new value: 15.7:1 on the page,
|
|
102
|
+
15.2:1 on a card, both more than twice the 7:1 AAA asks of body text.
|
|
103
|
+
Something that genuinely needs the brightest ink names --primary. */
|
|
104
|
+
--foreground:#e5e5e5;
|
|
77
105
|
--card:#0f0f0f;
|
|
78
|
-
--card-foreground:#
|
|
106
|
+
--card-foreground:#e5e5e5;
|
|
79
107
|
--popover:#0f0f0f;
|
|
80
|
-
--popover-foreground:#
|
|
108
|
+
--popover-foreground:#e5e5e5;
|
|
81
109
|
--primary:#fafafa;
|
|
82
110
|
/* A 5% step, not the 16% this used to be. A filled button's fill is already
|
|
83
111
|
the top of the ink ramp, so the only directions available on hover are
|
|
@@ -296,19 +324,56 @@
|
|
|
296
324
|
@hanzo/design's `vars({type})` emits exactly this name. */
|
|
297
325
|
--type-scale:1;
|
|
298
326
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
327
|
+
/* The CONTRAST knob — how far apart the rungs sit, where --type-scale is how
|
|
328
|
+
big they all are. Two different questions, and only the first one was
|
|
329
|
+
askable: a surface could take the whole ramp up 15% but could not flatten a
|
|
330
|
+
dense table's steps or open up a marketing page's, so both settled for the
|
|
331
|
+
app register's tight default.
|
|
332
|
+
|
|
333
|
+
It is authored as a TRANSFORM and not as a generated ramp, which is the
|
|
334
|
+
whole point. `base + (authored - base) * ratio` keeps each rung's authored
|
|
335
|
+
value as the INPUT, so ratio 1 reduces to exactly the published number by
|
|
336
|
+
algebra rather than by care — the deltas below are just `authored - 0.875`.
|
|
337
|
+
The alternative, deriving each rung as base * ratio^n, would restate the
|
|
338
|
+
ramp in a second place, and this scale is not geometric anyway: the app
|
|
339
|
+
register (11/13/14/15/17) is near-linear on purpose and a ratio applied to
|
|
340
|
+
it would erase the 1px steps the compact register is FOR. That drift is not
|
|
341
|
+
hypothetical here — see src/preference.ts, where a recomputed copy of this
|
|
342
|
+
ramp shipped `lg: 16px` against this file's 15px.
|
|
343
|
+
|
|
344
|
+
A rung is one place, so a rung added later needs a delta and nothing else. */
|
|
345
|
+
--type-ratio:1;
|
|
346
|
+
|
|
347
|
+
/* EVERY rung is bounded at BOTH ends, by one rule, because the knobs COMPOUND
|
|
348
|
+
and they compound in both directions. Clamping each knob's range separately
|
|
349
|
+
cannot fix either end — 0.85 x 0.9 is inside both bounds and lands at 8.5px
|
|
350
|
+
— so the RESULT is what carries the bound:
|
|
351
|
+
|
|
352
|
+
--text-floor 10px below this a label is not small, it is unreadable
|
|
353
|
+
--text-ceiling 30vw above this a heading is not type, it is a texture
|
|
354
|
+
|
|
355
|
+
The ceiling is in the VIEWPORT's units because that is what "too big" means:
|
|
356
|
+
measured, the tallest rung (--text-9xl, 112px) is 28.7vw on a 390px phone
|
|
357
|
+
and 7.8vw at 1440, so 30vw binds no published value at any real screen and
|
|
358
|
+
catches only a scale that has run away. Both bounds are stated once here and
|
|
359
|
+
`vars()` emits the same clamp for a modular scale, so a regenerated rung and
|
|
360
|
+
an authored one are bounded identically — the rule does not depend on which
|
|
361
|
+
produced the value. */
|
|
362
|
+
--text-floor:0.625rem;
|
|
363
|
+
--text-ceiling:30vw;
|
|
364
|
+
--text-xs:clamp(var(--text-floor), calc((0.875rem - 0.1875rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-xs:calc((1.35rem - 0.35rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 11px — eyebrows / section labels */
|
|
365
|
+
--text-sm:clamp(var(--text-floor), calc((0.875rem - 0.0625rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-sm:calc((1.35rem - 0.2rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 13px — nav labels, dense body */
|
|
366
|
+
--text-base:clamp(var(--text-floor), calc(0.875rem * var(--type-scale, 1)), var(--text-ceiling)); --leading-base:calc(1.35rem * var(--type-scale, 1)); /* 14px — the ANCHOR: the rung the ratio pivots on, so it carries no ratio term */
|
|
367
|
+
--text-lg:clamp(var(--text-floor), calc((0.875rem + 0.0625rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-lg:calc((1.35rem + 0.05rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 15px */
|
|
368
|
+
--text-xl:clamp(var(--text-floor), calc((0.875rem + 0.1875rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-xl:calc((1.35rem + 0.2rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 17px */
|
|
369
|
+
--text-2xl:clamp(var(--text-floor), calc((0.875rem + 0.4375rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-2xl:calc((1.35rem + 0.35rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 21px */
|
|
370
|
+
--text-3xl:clamp(var(--text-floor), calc((0.875rem + 0.75rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-3xl:calc((1.35rem + 0.6rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 26px */
|
|
371
|
+
--text-4xl:clamp(var(--text-floor), calc((0.875rem + 1.125rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-4xl:calc((1.35rem + 0.9rem * var(--type-ratio, 1)) * var(--type-scale, 1)); /* 32px */
|
|
372
|
+
--text-5xl:clamp(var(--text-floor), calc((0.875rem + 1.625rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-5xl:1.05; /* 40px — display leading is unitless, so it tracks its own size */
|
|
373
|
+
--text-6xl:clamp(var(--text-floor), calc((0.875rem + 2.375rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-6xl:1; /* 52px */
|
|
374
|
+
--text-7xl:clamp(var(--text-floor), calc((0.875rem + 3.125rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-7xl:1; /* 64px */
|
|
375
|
+
--text-8xl:clamp(var(--text-floor), calc((0.875rem + 4.375rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-8xl:1; /* 84px */
|
|
376
|
+
--text-9xl:clamp(var(--text-floor), calc((0.875rem + 6.125rem * var(--type-ratio, 1)) * var(--type-scale, 1)), var(--text-ceiling)); --leading-9xl:1; /* 112px */
|
|
312
377
|
|
|
313
378
|
/* The SAME scale under @hanzo/brand's spelling. @hanzo/gui's shell theme and
|
|
314
379
|
Hanzo Studio address the ramp as --font-size-*; both names are one value, so
|
|
@@ -447,6 +512,26 @@
|
|
|
447
512
|
hanzoai/id's stylesheet — one app knowing something the system did not. */
|
|
448
513
|
--tap-target:44px;
|
|
449
514
|
|
|
515
|
+
/* ——— controls ——— */
|
|
516
|
+
/* A control's OWN height, which the floor above does not answer: 44px is the
|
|
517
|
+
smallest a finger may aim at, not the size a thing should be. Nothing named
|
|
518
|
+
the second question, so each surface answered it privately and they drifted
|
|
519
|
+
— @hanzo/ui keeps `CONTROL_H = 36` in TypeScript, hanzoai/app pins a 30px
|
|
520
|
+
`--control-h` over that same 36px library, and hanzoai/id spelled
|
|
521
|
+
`min-height:52px` into three separate rules.
|
|
522
|
+
The first three rungs ARE @hanzo/ui's size table (default/sm/lg), moved
|
|
523
|
+
down to the layer that holds values so a host can answer it once instead of
|
|
524
|
+
each library carrying a private copy. They sit under the tap floor on
|
|
525
|
+
purpose: base.css lifts whichever one is spent to 44px under
|
|
526
|
+
`pointer:coarse`, so one declaration serves a compact pointer control and a
|
|
527
|
+
hittable touch one. -xl is what a surface earns when the control IS the
|
|
528
|
+
content — one field, one button, nothing competing — where the default
|
|
529
|
+
reads as one of a stack rather than as the thing the screen is for. */
|
|
530
|
+
--control-height-sm:32px;
|
|
531
|
+
--control-height:36px;
|
|
532
|
+
--control-height-lg:40px;
|
|
533
|
+
--control-height-xl:52px;
|
|
534
|
+
|
|
450
535
|
/* ——— safe areas ——— */
|
|
451
536
|
/* The notch/home-indicator insets, named once. Anything pinned to a viewport
|
|
452
537
|
edge — a fixed header, a bottom bar, a sheet — adds the matching one. */
|
|
@@ -882,6 +967,22 @@
|
|
|
882
967
|
its buttons at 8-10px and nothing at 6px except 22px chips. */
|
|
883
968
|
border-radius:var(--radius-md);
|
|
884
969
|
padding:0 var(--space-3);
|
|
970
|
+
/* A field's ring is drawn INSIDE its own box. The one focus rule below
|
|
971
|
+
reads this; nothing else about the indicator changes.
|
|
972
|
+
|
|
973
|
+
A field lives in containers a button does not — composers, palettes and
|
|
974
|
+
panels that round their corners with `overflow:hidden`. An outline at a
|
|
975
|
+
POSITIVE offset is painted outside the border box, so any such ancestor
|
|
976
|
+
clips it, and the computed style still says `2px solid` while nothing is
|
|
977
|
+
drawn: a chat composer measured byte-identical screenshots focused and
|
|
978
|
+
unfocused, and a search pill kept only its left and right edges. A
|
|
979
|
+
negative offset cannot be clipped by anything, so a field needs to know
|
|
980
|
+
nothing about what contains it.
|
|
981
|
+
|
|
982
|
+
-2 against a 2px ring lays the outline over the outermost 2px of the box,
|
|
983
|
+
so it REPLACES the 1px edge for as long as focus is there rather than
|
|
984
|
+
drawing a second line a pixel inside the first. */
|
|
985
|
+
--ring-offset:-2px;
|
|
885
986
|
}
|
|
886
987
|
:where(textarea){padding:var(--space-2) var(--space-3);resize:vertical}
|
|
887
988
|
/* A field has NO focus rule of its own — see the ring at the bottom of this
|
|
@@ -948,6 +1049,11 @@
|
|
|
948
1049
|
canvas and clears the 2px perimeter WCAG 2.4.13 asks for; the gate in
|
|
949
1050
|
check-tokens holds --ring to that and nothing else here may weaken it.
|
|
950
1051
|
|
|
1052
|
+
WHERE the ring sits is the one thing that varies, and it varies as a VALUE
|
|
1053
|
+
the element carries, never as a second rule: `--ring-offset` defaults to 2
|
|
1054
|
+
and a field sets it to -2 (see the field block above). Two rules is what
|
|
1055
|
+
0.4.9 removed, and a second one here would be the same defect again.
|
|
1056
|
+
|
|
951
1057
|
There were two rules until 0.4.9, and they collided invisibly. Both computed
|
|
952
1058
|
to (0,1,0) — :where() zeroes whatever it wraps, leaving one pseudo-class on
|
|
953
1059
|
each side — so the cascade fell through to SOURCE ORDER inside this layer,
|
|
@@ -956,7 +1062,7 @@
|
|
|
956
1062
|
drew BOTH the ring and the edge+halo. Each rule read as correct alone, which
|
|
957
1063
|
is why it survived review in both files; the defect existed only in their
|
|
958
1064
|
order. One rule cannot disagree with itself. */
|
|
959
|
-
:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
|
|
1065
|
+
:focus-visible{outline:2px solid var(--ring);outline-offset:var(--ring-offset,2px)}
|
|
960
1066
|
/* --white-20 is white-on-white in the light theme, so selection reads through
|
|
961
1067
|
--selection, which BOTH themes define. */
|
|
962
1068
|
::selection{background:var(--selection);color:var(--text-primary)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.114",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
|
|
6
6
|
"exports": {
|
|
@@ -195,7 +195,7 @@
|
|
|
195
195
|
"dependencies": {
|
|
196
196
|
"@hanzo/appearance": "^0.1.4",
|
|
197
197
|
"@hanzo/brand": "^1.4.5",
|
|
198
|
-
"@hanzo/design": "^0.5.
|
|
198
|
+
"@hanzo/design": "^0.5.16",
|
|
199
199
|
"@hanzo/logo": "^1.0.13",
|
|
200
200
|
"@hanzo/products": "^0.2.0",
|
|
201
201
|
"clsx": "^2.1.1"
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
'use client';"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FOCUS = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* How a text field says it has focus.
|
|
6
|
-
*
|
|
7
|
-
* A field already has an edge, so focus BRIGHTENS that edge — it never adds a
|
|
8
|
-
* second shape around it. One rule, shared by every field, so `Input` and
|
|
9
|
-
* `Textarea` cannot drift apart.
|
|
10
|
-
*
|
|
11
|
-
* `@hanzogui/input` ships the opposite of both halves, and each failure hides
|
|
12
|
-
* the other:
|
|
13
|
-
*
|
|
14
|
-
* - `focusVisibleStyle` draws `outline: 2px solid $outlineColor` at a 2px
|
|
15
|
-
* offset. Tamagui emits that as `:root:root:root:root ._outlineWidth-…
|
|
16
|
-
* :focus-visible { outline-width: 2px !important }`, which outranks any
|
|
17
|
-
* plain stylesheet — a consumer's `outline: none` cannot win, and one did
|
|
18
|
-
* try. Setting the width to 0 HERE is the only way to retract it, because
|
|
19
|
-
* a prop replaces the variant's atomic class rather than competing with it.
|
|
20
|
-
*
|
|
21
|
-
* - `focusStyle` brightens to `$borderColorFocus`, which in this design
|
|
22
|
-
* system resolves to the SAME value as `$borderColor`. So the cue that was
|
|
23
|
-
* supposed to make the ring unnecessary rendered nothing at all, and the
|
|
24
|
-
* ring was the only feedback a focused field had.
|
|
25
|
-
*
|
|
26
|
-
* `$color06` against a `$borderColor` rest is ~5:1, so the edge alone carries
|
|
27
|
-
* the indicator (WCAG 2.4.13) and nothing else needs to be drawn.
|
|
28
|
-
*
|
|
29
|
-
* Spread BEFORE a component's own `...props`, so a call site can still say
|
|
30
|
-
* otherwise.
|
|
31
|
-
*/
|
|
32
|
-
const FOCUS = {
|
|
33
|
-
focusStyle: { borderColor: '$color06' },
|
|
34
|
-
focusVisibleStyle: { outlineWidth: 0, outlineStyle: 'none' },
|
|
35
|
-
};
|
|
36
|
-
exports.FOCUS = FOCUS;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* How a text field says it has focus.
|
|
3
|
-
*
|
|
4
|
-
* A field already has an edge, so focus BRIGHTENS that edge — it never adds a
|
|
5
|
-
* second shape around it. One rule, shared by every field, so `Input` and
|
|
6
|
-
* `Textarea` cannot drift apart.
|
|
7
|
-
*
|
|
8
|
-
* `@hanzogui/input` ships the opposite of both halves, and each failure hides
|
|
9
|
-
* the other:
|
|
10
|
-
*
|
|
11
|
-
* - `focusVisibleStyle` draws `outline: 2px solid $outlineColor` at a 2px
|
|
12
|
-
* offset. Tamagui emits that as `:root:root:root:root ._outlineWidth-…
|
|
13
|
-
* :focus-visible { outline-width: 2px !important }`, which outranks any
|
|
14
|
-
* plain stylesheet — a consumer's `outline: none` cannot win, and one did
|
|
15
|
-
* try. Setting the width to 0 HERE is the only way to retract it, because
|
|
16
|
-
* a prop replaces the variant's atomic class rather than competing with it.
|
|
17
|
-
*
|
|
18
|
-
* - `focusStyle` brightens to `$borderColorFocus`, which in this design
|
|
19
|
-
* system resolves to the SAME value as `$borderColor`. So the cue that was
|
|
20
|
-
* supposed to make the ring unnecessary rendered nothing at all, and the
|
|
21
|
-
* ring was the only feedback a focused field had.
|
|
22
|
-
*
|
|
23
|
-
* `$color06` against a `$borderColor` rest is ~5:1, so the edge alone carries
|
|
24
|
-
* the indicator (WCAG 2.4.13) and nothing else needs to be drawn.
|
|
25
|
-
*
|
|
26
|
-
* Spread BEFORE a component's own `...props`, so a call site can still say
|
|
27
|
-
* otherwise.
|
|
28
|
-
*/
|
|
29
|
-
declare const FOCUS: {
|
|
30
|
-
readonly focusStyle: {
|
|
31
|
-
readonly borderColor: "$color06";
|
|
32
|
-
};
|
|
33
|
-
readonly focusVisibleStyle: {
|
|
34
|
-
readonly outlineWidth: 0;
|
|
35
|
-
readonly outlineStyle: "none";
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
export { FOCUS };
|
|
39
|
-
//# sourceMappingURL=focus.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/focus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,QAAA,MAAM,KAAK;;;;;;;;CAGD,CAAA;AAEV,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
'use client';/**
|
|
2
|
-
* How a text field says it has focus.
|
|
3
|
-
*
|
|
4
|
-
* A field already has an edge, so focus BRIGHTENS that edge — it never adds a
|
|
5
|
-
* second shape around it. One rule, shared by every field, so `Input` and
|
|
6
|
-
* `Textarea` cannot drift apart.
|
|
7
|
-
*
|
|
8
|
-
* `@hanzogui/input` ships the opposite of both halves, and each failure hides
|
|
9
|
-
* the other:
|
|
10
|
-
*
|
|
11
|
-
* - `focusVisibleStyle` draws `outline: 2px solid $outlineColor` at a 2px
|
|
12
|
-
* offset. Tamagui emits that as `:root:root:root:root ._outlineWidth-…
|
|
13
|
-
* :focus-visible { outline-width: 2px !important }`, which outranks any
|
|
14
|
-
* plain stylesheet — a consumer's `outline: none` cannot win, and one did
|
|
15
|
-
* try. Setting the width to 0 HERE is the only way to retract it, because
|
|
16
|
-
* a prop replaces the variant's atomic class rather than competing with it.
|
|
17
|
-
*
|
|
18
|
-
* - `focusStyle` brightens to `$borderColorFocus`, which in this design
|
|
19
|
-
* system resolves to the SAME value as `$borderColor`. So the cue that was
|
|
20
|
-
* supposed to make the ring unnecessary rendered nothing at all, and the
|
|
21
|
-
* ring was the only feedback a focused field had.
|
|
22
|
-
*
|
|
23
|
-
* `$color06` against a `$borderColor` rest is ~5:1, so the edge alone carries
|
|
24
|
-
* the indicator (WCAG 2.4.13) and nothing else needs to be drawn.
|
|
25
|
-
*
|
|
26
|
-
* Spread BEFORE a component's own `...props`, so a call site can still say
|
|
27
|
-
* otherwise.
|
|
28
|
-
*/
|
|
29
|
-
const FOCUS = {
|
|
30
|
-
focusStyle: { borderColor: '$color06' },
|
|
31
|
-
focusVisibleStyle: { outlineWidth: 0, outlineStyle: 'none' },
|
|
32
|
-
};
|
|
33
|
-
export { FOCUS };
|
|
34
|
-
//# sourceMappingURL=focus.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"focus.js","sourceRoot":"","sources":["../../../src/backends/gui/focus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,KAAK,GAAG;IACZ,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;IACvC,iBAAiB,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE;CACpD,CAAA;AAEV,OAAO,EAAE,KAAK,EAAE,CAAA"}
|