@hanzo/ui 8.3.1 → 8.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/backends/gui/index.cjs +2 -2
- package/dist/backends/gui/index.js +2 -2
- package/dist/backends/gui/index.js.map +1 -1
- package/dist/backends/gui/layout.cjs +1 -1
- package/dist/backends/gui/layout.d.ts +1 -1
- package/dist/backends/gui/layout.js +1 -1
- package/dist/chat/Code.cjs +3 -3
- package/dist/chat/Code.js +3 -3
- package/dist/chat/Code.js.map +1 -1
- package/dist/chat/pure.cjs +1 -1
- package/dist/chat/pure.js +1 -1
- package/dist/chat/pure.js.map +1 -1
- package/dist/core/fonts.cjs +14 -13
- package/dist/core/fonts.d.ts +18 -17
- package/dist/core/fonts.d.ts.map +1 -1
- package/dist/core/fonts.js +14 -13
- package/dist/core/fonts.js.map +1 -1
- package/dist/core/index.cjs +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/gallery.html +108 -46
- package/dist/gui-config.cjs +11 -9
- package/dist/gui-config.d.ts.map +1 -1
- package/dist/gui-config.js +11 -9
- package/dist/gui-config.js.map +1 -1
- package/dist/product/DataTable.d.ts +2 -2
- package/dist/product/DataTable.d.ts.map +1 -1
- package/dist/product/Pagination.cjs +1 -1
- package/dist/product/Pagination.js +1 -1
- package/dist/product/instrument.cjs +2 -2
- package/dist/product/instrument.js +2 -2
- package/dist/product/instrument.js.map +1 -1
- package/dist/product/pages.cjs +1 -1
- package/dist/product/pages.d.ts +1 -1
- package/dist/product/pages.js +1 -1
- package/dist/product/pure.cjs +1 -1
- package/dist/product/pure.js +1 -1
- package/dist/product/pure.js.map +1 -1
- package/dist/root.d.ts +1 -1
- package/dist/styles/motion.css +2 -2
- package/dist/styles.css +103 -41
- package/dist/telemetry.cjs +1 -1
- package/dist/telemetry.js +1 -1
- package/dist/telemetry.js.map +1 -1
- package/dist/theme.css +98 -36
- package/package.json +3 -2
package/dist/styles.css
CHANGED
|
@@ -840,33 +840,72 @@
|
|
|
840
840
|
}
|
|
841
841
|
|
|
842
842
|
/* ── tokens/fonts.css ─────────────────────────────────────── */
|
|
843
|
-
/*
|
|
843
|
+
/* Zen — the only family on Hanzo surfaces, sans and mono.
|
|
844
844
|
SELF-HOSTED. The faces ship inside this package (assets/fonts/*.woff2, two
|
|
845
|
-
variable files, 141 KB total, SIL OFL-1.1 — see assets/fonts/LICENSE-
|
|
846
|
-
|
|
847
|
-
|
|
845
|
+
variable files, 141 KB total, SIL OFL-1.1 — see assets/fonts/LICENSE-Zen.txt).
|
|
846
|
+
|
|
847
|
+
Zen is our own family, under the SIL Open Font License. The licence file
|
|
848
|
+
beside the binaries carries every copyright the OFL requires; nothing else in
|
|
849
|
+
this repository restates them, which is the whole of what §2 asks for.
|
|
850
|
+
|
|
851
|
+
SHIPPED here rather than @import-ed from `@hanzo/font`, and that is load
|
|
852
|
+
bearing. `@hanzo/ui` composes this file into the MIDDLE of its theme.css, and
|
|
853
|
+
CSS drops an @import that does not precede every other rule — measured, in
|
|
854
|
+
Chromium, on the built sheet: zero faces loaded and not one woff2 requested.
|
|
855
|
+
An @font-face has no such ordering rule, so declaring the faces is the only
|
|
856
|
+
form that survives being flattened into a larger stylesheet. `@hanzo/font`
|
|
857
|
+
remains the one place the faces are AUTHORED; this is a copy of its output,
|
|
858
|
+
the same way the colour tokens are copied rather than fetched.
|
|
859
|
+
|
|
860
|
+
Why self-hosted rather than a third-party CDN:
|
|
848
861
|
- A sign-in page must not make a third-party request. hanzoai/id refused to
|
|
849
862
|
import this file for exactly that reason, which split the token layer: id
|
|
850
863
|
took the colours and not the typeface. Self-hosting removes the reason, so
|
|
851
864
|
every surface can import styles.css unchanged.
|
|
852
|
-
-
|
|
853
|
-
|
|
865
|
+
- It was a render-blocking request to a host we do not control, on the
|
|
866
|
+
critical path of every surface, and it broke offline/air-gapped dev.
|
|
854
867
|
- One variable file per family replaces nine static weights, and it is fewer
|
|
855
|
-
bytes than the CSS-then-woff2 round trip
|
|
868
|
+
bytes than the CSS-then-woff2 round trip.
|
|
856
869
|
|
|
857
870
|
The url()s are relative to THIS file, so they resolve wherever the package is
|
|
858
|
-
mounted — node_modules, a CDN, a copied dist — with no configuration.
|
|
871
|
+
mounted — node_modules, a CDN, a copied dist — with no configuration.
|
|
872
|
+
|
|
873
|
+
`font-display: block`, NOT swap, and the difference is the whole brand. `swap`
|
|
874
|
+
paints the fallback IMMEDIATELY and repaints when the face lands, so every first
|
|
875
|
+
visit shows the platform's own sans for as long as the download takes — on Ubuntu
|
|
876
|
+
that is DejaVu, which looks nothing like us and is the single most common way a
|
|
877
|
+
Hanzo surface renders wrong. `block` holds the text invisible for a short period
|
|
878
|
+
(~3s) and then paints Zen, so the fallback is only ever reached when the face
|
|
879
|
+
genuinely fails to arrive. A held word is a moment; the wrong typeface is the
|
|
880
|
+
brand. The generic tail below stays for exactly that real-failure case. */
|
|
859
881
|
|
|
860
882
|
|
|
861
883
|
|
|
862
884
|
|
|
863
885
|
:root{
|
|
864
|
-
--font-sans:"
|
|
886
|
+
--font-sans:"Zen",ui-sans-serif,system-ui,sans-serif;
|
|
865
887
|
--font-display:var(--font-sans);
|
|
866
|
-
--font-mono:"
|
|
888
|
+
--font-mono:"Zen Mono",ui-monospace,SFMono-Regular,monospace;
|
|
867
889
|
--font-serif:Georgia,serif;
|
|
868
|
-
/*
|
|
869
|
-
|
|
890
|
+
/* The default is Zen as drawn, and that is a decision rather than an omission.
|
|
891
|
+
`base.css` puts this on <body>, so whatever is here is the voice of every
|
|
892
|
+
surface in the estate — which is exactly why it should not carry a brand's.
|
|
893
|
+
|
|
894
|
+
It used to read `"ss01","ss02","cv01","cv02","cv03"`, of which FOUR did
|
|
895
|
+
nothing: Zen has no cv01/cv02/cv03 at all, and ss01 and ss02 both remap `a`,
|
|
896
|
+
so ss01 substitutes first and ss02 never matches the glyph it was written
|
|
897
|
+
for. The one that did work quietly gave Lux and Zoo the single-storey `a`
|
|
898
|
+
that belongs to Hanzo.
|
|
899
|
+
|
|
900
|
+
A brand sets its own voice by overriding THIS token — one knob, one place:
|
|
901
|
+
Hanzo "ss01" single-storey a, the neo-grotesque register
|
|
902
|
+
Lux "ss04" straight-leg R, to sit under the wordmark
|
|
903
|
+
Zoo normal the humanist default, the warmest of the three
|
|
904
|
+
Zen ships eleven sets; ss03 is a tailed l, ss05 a serifed I, ss06 an
|
|
905
|
+
alternate G and ss09 a slashed zero with a serif one. Kerning, ligatures and
|
|
906
|
+
contextual alternates are on by default in every browser and do not belong
|
|
907
|
+
in this list. */
|
|
908
|
+
--font-feature-settings:normal;
|
|
870
909
|
}
|
|
871
910
|
|
|
872
911
|
/* ── tokens/base.css ─────────────────────────────────────── */
|
|
@@ -1089,6 +1128,13 @@
|
|
|
1089
1128
|
:where(*)::-webkit-scrollbar-thumb{background:var(--white-15);border-radius:var(--radius-full)}
|
|
1090
1129
|
:where(*)::-webkit-scrollbar-thumb:hover{background:var(--white-30)}
|
|
1091
1130
|
:where(*)::-webkit-scrollbar-corner{background:transparent}
|
|
1131
|
+
/* The stepper arrows, and they are a LINUX defect specifically. Chromium on
|
|
1132
|
+
macOS draws no buttons, so styling the track and thumb looks finished there
|
|
1133
|
+
and ships a classic GTK scrollbar — a boxed arrow at each end of every
|
|
1134
|
+
scroller, on both axes — to everyone on Ubuntu. Styling the other pseudos
|
|
1135
|
+
does not suppress them; only this does. Zero width AND height because the
|
|
1136
|
+
horizontal and vertical bars each read one of them. */
|
|
1137
|
+
:where(*)::-webkit-scrollbar-button{display:none;width:0;height:0}
|
|
1092
1138
|
.light :where(*)::-webkit-scrollbar-thumb{background:rgb(0 0 0 / .18)}
|
|
1093
1139
|
.light :where(*)::-webkit-scrollbar-thumb:hover{background:rgb(0 0 0 / .32)}
|
|
1094
1140
|
}
|
|
@@ -1107,10 +1153,10 @@
|
|
|
1107
1153
|
*
|
|
1108
1154
|
* Dark-first Hanzo identity: neutral zinc-on-black, calm, high-contrast. Add
|
|
1109
1155
|
* `class="dark"` on <html> for the canonical dark look; `:root` is the light
|
|
1110
|
-
* counterpart. Typography is
|
|
1111
|
-
* through `--font-
|
|
1112
|
-
*
|
|
1113
|
-
*
|
|
1156
|
+
* counterpart. Typography is Zen — our own family, sans for UI/body and mono for
|
|
1157
|
+
* code — bound through `--font-sans` / `--font-mono`. The package SHIPS the
|
|
1158
|
+
* faces, so those resolve with no work from the host; a host that prefers its
|
|
1159
|
+
* own binds `--font-sans-provided`. No Inter, no system-stack default anywhere.
|
|
1114
1160
|
*
|
|
1115
1161
|
* Plain CSS, nothing else: `:root`/`.dark` custom properties plus the base font
|
|
1116
1162
|
* and the touch/elevation rules the components name. The Tailwind v4 `@theme
|
|
@@ -1118,26 +1164,42 @@
|
|
|
1118
1164
|
*/
|
|
1119
1165
|
|
|
1120
1166
|
|
|
1121
|
-
/*
|
|
1122
|
-
|
|
1123
|
-
|
|
1167
|
+
/* The typeface, and the package now BRINGS one.
|
|
1168
|
+
|
|
1169
|
+
`@hanzo/font` ships Zen — our own family, sans and mono, self-hosted woff2 —
|
|
1170
|
+
so the fallback is a face that exists rather than a name that has to be
|
|
1171
|
+
installed. That import is the whole integration: a host still binds
|
|
1172
|
+
`--font-*-provided` to override, and one that binds nothing now gets Zen
|
|
1173
|
+
instead of falling through to the browser's generic.
|
|
1124
1174
|
|
|
1125
1175
|
In a LAYER, and that is the whole reason the sentence above is true. next/font
|
|
1126
1176
|
binds its generated family through a class on <html>, which is `:root`'s own
|
|
1127
|
-
element and `:root`'s own specificity, so unlayered these
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
developer's machine
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1177
|
+
element and `:root`'s own specificity, so unlayered these declarations merely
|
|
1178
|
+
tie with the host's and win on source order — this sheet loads last. The
|
|
1179
|
+
host's binding lost, the variable resolved to a literal family name, and a
|
|
1180
|
+
page rendered in that face only where it happened to be INSTALLED: right on a
|
|
1181
|
+
developer's machine, generic on a visitor's. Measured exactly that way at
|
|
1182
|
+
8.3.0 on ui.hanzo.ai's own surface, with the self-hosted faces loaded and
|
|
1183
|
+
unreferenced. An unlayered declaration beats every layered one whatever the
|
|
1184
|
+
specificity, so layering ours is what makes the host's the one that wins.
|
|
1185
|
+
|
|
1186
|
+
THE TOKEN NAMES THE ROLE, NOT THE FACE. It was `--font-geist-sans`, which
|
|
1187
|
+
named a face rather than the job it does. Naming it `--font-zen-sans` would
|
|
1188
|
+
repeat the mistake with our own brand: the next face makes it a lie again.
|
|
1189
|
+
`--font-sans` is what it has always meant.
|
|
1190
|
+
|
|
1191
|
+
NO @import HERE, and that is measured rather than stylistic. This file is
|
|
1192
|
+
composed into the MIDDLE of the built theme.css, and CSS drops an @import that
|
|
1193
|
+
does not precede every other rule — in Chromium, against the built sheet, a
|
|
1194
|
+
raw <link> loaded ZERO faces and requested not one woff2, while --font-sans
|
|
1195
|
+
resolved to a family nobody ships. The faces come from @hanzo/design's
|
|
1196
|
+
`tokens/fonts.css`, which declares @font-face directly; an @font-face has no
|
|
1197
|
+
ordering rule, so it survives being flattened. */
|
|
1198
|
+
|
|
1137
1199
|
@layer hanzo.font {
|
|
1138
1200
|
:root {
|
|
1139
|
-
--font-
|
|
1140
|
-
--font-
|
|
1201
|
+
--font-sans: var(--font-sans-provided, 'Zen', ui-sans-serif, system-ui, sans-serif);
|
|
1202
|
+
--font-mono: var(--font-mono-provided, 'Zen Mono', ui-monospace, monospace);
|
|
1141
1203
|
}
|
|
1142
1204
|
}
|
|
1143
1205
|
|
|
@@ -1195,15 +1257,15 @@
|
|
|
1195
1257
|
|
|
1196
1258
|
/* Dark-first Hanzo identity — neutral zinc-on-black. */
|
|
1197
1259
|
|
|
1198
|
-
/*
|
|
1199
|
-
|
|
1200
|
-
`font-sans`/`font-mono
|
|
1260
|
+
/* Zen by default — UI/body inherits Zen, code/mono surfaces get Zen Mono.
|
|
1261
|
+
Components never hard-code a family; they inherit this or bind
|
|
1262
|
+
`font-sans`/`font-mono`, which resolve above. */
|
|
1201
1263
|
:where(html, body) {
|
|
1202
|
-
font-family: var(--font-
|
|
1264
|
+
font-family: var(--font-sans), sans-serif;
|
|
1203
1265
|
}
|
|
1204
1266
|
|
|
1205
1267
|
:where(code, kbd, samp, pre) {
|
|
1206
|
-
font-family: var(--font-
|
|
1268
|
+
font-family: var(--font-mono), monospace;
|
|
1207
1269
|
}
|
|
1208
1270
|
|
|
1209
1271
|
/* ── Touch targets ────────────────────────────────────────────────────────────
|
|
@@ -2042,10 +2104,10 @@ input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-web
|
|
|
2042
2104
|
font-feature-settings: 'tnum' 1;
|
|
2043
2105
|
}
|
|
2044
2106
|
|
|
2045
|
-
/* Data/numeric face —
|
|
2107
|
+
/* Data/numeric face — Zen Mono + tabular figures for metric values, prices, IDs
|
|
2046
2108
|
and counts, so numbers read as precise, column-aligned data. */
|
|
2047
2109
|
.hz-mono {
|
|
2048
|
-
font-family: var(--font-mono, '
|
|
2110
|
+
font-family: var(--font-mono, 'Zen Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
|
|
2049
2111
|
font-variant-numeric: tabular-nums;
|
|
2050
2112
|
font-feature-settings: 'tnum' 1;
|
|
2051
2113
|
letter-spacing: -0.01em;
|
|
@@ -2306,11 +2368,11 @@ input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-web
|
|
|
2306
2368
|
:root{--t0:var(--accent, rgb(255 255 255 / .12));--t1:var(--accent-foreground, #e5e5e5);--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:var(--surface-1, rgb(255 255 255 / .03));--t9:var(--surface-2, rgb(255 255 255 / .06));--t10:var(--border, rgb(255 255 255 / .10));--t11:var(--surface-3, rgb(255 255 255 / .12));--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%, 10%, 1);--t27:hsla(0, 0%, 8%, 1);--t28:hsla(0, 0%, 20%, 1);--t29:hsla(0, 0%, 14%, 1);--t30:var(--text-tertiary, rgb(255 255 255 / .55));--t31:#090909;--t32:#151515;--t33:#191919;--t34:#232323;--t35:#333;--t36:#444;--t37:#666;--t38:#777;--t39:#858585;--t40:#aaa;--t41:#ccc;--t42:#ffffff;--t43:#fff;--t44:#f8f8f8;--t45:hsl(0, 0%, 93%);--t46:hsl(0, 0%, 85%);--t47:hsl(0, 0%, 80%);--t48:hsl(0, 0%, 70%);--t49:hsl(0, 0%, 59%);--t50:hsl(0, 0%, 45%);--t51:hsl(0, 0%, 30%);--t52:hsl(0, 0%, 20%);--t53:hsl(0, 0%, 14%);--t54:hsl(0, 0%, 2%);--t55:rgba(255,255,255,1);--t56:rgba(255,255,255,0);--t57:rgba(255,255,255,0.2);--t58:rgba(255,255,255,0.4);--t59:rgba(255,255,255,0.6);--t60:rgba(255,255,255,0.8);--t61:rgba(0,0,0,1);--t62:rgba(0,0,0,0);--t63:rgba(0,0,0,0.2);--t64:rgba(0,0,0,0.4);--t65:rgba(0,0,0,0.6);--t66:rgba(0,0,0,0.8);--t67:rgba(0,0,0,0.15);--t68:rgba(0,0,0,0.23);--t69:rgba(0,0,0,0.33);--t70:rgba(0,0,0,0.45);--t71:rgba(0,0,0,0.65);--t72:rgba(0,0,0,0.9);--t73:rgba(255,255,255,0.1);--t74:rgba(255,255,255,0.3);--t75:rgba(255,255,255,0.45);--t76:rgba(255,255,255,0.65);--t77:rgba(255,255,255,0.85);--t78:rgba(255,255,255,0.95);--t79:#111111;--t80:#222222;--t81:#2a2a2a;--t82:#313131;--t83:#3a3a3a;--t84:#484848;--t85:#606060;--t86:#6e6e6e;--t87:#7b7b7b;--t88:#b4b4b4;--t89:#eeeeee;--t90:#0d1520;--t91:#111927;--t92:#0d2847;--t93:#003362;--t94:#004074;--t95:#104d87;--t96:#205d9e;--t97:#2870bd;--t98:#0090ff;--t99:#3b9eff;--t100:#70b8ff;--t101:#c2e6ff;--t102:#191111;--t103:#201314;--t104:#3b1219;--t105:#500f1c;--t106:#611623;--t107:#72232d;--t108:#8c333a;--t109:#b54548;--t110:#e5484d;--t111:#ec5d5e;--t112:#ff9592;--t113:#ffd1d9;--t114:#14120b;--t115:#1b180f;--t116:#2d2305;--t117:#362b00;--t118:#433500;--t119:#524202;--t120:#665417;--t121:#836a21;--t122:#ffe629;--t123:#ffff57;--t124:#f5e147;--t125:#f6eeb4;--t126:#0e1512;--t127:#121b17;--t128:#132d21;--t129:#113b29;--t130:#174933;--t131:#20573e;--t132:#28684a;--t133:#2f7c57;--t134:#30a46c;--t135:#33b074;--t136:#3dd68c;--t137:#b1f1cb;--t138:#17120e;--t139:#1e160f;--t140:#331e0b;--t141:#462100;--t142:#562800;--t143:#66350c;--t144:#7e451d;--t145:#a35829;--t146:#f76b15;--t147:#ff801f;--t148:#ffa057;--t149:#ffe0c2;--t150:#191117;--t151:#21121d;--t152:#37172f;--t153:#4b143d;--t154:#591c47;--t155:#692955;--t156:#833869;--t157:#a84885;--t158:#d6409f;--t159:#de51a8;--t160:#ff8dcc;--t161:#fdd1ea;--t162:#18111b;--t163:#1e1523;--t164:#301c3b;--t165:#3d224e;--t166:#48295c;--t167:#54346b;--t168:#664282;--t169:#8457aa;--t170:#8e4ec6;--t171:#9a5cd0;--t172:#d19dff;--t173:#ecd9fa;--t174:#0d1514;--t175:#111c1b;--t176:#0d2d2a;--t177:#023b37;--t178:#084843;--t179:#145750;--t180:#1c6961;--t181:#207e73;--t182:#12a594;--t183:#0eb39e;--t184:#0bd8b6;--t185:#adf0dd;--t186:hsl(0, 0%, 68%);--t187:hsl(0, 0%, 65%);--t188:hsl(0, 0%, 62%);--t189:hsl(0, 0%, 56%);--t190:hsl(0, 0%, 53%);--t191:hsl(0, 0%, 50%);--t192:hsl(0, 0%, 47%);--t193:hsl(0, 0%, 44%);--t194:hsl(0, 0%, 41%);--t195:hsl(0, 0%, 38%);--t196:hsl(0, 0%, 32%);--t197:hsla(0, 0%, 97%, 1);--t198:hsla(0, 0%, 93%, 1);--t199:hsla(0, 0%, 85%, 1);--t200:hsla(0, 0%, 70%, 1);--t201:hsla(0, 0%, 59%, 1);--t202:hsla(0, 0%, 45%, 1);--t203:hsla(0, 0%, 30%, 1);--t204:hsla(0, 0%, 2%, 1);--t205:hsla(0, 0%, 100%, 0.1);--t206:hsla(0, 0%, 100%, 0.075);--t207:hsla(0, 0%, 100%, 0.05);--t208:hsla(0, 0%, 100%, 0.025);--t209:hsla(0, 0%, 100%, 0.02);--t210:hsla(0, 0%, 100%, 0.01);--t211:hsla(0, 0%, 8%, 0.1);--t212:hsla(0, 0%, 8%, 0.075);--t213:hsla(0, 0%, 8%, 0.05);--t214:hsla(0, 0%, 8%, 0.025);--t215:hsla(0, 0%, 8%, 0.02);--t216:hsla(0, 0%, 8%, 0.01);--t217:var(--ring, rgb(255 255 255 / .40));--t218:hsla(0, 0%, 4%, 0.2);--t219:hsla(0, 0%, 4%, 0.4);--t220:hsla(0, 0%, 4%, 0.6);--t221:hsla(0, 0%, 4%, 0.8);--t222:hsla(0, 0%, 97%, 0.2);--t223:hsla(0, 0%, 97%, 0.4);--t224:hsla(0, 0%, 97%, 0.6);--t225:hsla(0, 0%, 97%, 0.8);--t226:hsla(0, 0%, 2%, 0);--t227:hsla(0, 0%, 2%, 0.2);--t228:hsla(0, 0%, 2%, 0.4);--t229:hsla(0, 0%, 2%, 0.6);--t230:hsla(0, 0%, 2%, 0.8);--t231:hsla(0, 0%, 2%, 0.1);--t232:hsla(0, 0%, 2%, 0.075);--t233:hsla(0, 0%, 2%, 0.05);--t234:hsla(0, 0%, 2%, 0.025);--t235:hsla(0, 0%, 2%, 0.02);--t236:hsla(0, 0%, 2%, 0.01);--t237:hsla(0, 0%, 97%, 0.1);--t238:hsla(0, 0%, 97%, 0.075);--t239:hsla(0, 0%, 97%, 0.05);--t240:hsla(0, 0%, 97%, 0.025);--t241:hsla(0, 0%, 97%, 0.02);--t242:hsla(0, 0%, 97%, 0.01);--t243:hsla(216, 43%, 9%, 0);--t244:hsla(218, 39%, 11%, 0.2);--t245:hsla(218, 39%, 11%, 0.4);--t246:hsla(218, 39%, 11%, 0.6);--t247:hsla(218, 39%, 11%, 0.8);--t248:hsla(215, 42%, 9%, 1);--t249:hsla(218, 39%, 11%, 1);--t250:hsla(212, 69%, 16%, 1);--t251:hsla(209, 100%, 19%, 1);--t252:hsla(207, 100%, 23%, 1);--t253:hsla(209, 79%, 30%, 1);--t254:hsla(211, 66%, 37%, 1);--t255:hsla(211, 65%, 45%, 1);--t256:hsla(206, 100%, 50%, 1);--t257:hsla(210, 100%, 62%, 1);--t258:hsla(210, 100%, 72%, 1);--t259:hsla(205, 100%, 88%, 1);--t260:hsla(205, 100%, 88%, 0);--t261:hsla(205, 100%, 88%, 0.2);--t262:hsla(205, 100%, 88%, 0.4);--t263:hsla(205, 100%, 88%, 0.6);--t264:hsla(205, 100%, 88%, 0.8);--t265:hsla(205, 100%, 88%, 0.1);--t266:hsla(205, 100%, 88%, 0.075);--t267:hsla(205, 100%, 88%, 0.05);--t268:hsla(205, 100%, 88%, 0.025);--t269:hsla(205, 100%, 88%, 0.02);--t270:hsla(205, 100%, 88%, 0.01);--t271:hsla(218, 39%, 11%, 0.1);--t272:hsla(218, 39%, 11%, 0.075);--t273:hsla(218, 39%, 11%, 0.05);--t274:hsla(218, 39%, 11%, 0.025);--t275:hsla(218, 39%, 11%, 0.02);--t276:hsla(218, 39%, 11%, 0.01);--t277:hsla(216, 43%, 9%, 0.2);--t278:hsla(216, 43%, 9%, 0.4);--t279:hsla(216, 43%, 9%, 0.6);--t280:hsla(216, 43%, 9%, 0.8);--t281:hsla(0, 0%, 7%, 0);--t282:hsla(0, 0%, 10%, 0.2);--t283:hsla(0, 0%, 10%, 0.4);--t284:hsla(0, 0%, 10%, 0.6);--t285:hsla(0, 0%, 10%, 0.8);--t286:hsla(0, 0%, 7%, 1);--t287:hsla(0, 0%, 13%, 1);--t288:hsla(0, 0%, 16%, 1);--t289:hsla(0, 0%, 19%, 1);--t290:hsla(0, 0%, 23%, 1);--t291:hsla(0, 0%, 28%, 1);--t292:hsla(0, 0%, 38%, 1);--t293:hsla(0, 0%, 43%, 1);--t294:hsla(0, 0%, 48%, 1);--t295:hsla(0, 0%, 71%, 1);--t296:hsla(0, 0%, 93%, 0);--t297:hsla(0, 0%, 93%, 0.2);--t298:hsla(0, 0%, 93%, 0.4);--t299:hsla(0, 0%, 93%, 0.6);--t300:hsla(0, 0%, 93%, 0.8);--t301:hsla(0, 0%, 93%, 0.1);--t302:hsla(0, 0%, 93%, 0.075);--t303:hsla(0, 0%, 93%, 0.05);--t304:hsla(0, 0%, 93%, 0.025);--t305:hsla(0, 0%, 93%, 0.02);--t306:hsla(0, 0%, 93%, 0.01);--t307:hsla(0, 0%, 10%, 0.1);--t308:hsla(0, 0%, 10%, 0.075);--t309:hsla(0, 0%, 10%, 0.05);--t310:hsla(0, 0%, 10%, 0.025);--t311:hsla(0, 0%, 10%, 0.02);--t312:hsla(0, 0%, 10%, 0.01);--t313:hsla(0, 0%, 7%, 0.2);--t314:hsla(0, 0%, 7%, 0.4);--t315:hsla(0, 0%, 7%, 0.6);--t316:hsla(0, 0%, 7%, 0.8);--t317:hsla(154, 20%, 7%, 0);--t318:hsla(153, 20%, 9%, 0.2);--t319:hsla(153, 20%, 9%, 0.4);--t320:hsla(153, 20%, 9%, 0.6);--t321:hsla(153, 20%, 9%, 0.8);--t322:hsla(154, 20%, 7%, 1);--t323:hsla(153, 20%, 9%, 1);--t324:hsla(152, 41%, 13%, 1);--t325:hsla(154, 55%, 15%, 1);--t326:hsla(154, 52%, 19%, 1);--t327:hsla(153, 46%, 23%, 1);--t328:hsla(152, 44%, 28%, 1);--t329:hsla(151, 45%, 34%, 1);--t330:hsla(151, 55%, 42%, 1);--t331:hsla(151, 55%, 45%, 1);--t332:hsla(151, 65%, 54%, 1);--t333:hsla(144, 70%, 82%, 1);--t334:hsla(144, 70%, 82%, 0);--t335:hsla(144, 70%, 82%, 0.2);--t336:hsla(144, 70%, 82%, 0.4);--t337:hsla(144, 70%, 82%, 0.6);--t338:hsla(144, 70%, 82%, 0.8);--t339:hsla(144, 70%, 82%, 0.1);--t340:hsla(144, 70%, 82%, 0.075);--t341:hsla(144, 70%, 82%, 0.05);--t342:hsla(144, 70%, 82%, 0.025);--t343:hsla(144, 70%, 82%, 0.02);--t344:hsla(144, 70%, 82%, 0.01);--t345:hsla(153, 20%, 9%, 0.1);--t346:hsla(153, 20%, 9%, 0.075);--t347:hsla(153, 20%, 9%, 0.05);--t348:hsla(153, 20%, 9%, 0.025);--t349:hsla(153, 20%, 9%, 0.02);--t350:hsla(153, 20%, 9%, 0.01);--t351:hsla(154, 20%, 7%, 0.2);--t352:hsla(154, 20%, 7%, 0.4);--t353:hsla(154, 20%, 7%, 0.6);--t354:hsla(154, 20%, 7%, 0.8);--t355:hsla(0, 0%, 68%, 0);--t356:hsla(0, 0%, 65%, 0.2);--t357:hsla(0, 0%, 65%, 0.4);--t358:hsla(0, 0%, 65%, 0.6);--t359:hsla(0, 0%, 65%, 0.8);--t360:hsla(0, 0%, 68%, 1);--t361:hsla(0, 0%, 65%, 1);--t362:hsla(0, 0%, 62%, 1);--t363:hsla(0, 0%, 56%, 1);--t364:hsla(0, 0%, 53%, 1);--t365:hsla(0, 0%, 50%, 1);--t366:hsla(0, 0%, 44%, 1);--t367:hsla(0, 0%, 41%, 1);--t368:hsla(0, 0%, 32%, 1);--t369:hsla(0, 0%, 32%, 0);--t370:hsla(0, 0%, 32%, 0.2);--t371:hsla(0, 0%, 32%, 0.4);--t372:hsla(0, 0%, 32%, 0.6);--t373:hsla(0, 0%, 32%, 0.8);--t374:hsla(0, 0%, 32%, 0.1);--t375:hsla(0, 0%, 32%, 0.075);--t376:hsla(0, 0%, 32%, 0.05);--t377:hsla(0, 0%, 32%, 0.025);--t378:hsla(0, 0%, 32%, 0.02);--t379:hsla(0, 0%, 32%, 0.01);--t380:hsla(0, 0%, 65%, 0.1);--t381:hsla(0, 0%, 65%, 0.075);--t382:hsla(0, 0%, 65%, 0.05);--t383:hsla(0, 0%, 65%, 0.025);--t384:hsla(0, 0%, 65%, 0.02);--t385:hsla(0, 0%, 65%, 0.01);--t386:hsla(0, 0%, 68%, 0.2);--t387:hsla(0, 0%, 68%, 0.4);--t388:hsla(0, 0%, 68%, 0.6);--t389:hsla(0, 0%, 68%, 0.8);--t390:hsla(23, 22%, 7%, 0);--t391:hsla(28, 33%, 9%, 0.2);--t392:hsla(28, 33%, 9%, 0.4);--t393:hsla(28, 33%, 9%, 0.6);--t394:hsla(28, 33%, 9%, 0.8);--t395:hsla(27, 24%, 7%, 1);--t396:hsla(28, 33%, 9%, 1);--t397:hsla(29, 65%, 12%, 1);--t398:hsla(28, 100%, 14%, 1);--t399:hsla(28, 100%, 17%, 1);--t400:hsla(27, 79%, 22%, 1);--t401:hsla(25, 63%, 30%, 1);--t402:hsla(23, 60%, 40%, 1);--t403:hsla(23, 93%, 53%, 1);--t404:hsla(26, 100%, 56%, 1);--t405:hsla(26, 100%, 67%, 1);--t406:hsla(30, 100%, 88%, 1);--t407:hsla(30, 100%, 88%, 0);--t408:hsla(30, 100%, 88%, 0.2);--t409:hsla(30, 100%, 88%, 0.4);--t410:hsla(30, 100%, 88%, 0.6);--t411:hsla(30, 100%, 88%, 0.8);--t412:hsla(30, 100%, 88%, 0.1);--t413:hsla(30, 100%, 88%, 0.075);--t414:hsla(30, 100%, 88%, 0.05);--t415:hsla(30, 100%, 88%, 0.025);--t416:hsla(30, 100%, 88%, 0.02);--t417:hsla(30, 100%, 88%, 0.01);--t418:hsla(28, 33%, 9%, 0.1);--t419:hsla(28, 33%, 9%, 0.075);--t420:hsla(28, 33%, 9%, 0.05);--t421:hsla(28, 33%, 9%, 0.025);--t422:hsla(28, 33%, 9%, 0.02);--t423:hsla(28, 33%, 9%, 0.01);--t424:hsla(23, 22%, 7%, 0.2);--t425:hsla(23, 22%, 7%, 0.4);--t426:hsla(23, 22%, 7%, 0.6);--t427:hsla(23, 22%, 7%, 0.8);--t428:hsla(317, 17%, 8%, 0);--t429:hsla(316, 29%, 10%, 0.2);--t430:hsla(316, 29%, 10%, 0.4);--t431:hsla(316, 29%, 10%, 0.6);--t432:hsla(316, 29%, 10%, 0.8);--t433:hsla(315, 19%, 8%, 1);--t434:hsla(316, 29%, 10%, 1);--t435:hsla(315, 41%, 15%, 1);--t436:hsla(315, 58%, 19%, 1);--t437:hsla(318, 52%, 23%, 1);--t438:hsla(319, 44%, 29%, 1);--t439:hsla(321, 40%, 37%, 1);--t440:hsla(322, 40%, 47%, 1);--t441:hsla(322, 65%, 55%, 1);--t442:hsla(323, 68%, 59%, 1);--t443:hsla(327, 100%, 78%, 1);--t444:hsla(326, 92%, 91%, 1);--t445:hsla(326, 91%, 91%, 0);--t446:hsla(326, 91%, 91%, 0.2);--t447:hsla(326, 91%, 91%, 0.4);--t448:hsla(326, 91%, 91%, 0.6);--t449:hsla(326, 91%, 91%, 0.8);--t450:hsla(326, 91%, 91%, 0.1);--t451:hsla(326, 91%, 91%, 0.075);--t452:hsla(326, 91%, 91%, 0.05);--t453:hsla(326, 91%, 91%, 0.025);--t454:hsla(326, 91%, 91%, 0.02);--t455:hsla(326, 91%, 91%, 0.01);--t456:hsla(316, 29%, 10%, 0.1);--t457:hsla(316, 29%, 10%, 0.075);--t458:hsla(316, 29%, 10%, 0.05);--t459:hsla(316, 29%, 10%, 0.025);--t460:hsla(316, 29%, 10%, 0.02);--t461:hsla(316, 29%, 10%, 0.01);--t462:hsla(317, 17%, 8%, 0.2);--t463:hsla(317, 17%, 8%, 0.4);--t464:hsla(317, 17%, 8%, 0.6);--t465:hsla(317, 17%, 8%, 0.8);--t466:hsla(282, 22%, 9%, 0);--t467:hsla(279, 25%, 11%, 0.2);--t468:hsla(279, 25%, 11%, 0.4);--t469:hsla(279, 25%, 11%, 0.6);--t470:hsla(279, 25%, 11%, 0.8);--t471:hsla(282, 23%, 9%, 1);--t472:hsla(279, 25%, 11%, 1);--t473:hsla(279, 36%, 17%, 1);--t474:hsla(277, 39%, 22%, 1);--t475:hsla(276, 38%, 26%, 1);--t476:hsla(275, 35%, 31%, 1);--t477:hsla(274, 33%, 38%, 1);--t478:hsla(273, 33%, 50%, 1);--t479:hsla(272, 51%, 54%, 1);--t480:hsla(272, 55%, 59%, 1);--t481:hsla(272, 100%, 81%, 1);--t482:hsla(275, 77%, 92%, 1);--t483:hsla(275, 76%, 92%, 0);--t484:hsla(275, 76%, 92%, 0.2);--t485:hsla(275, 76%, 92%, 0.4);--t486:hsla(275, 76%, 92%, 0.6);--t487:hsla(275, 76%, 92%, 0.8);--t488:hsla(275, 76%, 92%, 0.1);--t489:hsla(275, 76%, 92%, 0.075);--t490:hsla(275, 76%, 92%, 0.05);--t491:hsla(275, 76%, 92%, 0.025);--t492:hsla(275, 76%, 92%, 0.02);--t493:hsla(275, 76%, 92%, 0.01);--t494:hsla(279, 25%, 11%, 0.1);--t495:hsla(279, 25%, 11%, 0.075);--t496:hsla(279, 25%, 11%, 0.05);--t497:hsla(279, 25%, 11%, 0.025);--t498:hsla(279, 25%, 11%, 0.02);--t499:hsla(279, 25%, 11%, 0.01);--t500:hsla(282, 22%, 9%, 0.2);--t501:hsla(282, 22%, 9%, 0.4);--t502:hsla(282, 22%, 9%, 0.6);--t503:hsla(282, 22%, 9%, 0.8);--t504:hsla(0, 17%, 8%, 0);--t505:hsla(355, 25%, 10%, 0.2);--t506:hsla(355, 25%, 10%, 0.4);--t507:hsla(355, 25%, 10%, 0.6);--t508:hsla(355, 25%, 10%, 0.8);--t509:hsla(0, 19%, 8%, 1);--t510:hsla(355, 25%, 10%, 1);--t511:hsla(350, 53%, 15%, 1);--t512:hsla(348, 68%, 19%, 1);--t513:hsla(350, 63%, 23%, 1);--t514:hsla(352, 53%, 29%, 1);--t515:hsla(355, 47%, 37%, 1);--t516:hsla(358, 45%, 49%, 1);--t517:hsla(358, 75%, 59%, 1);--t518:hsla(360, 79%, 65%, 1);--t519:hsla(2, 100%, 79%, 1);--t520:hsla(350, 100%, 91%, 1);--t521:hsla(350, 100%, 91%, 0);--t522:hsla(350, 100%, 91%, 0.2);--t523:hsla(350, 100%, 91%, 0.4);--t524:hsla(350, 100%, 91%, 0.6);--t525:hsla(350, 100%, 91%, 0.8);--t526:hsla(350, 100%, 91%, 0.1);--t527:hsla(350, 100%, 91%, 0.075);--t528:hsla(350, 100%, 91%, 0.05);--t529:hsla(350, 100%, 91%, 0.025);--t530:hsla(350, 100%, 91%, 0.02);--t531:hsla(350, 100%, 91%, 0.01);--t532:hsla(355, 25%, 10%, 0.1);--t533:hsla(355, 25%, 10%, 0.075);--t534:hsla(355, 25%, 10%, 0.05);--t535:hsla(355, 25%, 10%, 0.025);--t536:hsla(355, 25%, 10%, 0.02);--t537:hsla(355, 25%, 10%, 0.01);--t538:hsla(0, 17%, 8%, 0.2);--t539:hsla(0, 17%, 8%, 0.4);--t540:hsla(0, 17%, 8%, 0.6);--t541:hsla(0, 17%, 8%, 0.8);--t542:hsla(173, 22%, 7%, 0);--t543:hsla(175, 24%, 9%, 0.2);--t544:hsla(175, 24%, 9%, 0.4);--t545:hsla(175, 24%, 9%, 0.6);--t546:hsla(175, 24%, 9%, 0.8);--t547:hsla(173, 24%, 7%, 1);--t548:hsla(175, 24%, 9%, 1);--t549:hsla(174, 55%, 11%, 1);--t550:hsla(176, 93%, 12%, 1);--t551:hsla(175, 80%, 16%, 1);--t552:hsla(174, 63%, 21%, 1);--t553:hsla(174, 58%, 26%, 1);--t554:hsla(173, 59%, 31%, 1);--t555:hsla(173, 80%, 36%, 1);--t556:hsla(172, 85%, 38%, 1);--t557:hsla(170, 90%, 45%, 1);--t558:hsla(163, 69%, 81%, 1);--t559:hsla(163, 69%, 81%, 0);--t560:hsla(163, 69%, 81%, 0.2);--t561:hsla(163, 69%, 81%, 0.4);--t562:hsla(163, 69%, 81%, 0.6);--t563:hsla(163, 69%, 81%, 0.8);--t564:hsla(163, 69%, 81%, 0.1);--t565:hsla(163, 69%, 81%, 0.075);--t566:hsla(163, 69%, 81%, 0.05);--t567:hsla(163, 69%, 81%, 0.025);--t568:hsla(163, 69%, 81%, 0.02);--t569:hsla(163, 69%, 81%, 0.01);--t570:hsla(175, 24%, 9%, 0.1);--t571:hsla(175, 24%, 9%, 0.075);--t572:hsla(175, 24%, 9%, 0.05);--t573:hsla(175, 24%, 9%, 0.025);--t574:hsla(175, 24%, 9%, 0.02);--t575:hsla(175, 24%, 9%, 0.01);--t576:hsla(173, 22%, 7%, 0.2);--t577:hsla(173, 22%, 7%, 0.4);--t578:hsla(173, 22%, 7%, 0.6);--t579:hsla(173, 22%, 7%, 0.8);--t580:hsla(47, 29%, 6%, 0);--t581:hsla(45, 29%, 8%, 0.2);--t582:hsla(45, 29%, 8%, 0.4);--t583:hsla(45, 29%, 8%, 0.6);--t584:hsla(45, 29%, 8%, 0.8);--t585:hsla(47, 29%, 6%, 1);--t586:hsla(45, 29%, 8%, 1);--t587:hsla(45, 80%, 10%, 1);--t588:hsla(48, 100%, 11%, 1);--t589:hsla(47, 100%, 13%, 1);--t590:hsla(48, 95%, 16%, 1);--t591:hsla(46, 63%, 25%, 1);--t592:hsla(45, 60%, 32%, 1);--t593:hsla(53, 100%, 58%, 1);--t594:hsla(60, 100%, 67%, 1);--t595:hsla(53, 90%, 62%, 1);--t596:hsla(53, 79%, 84%, 1);--t597:hsla(53, 78%, 84%, 0);--t598:hsla(53, 78%, 84%, 0.2);--t599:hsla(53, 78%, 84%, 0.4);--t600:hsla(53, 78%, 84%, 0.6);--t601:hsla(53, 78%, 84%, 0.8);--t602:hsla(53, 78%, 84%, 0.1);--t603:hsla(53, 78%, 84%, 0.075);--t604:hsla(53, 78%, 84%, 0.05);--t605:hsla(53, 78%, 84%, 0.025);--t606:hsla(53, 78%, 84%, 0.02);--t607:hsla(53, 78%, 84%, 0.01);--t608:hsla(45, 29%, 8%, 0.1);--t609:hsla(45, 29%, 8%, 0.075);--t610:hsla(45, 29%, 8%, 0.05);--t611:hsla(45, 29%, 8%, 0.025);--t612:hsla(45, 29%, 8%, 0.02);--t613:hsla(45, 29%, 8%, 0.01);--t614:hsla(47, 29%, 6%, 0.2);--t615:hsla(47, 29%, 6%, 0.4);--t616:hsla(47, 29%, 6%, 0.6);--t617:hsla(47, 29%, 6%, 0.8);--t618:var(--accent, rgb(0 0 0 / .12));--t619:var(--accent-foreground, #0a0a0a);--t620:var(--surface-1, rgb(0 0 0 / .03));--t621:var(--surface-2, rgb(0 0 0 / .06));--t622:var(--border, rgb(0 0 0 / .10));--t623:var(--surface-3, rgb(0 0 0 / .12));--t624:var(--foreground, #0a0a0a);--t625:#f7f7f7;--t626:var(--text-tertiary, rgb(10 10 10 / .55));--t627:rgba(0,0,0,0.04);--t628:rgba(0,0,0,0.08);--t629:rgba(0,0,0,0.12);--t630:rgba(0,0,0,0.22);--t631:rgba(0,0,0,0.44);--t632:rgba(0,0,0,0.75);--t633:rgba(255,255,255,0.05);--t634:rgba(255,255,255,0.15);--t635:rgba(255,255,255,0.55);--t636:rgba(255,255,255,0.7);--t637:#fcfcfc;--t638:#f9f9f9;--t639:#f0f0f0;--t640:#e8e8e8;--t641:#e0e0e0;--t642:#d9d9d9;--t643:#cecece;--t644:#bbbbbb;--t645:#8d8d8d;--t646:#838383;--t647:#646464;--t648:#202020;--t649:#fbfdff;--t650:#f4faff;--t651:#e6f4fe;--t652:#d5efff;--t653:#c2e5ff;--t654:#acd8fc;--t655:#8ec8f6;--t656:#5eb1ef;--t657:#0588f0;--t658:#0d74ce;--t659:#113264;--t660:#fffcfc;--t661:#fff7f7;--t662:#feebec;--t663:#ffdbdc;--t664:#ffcdce;--t665:#fdbdbe;--t666:#f4a9aa;--t667:#eb8e90;--t668:#dc3e42;--t669:#ce2c31;--t670:#641723;--t671:#fdfdf9;--t672:#fefce9;--t673:#fffab8;--t674:#fff394;--t675:#ffe770;--t676:#f3d768;--t677:#e4c767;--t678:#d5ae39;--t679:#ffdc00;--t680:#9e6c00;--t681:#473b1f;--t682:#fbfefc;--t683:#f4fbf6;--t684:#e6f6eb;--t685:#d6f1df;--t686:#c4e8d1;--t687:#adddc0;--t688:#8eceaa;--t689:#5bb98b;--t690:#2b9a66;--t691:#218358;--t692:#193b2d;--t693:#fefcfb;--t694:#fff7ed;--t695:#ffefd6;--t696:#ffdfb5;--t697:#ffd19a;--t698:#ffc182;--t699:#f5ae73;--t700:#ec9455;--t701:#ef5f00;--t702:#cc4e00;--t703:#582d1d;--t704:#fffcfe;--t705:#fef7fb;--t706:#fee9f5;--t707:#fbdcef;--t708:#f6cee7;--t709:#efbfdd;--t710:#e7acd0;--t711:#dd93c2;--t712:#cf3897;--t713:#c2298a;--t714:#651249;--t715:#fefcfe;--t716:#fbf7fe;--t717:#f7edfe;--t718:#f2e2fc;--t719:#ead5f9;--t720:#e0c4f4;--t721:#d1afec;--t722:#be93e4;--t723:#8347b9;--t724:#8145b5;--t725:#402060;--t726:#fafefd;--t727:#f3fbf9;--t728:#e0f8f3;--t729:#ccf3ea;--t730:#b8eae0;--t731:#a1ded2;--t732:#83cdc1;--t733:#53b9ab;--t734:#0d9b8a;--t735:#008573;--t736:#0d3d38;--t737:var(--ring, rgb(0 0 0 / .5));--t738:hsla(216, 100%, 99%, 0);--t739:hsla(207, 100%, 98%, 0.2);--t740:hsla(207, 100%, 98%, 0.4);--t741:hsla(207, 100%, 98%, 0.6);--t742:hsla(207, 100%, 98%, 0.8);--t743:hsla(210, 100%, 99%, 1);--t744:hsla(207, 100%, 98%, 1);--t745:hsla(205, 92%, 95%, 1);--t746:hsla(203, 100%, 92%, 1);--t747:hsla(206, 100%, 88%, 1);--t748:hsla(207, 93%, 83%, 1);--t749:hsla(207, 85%, 76%, 1);--t750:hsla(206, 82%, 65%, 1);--t751:hsla(207, 96%, 48%, 1);--t752:hsla(208, 88%, 43%, 1);--t753:hsla(216, 71%, 23%, 1);--t754:hsla(216, 71%, 23%, 0);--t755:hsla(216, 71%, 23%, 0.2);--t756:hsla(216, 71%, 23%, 0.4);--t757:hsla(216, 71%, 23%, 0.6);--t758:hsla(216, 71%, 23%, 0.8);--t759:hsla(216, 71%, 23%, 0.1);--t760:hsla(216, 71%, 23%, 0.075);--t761:hsla(216, 71%, 23%, 0.05);--t762:hsla(216, 71%, 23%, 0.025);--t763:hsla(216, 71%, 23%, 0.02);--t764:hsla(216, 71%, 23%, 0.01);--t765:hsla(207, 100%, 98%, 0.1);--t766:hsla(207, 100%, 98%, 0.075);--t767:hsla(207, 100%, 98%, 0.05);--t768:hsla(207, 100%, 98%, 0.025);--t769:hsla(207, 100%, 98%, 0.02);--t770:hsla(207, 100%, 98%, 0.01);--t771:hsla(216, 100%, 99%, 0.2);--t772:hsla(216, 100%, 99%, 0.4);--t773:hsla(216, 100%, 99%, 0.6);--t774:hsla(216, 100%, 99%, 0.8);--t775:hsla(0, 0%, 99%, 0);--t776:hsla(0, 0%, 98%, 0.2);--t777:hsla(0, 0%, 98%, 0.4);--t778:hsla(0, 0%, 98%, 0.6);--t779:hsla(0, 0%, 98%, 0.8);--t780:hsla(0, 0%, 99%, 1);--t781:hsla(0, 0%, 98%, 1);--t782:hsla(0, 0%, 94%, 1);--t783:hsla(0, 0%, 91%, 1);--t784:hsla(0, 0%, 88%, 1);--t785:hsla(0, 0%, 81%, 1);--t786:hsla(0, 0%, 73%, 1);--t787:hsla(0, 0%, 55%, 1);--t788:hsla(0, 0%, 51%, 1);--t789:hsla(0, 0%, 39%, 1);--t790:hsla(0, 0%, 13%, 0);--t791:hsla(0, 0%, 13%, 0.2);--t792:hsla(0, 0%, 13%, 0.4);--t793:hsla(0, 0%, 13%, 0.6);--t794:hsla(0, 0%, 13%, 0.8);--t795:hsla(0, 0%, 13%, 0.1);--t796:hsla(0, 0%, 13%, 0.075);--t797:hsla(0, 0%, 13%, 0.05);--t798:hsla(0, 0%, 13%, 0.025);--t799:hsla(0, 0%, 13%, 0.02);--t800:hsla(0, 0%, 13%, 0.01);--t801:hsla(0, 0%, 98%, 0.1);--t802:hsla(0, 0%, 98%, 0.075);--t803:hsla(0, 0%, 98%, 0.05);--t804:hsla(0, 0%, 98%, 0.025);--t805:hsla(0, 0%, 98%, 0.02);--t806:hsla(0, 0%, 98%, 0.01);--t807:hsla(0, 0%, 99%, 0.2);--t808:hsla(0, 0%, 99%, 0.4);--t809:hsla(0, 0%, 99%, 0.6);--t810:hsla(0, 0%, 99%, 0.8);--t811:hsla(140, 60%, 99%, 0);--t812:hsla(137, 47%, 97%, 0.2);--t813:hsla(137, 47%, 97%, 0.4);--t814:hsla(137, 47%, 97%, 0.6);--t815:hsla(137, 47%, 97%, 0.8);--t816:hsla(140, 60%, 99%, 1);--t817:hsla(137, 47%, 97%, 1);--t818:hsla(139, 47%, 93%, 1);--t819:hsla(140, 49%, 89%, 1);--t820:hsla(142, 44%, 84%, 1);--t821:hsla(144, 41%, 77%, 1);--t822:hsla(146, 40%, 68%, 1);--t823:hsla(151, 40%, 54%, 1);--t824:hsla(152, 56%, 39%, 1);--t825:hsla(154, 60%, 32%, 1);--t826:hsla(155, 40%, 16%, 1);--t827:hsla(156, 41%, 16%, 0);--t828:hsla(156, 41%, 16%, 0.2);--t829:hsla(156, 41%, 16%, 0.4);--t830:hsla(156, 41%, 16%, 0.6);--t831:hsla(156, 41%, 16%, 0.8);--t832:hsla(156, 41%, 16%, 0.1);--t833:hsla(156, 41%, 16%, 0.075);--t834:hsla(156, 41%, 16%, 0.05);--t835:hsla(156, 41%, 16%, 0.025);--t836:hsla(156, 41%, 16%, 0.02);--t837:hsla(156, 41%, 16%, 0.01);--t838:hsla(137, 47%, 97%, 0.1);--t839:hsla(137, 47%, 97%, 0.075);--t840:hsla(137, 47%, 97%, 0.05);--t841:hsla(137, 47%, 97%, 0.025);--t842:hsla(137, 47%, 97%, 0.02);--t843:hsla(137, 47%, 97%, 0.01);--t844:hsla(140, 60%, 99%, 0.2);--t845:hsla(140, 60%, 99%, 0.4);--t846:hsla(140, 60%, 99%, 0.6);--t847:hsla(140, 60%, 99%, 0.8);--t848:hsla(20, 60%, 99%, 0);--t849:hsla(33, 100%, 96%, 0.2);--t850:hsla(33, 100%, 96%, 0.4);--t851:hsla(33, 100%, 96%, 0.6);--t852:hsla(33, 100%, 96%, 0.8);--t853:hsla(20, 60%, 99%, 1);--t854:hsla(33, 100%, 96%, 1);--t855:hsla(37, 100%, 92%, 1);--t856:hsla(34, 100%, 85%, 1);--t857:hsla(33, 100%, 80%, 1);--t858:hsla(30, 100%, 75%, 1);--t859:hsla(27, 87%, 71%, 1);--t860:hsla(25, 80%, 63%, 1);--t861:hsla(24, 100%, 47%, 1);--t862:hsla(23, 100%, 40%, 1);--t863:hsla(16, 50%, 23%, 1);--t864:hsla(16, 50%, 23%, 0);--t865:hsla(16, 50%, 23%, 0.2);--t866:hsla(16, 50%, 23%, 0.4);--t867:hsla(16, 50%, 23%, 0.6);--t868:hsla(16, 50%, 23%, 0.8);--t869:hsla(16, 50%, 23%, 0.1);--t870:hsla(16, 50%, 23%, 0.075);--t871:hsla(16, 50%, 23%, 0.05);--t872:hsla(16, 50%, 23%, 0.025);--t873:hsla(16, 50%, 23%, 0.02);--t874:hsla(16, 50%, 23%, 0.01);--t875:hsla(33, 100%, 96%, 0.1);--t876:hsla(33, 100%, 96%, 0.075);--t877:hsla(33, 100%, 96%, 0.05);--t878:hsla(33, 100%, 96%, 0.025);--t879:hsla(33, 100%, 96%, 0.02);--t880:hsla(33, 100%, 96%, 0.01);--t881:hsla(20, 60%, 99%, 0.2);--t882:hsla(20, 60%, 99%, 0.4);--t883:hsla(20, 60%, 99%, 0.6);--t884:hsla(20, 60%, 99%, 0.8);--t885:hsla(324, 100%, 99%, 0);--t886:hsla(326, 78%, 98%, 0.2);--t887:hsla(326, 78%, 98%, 0.4);--t888:hsla(326, 78%, 98%, 0.6);--t889:hsla(326, 78%, 98%, 0.8);--t890:hsla(320, 100%, 99%, 1);--t891:hsla(326, 78%, 98%, 1);--t892:hsla(326, 91%, 95%, 1);--t893:hsla(323, 79%, 92%, 1);--t894:hsla(323, 69%, 89%, 1);--t895:hsla(323, 60%, 84%, 1);--t896:hsla(323, 55%, 79%, 1);--t897:hsla(322, 52%, 72%, 1);--t898:hsla(322, 61%, 52%, 1);--t899:hsla(322, 65%, 46%, 1);--t900:hsla(320, 70%, 23%, 1);--t901:hsla(320, 69%, 23%, 0);--t902:hsla(320, 69%, 23%, 0.2);--t903:hsla(320, 69%, 23%, 0.4);--t904:hsla(320, 69%, 23%, 0.6);--t905:hsla(320, 69%, 23%, 0.8);--t906:hsla(320, 69%, 23%, 0.1);--t907:hsla(320, 69%, 23%, 0.075);--t908:hsla(320, 69%, 23%, 0.05);--t909:hsla(320, 69%, 23%, 0.025);--t910:hsla(320, 69%, 23%, 0.02);--t911:hsla(320, 69%, 23%, 0.01);--t912:hsla(326, 78%, 98%, 0.1);--t913:hsla(326, 78%, 98%, 0.075);--t914:hsla(326, 78%, 98%, 0.05);--t915:hsla(326, 78%, 98%, 0.025);--t916:hsla(326, 78%, 98%, 0.02);--t917:hsla(326, 78%, 98%, 0.01);--t918:hsla(324, 100%, 99%, 0.2);--t919:hsla(324, 100%, 99%, 0.4);--t920:hsla(324, 100%, 99%, 0.6);--t921:hsla(324, 100%, 99%, 0.8);--t922:hsla(300, 60%, 99%, 0);--t923:hsla(274, 78%, 98%, 0.2);--t924:hsla(274, 78%, 98%, 0.4);--t925:hsla(274, 78%, 98%, 0.6);--t926:hsla(274, 78%, 98%, 0.8);--t927:hsla(300, 50%, 99%, 1);--t928:hsla(274, 78%, 98%, 1);--t929:hsla(275, 89%, 96%, 1);--t930:hsla(277, 81%, 94%, 1);--t931:hsla(275, 75%, 91%, 1);--t932:hsla(275, 69%, 86%, 1);--t933:hsla(273, 62%, 81%, 1);--t934:hsla(272, 60%, 74%, 1);--t935:hsla(272, 45%, 50%, 1);--t936:hsla(272, 45%, 49%, 1);--t937:hsla(270, 50%, 25%, 1);--t938:hsla(270, 50%, 25%, 0);--t939:hsla(270, 50%, 25%, 0.2);--t940:hsla(270, 50%, 25%, 0.4);--t941:hsla(270, 50%, 25%, 0.6);--t942:hsla(270, 50%, 25%, 0.8);--t943:hsla(270, 50%, 25%, 0.1);--t944:hsla(270, 50%, 25%, 0.075);--t945:hsla(270, 50%, 25%, 0.05);--t946:hsla(270, 50%, 25%, 0.025);--t947:hsla(270, 50%, 25%, 0.02);--t948:hsla(270, 50%, 25%, 0.01);--t949:hsla(274, 78%, 98%, 0.1);--t950:hsla(274, 78%, 98%, 0.075);--t951:hsla(274, 78%, 98%, 0.05);--t952:hsla(274, 78%, 98%, 0.025);--t953:hsla(274, 78%, 98%, 0.02);--t954:hsla(274, 78%, 98%, 0.01);--t955:hsla(300, 60%, 99%, 0.2);--t956:hsla(300, 60%, 99%, 0.4);--t957:hsla(300, 60%, 99%, 0.6);--t958:hsla(300, 60%, 99%, 0.8);--t959:hsla(0, 100%, 99%, 0);--t960:hsla(0, 100%, 98%, 0.2);--t961:hsla(0, 100%, 98%, 0.4);--t962:hsla(0, 100%, 98%, 0.6);--t963:hsla(0, 100%, 98%, 0.8);--t964:hsla(0, 100%, 99%, 1);--t965:hsla(0, 100%, 98%, 1);--t966:hsla(357, 90%, 96%, 1);--t967:hsla(358, 100%, 93%, 1);--t968:hsla(359, 100%, 90%, 1);--t969:hsla(359, 94%, 87%, 1);--t970:hsla(359, 77%, 81%, 1);--t971:hsla(359, 70%, 74%, 1);--t972:hsla(358, 69%, 55%, 1);--t973:hsla(358, 65%, 49%, 1);--t974:hsla(351, 63%, 24%, 1);--t975:hsla(351, 63%, 24%, 0);--t976:hsla(351, 63%, 24%, 0.2);--t977:hsla(351, 63%, 24%, 0.4);--t978:hsla(351, 63%, 24%, 0.6);--t979:hsla(351, 63%, 24%, 0.8);--t980:hsla(351, 63%, 24%, 0.1);--t981:hsla(351, 63%, 24%, 0.075);--t982:hsla(351, 63%, 24%, 0.05);--t983:hsla(351, 63%, 24%, 0.025);--t984:hsla(351, 63%, 24%, 0.02);--t985:hsla(351, 63%, 24%, 0.01);--t986:hsla(0, 100%, 98%, 0.1);--t987:hsla(0, 100%, 98%, 0.075);--t988:hsla(0, 100%, 98%, 0.05);--t989:hsla(0, 100%, 98%, 0.025);--t990:hsla(0, 100%, 98%, 0.02);--t991:hsla(0, 100%, 98%, 0.01);--t992:hsla(0, 100%, 99%, 0.2);--t993:hsla(0, 100%, 99%, 0.4);--t994:hsla(0, 100%, 99%, 0.6);--t995:hsla(0, 100%, 99%, 0.8);--t996:hsla(160, 60%, 99%, 0);--t997:hsla(165, 50%, 97%, 0.2);--t998:hsla(165, 50%, 97%, 0.4);--t999:hsla(165, 50%, 97%, 0.6);--t1000:hsla(165, 50%, 97%, 0.8);--t1001:hsla(165, 67%, 99%, 1);--t1002:hsla(165, 50%, 97%, 1);--t1003:hsla(167, 63%, 93%, 1);--t1004:hsla(166, 62%, 88%, 1);--t1005:hsla(168, 54%, 82%, 1);--t1006:hsla(168, 48%, 75%, 1);--t1007:hsla(170, 43%, 66%, 1);--t1008:hsla(172, 42%, 53%, 1);--t1009:hsla(173, 85%, 33%, 1);--t1010:hsla(172, 100%, 26%, 1);--t1011:hsla(174, 65%, 15%, 1);--t1012:hsla(174, 66%, 15%, 0);--t1013:hsla(174, 66%, 15%, 0.2);--t1014:hsla(174, 66%, 15%, 0.4);--t1015:hsla(174, 66%, 15%, 0.6);--t1016:hsla(174, 66%, 15%, 0.8);--t1017:hsla(174, 66%, 15%, 0.1);--t1018:hsla(174, 66%, 15%, 0.075);--t1019:hsla(174, 66%, 15%, 0.05);--t1020:hsla(174, 66%, 15%, 0.025);--t1021:hsla(174, 66%, 15%, 0.02);--t1022:hsla(174, 66%, 15%, 0.01);--t1023:hsla(165, 50%, 97%, 0.1);--t1024:hsla(165, 50%, 97%, 0.075);--t1025:hsla(165, 50%, 97%, 0.05);--t1026:hsla(165, 50%, 97%, 0.025);--t1027:hsla(165, 50%, 97%, 0.02);--t1028:hsla(165, 50%, 97%, 0.01);--t1029:hsla(160, 60%, 99%, 0.2);--t1030:hsla(160, 60%, 99%, 0.4);--t1031:hsla(160, 60%, 99%, 0.6);--t1032:hsla(160, 60%, 99%, 0.8);--t1033:hsla(60, 45%, 98%, 0);--t1034:hsla(54, 91%, 95%, 0.2);--t1035:hsla(54, 91%, 95%, 0.4);--t1036:hsla(54, 91%, 95%, 0.6);--t1037:hsla(54, 91%, 95%, 0.8);--t1038:hsla(60, 50%, 98%, 1);--t1039:hsla(54, 91%, 95%, 1);--t1040:hsla(56, 100%, 86%, 1);--t1041:hsla(53, 100%, 79%, 1);--t1042:hsla(50, 100%, 72%, 1);--t1043:hsla(48, 85%, 68%, 1);--t1044:hsla(46, 70%, 65%, 1);--t1045:hsla(45, 65%, 53%, 1);--t1046:hsla(52, 100%, 50%, 1);--t1047:hsla(41, 100%, 31%, 1);--t1048:hsla(42, 39%, 20%, 1);--t1049:hsla(42, 39%, 20%, 0);--t1050:hsla(42, 39%, 20%, 0.2);--t1051:hsla(42, 39%, 20%, 0.4);--t1052:hsla(42, 39%, 20%, 0.6);--t1053:hsla(42, 39%, 20%, 0.8);--t1054:hsla(42, 39%, 20%, 0.1);--t1055:hsla(42, 39%, 20%, 0.075);--t1056:hsla(42, 39%, 20%, 0.05);--t1057:hsla(42, 39%, 20%, 0.025);--t1058:hsla(42, 39%, 20%, 0.02);--t1059:hsla(42, 39%, 20%, 0.01);--t1060:hsla(54, 91%, 95%, 0.1);--t1061:hsla(54, 91%, 95%, 0.075);--t1062:hsla(54, 91%, 95%, 0.05);--t1063:hsla(54, 91%, 95%, 0.025);--t1064:hsla(54, 91%, 95%, 0.02);--t1065:hsla(54, 91%, 95%, 0.01);--t1066:hsla(60, 45%, 98%, 0.2);--t1067:hsla(60, 45%, 98%, 0.4);--t1068:hsla(60, 45%, 98%, 0.6);--t1069:hsla(60, 45%, 98%, 0.8)}
|
|
2307
2369
|
:root { --c-radius-0:0px; --c-radius-1:calc(6px * var(--radius-scale, 1)); --c-radius-10:9999px; --c-radius-11:9999px; --c-radius-12:9999px; --c-radius-2:calc(6px * var(--radius-scale, 1)); --c-radius-3:calc(8px * var(--radius-scale, 1)); --c-radius-4:calc(8px * var(--radius-scale, 1)); --c-radius-5:calc(12px * var(--radius-scale, 1)); --c-radius-6:calc(12px * var(--radius-scale, 1)); --c-radius-7:calc(12px * var(--radius-scale, 1)); --c-radius-8:calc(12px * var(--radius-scale, 1)); --c-radius-9:calc(12px * var(--radius-scale, 1)); --c-radius-true:calc(8px * var(--radius-scale, 1)); --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
|
|
2308
2370
|
}
|
|
2309
|
-
:root .font_body, :root .t_lang-body-default .font_body { --f-family:var(--font-sans, '
|
|
2371
|
+
:root .font_body, :root .t_lang-body-default .font_body { --f-family:var(--font-sans, 'Zen', 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(22px * var(--type-scale, 1)); --f-lineHeight-8:calc(28px * var(--type-scale, 1)); --f-lineHeight-9:calc(28px * var(--type-scale, 1)); --f-lineHeight-10:calc(34px * var(--type-scale, 1)); --f-lineHeight-11:calc(42px * var(--type-scale, 1)); --f-lineHeight-12:calc(50px * var(--type-scale, 1)); --f-lineHeight-13:calc(58px * var(--type-scale, 1)); --f-lineHeight-14:calc(66px * var(--type-scale, 1)); --f-lineHeight-15:calc(82px * var(--type-scale, 1)); --f-lineHeight-16:calc(98px * 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:-0.025em; --f-letterSpacing-8:-0.025em; --f-letterSpacing-9:-0.025em; --f-letterSpacing-10:-0.025em; --f-letterSpacing-11:-0.025em; --f-letterSpacing-12:-0.025em; --f-letterSpacing-13:-0.025em; --f-letterSpacing-14:-0.025em; --f-letterSpacing-15:-0.025em; --f-letterSpacing-16:-0.025em; --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)
|
|
2310
2372
|
}
|
|
2311
|
-
:root .font_heading, :root .t_lang-heading-default .font_heading { --f-family:var(--font-sans, '
|
|
2373
|
+
:root .font_heading, :root .t_lang-heading-default .font_heading { --f-family:var(--font-sans, 'Zen', 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(22px * var(--type-scale, 1)); --f-lineHeight-8:calc(28px * var(--type-scale, 1)); --f-lineHeight-9:calc(28px * var(--type-scale, 1)); --f-lineHeight-10:calc(34px * var(--type-scale, 1)); --f-lineHeight-11:calc(42px * var(--type-scale, 1)); --f-lineHeight-12:calc(50px * var(--type-scale, 1)); --f-lineHeight-13:calc(58px * var(--type-scale, 1)); --f-lineHeight-14:calc(66px * var(--type-scale, 1)); --f-lineHeight-15:calc(82px * var(--type-scale, 1)); --f-lineHeight-16:calc(98px * var(--type-scale, 1)); --f-lineHeight-true:calc(20px * var(--type-scale, 1)); --f-weight-0:600; --f-weight-1:600; --f-weight-2:600; --f-weight-3:600; --f-weight-4:600; --f-weight-5:600; --f-weight-6:700; --f-weight-7:700; --f-weight-8:700; --f-weight-9:800; --f-weight-10:800; --f-weight-11:800; --f-weight-12:800; --f-weight-13:800; --f-weight-14:800; --f-weight-15:800; --f-weight-16:800; --f-weight-true:800; --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:-0.025em; --f-letterSpacing-8:-0.025em; --f-letterSpacing-9:-0.025em; --f-letterSpacing-10:-0.025em; --f-letterSpacing-11:-0.025em; --f-letterSpacing-12:-0.025em; --f-letterSpacing-13:-0.025em; --f-letterSpacing-14:-0.025em; --f-letterSpacing-15:-0.025em; --f-letterSpacing-16:-0.025em; --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)
|
|
2312
2374
|
}
|
|
2313
|
-
:root .font_mono, :root .t_lang-mono-default .font_mono { --f-family:var(--font-mono, '
|
|
2375
|
+
:root .font_mono, :root .t_lang-mono-default .font_mono { --f-family:var(--font-mono, 'Zen Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace); --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(22px * var(--type-scale, 1)); --f-lineHeight-8:calc(28px * var(--type-scale, 1)); --f-lineHeight-9:calc(28px * var(--type-scale, 1)); --f-lineHeight-10:calc(34px * var(--type-scale, 1)); --f-lineHeight-11:calc(42px * var(--type-scale, 1)); --f-lineHeight-12:calc(50px * var(--type-scale, 1)); --f-lineHeight-13:calc(58px * var(--type-scale, 1)); --f-lineHeight-14:calc(66px * var(--type-scale, 1)); --f-lineHeight-15:calc(82px * var(--type-scale, 1)); --f-lineHeight-16:calc(98px * 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)
|
|
2314
2376
|
}
|
|
2315
2377
|
.font_body, .font_heading, .font_mono, .is_View {font-family: var(--f-family); letter-spacing: var(--f-letterSpacing-true); line-height: var(--f-lineHeight-true); font-weight: var(--f-weight-true)}
|
|
2316
2378
|
:root.t_dark, :root.t_dark , :root.t_light .t_dark , .tm_xxt {--accentBackground:var(--t0);--accentColor:var(--t1);--background0:var(--t2);--background02:var(--t3);--background04:var(--t4);--background06:var(--t5);--background08:var(--t6);--color1:var(--t7);--color2:var(--t8);--color3:var(--t9);--color4:var(--t10);--color5:var(--t11);--color6:var(--t12);--color7:var(--t13);--color8:var(--t14);--color9:var(--t15);--color10:var(--t16);--color11:var(--t17);--color12:var(--t18);--color0:var(--t19);--color02:var(--t20);--color04:var(--t21);--color06:var(--t22);--color08:var(--t23);--color:var(--t18);--colorHover:var(--t23);--colorPress:var(--t24);--colorFocus:var(--t17);--backgroundHover:var(--t26);--backgroundPress:var(--t7);--backgroundFocus:var(--t26);--backgroundActive:var(--t27);--borderColor:var(--t10);--borderColorHover:var(--t28);--borderColorFocus:var(--t29);--borderColorPress:var(--t26);--placeholderColor:var(--t30);--colorTransparent:var(--t19);--black1:var(--t31);--black2:var(--t32);--black3:var(--t33);--black4:var(--t34);--black5:var(--t35);--black6:var(--t36);--black7:var(--t37);--black8:var(--t38);--black9:var(--t39);--black10:var(--t40);--black11:var(--t41);--black12:var(--t42);--white1:var(--t43);--white2:var(--t44);--white3:var(--t45);--white4:var(--t46);--white5:var(--t47);--white6:var(--t48);--white7:var(--t49);--white8:var(--t50);--white9:var(--t51);--white10:var(--t52);--white11:var(--t53);--white12:var(--t54);--white0:var(--t56);--white02:var(--t57);--white04:var(--t58);--white06:var(--t59);--white08:var(--t60);--black0:var(--t62);--black02:var(--t63);--black04:var(--t64);--black06:var(--t65);--black08:var(--t66);--shadow1:var(--t67);--shadow2:var(--t68);--shadow3:var(--t69);--shadow4:var(--t70);--shadow5:var(--t71);--shadow6:var(--t66);--shadow7:var(--t72);--shadow8:var(--t61);--highlight1:var(--t73);--highlight2:var(--t57);--highlight3:var(--t74);--highlight4:var(--t75);--highlight5:var(--t76);--highlight6:var(--t77);--highlight7:var(--t78);--highlight8:var(--t55);--shadowColor:var(--t69);--gray1:var(--t79);--gray2:var(--t33);--gray3:var(--t80);--gray4:var(--t81);--gray5:var(--t82);--gray6:var(--t83);--gray7:var(--t84);--gray8:var(--t85);--gray9:var(--t86);--gray10:var(--t87);--gray11:var(--t88);--gray12:var(--t89);--blue1:var(--t90);--blue2:var(--t91);--blue3:var(--t92);--blue4:var(--t93);--blue5:var(--t94);--blue6:var(--t95);--blue7:var(--t96);--blue8:var(--t97);--blue9:var(--t98);--blue10:var(--t99);--blue11:var(--t100);--blue12:var(--t101);--red1:var(--t102);--red2:var(--t103);--red3:var(--t104);--red4:var(--t105);--red5:var(--t106);--red6:var(--t107);--red7:var(--t108);--red8:var(--t109);--red9:var(--t110);--red10:var(--t111);--red11:var(--t112);--red12:var(--t113);--yellow1:var(--t114);--yellow2:var(--t115);--yellow3:var(--t116);--yellow4:var(--t117);--yellow5:var(--t118);--yellow6:var(--t119);--yellow7:var(--t120);--yellow8:var(--t121);--yellow9:var(--t122);--yellow10:var(--t123);--yellow11:var(--t124);--yellow12:var(--t125);--green1:var(--t126);--green2:var(--t127);--green3:var(--t128);--green4:var(--t129);--green5:var(--t130);--green6:var(--t131);--green7:var(--t132);--green8:var(--t133);--green9:var(--t134);--green10:var(--t135);--green11:var(--t136);--green12:var(--t137);--orange1:var(--t138);--orange2:var(--t139);--orange3:var(--t140);--orange4:var(--t141);--orange5:var(--t142);--orange6:var(--t143);--orange7:var(--t144);--orange8:var(--t145);--orange9:var(--t146);--orange10:var(--t147);--orange11:var(--t148);--orange12:var(--t149);--pink1:var(--t150);--pink2:var(--t151);--pink3:var(--t152);--pink4:var(--t153);--pink5:var(--t154);--pink6:var(--t155);--pink7:var(--t156);--pink8:var(--t157);--pink9:var(--t158);--pink10:var(--t159);--pink11:var(--t160);--pink12:var(--t161);--purple1:var(--t162);--purple2:var(--t163);--purple3:var(--t164);--purple4:var(--t165);--purple5:var(--t166);--purple6:var(--t167);--purple7:var(--t168);--purple8:var(--t169);--purple9:var(--t170);--purple10:var(--t171);--purple11:var(--t172);--purple12:var(--t173);--teal1:var(--t174);--teal2:var(--t175);--teal3:var(--t176);--teal4:var(--t177);--teal5:var(--t178);--teal6:var(--t179);--teal7:var(--t180);--teal8:var(--t181);--teal9:var(--t182);--teal10:var(--t183);--teal11:var(--t184);--teal12:var(--t185);--neutral1:var(--t186);--neutral2:var(--t187);--neutral3:var(--t188);--neutral4:var(--t49);--neutral5:var(--t189);--neutral6:var(--t190);--neutral7:var(--t191);--neutral8:var(--t192);--neutral9:var(--t193);--neutral10:var(--t194);--neutral11:var(--t195);--neutral12:var(--t196);--accent1:var(--t24);--accent2:var(--t197);--accent3:var(--t198);--accent4:var(--t199);--accent5:var(--t17);--accent6:var(--t200);--accent7:var(--t201);--accent8:var(--t202);--accent9:var(--t203);--accent10:var(--t28);--accent11:var(--t29);--accent12:var(--t204);--color01:var(--t205);--color0075:var(--t206);--color005:var(--t207);--color0025:var(--t208);--color002:var(--t209);--color001:var(--t210);--background01:var(--t211);--background0075:var(--t212);--background005:var(--t213);--background0025:var(--t214);--background002:var(--t215);--background001:var(--t216);--outlineColor:var(--t217);--sunken:var(--t7);--panel:var(--t8);--hover:var(--t9);--edge:var(--t10);--raised:var(--t11);--rim:var(--t12);--bound:var(--t13);--dim:var(--t14);--faint:var(--t15);--soft:var(--t16);--quiet:var(--t17);--ink:var(--t18);}
|
package/dist/telemetry.cjs
CHANGED
|
@@ -24,7 +24,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
24
24
|
// That is the whole setup. With no configuration it wires all three planes —
|
|
25
25
|
// errors + session capture (sentry.hanzo.ai), pageviews (analytics.hanzo.ai),
|
|
26
26
|
// and product events incl. analytics_errors (insights.hanzo.ai) — through the
|
|
27
|
-
// ONE
|
|
27
|
+
// ONE entry point, POST api.hanzo.ai/v1/event. Honors DNT/GPC, consent-aware,
|
|
28
28
|
// SSR-safe, fail-soft, no CDN script.
|
|
29
29
|
//
|
|
30
30
|
// Optional peer — only pulled when the subpath is used.
|
package/dist/telemetry.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// That is the whole setup. With no configuration it wires all three planes —
|
|
9
9
|
// errors + session capture (sentry.hanzo.ai), pageviews (analytics.hanzo.ai),
|
|
10
10
|
// and product events incl. analytics_errors (insights.hanzo.ai) — through the
|
|
11
|
-
// ONE
|
|
11
|
+
// ONE entry point, POST api.hanzo.ai/v1/event. Honors DNT/GPC, consent-aware,
|
|
12
12
|
// SSR-safe, fail-soft, no CDN script.
|
|
13
13
|
//
|
|
14
14
|
// Optional peer — only pulled when the subpath is used.
|
package/dist/telemetry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,iEAAiE;AACjE,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;AACtD,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,iEAAiE;AACjE,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;AACtD,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,sCAAsC;AACtC,EAAE;AACF,wDAAwD;AACxD,cAAc,qBAAqB,CAAA"}
|
package/dist/theme.css
CHANGED
|
@@ -838,33 +838,72 @@
|
|
|
838
838
|
}
|
|
839
839
|
|
|
840
840
|
/* ── tokens/fonts.css ─────────────────────────────────────── */
|
|
841
|
-
/*
|
|
841
|
+
/* Zen — the only family on Hanzo surfaces, sans and mono.
|
|
842
842
|
SELF-HOSTED. The faces ship inside this package (assets/fonts/*.woff2, two
|
|
843
|
-
variable files, 141 KB total, SIL OFL-1.1 — see assets/fonts/LICENSE-
|
|
844
|
-
|
|
845
|
-
|
|
843
|
+
variable files, 141 KB total, SIL OFL-1.1 — see assets/fonts/LICENSE-Zen.txt).
|
|
844
|
+
|
|
845
|
+
Zen is our own family, under the SIL Open Font License. The licence file
|
|
846
|
+
beside the binaries carries every copyright the OFL requires; nothing else in
|
|
847
|
+
this repository restates them, which is the whole of what §2 asks for.
|
|
848
|
+
|
|
849
|
+
SHIPPED here rather than @import-ed from `@hanzo/font`, and that is load
|
|
850
|
+
bearing. `@hanzo/ui` composes this file into the MIDDLE of its theme.css, and
|
|
851
|
+
CSS drops an @import that does not precede every other rule — measured, in
|
|
852
|
+
Chromium, on the built sheet: zero faces loaded and not one woff2 requested.
|
|
853
|
+
An @font-face has no such ordering rule, so declaring the faces is the only
|
|
854
|
+
form that survives being flattened into a larger stylesheet. `@hanzo/font`
|
|
855
|
+
remains the one place the faces are AUTHORED; this is a copy of its output,
|
|
856
|
+
the same way the colour tokens are copied rather than fetched.
|
|
857
|
+
|
|
858
|
+
Why self-hosted rather than a third-party CDN:
|
|
846
859
|
- A sign-in page must not make a third-party request. hanzoai/id refused to
|
|
847
860
|
import this file for exactly that reason, which split the token layer: id
|
|
848
861
|
took the colours and not the typeface. Self-hosting removes the reason, so
|
|
849
862
|
every surface can import styles.css unchanged.
|
|
850
|
-
-
|
|
851
|
-
|
|
863
|
+
- It was a render-blocking request to a host we do not control, on the
|
|
864
|
+
critical path of every surface, and it broke offline/air-gapped dev.
|
|
852
865
|
- One variable file per family replaces nine static weights, and it is fewer
|
|
853
|
-
bytes than the CSS-then-woff2 round trip
|
|
866
|
+
bytes than the CSS-then-woff2 round trip.
|
|
854
867
|
|
|
855
868
|
The url()s are relative to THIS file, so they resolve wherever the package is
|
|
856
|
-
mounted — node_modules, a CDN, a copied dist — with no configuration.
|
|
869
|
+
mounted — node_modules, a CDN, a copied dist — with no configuration.
|
|
870
|
+
|
|
871
|
+
`font-display: block`, NOT swap, and the difference is the whole brand. `swap`
|
|
872
|
+
paints the fallback IMMEDIATELY and repaints when the face lands, so every first
|
|
873
|
+
visit shows the platform's own sans for as long as the download takes — on Ubuntu
|
|
874
|
+
that is DejaVu, which looks nothing like us and is the single most common way a
|
|
875
|
+
Hanzo surface renders wrong. `block` holds the text invisible for a short period
|
|
876
|
+
(~3s) and then paints Zen, so the fallback is only ever reached when the face
|
|
877
|
+
genuinely fails to arrive. A held word is a moment; the wrong typeface is the
|
|
878
|
+
brand. The generic tail below stays for exactly that real-failure case. */
|
|
857
879
|
|
|
858
880
|
|
|
859
881
|
|
|
860
882
|
|
|
861
883
|
:root{
|
|
862
|
-
--font-sans:"
|
|
884
|
+
--font-sans:"Zen",ui-sans-serif,system-ui,sans-serif;
|
|
863
885
|
--font-display:var(--font-sans);
|
|
864
|
-
--font-mono:"
|
|
886
|
+
--font-mono:"Zen Mono",ui-monospace,SFMono-Regular,monospace;
|
|
865
887
|
--font-serif:Georgia,serif;
|
|
866
|
-
/*
|
|
867
|
-
|
|
888
|
+
/* The default is Zen as drawn, and that is a decision rather than an omission.
|
|
889
|
+
`base.css` puts this on <body>, so whatever is here is the voice of every
|
|
890
|
+
surface in the estate — which is exactly why it should not carry a brand's.
|
|
891
|
+
|
|
892
|
+
It used to read `"ss01","ss02","cv01","cv02","cv03"`, of which FOUR did
|
|
893
|
+
nothing: Zen has no cv01/cv02/cv03 at all, and ss01 and ss02 both remap `a`,
|
|
894
|
+
so ss01 substitutes first and ss02 never matches the glyph it was written
|
|
895
|
+
for. The one that did work quietly gave Lux and Zoo the single-storey `a`
|
|
896
|
+
that belongs to Hanzo.
|
|
897
|
+
|
|
898
|
+
A brand sets its own voice by overriding THIS token — one knob, one place:
|
|
899
|
+
Hanzo "ss01" single-storey a, the neo-grotesque register
|
|
900
|
+
Lux "ss04" straight-leg R, to sit under the wordmark
|
|
901
|
+
Zoo normal the humanist default, the warmest of the three
|
|
902
|
+
Zen ships eleven sets; ss03 is a tailed l, ss05 a serifed I, ss06 an
|
|
903
|
+
alternate G and ss09 a slashed zero with a serif one. Kerning, ligatures and
|
|
904
|
+
contextual alternates are on by default in every browser and do not belong
|
|
905
|
+
in this list. */
|
|
906
|
+
--font-feature-settings:normal;
|
|
868
907
|
}
|
|
869
908
|
|
|
870
909
|
/* ── tokens/base.css ─────────────────────────────────────── */
|
|
@@ -1087,6 +1126,13 @@
|
|
|
1087
1126
|
:where(*)::-webkit-scrollbar-thumb{background:var(--white-15);border-radius:var(--radius-full)}
|
|
1088
1127
|
:where(*)::-webkit-scrollbar-thumb:hover{background:var(--white-30)}
|
|
1089
1128
|
:where(*)::-webkit-scrollbar-corner{background:transparent}
|
|
1129
|
+
/* The stepper arrows, and they are a LINUX defect specifically. Chromium on
|
|
1130
|
+
macOS draws no buttons, so styling the track and thumb looks finished there
|
|
1131
|
+
and ships a classic GTK scrollbar — a boxed arrow at each end of every
|
|
1132
|
+
scroller, on both axes — to everyone on Ubuntu. Styling the other pseudos
|
|
1133
|
+
does not suppress them; only this does. Zero width AND height because the
|
|
1134
|
+
horizontal and vertical bars each read one of them. */
|
|
1135
|
+
:where(*)::-webkit-scrollbar-button{display:none;width:0;height:0}
|
|
1090
1136
|
.light :where(*)::-webkit-scrollbar-thumb{background:rgb(0 0 0 / .18)}
|
|
1091
1137
|
.light :where(*)::-webkit-scrollbar-thumb:hover{background:rgb(0 0 0 / .32)}
|
|
1092
1138
|
}
|
|
@@ -1105,10 +1151,10 @@
|
|
|
1105
1151
|
*
|
|
1106
1152
|
* Dark-first Hanzo identity: neutral zinc-on-black, calm, high-contrast. Add
|
|
1107
1153
|
* `class="dark"` on <html> for the canonical dark look; `:root` is the light
|
|
1108
|
-
* counterpart. Typography is
|
|
1109
|
-
* through `--font-
|
|
1110
|
-
*
|
|
1111
|
-
*
|
|
1154
|
+
* counterpart. Typography is Zen — our own family, sans for UI/body and mono for
|
|
1155
|
+
* code — bound through `--font-sans` / `--font-mono`. The package SHIPS the
|
|
1156
|
+
* faces, so those resolve with no work from the host; a host that prefers its
|
|
1157
|
+
* own binds `--font-sans-provided`. No Inter, no system-stack default anywhere.
|
|
1112
1158
|
*
|
|
1113
1159
|
* Plain CSS, nothing else: `:root`/`.dark` custom properties plus the base font
|
|
1114
1160
|
* and the touch/elevation rules the components name. The Tailwind v4 `@theme
|
|
@@ -1116,26 +1162,42 @@
|
|
|
1116
1162
|
*/
|
|
1117
1163
|
|
|
1118
1164
|
|
|
1119
|
-
/*
|
|
1120
|
-
|
|
1121
|
-
|
|
1165
|
+
/* The typeface, and the package now BRINGS one.
|
|
1166
|
+
|
|
1167
|
+
`@hanzo/font` ships Zen — our own family, sans and mono, self-hosted woff2 —
|
|
1168
|
+
so the fallback is a face that exists rather than a name that has to be
|
|
1169
|
+
installed. That import is the whole integration: a host still binds
|
|
1170
|
+
`--font-*-provided` to override, and one that binds nothing now gets Zen
|
|
1171
|
+
instead of falling through to the browser's generic.
|
|
1122
1172
|
|
|
1123
1173
|
In a LAYER, and that is the whole reason the sentence above is true. next/font
|
|
1124
1174
|
binds its generated family through a class on <html>, which is `:root`'s own
|
|
1125
|
-
element and `:root`'s own specificity, so unlayered these
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
developer's machine
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1175
|
+
element and `:root`'s own specificity, so unlayered these declarations merely
|
|
1176
|
+
tie with the host's and win on source order — this sheet loads last. The
|
|
1177
|
+
host's binding lost, the variable resolved to a literal family name, and a
|
|
1178
|
+
page rendered in that face only where it happened to be INSTALLED: right on a
|
|
1179
|
+
developer's machine, generic on a visitor's. Measured exactly that way at
|
|
1180
|
+
8.3.0 on ui.hanzo.ai's own surface, with the self-hosted faces loaded and
|
|
1181
|
+
unreferenced. An unlayered declaration beats every layered one whatever the
|
|
1182
|
+
specificity, so layering ours is what makes the host's the one that wins.
|
|
1183
|
+
|
|
1184
|
+
THE TOKEN NAMES THE ROLE, NOT THE FACE. It was `--font-geist-sans`, which
|
|
1185
|
+
named a face rather than the job it does. Naming it `--font-zen-sans` would
|
|
1186
|
+
repeat the mistake with our own brand: the next face makes it a lie again.
|
|
1187
|
+
`--font-sans` is what it has always meant.
|
|
1188
|
+
|
|
1189
|
+
NO @import HERE, and that is measured rather than stylistic. This file is
|
|
1190
|
+
composed into the MIDDLE of the built theme.css, and CSS drops an @import that
|
|
1191
|
+
does not precede every other rule — in Chromium, against the built sheet, a
|
|
1192
|
+
raw <link> loaded ZERO faces and requested not one woff2, while --font-sans
|
|
1193
|
+
resolved to a family nobody ships. The faces come from @hanzo/design's
|
|
1194
|
+
`tokens/fonts.css`, which declares @font-face directly; an @font-face has no
|
|
1195
|
+
ordering rule, so it survives being flattened. */
|
|
1196
|
+
|
|
1135
1197
|
@layer hanzo.font {
|
|
1136
1198
|
:root {
|
|
1137
|
-
--font-
|
|
1138
|
-
--font-
|
|
1199
|
+
--font-sans: var(--font-sans-provided, 'Zen', ui-sans-serif, system-ui, sans-serif);
|
|
1200
|
+
--font-mono: var(--font-mono-provided, 'Zen Mono', ui-monospace, monospace);
|
|
1139
1201
|
}
|
|
1140
1202
|
}
|
|
1141
1203
|
|
|
@@ -1193,15 +1255,15 @@
|
|
|
1193
1255
|
|
|
1194
1256
|
/* Dark-first Hanzo identity — neutral zinc-on-black. */
|
|
1195
1257
|
|
|
1196
|
-
/*
|
|
1197
|
-
|
|
1198
|
-
`font-sans`/`font-mono
|
|
1258
|
+
/* Zen by default — UI/body inherits Zen, code/mono surfaces get Zen Mono.
|
|
1259
|
+
Components never hard-code a family; they inherit this or bind
|
|
1260
|
+
`font-sans`/`font-mono`, which resolve above. */
|
|
1199
1261
|
:where(html, body) {
|
|
1200
|
-
font-family: var(--font-
|
|
1262
|
+
font-family: var(--font-sans), sans-serif;
|
|
1201
1263
|
}
|
|
1202
1264
|
|
|
1203
1265
|
:where(code, kbd, samp, pre) {
|
|
1204
|
-
font-family: var(--font-
|
|
1266
|
+
font-family: var(--font-mono), monospace;
|
|
1205
1267
|
}
|
|
1206
1268
|
|
|
1207
1269
|
/* ── Touch targets ────────────────────────────────────────────────────────────
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "8.3.
|
|
3
|
+
"version": "8.3.3",
|
|
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": {
|
|
@@ -211,7 +211,8 @@
|
|
|
211
211
|
"dependencies": {
|
|
212
212
|
"@hanzo/appearance": "^0.2.2",
|
|
213
213
|
"@hanzo/brand": "^1.4.5",
|
|
214
|
-
"@hanzo/design": "^0.5.
|
|
214
|
+
"@hanzo/design": "^0.5.21",
|
|
215
|
+
"@hanzo/font": "^1.8.2",
|
|
215
216
|
"@hanzo/logo": "^1.0.13",
|
|
216
217
|
"@hanzo/products": "^0.2.0",
|
|
217
218
|
"clsx": "^2.1.1"
|