@tuuject/koi-tokens 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +39 -2
- package/dist/dimensions.d.ts +150 -0
- package/dist/dimensions.js +154 -0
- package/dist/native.d.ts +374 -0
- package/dist/native.js +380 -0
- package/dist/palette-kit.d.ts +35 -0
- package/dist/palette-kit.js +96 -0
- package/dist/palette.d.ts +779 -0
- package/dist/palette.js +1383 -0
- package/dist/panda-preset.d.ts +4 -0
- package/dist/panda-preset.js +1243 -0
- package/dist/theme-init.js +29 -0
- package/dist/tokens.css +420 -0
- package/fonts/00744f2b0f1e3a0e71521b7f5511b30c.woff2 +0 -0
- package/fonts/00b4ecd1817ecf947ca664b4fce8a4ad.woff2 +0 -0
- package/fonts/020f0fa79f25f5cfa8506d2f431df767.woff2 +0 -0
- package/fonts/03317bcae1fdca87a87769c43fd1ce47.woff2 +0 -0
- package/fonts/06d0a95f1efd8d124a255600ece94494.woff2 +0 -0
- package/fonts/06e7c4ae0fa82b85be634e3c308bf4b3.woff2 +0 -0
- package/fonts/0bad1aeeb4500b6301d8d3b64dcc3c73.woff2 +0 -0
- package/fonts/0d14b3729a41fc911ff13c3e4fe328c7.woff2 +0 -0
- package/fonts/0d6b7caaa1be1467b901364154c917b1.woff2 +0 -0
- package/fonts/0e73696b7f29da06cb67fe062f1b8a0c.woff2 +0 -0
- package/fonts/114edcf282654c7c63c8234c13b4b089.woff2 +0 -0
- package/fonts/1548b3024522036bb36484bbb82345c8.woff2 +0 -0
- package/fonts/17a63a64b5e2aac1dbe08b6b901f8856.woff2 +0 -0
- package/fonts/1f1f99649d10cf4638c162b7f5cd127a.woff2 +0 -0
- package/fonts/23f3a6ad5586406597914ccdfa6485a4.woff2 +0 -0
- package/fonts/242bc3d315aabb2c760c22901a294381.woff2 +0 -0
- package/fonts/28e0c9f4f663c3f04ba89ba81d19a2ad.woff2 +0 -0
- package/fonts/2928810ffc97278ca4fd2b599a1e9b6e.woff2 +0 -0
- package/fonts/2a66ebc75f6b74521f3042801a93ffe2.woff2 +0 -0
- package/fonts/2b46bd327dad644b0411ba6041e2e1cf.woff2 +0 -0
- package/fonts/30b3cf0ad50d03aeef55b669f99da4fa.woff2 +0 -0
- package/fonts/30c37e68fbeb4952e205077a53b7eab9.woff2 +0 -0
- package/fonts/333a4e28420bfab893a59cfa1c39c4b3.woff2 +0 -0
- package/fonts/34735fd05b36eaadb090efd3ba6409fa.woff2 +0 -0
- package/fonts/396b875417270491b2e4d246b980bbc8.woff2 +0 -0
- package/fonts/3a59340ca71997c84885188961d30e72.woff2 +0 -0
- package/fonts/3ab85b02fd30c5efe3dce62b69a7bea9.woff2 +0 -0
- package/fonts/3d54bf645647805f52d0281ed0228833.woff2 +0 -0
- package/fonts/409d74c42bdbae43d406a441af69a95f.woff2 +0 -0
- package/fonts/41050fd57f10e50907fd856f3a08346b.woff2 +0 -0
- package/fonts/418b784f58090a3a36c5dc1c53b62704.woff2 +0 -0
- package/fonts/42b4508a095cde5d8e9d25b07986f95f.woff2 +0 -0
- package/fonts/4409e57103e082215798f5214b4a3637.woff2 +0 -0
- package/fonts/44b889b0db6383d450ba3218ed64e108.woff2 +0 -0
- package/fonts/45f3d6d7263d515d4a2b58ff040fcc48.woff2 +0 -0
- package/fonts/46fe5b1f008721214771f40a4bd9bd72.woff2 +0 -0
- package/fonts/479f65c995cb67ce3a460c697dce9e22.woff2 +0 -0
- package/fonts/486b4a4a84c7578264e1303ecc433b16.woff2 +0 -0
- package/fonts/49b5445e12abe2d3eed431f38cfbb037.woff2 +0 -0
- package/fonts/4c4f826589fc39d61b1919ad8b627f80.woff2 +0 -0
- package/fonts/4cd5c9017bd228aca94124a40497f635.woff2 +0 -0
- package/fonts/4ecec2bf5c75f5ccb280052fb53157db.woff2 +0 -0
- package/fonts/4f0e75d692721110bee70b4e0d71300a.woff2 +0 -0
- package/fonts/518a6f44c506e83d1068d7515b0b8cb7.woff2 +0 -0
- package/fonts/5391ad919de181aa8608e4a0f1bd8c09.woff2 +0 -0
- package/fonts/53fe3ba2954fef70128d6733a90f8601.woff2 +0 -0
- package/fonts/56374bb0572ee6463de3cb83496d3f36.woff2 +0 -0
- package/fonts/574b1e1f154cecf2ac873c7a7544023b.woff2 +0 -0
- package/fonts/5a899d3bb4efd96c8fa0452768a3d456.woff2 +0 -0
- package/fonts/5e11c9b612776d9aee6b2062e3fccb55.woff2 +0 -0
- package/fonts/658767ed025bc501c3013e1f63c86bcb.woff2 +0 -0
- package/fonts/65c499c6e48d6c1b7827d6ff1d1eab60.woff2 +0 -0
- package/fonts/6760e79d75ce409f09427e56e3c025dc.woff2 +0 -0
- package/fonts/67d5234b7c17f407e8a242ce5ada493d.woff2 +0 -0
- package/fonts/6fbfc0af5a7ef4c448e8c1f5f1e91a60.woff2 +0 -0
- package/fonts/709e77d11c679cffc2dc25b032c67764.woff2 +0 -0
- package/fonts/75541edae19d80ac844e3d4a1b0e711a.woff2 +0 -0
- package/fonts/779acde69b4191ed711e89f176fae2d5.woff2 +0 -0
- package/fonts/7ade1c118b1bc97b3971f06048aa1e7a.woff2 +0 -0
- package/fonts/7f1ef4145bf986fb433cf7101594dbb8.woff2 +0 -0
- package/fonts/7ff32e4612a40f0203fe4d2409e515e8.woff2 +0 -0
- package/fonts/82afad3d44e99cbf1fb2a204740d7fd2.woff2 +0 -0
- package/fonts/86d79968a677302ec040c57fdbab6576.woff2 +0 -0
- package/fonts/8779a26aa266a22e886093a4ef65b0bd.woff2 +0 -0
- package/fonts/890aa53ea0c3bb3f35af8d1b17932473.woff2 +0 -0
- package/fonts/8cb1aba653e86d46fa31bf573631acd8.woff2 +0 -0
- package/fonts/8d9c6a762bbdfada274c0207bda44234.woff2 +0 -0
- package/fonts/8e9c72c231c8aa96c5b012f676fb54c3.woff2 +0 -0
- package/fonts/90501be40b3dbe4bb109d3f46dac3c61.woff2 +0 -0
- package/fonts/90e09d4c8c204194c134a583b5c1288b.woff2 +0 -0
- package/fonts/923694b5cdecd8647ba08a59697ab0cc.woff2 +0 -0
- package/fonts/9269e657048e89d04d79f8507e3cf1c3.woff2 +0 -0
- package/fonts/93de4eca97bc343ece70a4eeb03bd4a4.woff2 +0 -0
- package/fonts/98939883b0194fe74f877650c78b94c4.woff2 +0 -0
- package/fonts/993ac31171f7c467735857b80fe3cf7b.woff2 +0 -0
- package/fonts/9ae2fdcb005bd7479a071ecd605c4fd6.woff2 +0 -0
- package/fonts/9b4a1427f1fa323ed77767ee8f3a7321.woff2 +0 -0
- package/fonts/9c62c786a52ff747ef38e9acf9e65498.woff2 +0 -0
- package/fonts/9d53647c2ce0f4a1824203e0c644c41f.woff2 +0 -0
- package/fonts/9e1626f7a444a0a34b87a47d57de3e8b.woff2 +0 -0
- package/fonts/a07cb815b1d6dcee1e531a94d44aacdb.woff2 +0 -0
- package/fonts/a2a0ba09a982eca5baf40d99fd12196d.woff2 +0 -0
- package/fonts/a384403ad6999ff7528f25fff9ebf8cc.woff2 +0 -0
- package/fonts/aa37a3aaae61ab3cd934944af6ee9e10.woff2 +0 -0
- package/fonts/ab7939cba0d4b9d5a3b91073405b5704.woff2 +0 -0
- package/fonts/ad0be591acad4d101daab250ab3f6b13.woff2 +0 -0
- package/fonts/b1690dc0318a2d6ed494c70714c369fb.woff2 +0 -0
- package/fonts/b27ed0031d733b4f92aefe3a0bdad1a3.woff2 +0 -0
- package/fonts/b3a36aae2ce94efc1b33a812b0a63723.woff2 +0 -0
- package/fonts/b408e0a9c403f84d826fedddad4eafce.woff2 +0 -0
- package/fonts/b7552d432bbe1131f8b081a8a304c826.woff2 +0 -0
- package/fonts/b833866d3ed2eaf4157e4297f4db5818.woff2 +0 -0
- package/fonts/b86065dc8cf074e9da64f7cad2418175.woff2 +0 -0
- package/fonts/b90bb4ee23ef9b5e9a729a5a76885d8d.woff2 +0 -0
- package/fonts/bd6bc332a723d00071b7bd73098b1fca.woff2 +0 -0
- package/fonts/c1c4a62366427c476d7505d8d5607d43.woff2 +0 -0
- package/fonts/c37032acc02b2ec9bb82ea7e221a70f0.woff2 +0 -0
- package/fonts/c61c4905f06bdace00a01fee99fe4b4d.woff2 +0 -0
- package/fonts/c9e516ccf548caff87ac46d4a49d8439.woff2 +0 -0
- package/fonts/d29782161ecac8d5da44b6dbd63d98f1.woff2 +0 -0
- package/fonts/d5b155ab8ea80680e3a22b4b54282913.woff2 +0 -0
- package/fonts/d620b1ee2164749fe8d928f722896d1c.woff2 +0 -0
- package/fonts/d89b25cb16ce4004c3ba90531c1886d1.woff2 +0 -0
- package/fonts/d920f76005494dd4a42508a011b5bc7f.woff2 +0 -0
- package/fonts/d945c834b912b4ace6cf283b3731d66c.woff2 +0 -0
- package/fonts/deacad65f91899cb01176de287a9c00c.woff2 +0 -0
- package/fonts/dfb7d78b6b838654f246ad1b2b5b4b72.woff2 +0 -0
- package/fonts/dfe41a1b55be51bdac0d41e5c8b1e3b7.woff2 +0 -0
- package/fonts/e431ea7665f64dccbedcaa0ed19fccb7.woff2 +0 -0
- package/fonts/e71d1216d5e6b470598a17c11a0b132b.woff2 +0 -0
- package/fonts/e768b29b57d95b735c13984980dbd3b8.woff2 +0 -0
- package/fonts/e7efc76412d4935b4567b2760eb300fd.woff2 +0 -0
- package/fonts/ee11a2523b2c5b1ae3af86d162a95f8d.woff2 +0 -0
- package/fonts/efec9899498ea2c9be7453a7901c936e.woff2 +0 -0
- package/fonts/f1c118f9188115a5a596531b92587a83.woff2 +0 -0
- package/fonts/f36f25301e61cfb9d1f3200e047e927a.woff2 +0 -0
- package/fonts/f497194ba693571f76789df48028d494.woff2 +0 -0
- package/fonts/f6717ea5a513aacfe7494fdb6fdca2fa.woff2 +0 -0
- package/fonts/fab526c8b7ec2e57851baa1d4d61448f.woff2 +0 -0
- package/fonts/fb6e6ac34118a226d7cd3d1fbc5ddef1.woff2 +0 -0
- package/fonts/fd1d2083d4f38dc1f6f4dd0947f51f5d.woff2 +0 -0
- package/fonts/fonts.css +182 -0
- package/package.json +49 -3
- package/src/contrast-pairs.json +144 -0
- package/src/palette-kit.ts +140 -0
- package/src/tokens.json +1870 -0
package/src/tokens.json
ADDED
|
@@ -0,0 +1,1870 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Koi",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"meta": {
|
|
5
|
+
"source": "github",
|
|
6
|
+
"repo": "tcdw/koi",
|
|
7
|
+
"ref": "main@87c7d4f",
|
|
8
|
+
"package": ".",
|
|
9
|
+
"paths": {
|
|
10
|
+
"tokens": ["src/styles/global.css", "tailwindcss@4.3.3 theme.css (palette values)"],
|
|
11
|
+
"fonts": ["src/assets/fonts/ChillRoundF/"],
|
|
12
|
+
"assets": [],
|
|
13
|
+
"docs": ["README.md", "src/consts.ts"]
|
|
14
|
+
},
|
|
15
|
+
"components": {},
|
|
16
|
+
"synced": "2026-10-07",
|
|
17
|
+
"note": "Tokens synced from tcdw/koi and extended into a general system; components are hand-written, not from the repository."
|
|
18
|
+
},
|
|
19
|
+
"color": {
|
|
20
|
+
"themes": [
|
|
21
|
+
{
|
|
22
|
+
"id": "light",
|
|
23
|
+
"name": "Light"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "dark",
|
|
27
|
+
"name": "Dark"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"palettes": {
|
|
31
|
+
"note": "A palette swaps the primary-* and accent-* scales; every role that points at them follows, in both themes. The other scales (secondary, warning, error) are fixed. Apps can also pass their own palette at runtime (@tuuject/koi-tokens/palette); built-in ones are checked by `pnpm contrast`, custom ones with checkPalette().",
|
|
32
|
+
"default": "koi",
|
|
33
|
+
"list": [
|
|
34
|
+
{
|
|
35
|
+
"id": "koi",
|
|
36
|
+
"name": "Koi",
|
|
37
|
+
"usage": "Sky primary, amber accent: the primary-* and accent-* tokens below."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "rose",
|
|
41
|
+
"name": "Rose",
|
|
42
|
+
"usage": "Rose primary, violet accent (Tailwind v3 scales). A second built-in palette, so switching is exercised and contrast-checked.",
|
|
43
|
+
"primary": {
|
|
44
|
+
"50": "#fff1f2",
|
|
45
|
+
"100": "#ffe4e6",
|
|
46
|
+
"200": "#fecdd3",
|
|
47
|
+
"300": "#fda4af",
|
|
48
|
+
"400": "#fb7185",
|
|
49
|
+
"500": "#f43f5e",
|
|
50
|
+
"600": "#e11d48",
|
|
51
|
+
"700": "#be123c",
|
|
52
|
+
"800": "#9f1239",
|
|
53
|
+
"900": "#881337",
|
|
54
|
+
"950": "#4c0519"
|
|
55
|
+
},
|
|
56
|
+
"accent": {
|
|
57
|
+
"50": "#f5f3ff",
|
|
58
|
+
"100": "#ede9fe",
|
|
59
|
+
"200": "#ddd6fe",
|
|
60
|
+
"300": "#c4b5fd",
|
|
61
|
+
"400": "#a78bfa",
|
|
62
|
+
"500": "#8b5cf6",
|
|
63
|
+
"600": "#7c3aed",
|
|
64
|
+
"700": "#6d28d9",
|
|
65
|
+
"800": "#5b21b6",
|
|
66
|
+
"900": "#4c1d95",
|
|
67
|
+
"950": "#2e1065"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"tokens": [
|
|
73
|
+
{
|
|
74
|
+
"name": "page-bg",
|
|
75
|
+
"value": {
|
|
76
|
+
"light": "{white}",
|
|
77
|
+
"dark": "{secondary-950}"
|
|
78
|
+
},
|
|
79
|
+
"usage": "Page background. The blog's body `bg-white` / `dark:bg-gray-950`."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "surface",
|
|
83
|
+
"value": {
|
|
84
|
+
"light": "{white}",
|
|
85
|
+
"dark": "{secondary-900}"
|
|
86
|
+
},
|
|
87
|
+
"usage": "Cards, inputs, dialogs, the active tab: anything that sits on `page-bg` as its own object."
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"name": "surface-muted",
|
|
91
|
+
"value": {
|
|
92
|
+
"light": "{secondary-100}",
|
|
93
|
+
"dark": "{secondary-800}"
|
|
94
|
+
},
|
|
95
|
+
"usage": "Quiet fills: tab track, progress track, ghost-button hover, disabled inputs."
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "surface-glass",
|
|
99
|
+
"value": {
|
|
100
|
+
"light": "rgba(255, 255, 255, 0.8)",
|
|
101
|
+
"dark": "{secondary-950 / 0.7}"
|
|
102
|
+
},
|
|
103
|
+
"usage": "Koi's frosted panel (`bg-white/80 dark:bg-gray-950/70`), always with `blur-panel`. Use over imagery or color: the glass Card."
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "surface-glass-tint",
|
|
107
|
+
"value": {
|
|
108
|
+
"light": "rgba(255, 255, 255, 0.8)",
|
|
109
|
+
"dark": "{primary-950 / 0.8}"
|
|
110
|
+
},
|
|
111
|
+
"usage": "Floating chrome: toasts and the blog's nav pill (`dark:bg-primary-950/80`), with `blur-float`."
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "backdrop",
|
|
115
|
+
"value": {
|
|
116
|
+
"light": "rgba(0, 0, 0, 0.4)",
|
|
117
|
+
"dark": "rgba(0, 0, 0, 0.6)"
|
|
118
|
+
},
|
|
119
|
+
"usage": "Dimmed layer behind a Dialog, with `blur-panel`."
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "tooltip-bg",
|
|
123
|
+
"value": {
|
|
124
|
+
"light": "{secondary-900}",
|
|
125
|
+
"dark": "{secondary-100}"
|
|
126
|
+
},
|
|
127
|
+
"usage": "Tooltip fill: inverted against the page."
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "tooltip-text",
|
|
131
|
+
"value": {
|
|
132
|
+
"light": "{white}",
|
|
133
|
+
"dark": "{black}"
|
|
134
|
+
},
|
|
135
|
+
"usage": "Text on `tooltip-bg`."
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"name": "text",
|
|
139
|
+
"value": {
|
|
140
|
+
"light": "{black}",
|
|
141
|
+
"dark": "{white}"
|
|
142
|
+
},
|
|
143
|
+
"usage": "Body and heading text on `page-bg`, `surface`, `surface-muted` and the glass surfaces."
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"name": "text-muted",
|
|
147
|
+
"value": {
|
|
148
|
+
"light": "rgba(0, 0, 0, 0.6)",
|
|
149
|
+
"dark": "rgba(255, 255, 255, 0.6)"
|
|
150
|
+
},
|
|
151
|
+
"usage": "Secondary text: help text, dates, descriptions, inactive tabs. The blog's `opacity-60`. Reads on `page-bg`, `surface` and `surface-muted`."
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"name": "text-disabled",
|
|
155
|
+
"value": {
|
|
156
|
+
"light": "rgba(0, 0, 0, 0.38)",
|
|
157
|
+
"dark": "rgba(255, 255, 255, 0.38)"
|
|
158
|
+
},
|
|
159
|
+
"usage": "Disabled labels and values (exempt from contrast minimums). Never for content."
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"name": "text-brand",
|
|
163
|
+
"value": {
|
|
164
|
+
"light": "{primary-700}",
|
|
165
|
+
"dark": "{primary-300}"
|
|
166
|
+
},
|
|
167
|
+
"usage": "Brand-colored text and icons: ghost buttons, active page links, tab focus. On `page-bg`, `surface`, `surface-muted`."
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"name": "border",
|
|
171
|
+
"value": {
|
|
172
|
+
"light": "{secondary-200}",
|
|
173
|
+
"dark": "{secondary-800}"
|
|
174
|
+
},
|
|
175
|
+
"usage": "Decorative edges: card outlines, dividers, tag outlines. Not for control edges (too faint)."
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"name": "border-control",
|
|
179
|
+
"value": {
|
|
180
|
+
"light": "{secondary-500}",
|
|
181
|
+
"dark": "{secondary-500}"
|
|
182
|
+
},
|
|
183
|
+
"usage": "Edges of inputs, selects, checkboxes, radios and the off Switch track. Meets 3:1 on `surface` in both themes."
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"name": "border-control-hover",
|
|
187
|
+
"value": {
|
|
188
|
+
"light": "{secondary-600}",
|
|
189
|
+
"dark": "{secondary-400}"
|
|
190
|
+
},
|
|
191
|
+
"usage": "Hovered control edge."
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"name": "divider",
|
|
195
|
+
"value": {
|
|
196
|
+
"light": "rgba(0, 0, 0, 0.1)",
|
|
197
|
+
"dark": "rgba(255, 255, 255, 0.1)"
|
|
198
|
+
},
|
|
199
|
+
"usage": "Hairline separators (the blog's `border-black/10 dark:border-white/10`)."
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"name": "focus-ring",
|
|
203
|
+
"value": {
|
|
204
|
+
"light": "{primary-600}",
|
|
205
|
+
"dark": "{primary-400}"
|
|
206
|
+
},
|
|
207
|
+
"usage": "2px focus outline on every interactive element, offset 2px (controls: drawn on the edge)."
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"name": "action",
|
|
211
|
+
"value": {
|
|
212
|
+
"light": "{primary-700}",
|
|
213
|
+
"dark": "{primary-700}"
|
|
214
|
+
},
|
|
215
|
+
"usage": "Primary buttons, current page, checked controls' fill: the blog's pill button (`bg-primary-700`)."
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"name": "action-hover",
|
|
219
|
+
"value": {
|
|
220
|
+
"light": "{primary-800}",
|
|
221
|
+
"dark": "{primary-800}"
|
|
222
|
+
},
|
|
223
|
+
"usage": "Hovered `action`. Darker than the blog's `primary-500` hover so white text stays readable."
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"name": "on-action",
|
|
227
|
+
"value": {
|
|
228
|
+
"light": "{white}",
|
|
229
|
+
"dark": "{white}"
|
|
230
|
+
},
|
|
231
|
+
"usage": "Text and icons on `action`, `action-hover`, `control-checked`, `danger`."
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"name": "action-subtle",
|
|
235
|
+
"value": {
|
|
236
|
+
"light": "{primary-100}",
|
|
237
|
+
"dark": "{primary-950}"
|
|
238
|
+
},
|
|
239
|
+
"usage": "Secondary buttons and avatar fallbacks."
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"name": "action-subtle-hover",
|
|
243
|
+
"value": {
|
|
244
|
+
"light": "{primary-200}",
|
|
245
|
+
"dark": "{primary-900}"
|
|
246
|
+
},
|
|
247
|
+
"usage": "Hovered `action-subtle`."
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"name": "on-action-subtle",
|
|
251
|
+
"value": {
|
|
252
|
+
"light": "{primary-800}",
|
|
253
|
+
"dark": "{primary-200}"
|
|
254
|
+
},
|
|
255
|
+
"usage": "Text on `action-subtle`."
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"name": "control-checked",
|
|
259
|
+
"value": {
|
|
260
|
+
"light": "{primary-700}",
|
|
261
|
+
"dark": "{primary-600}"
|
|
262
|
+
},
|
|
263
|
+
"usage": "Fill of a checked Checkbox, Radio dot and on Switch track; Progress bar."
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"name": "link",
|
|
267
|
+
"value": {
|
|
268
|
+
"light": "{accent-700}",
|
|
269
|
+
"dark": "{accent-400}"
|
|
270
|
+
},
|
|
271
|
+
"usage": "Inline text links, with a dashed `link-border` underline. One step darker than the blog's `accent-600` so it reads at body size."
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"name": "link-border",
|
|
275
|
+
"value": {
|
|
276
|
+
"light": "{accent-300}",
|
|
277
|
+
"dark": "{accent-800}"
|
|
278
|
+
},
|
|
279
|
+
"usage": "Dashed underline under `link` (the blog's `prose-a:border-dashed`)."
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"name": "link-hover-bg",
|
|
283
|
+
"value": {
|
|
284
|
+
"light": "{accent-100}",
|
|
285
|
+
"dark": "{accent-950}"
|
|
286
|
+
},
|
|
287
|
+
"usage": "Tint behind a hovered link (the blog's `.prose a:hover`)."
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"name": "link-hover-border",
|
|
291
|
+
"value": {
|
|
292
|
+
"light": "{accent-500}",
|
|
293
|
+
"dark": "{accent-600}"
|
|
294
|
+
},
|
|
295
|
+
"usage": "Underline of a hovered link."
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"name": "danger",
|
|
299
|
+
"value": {
|
|
300
|
+
"light": "{error-600}",
|
|
301
|
+
"dark": "{error-600}"
|
|
302
|
+
},
|
|
303
|
+
"usage": "Destructive buttons."
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"name": "danger-hover",
|
|
307
|
+
"value": {
|
|
308
|
+
"light": "{error-700}",
|
|
309
|
+
"dark": "{error-700}"
|
|
310
|
+
},
|
|
311
|
+
"usage": "Hovered `danger`."
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"name": "info-surface",
|
|
315
|
+
"value": {
|
|
316
|
+
"light": "{primary-50}",
|
|
317
|
+
"dark": "{primary-950}"
|
|
318
|
+
},
|
|
319
|
+
"usage": "Info Alert fill."
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"name": "info-border",
|
|
323
|
+
"value": {
|
|
324
|
+
"light": "{primary-200}",
|
|
325
|
+
"dark": "{primary-800}"
|
|
326
|
+
},
|
|
327
|
+
"usage": "Info Alert edge."
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"name": "info-text",
|
|
331
|
+
"value": {
|
|
332
|
+
"light": "{primary-800}",
|
|
333
|
+
"dark": "{primary-200}"
|
|
334
|
+
},
|
|
335
|
+
"usage": "Text and icon on `info-surface`."
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"name": "warning-surface",
|
|
339
|
+
"value": {
|
|
340
|
+
"light": "{warning-50}",
|
|
341
|
+
"dark": "{warning-950}"
|
|
342
|
+
},
|
|
343
|
+
"usage": "Warning Alert and Badge fill."
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"name": "warning-border",
|
|
347
|
+
"value": {
|
|
348
|
+
"light": "{warning-300}",
|
|
349
|
+
"dark": "{warning-800}"
|
|
350
|
+
},
|
|
351
|
+
"usage": "Warning Alert edge."
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"name": "warning-text",
|
|
355
|
+
"value": {
|
|
356
|
+
"light": "{warning-800}",
|
|
357
|
+
"dark": "{warning-200}"
|
|
358
|
+
},
|
|
359
|
+
"usage": "Text and icon on `warning-surface`."
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
"name": "error-surface",
|
|
363
|
+
"value": {
|
|
364
|
+
"light": "{error-50}",
|
|
365
|
+
"dark": "{error-950}"
|
|
366
|
+
},
|
|
367
|
+
"usage": "Error Alert and Badge fill."
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
"name": "error-border",
|
|
371
|
+
"value": {
|
|
372
|
+
"light": "{error-300}",
|
|
373
|
+
"dark": "{error-800}"
|
|
374
|
+
},
|
|
375
|
+
"usage": "Error Alert edge."
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"name": "error-text",
|
|
379
|
+
"value": {
|
|
380
|
+
"light": "{error-700}",
|
|
381
|
+
"dark": "{error-300}"
|
|
382
|
+
},
|
|
383
|
+
"usage": "Text and icon on `error-surface`; Field error messages on `page-bg` / `surface`."
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"name": "error-control",
|
|
387
|
+
"value": {
|
|
388
|
+
"light": "{error-600}",
|
|
389
|
+
"dark": "{error-400}"
|
|
390
|
+
},
|
|
391
|
+
"usage": "Edge of an invalid input."
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"name": "highlight",
|
|
395
|
+
"value": {
|
|
396
|
+
"light": "{accent-100}",
|
|
397
|
+
"dark": "{accent-950}"
|
|
398
|
+
},
|
|
399
|
+
"usage": "Accent Badge fill: Koi's amber in a small dose."
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"name": "on-highlight",
|
|
403
|
+
"value": {
|
|
404
|
+
"light": "{accent-800}",
|
|
405
|
+
"dark": "{accent-200}"
|
|
406
|
+
},
|
|
407
|
+
"usage": "Text on `highlight`."
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"name": "nav-item-text",
|
|
411
|
+
"value": {
|
|
412
|
+
"light": "{secondary-700}",
|
|
413
|
+
"dark": "{secondary-300}"
|
|
414
|
+
},
|
|
415
|
+
"usage": "NavMenu items at rest, on page-bg, surface and the nav hover/active fills."
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"name": "nav-item-hover",
|
|
419
|
+
"value": {
|
|
420
|
+
"light": "{secondary-50}",
|
|
421
|
+
"dark": "{secondary-900}"
|
|
422
|
+
},
|
|
423
|
+
"usage": "Hovered NavMenu item."
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
"name": "table-row-hover",
|
|
427
|
+
"value": {
|
|
428
|
+
"light": "{secondary-50}",
|
|
429
|
+
"dark": "{secondary-800 / 0.5}"
|
|
430
|
+
},
|
|
431
|
+
"usage": "Hovered table row. A step lighter than `surface-muted`, the ghost-button hover fill, so a hovered button still stands out in a hovered row."
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
"name": "nav-item-active",
|
|
435
|
+
"value": {
|
|
436
|
+
"light": "{secondary-100}",
|
|
437
|
+
"dark": "{secondary-800}"
|
|
438
|
+
},
|
|
439
|
+
"usage": "The current NavMenu item, with bold `text`."
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
"name": "skeleton",
|
|
443
|
+
"value": {
|
|
444
|
+
"light": "{secondary-100}",
|
|
445
|
+
"dark": "{secondary-800}"
|
|
446
|
+
},
|
|
447
|
+
"usage": "Skeleton placeholder fill. Reads on `page-bg` and `surface`."
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"name": "skeleton-highlight",
|
|
451
|
+
"value": {
|
|
452
|
+
"light": "{secondary-50}",
|
|
453
|
+
"dark": "{secondary-700}"
|
|
454
|
+
},
|
|
455
|
+
"usage": "The shimmer band that sweeps across Skeleton placeholders."
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"name": "prose-text",
|
|
459
|
+
"value": {
|
|
460
|
+
"light": "{secondary-700}",
|
|
461
|
+
"dark": "{secondary-300}"
|
|
462
|
+
},
|
|
463
|
+
"usage": "Running text inside Prose (the blog's `prose-slate` body, a step softer than `text`). Headings, bold and inline code inside Prose stay `text`."
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
"name": "code-block-bg",
|
|
467
|
+
"value": {
|
|
468
|
+
"light": "{secondary-800}",
|
|
469
|
+
"dark": "{secondary-800}"
|
|
470
|
+
},
|
|
471
|
+
"usage": "Code block fill inside Prose: dark in both themes, as in the blog's `prose-slate`. Dark theme lifts it to the 800 step instead of Tailwind's `black / 0.5`, which vanished against `page-bg`."
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"name": "code-block-text",
|
|
475
|
+
"value": {
|
|
476
|
+
"light": "{secondary-200}",
|
|
477
|
+
"dark": "{secondary-300}"
|
|
478
|
+
},
|
|
479
|
+
"usage": "Text on `code-block-bg`."
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"name": "primary-solid",
|
|
483
|
+
"value": {
|
|
484
|
+
"light": "{action}",
|
|
485
|
+
"dark": "{action}"
|
|
486
|
+
},
|
|
487
|
+
"usage": "Solid Button fill, color=\"primary\"."
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
"name": "primary-solid-hover",
|
|
491
|
+
"value": {
|
|
492
|
+
"light": "{action-hover}",
|
|
493
|
+
"dark": "{action-hover}"
|
|
494
|
+
},
|
|
495
|
+
"usage": "Hovered solid fill, color=\"primary\"."
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"name": "on-primary-solid",
|
|
499
|
+
"value": {
|
|
500
|
+
"light": "{on-action}",
|
|
501
|
+
"dark": "{on-action}"
|
|
502
|
+
},
|
|
503
|
+
"usage": "Text and icons on the solid fill, color=\"primary\"."
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"name": "primary-soft",
|
|
507
|
+
"value": {
|
|
508
|
+
"light": "{action-subtle}",
|
|
509
|
+
"dark": "{action-subtle}"
|
|
510
|
+
},
|
|
511
|
+
"usage": "Soft Button fill; also the hover fill of outline and ghost, color=\"primary\"."
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
"name": "primary-soft-hover",
|
|
515
|
+
"value": {
|
|
516
|
+
"light": "{action-subtle-hover}",
|
|
517
|
+
"dark": "{action-subtle-hover}"
|
|
518
|
+
},
|
|
519
|
+
"usage": "Hovered soft fill, color=\"primary\"."
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
"name": "on-primary-soft",
|
|
523
|
+
"value": {
|
|
524
|
+
"light": "{on-action-subtle}",
|
|
525
|
+
"dark": "{on-action-subtle}"
|
|
526
|
+
},
|
|
527
|
+
"usage": "Text on the soft fill, color=\"primary\"."
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
"name": "primary-fg",
|
|
531
|
+
"value": {
|
|
532
|
+
"light": "{text-brand}",
|
|
533
|
+
"dark": "{text-brand}"
|
|
534
|
+
},
|
|
535
|
+
"usage": "Text and icons of outline and ghost Buttons, color=\"primary\"."
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"name": "primary-edge",
|
|
539
|
+
"value": {
|
|
540
|
+
"light": "{primary-600}",
|
|
541
|
+
"dark": "{primary-400}"
|
|
542
|
+
},
|
|
543
|
+
"usage": "Outline Button edge (3:1+ on page-bg and surface), color=\"primary\"."
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"name": "accent-solid",
|
|
547
|
+
"value": {
|
|
548
|
+
"light": "{accent-400}",
|
|
549
|
+
"dark": "{accent-400}"
|
|
550
|
+
},
|
|
551
|
+
"usage": "Solid Button fill, color=\"accent\"."
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"name": "accent-solid-hover",
|
|
555
|
+
"value": {
|
|
556
|
+
"light": "{accent-300}",
|
|
557
|
+
"dark": "{accent-300}"
|
|
558
|
+
},
|
|
559
|
+
"usage": "Hovered solid fill, color=\"accent\"."
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
"name": "on-accent-solid",
|
|
563
|
+
"value": {
|
|
564
|
+
"light": "{accent-950}",
|
|
565
|
+
"dark": "{accent-950}"
|
|
566
|
+
},
|
|
567
|
+
"usage": "Text and icons on the solid fill, color=\"accent\"."
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"name": "accent-soft",
|
|
571
|
+
"value": {
|
|
572
|
+
"light": "{accent-100}",
|
|
573
|
+
"dark": "{accent-950}"
|
|
574
|
+
},
|
|
575
|
+
"usage": "Soft Button fill; also the hover fill of outline and ghost, color=\"accent\"."
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"name": "accent-soft-hover",
|
|
579
|
+
"value": {
|
|
580
|
+
"light": "{accent-200}",
|
|
581
|
+
"dark": "{accent-900}"
|
|
582
|
+
},
|
|
583
|
+
"usage": "Hovered soft fill, color=\"accent\"."
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"name": "on-accent-soft",
|
|
587
|
+
"value": {
|
|
588
|
+
"light": "{accent-800}",
|
|
589
|
+
"dark": "{accent-200}"
|
|
590
|
+
},
|
|
591
|
+
"usage": "Text on the soft fill, color=\"accent\"."
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"name": "accent-fg",
|
|
595
|
+
"value": {
|
|
596
|
+
"light": "{accent-700}",
|
|
597
|
+
"dark": "{accent-400}"
|
|
598
|
+
},
|
|
599
|
+
"usage": "Text and icons of outline and ghost Buttons, color=\"accent\"."
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"name": "accent-edge",
|
|
603
|
+
"value": {
|
|
604
|
+
"light": "{accent-600}",
|
|
605
|
+
"dark": "{accent-500}"
|
|
606
|
+
},
|
|
607
|
+
"usage": "Outline Button edge (3:1+ on page-bg and surface), color=\"accent\"."
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"name": "secondary-solid",
|
|
611
|
+
"value": {
|
|
612
|
+
"light": "{secondary-700}",
|
|
613
|
+
"dark": "{secondary-200}"
|
|
614
|
+
},
|
|
615
|
+
"usage": "Solid Button fill, color=\"secondary\"."
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"name": "secondary-solid-hover",
|
|
619
|
+
"value": {
|
|
620
|
+
"light": "{secondary-800}",
|
|
621
|
+
"dark": "{secondary-300}"
|
|
622
|
+
},
|
|
623
|
+
"usage": "Hovered solid fill, color=\"secondary\"."
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
"name": "on-secondary-solid",
|
|
627
|
+
"value": {
|
|
628
|
+
"light": "{white}",
|
|
629
|
+
"dark": "{secondary-950}"
|
|
630
|
+
},
|
|
631
|
+
"usage": "Text and icons on the solid fill, color=\"secondary\"."
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
"name": "secondary-soft",
|
|
635
|
+
"value": {
|
|
636
|
+
"light": "{secondary-100}",
|
|
637
|
+
"dark": "{secondary-800}"
|
|
638
|
+
},
|
|
639
|
+
"usage": "Soft Button fill; also the hover fill of outline and ghost, color=\"secondary\"."
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
"name": "secondary-soft-hover",
|
|
643
|
+
"value": {
|
|
644
|
+
"light": "{secondary-200}",
|
|
645
|
+
"dark": "{secondary-700}"
|
|
646
|
+
},
|
|
647
|
+
"usage": "Hovered soft fill, color=\"secondary\"."
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"name": "on-secondary-soft",
|
|
651
|
+
"value": {
|
|
652
|
+
"light": "{secondary-800}",
|
|
653
|
+
"dark": "{secondary-100}"
|
|
654
|
+
},
|
|
655
|
+
"usage": "Text on the soft fill, color=\"secondary\"."
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
"name": "secondary-fg",
|
|
659
|
+
"value": {
|
|
660
|
+
"light": "{secondary-700}",
|
|
661
|
+
"dark": "{secondary-300}"
|
|
662
|
+
},
|
|
663
|
+
"usage": "Text and icons of outline and ghost Buttons, color=\"secondary\"."
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
"name": "secondary-edge",
|
|
667
|
+
"value": {
|
|
668
|
+
"light": "{secondary-500}",
|
|
669
|
+
"dark": "{secondary-500}"
|
|
670
|
+
},
|
|
671
|
+
"usage": "Outline Button edge (3:1+ on page-bg and surface), color=\"secondary\"."
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
"name": "warning-solid",
|
|
675
|
+
"value": {
|
|
676
|
+
"light": "{warning-400}",
|
|
677
|
+
"dark": "{warning-400}"
|
|
678
|
+
},
|
|
679
|
+
"usage": "Solid Button fill, color=\"warning\"."
|
|
680
|
+
},
|
|
681
|
+
{
|
|
682
|
+
"name": "warning-solid-hover",
|
|
683
|
+
"value": {
|
|
684
|
+
"light": "{warning-300}",
|
|
685
|
+
"dark": "{warning-300}"
|
|
686
|
+
},
|
|
687
|
+
"usage": "Hovered solid fill, color=\"warning\"."
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"name": "on-warning-solid",
|
|
691
|
+
"value": {
|
|
692
|
+
"light": "{warning-950}",
|
|
693
|
+
"dark": "{warning-950}"
|
|
694
|
+
},
|
|
695
|
+
"usage": "Text and icons on the solid fill, color=\"warning\"."
|
|
696
|
+
},
|
|
697
|
+
{
|
|
698
|
+
"name": "warning-soft",
|
|
699
|
+
"value": {
|
|
700
|
+
"light": "{warning-100}",
|
|
701
|
+
"dark": "{warning-950}"
|
|
702
|
+
},
|
|
703
|
+
"usage": "Soft Button fill; also the hover fill of outline and ghost, color=\"warning\"."
|
|
704
|
+
},
|
|
705
|
+
{
|
|
706
|
+
"name": "warning-soft-hover",
|
|
707
|
+
"value": {
|
|
708
|
+
"light": "{warning-200}",
|
|
709
|
+
"dark": "{warning-900}"
|
|
710
|
+
},
|
|
711
|
+
"usage": "Hovered soft fill, color=\"warning\"."
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
"name": "on-warning-soft",
|
|
715
|
+
"value": {
|
|
716
|
+
"light": "{warning-800}",
|
|
717
|
+
"dark": "{warning-200}"
|
|
718
|
+
},
|
|
719
|
+
"usage": "Text on the soft fill, color=\"warning\"."
|
|
720
|
+
},
|
|
721
|
+
{
|
|
722
|
+
"name": "warning-fg",
|
|
723
|
+
"value": {
|
|
724
|
+
"light": "{warning-700}",
|
|
725
|
+
"dark": "{warning-400}"
|
|
726
|
+
},
|
|
727
|
+
"usage": "Text and icons of outline and ghost Buttons, color=\"warning\"."
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
"name": "warning-edge",
|
|
731
|
+
"value": {
|
|
732
|
+
"light": "{warning-700}",
|
|
733
|
+
"dark": "{warning-500}"
|
|
734
|
+
},
|
|
735
|
+
"usage": "Outline Button edge (3:1+ on page-bg and surface), color=\"warning\"."
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
"name": "error-solid",
|
|
739
|
+
"value": {
|
|
740
|
+
"light": "{danger}",
|
|
741
|
+
"dark": "{danger}"
|
|
742
|
+
},
|
|
743
|
+
"usage": "Solid Button fill, color=\"error\"."
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
"name": "error-solid-hover",
|
|
747
|
+
"value": {
|
|
748
|
+
"light": "{danger-hover}",
|
|
749
|
+
"dark": "{danger-hover}"
|
|
750
|
+
},
|
|
751
|
+
"usage": "Hovered solid fill, color=\"error\"."
|
|
752
|
+
},
|
|
753
|
+
{
|
|
754
|
+
"name": "on-error-solid",
|
|
755
|
+
"value": {
|
|
756
|
+
"light": "{on-action}",
|
|
757
|
+
"dark": "{on-action}"
|
|
758
|
+
},
|
|
759
|
+
"usage": "Text and icons on the solid fill, color=\"error\"."
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"name": "error-soft",
|
|
763
|
+
"value": {
|
|
764
|
+
"light": "{error-100}",
|
|
765
|
+
"dark": "{error-950}"
|
|
766
|
+
},
|
|
767
|
+
"usage": "Soft Button fill; also the hover fill of outline and ghost, color=\"error\"."
|
|
768
|
+
},
|
|
769
|
+
{
|
|
770
|
+
"name": "error-soft-hover",
|
|
771
|
+
"value": {
|
|
772
|
+
"light": "{error-200}",
|
|
773
|
+
"dark": "{error-900}"
|
|
774
|
+
},
|
|
775
|
+
"usage": "Hovered soft fill, color=\"error\"."
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
"name": "on-error-soft",
|
|
779
|
+
"value": {
|
|
780
|
+
"light": "{error-800}",
|
|
781
|
+
"dark": "{error-200}"
|
|
782
|
+
},
|
|
783
|
+
"usage": "Text on the soft fill, color=\"error\"."
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"name": "error-fg",
|
|
787
|
+
"value": {
|
|
788
|
+
"light": "{error-700}",
|
|
789
|
+
"dark": "{error-400}"
|
|
790
|
+
},
|
|
791
|
+
"usage": "Text and icons of outline and ghost Buttons, color=\"error\"."
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"name": "error-edge",
|
|
795
|
+
"value": {
|
|
796
|
+
"light": "{error-600}",
|
|
797
|
+
"dark": "{error-400}"
|
|
798
|
+
},
|
|
799
|
+
"usage": "Outline Button edge (3:1+ on page-bg and surface), color=\"error\"."
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"name": "primary-50",
|
|
803
|
+
"value": "oklch(97.7% 0.013 236.62)",
|
|
804
|
+
"usage": "Brand primary, step 50: Tailwind sky-50 (global.css `--color-primary-50: var(--color-sky-50)`)."
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
"name": "primary-100",
|
|
808
|
+
"value": "oklch(95.1% 0.026 236.824)",
|
|
809
|
+
"usage": "Brand primary, step 100: Tailwind sky-100 (global.css `--color-primary-100: var(--color-sky-100)`)."
|
|
810
|
+
},
|
|
811
|
+
{
|
|
812
|
+
"name": "primary-200",
|
|
813
|
+
"value": "oklch(90.1% 0.058 230.902)",
|
|
814
|
+
"usage": "Brand primary, step 200: Tailwind sky-200 (global.css `--color-primary-200: var(--color-sky-200)`)."
|
|
815
|
+
},
|
|
816
|
+
{
|
|
817
|
+
"name": "primary-300",
|
|
818
|
+
"value": "oklch(82.8% 0.111 230.318)",
|
|
819
|
+
"usage": "Brand primary, step 300: Tailwind sky-300 (global.css `--color-primary-300: var(--color-sky-300)`)."
|
|
820
|
+
},
|
|
821
|
+
{
|
|
822
|
+
"name": "primary-400",
|
|
823
|
+
"value": "oklch(74.6% 0.16 232.661)",
|
|
824
|
+
"usage": "Brand primary, step 400: Tailwind sky-400 (global.css `--color-primary-400: var(--color-sky-400)`)."
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
"name": "primary-500",
|
|
828
|
+
"value": "oklch(68.5% 0.169 237.323)",
|
|
829
|
+
"usage": "Brand primary, step 500: Tailwind sky-500 (global.css `--color-primary-500: var(--color-sky-500)`)."
|
|
830
|
+
},
|
|
831
|
+
{
|
|
832
|
+
"name": "primary-600",
|
|
833
|
+
"value": "oklch(58.8% 0.158 241.966)",
|
|
834
|
+
"usage": "Brand primary, step 600: Tailwind sky-600 (global.css `--color-primary-600: var(--color-sky-600)`)."
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
"name": "primary-700",
|
|
838
|
+
"value": "oklch(50% 0.134 242.749)",
|
|
839
|
+
"usage": "Brand primary, step 700: Tailwind sky-700 (global.css `--color-primary-700: var(--color-sky-700)`)."
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"name": "primary-800",
|
|
843
|
+
"value": "oklch(44.3% 0.11 240.79)",
|
|
844
|
+
"usage": "Brand primary, step 800: Tailwind sky-800 (global.css `--color-primary-800: var(--color-sky-800)`)."
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
"name": "primary-900",
|
|
848
|
+
"value": "oklch(39.1% 0.09 240.876)",
|
|
849
|
+
"usage": "Brand primary, step 900: Tailwind sky-900 (global.css `--color-primary-900: var(--color-sky-900)`)."
|
|
850
|
+
},
|
|
851
|
+
{
|
|
852
|
+
"name": "primary-950",
|
|
853
|
+
"value": "oklch(29.3% 0.066 243.157)",
|
|
854
|
+
"usage": "Brand primary, step 950: Tailwind sky-950 (global.css `--color-primary-950: var(--color-sky-950)`)."
|
|
855
|
+
},
|
|
856
|
+
{
|
|
857
|
+
"name": "accent-50",
|
|
858
|
+
"value": "oklch(98.7% 0.022 95.277)",
|
|
859
|
+
"usage": "Brand accent, step 50: Tailwind amber-50 (global.css `--color-accent-50: var(--color-amber-50)`)."
|
|
860
|
+
},
|
|
861
|
+
{
|
|
862
|
+
"name": "accent-100",
|
|
863
|
+
"value": "oklch(96.2% 0.059 95.617)",
|
|
864
|
+
"usage": "Brand accent, step 100: Tailwind amber-100 (global.css `--color-accent-100: var(--color-amber-100)`)."
|
|
865
|
+
},
|
|
866
|
+
{
|
|
867
|
+
"name": "accent-200",
|
|
868
|
+
"value": "oklch(92.4% 0.12 95.746)",
|
|
869
|
+
"usage": "Brand accent, step 200: Tailwind amber-200 (global.css `--color-accent-200: var(--color-amber-200)`)."
|
|
870
|
+
},
|
|
871
|
+
{
|
|
872
|
+
"name": "accent-300",
|
|
873
|
+
"value": "oklch(87.9% 0.169 91.605)",
|
|
874
|
+
"usage": "Brand accent, step 300: Tailwind amber-300 (global.css `--color-accent-300: var(--color-amber-300)`)."
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
"name": "accent-400",
|
|
878
|
+
"value": "oklch(82.8% 0.189 84.429)",
|
|
879
|
+
"usage": "Brand accent, step 400: Tailwind amber-400 (global.css `--color-accent-400: var(--color-amber-400)`)."
|
|
880
|
+
},
|
|
881
|
+
{
|
|
882
|
+
"name": "accent-500",
|
|
883
|
+
"value": "oklch(76.9% 0.188 70.08)",
|
|
884
|
+
"usage": "Brand accent, step 500: Tailwind amber-500 (global.css `--color-accent-500: var(--color-amber-500)`)."
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
"name": "accent-600",
|
|
888
|
+
"value": "oklch(66.6% 0.179 58.318)",
|
|
889
|
+
"usage": "Brand accent, step 600: Tailwind amber-600 (global.css `--color-accent-600: var(--color-amber-600)`)."
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
"name": "accent-700",
|
|
893
|
+
"value": "oklch(55.5% 0.163 48.998)",
|
|
894
|
+
"usage": "Brand accent, step 700: Tailwind amber-700 (global.css `--color-accent-700: var(--color-amber-700)`)."
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
"name": "accent-800",
|
|
898
|
+
"value": "oklch(47.3% 0.137 46.201)",
|
|
899
|
+
"usage": "Brand accent, step 800: Tailwind amber-800 (global.css `--color-accent-800: var(--color-amber-800)`)."
|
|
900
|
+
},
|
|
901
|
+
{
|
|
902
|
+
"name": "accent-900",
|
|
903
|
+
"value": "oklch(41.4% 0.112 45.904)",
|
|
904
|
+
"usage": "Brand accent, step 900: Tailwind amber-900 (global.css `--color-accent-900: var(--color-amber-900)`)."
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"name": "accent-950",
|
|
908
|
+
"value": "oklch(27.9% 0.077 45.635)",
|
|
909
|
+
"usage": "Brand accent, step 950: Tailwind amber-950 (global.css `--color-accent-950: var(--color-amber-950)`)."
|
|
910
|
+
},
|
|
911
|
+
{
|
|
912
|
+
"name": "secondary-50",
|
|
913
|
+
"value": "oklch(98.5% 0.002 247.839)",
|
|
914
|
+
"usage": "Neutral secondary, step 50: Tailwind gray-50. 1.0:1 on white, 19.3:1 on `secondary-950`."
|
|
915
|
+
},
|
|
916
|
+
{
|
|
917
|
+
"name": "secondary-100",
|
|
918
|
+
"value": "oklch(96.7% 0.003 264.542)",
|
|
919
|
+
"usage": "Neutral secondary, step 100: Tailwind gray-100. 1.1:1 on white, 18.3:1 on `secondary-950`."
|
|
920
|
+
},
|
|
921
|
+
{
|
|
922
|
+
"name": "secondary-200",
|
|
923
|
+
"value": "oklch(92.8% 0.006 264.531)",
|
|
924
|
+
"usage": "Neutral secondary, step 200: Tailwind gray-200. 1.2:1 on white, 16.3:1 on `secondary-950`."
|
|
925
|
+
},
|
|
926
|
+
{
|
|
927
|
+
"name": "secondary-300",
|
|
928
|
+
"value": "oklch(87.2% 0.01 258.338)",
|
|
929
|
+
"usage": "Neutral secondary, step 300: Tailwind gray-300. 1.5:1 on white, 13.7:1 on `secondary-950`."
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
"name": "secondary-400",
|
|
933
|
+
"value": "oklch(70.7% 0.022 261.325)",
|
|
934
|
+
"usage": "Neutral secondary, step 400: Tailwind gray-400. 2.6:1 on white, 7.7:1 on `secondary-950`."
|
|
935
|
+
},
|
|
936
|
+
{
|
|
937
|
+
"name": "secondary-500",
|
|
938
|
+
"value": "oklch(55.1% 0.027 264.364)",
|
|
939
|
+
"usage": "Neutral secondary, step 500: Tailwind gray-500. 4.8:1 on white, 4.2:1 on `secondary-950`."
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
"name": "secondary-600",
|
|
943
|
+
"value": "oklch(44.6% 0.03 256.802)",
|
|
944
|
+
"usage": "Neutral secondary, step 600: Tailwind gray-600. 7.6:1 on white, 2.7:1 on `secondary-950`."
|
|
945
|
+
},
|
|
946
|
+
{
|
|
947
|
+
"name": "secondary-700",
|
|
948
|
+
"value": "oklch(37.3% 0.034 259.733)",
|
|
949
|
+
"usage": "Neutral secondary, step 700: Tailwind gray-700. 10.3:1 on white, 2.0:1 on `secondary-950`."
|
|
950
|
+
},
|
|
951
|
+
{
|
|
952
|
+
"name": "secondary-800",
|
|
953
|
+
"value": "oklch(27.8% 0.033 256.848)",
|
|
954
|
+
"usage": "Neutral secondary, step 800: Tailwind gray-800. 14.7:1 on white, 1.4:1 on `secondary-950`."
|
|
955
|
+
},
|
|
956
|
+
{
|
|
957
|
+
"name": "secondary-900",
|
|
958
|
+
"value": "oklch(21% 0.034 264.665)",
|
|
959
|
+
"usage": "Neutral secondary, step 900: Tailwind gray-900. 17.7:1 on white, 1.1:1 on `secondary-950`."
|
|
960
|
+
},
|
|
961
|
+
{
|
|
962
|
+
"name": "secondary-950",
|
|
963
|
+
"value": "oklch(13% 0.028 261.692)",
|
|
964
|
+
"usage": "Neutral secondary, step 950: Tailwind gray-950. 20.1:1 on white, 1.0:1 on `secondary-950`. The dark-theme page ground (`page-bg`)."
|
|
965
|
+
},
|
|
966
|
+
{
|
|
967
|
+
"name": "warning-50",
|
|
968
|
+
"value": "oklch(98.7% 0.026 102.212)",
|
|
969
|
+
"usage": "Warning, step 50: Tailwind yellow-50. 1.0:1 on white, 19.4:1 on `secondary-950`."
|
|
970
|
+
},
|
|
971
|
+
{
|
|
972
|
+
"name": "warning-100",
|
|
973
|
+
"value": "oklch(97.3% 0.071 103.193)",
|
|
974
|
+
"usage": "Warning, step 100: Tailwind yellow-100. 1.1:1 on white, 18.7:1 on `secondary-950`."
|
|
975
|
+
},
|
|
976
|
+
{
|
|
977
|
+
"name": "warning-200",
|
|
978
|
+
"value": "oklch(94.5% 0.129 101.54)",
|
|
979
|
+
"usage": "Warning, step 200: Tailwind yellow-200. 1.2:1 on white, 17.3:1 on `secondary-950`."
|
|
980
|
+
},
|
|
981
|
+
{
|
|
982
|
+
"name": "warning-300",
|
|
983
|
+
"value": "oklch(90.5% 0.182 98.111)",
|
|
984
|
+
"usage": "Warning, step 300: Tailwind yellow-300. 1.3:1 on white, 15.2:1 on `secondary-950`."
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
"name": "warning-400",
|
|
988
|
+
"value": "oklch(85.2% 0.199 91.936)",
|
|
989
|
+
"usage": "Warning, step 400: Tailwind yellow-400. 1.6:1 on white, 12.8:1 on `secondary-950`."
|
|
990
|
+
},
|
|
991
|
+
{
|
|
992
|
+
"name": "warning-500",
|
|
993
|
+
"value": "oklch(79.5% 0.184 86.047)",
|
|
994
|
+
"usage": "Warning, step 500: Tailwind yellow-500. 1.9:1 on white, 10.5:1 on `secondary-950`."
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
"name": "warning-600",
|
|
998
|
+
"value": "oklch(68.1% 0.162 75.834)",
|
|
999
|
+
"usage": "Warning, step 600: Tailwind yellow-600. 2.9:1 on white, 6.9:1 on `secondary-950`."
|
|
1000
|
+
},
|
|
1001
|
+
{
|
|
1002
|
+
"name": "warning-700",
|
|
1003
|
+
"value": "oklch(55.4% 0.135 66.442)",
|
|
1004
|
+
"usage": "Warning, step 700: Tailwind yellow-700. 4.9:1 on white, 4.1:1 on `secondary-950`."
|
|
1005
|
+
},
|
|
1006
|
+
{
|
|
1007
|
+
"name": "warning-800",
|
|
1008
|
+
"value": "oklch(47.6% 0.114 61.907)",
|
|
1009
|
+
"usage": "Warning, step 800: Tailwind yellow-800. 6.9:1 on white, 2.9:1 on `secondary-950`."
|
|
1010
|
+
},
|
|
1011
|
+
{
|
|
1012
|
+
"name": "warning-900",
|
|
1013
|
+
"value": "oklch(42.1% 0.095 57.708)",
|
|
1014
|
+
"usage": "Warning, step 900: Tailwind yellow-900. 8.7:1 on white, 2.3:1 on `secondary-950`."
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
"name": "warning-950",
|
|
1018
|
+
"value": "oklch(28.6% 0.066 53.813)",
|
|
1019
|
+
"usage": "Warning, step 950: Tailwind yellow-950. 14.6:1 on white, 1.4:1 on `secondary-950`."
|
|
1020
|
+
},
|
|
1021
|
+
{
|
|
1022
|
+
"name": "error-50",
|
|
1023
|
+
"value": "oklch(97.1% 0.013 17.38)",
|
|
1024
|
+
"usage": "Error, step 50: Tailwind red-50. 1.1:1 on white, 18.4:1 on `secondary-950`."
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
"name": "error-100",
|
|
1028
|
+
"value": "oklch(93.6% 0.032 17.717)",
|
|
1029
|
+
"usage": "Error, step 100: Tailwind red-100. 1.2:1 on white, 16.5:1 on `secondary-950`."
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
"name": "error-200",
|
|
1033
|
+
"value": "oklch(88.5% 0.062 18.334)",
|
|
1034
|
+
"usage": "Error, step 200: Tailwind red-200. 1.4:1 on white, 13.9:1 on `secondary-950`."
|
|
1035
|
+
},
|
|
1036
|
+
{
|
|
1037
|
+
"name": "error-300",
|
|
1038
|
+
"value": "oklch(80.8% 0.114 19.571)",
|
|
1039
|
+
"usage": "Error, step 300: Tailwind red-300. 1.9:1 on white, 10.5:1 on `secondary-950`."
|
|
1040
|
+
},
|
|
1041
|
+
{
|
|
1042
|
+
"name": "error-400",
|
|
1043
|
+
"value": "oklch(70.4% 0.191 22.216)",
|
|
1044
|
+
"usage": "Error, step 400: Tailwind red-400. 2.9:1 on white, 7.0:1 on `secondary-950`."
|
|
1045
|
+
},
|
|
1046
|
+
{
|
|
1047
|
+
"name": "error-500",
|
|
1048
|
+
"value": "oklch(63.7% 0.237 25.331)",
|
|
1049
|
+
"usage": "Error, step 500: Tailwind red-500. 3.8:1 on white, 5.3:1 on `secondary-950`."
|
|
1050
|
+
},
|
|
1051
|
+
{
|
|
1052
|
+
"name": "error-600",
|
|
1053
|
+
"value": "oklch(57.7% 0.245 27.325)",
|
|
1054
|
+
"usage": "Error, step 600: Tailwind red-600. 4.8:1 on white, 4.2:1 on `secondary-950`."
|
|
1055
|
+
},
|
|
1056
|
+
{
|
|
1057
|
+
"name": "error-700",
|
|
1058
|
+
"value": "oklch(50.5% 0.213 27.518)",
|
|
1059
|
+
"usage": "Error, step 700: Tailwind red-700. 6.4:1 on white, 3.1:1 on `secondary-950`."
|
|
1060
|
+
},
|
|
1061
|
+
{
|
|
1062
|
+
"name": "error-800",
|
|
1063
|
+
"value": "oklch(44.4% 0.177 26.899)",
|
|
1064
|
+
"usage": "Error, step 800: Tailwind red-800. 8.4:1 on white, 2.4:1 on `secondary-950`."
|
|
1065
|
+
},
|
|
1066
|
+
{
|
|
1067
|
+
"name": "error-900",
|
|
1068
|
+
"value": "oklch(39.6% 0.141 25.723)",
|
|
1069
|
+
"usage": "Error, step 900: Tailwind red-900. 10.1:1 on white, 2.0:1 on `secondary-950`."
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
"name": "error-950",
|
|
1073
|
+
"value": "oklch(25.8% 0.092 26.042)",
|
|
1074
|
+
"usage": "Error, step 950: Tailwind red-950. 16.1:1 on white, 1.2:1 on `secondary-950`."
|
|
1075
|
+
},
|
|
1076
|
+
{
|
|
1077
|
+
"name": "white",
|
|
1078
|
+
"value": "#ffffff",
|
|
1079
|
+
"usage": "Light page ground; text in dark theme; text on buttons."
|
|
1080
|
+
},
|
|
1081
|
+
{
|
|
1082
|
+
"name": "black",
|
|
1083
|
+
"value": "#000000",
|
|
1084
|
+
"usage": "Text in light theme."
|
|
1085
|
+
}
|
|
1086
|
+
]
|
|
1087
|
+
},
|
|
1088
|
+
"type": {
|
|
1089
|
+
"fonts": [],
|
|
1090
|
+
"familiesNote": "sans is what every text style uses. With <html data-font=\"chill\"> it resolves to chill instead (load @tuuject/koi-tokens/fonts.css for the face).",
|
|
1091
|
+
"families": {
|
|
1092
|
+
"sans": "-apple-system, BlinkMacSystemFont, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif",
|
|
1093
|
+
"chill": "\"ChillRoundF\", -apple-system, BlinkMacSystemFont, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif"
|
|
1094
|
+
},
|
|
1095
|
+
"groups": [
|
|
1096
|
+
{
|
|
1097
|
+
"name": "Headings",
|
|
1098
|
+
"family": "sans",
|
|
1099
|
+
"styles": [
|
|
1100
|
+
{
|
|
1101
|
+
"name": "display",
|
|
1102
|
+
"fontSize": "30px",
|
|
1103
|
+
"lineHeight": "38px",
|
|
1104
|
+
"fontWeight": 700,
|
|
1105
|
+
"usage": "One per page at most: hero and site titles.",
|
|
1106
|
+
"sample": "Astro Koi"
|
|
1107
|
+
},
|
|
1108
|
+
{
|
|
1109
|
+
"name": "heading-1",
|
|
1110
|
+
"fontSize": "24px",
|
|
1111
|
+
"lineHeight": "32px",
|
|
1112
|
+
"fontWeight": 700,
|
|
1113
|
+
"usage": "Page titles.",
|
|
1114
|
+
"sample": "又一个基于 Astro 的博客站点"
|
|
1115
|
+
},
|
|
1116
|
+
{
|
|
1117
|
+
"name": "heading-2",
|
|
1118
|
+
"fontSize": "20px",
|
|
1119
|
+
"lineHeight": "28px",
|
|
1120
|
+
"fontWeight": 700,
|
|
1121
|
+
"usage": "Section titles; Dialog titles.",
|
|
1122
|
+
"sample": "Markdown Style Guide"
|
|
1123
|
+
},
|
|
1124
|
+
{
|
|
1125
|
+
"name": "heading-3",
|
|
1126
|
+
"fontSize": "16px",
|
|
1127
|
+
"lineHeight": "24px",
|
|
1128
|
+
"fontWeight": 700,
|
|
1129
|
+
"usage": "Card titles, the NavMenu product name, sub-sections.",
|
|
1130
|
+
"sample": "朋友们"
|
|
1131
|
+
}
|
|
1132
|
+
]
|
|
1133
|
+
},
|
|
1134
|
+
{
|
|
1135
|
+
"name": "Text",
|
|
1136
|
+
"family": "sans",
|
|
1137
|
+
"styles": [
|
|
1138
|
+
{
|
|
1139
|
+
"name": "prose",
|
|
1140
|
+
"fontSize": "16px",
|
|
1141
|
+
"lineHeight": 1.75,
|
|
1142
|
+
"fontWeight": 400,
|
|
1143
|
+
"usage": "Long-form reading text only (articles, docs). Everything else is `body`.",
|
|
1144
|
+
"sample": "这是一段正文。This is body copy."
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
"name": "body",
|
|
1148
|
+
"fontSize": "14px",
|
|
1149
|
+
"lineHeight": "20px",
|
|
1150
|
+
"fontWeight": 400,
|
|
1151
|
+
"usage": "The base size: UI text, inputs, alerts, menus, table cells.",
|
|
1152
|
+
"sample": "Oct 7, 2026"
|
|
1153
|
+
},
|
|
1154
|
+
{
|
|
1155
|
+
"name": "small",
|
|
1156
|
+
"fontSize": "12px",
|
|
1157
|
+
"lineHeight": "16px",
|
|
1158
|
+
"fontWeight": 400,
|
|
1159
|
+
"usage": "Help text, descriptions, tooltips, tags, section labels.",
|
|
1160
|
+
"sample": "用于说明的辅助文字"
|
|
1161
|
+
},
|
|
1162
|
+
{
|
|
1163
|
+
"name": "caption",
|
|
1164
|
+
"fontSize": "12px",
|
|
1165
|
+
"lineHeight": "16px",
|
|
1166
|
+
"fontWeight": 700,
|
|
1167
|
+
"usage": "Badges and tiny counters only.",
|
|
1168
|
+
"sample": "NEW"
|
|
1169
|
+
}
|
|
1170
|
+
]
|
|
1171
|
+
},
|
|
1172
|
+
{
|
|
1173
|
+
"name": "Controls",
|
|
1174
|
+
"family": "sans",
|
|
1175
|
+
"styles": [
|
|
1176
|
+
{
|
|
1177
|
+
"name": "label",
|
|
1178
|
+
"fontSize": "14px",
|
|
1179
|
+
"lineHeight": "20px",
|
|
1180
|
+
"fontWeight": 700,
|
|
1181
|
+
"usage": "Field labels, table headers, Alert and Toast titles.",
|
|
1182
|
+
"sample": "电子邮箱"
|
|
1183
|
+
},
|
|
1184
|
+
{
|
|
1185
|
+
"name": "button",
|
|
1186
|
+
"fontSize": "14px",
|
|
1187
|
+
"lineHeight": "20px",
|
|
1188
|
+
"fontWeight": 600,
|
|
1189
|
+
"usage": "Button labels, md and lg.",
|
|
1190
|
+
"sample": "下一页"
|
|
1191
|
+
},
|
|
1192
|
+
{
|
|
1193
|
+
"name": "button-sm",
|
|
1194
|
+
"fontSize": "12px",
|
|
1195
|
+
"lineHeight": "16px",
|
|
1196
|
+
"fontWeight": 600,
|
|
1197
|
+
"usage": "Small button labels, except in table cells.",
|
|
1198
|
+
"sample": "保存"
|
|
1199
|
+
}
|
|
1200
|
+
]
|
|
1201
|
+
}
|
|
1202
|
+
]
|
|
1203
|
+
},
|
|
1204
|
+
"spacing": {
|
|
1205
|
+
"tokens": [
|
|
1206
|
+
{
|
|
1207
|
+
"name": "space-1",
|
|
1208
|
+
"value": "4px",
|
|
1209
|
+
"usage": "Icon-to-label gap inside badges; Tailwind's unit."
|
|
1210
|
+
},
|
|
1211
|
+
{
|
|
1212
|
+
"name": "space-2",
|
|
1213
|
+
"value": "8px",
|
|
1214
|
+
"usage": "Gap between an icon and its label; between a label and its control."
|
|
1215
|
+
},
|
|
1216
|
+
{
|
|
1217
|
+
"name": "space-3",
|
|
1218
|
+
"value": "12px",
|
|
1219
|
+
"usage": "Inner padding of compact containers (tooltips, tab track); stack gap in forms' option lists."
|
|
1220
|
+
},
|
|
1221
|
+
{
|
|
1222
|
+
"name": "space-4",
|
|
1223
|
+
"value": "16px",
|
|
1224
|
+
"usage": "Gap between fields in a form; Alert padding."
|
|
1225
|
+
},
|
|
1226
|
+
{
|
|
1227
|
+
"name": "space-5",
|
|
1228
|
+
"value": "20px",
|
|
1229
|
+
"usage": "Content padding on mobile (the blog's `p-5`)."
|
|
1230
|
+
},
|
|
1231
|
+
{
|
|
1232
|
+
"name": "space-6",
|
|
1233
|
+
"value": "24px",
|
|
1234
|
+
"usage": "Card and Dialog padding; content padding from md up (`md:p-6`)."
|
|
1235
|
+
},
|
|
1236
|
+
{
|
|
1237
|
+
"name": "space-8",
|
|
1238
|
+
"value": "32px",
|
|
1239
|
+
"usage": "Gap between groups and between cards (the blog's `gap-8`)."
|
|
1240
|
+
},
|
|
1241
|
+
{
|
|
1242
|
+
"name": "space-10",
|
|
1243
|
+
"value": "40px",
|
|
1244
|
+
"usage": "Space between list items on mobile (`my-10`)."
|
|
1245
|
+
},
|
|
1246
|
+
{
|
|
1247
|
+
"name": "space-12",
|
|
1248
|
+
"value": "48px",
|
|
1249
|
+
"usage": "Space between list items from md up (`md:my-12`)."
|
|
1250
|
+
},
|
|
1251
|
+
{
|
|
1252
|
+
"name": "space-16",
|
|
1253
|
+
"value": "64px",
|
|
1254
|
+
"usage": "Gap between page sections."
|
|
1255
|
+
}
|
|
1256
|
+
]
|
|
1257
|
+
},
|
|
1258
|
+
"radius": {
|
|
1259
|
+
"tokens": [
|
|
1260
|
+
{
|
|
1261
|
+
"name": "radius-sm",
|
|
1262
|
+
"value": "6px",
|
|
1263
|
+
"usage": "Checkbox boxes."
|
|
1264
|
+
},
|
|
1265
|
+
{
|
|
1266
|
+
"name": "radius-lg",
|
|
1267
|
+
"value": "8px",
|
|
1268
|
+
"usage": "Buttons and icon buttons with `shape=\"rounded\"` (Tailwind `rounded-lg`); tooltips; images inside text."
|
|
1269
|
+
},
|
|
1270
|
+
{
|
|
1271
|
+
"name": "radius-xl",
|
|
1272
|
+
"value": "12px",
|
|
1273
|
+
"usage": "Inputs, textareas, selects, alerts, square avatars (the blog's friend avatars)."
|
|
1274
|
+
},
|
|
1275
|
+
{
|
|
1276
|
+
"name": "radius-2xl",
|
|
1277
|
+
"value": "16px",
|
|
1278
|
+
"usage": "Spare step between fields (12px) and panels (24px); not used by the components today."
|
|
1279
|
+
},
|
|
1280
|
+
{
|
|
1281
|
+
"name": "radius-panel",
|
|
1282
|
+
"value": "24px",
|
|
1283
|
+
"usage": "Cards and toasts (the blog's `.koi-squircle-md`; 48px squircle where `corner-shape: squircle` is supported)."
|
|
1284
|
+
},
|
|
1285
|
+
{
|
|
1286
|
+
"name": "radius-dialog",
|
|
1287
|
+
"value": "32px",
|
|
1288
|
+
"usage": "Dialog panels: `radius-lg` (8px) of the footer buttons plus `space-6` (24px) padding, so the panel corner and the button corner share a center and read as concentric."
|
|
1289
|
+
},
|
|
1290
|
+
{
|
|
1291
|
+
"name": "radius-bar",
|
|
1292
|
+
"value": "36px",
|
|
1293
|
+
"usage": "Floating bars: the blog's nav pill (`rounded-[2.25rem]`)."
|
|
1294
|
+
},
|
|
1295
|
+
{
|
|
1296
|
+
"name": "radius-full",
|
|
1297
|
+
"value": "9999px",
|
|
1298
|
+
"usage": "Buttons, icon buttons, badges, tags, switches, tab tracks, round avatars."
|
|
1299
|
+
}
|
|
1300
|
+
]
|
|
1301
|
+
},
|
|
1302
|
+
"shadow": {
|
|
1303
|
+
"tokens": [
|
|
1304
|
+
{
|
|
1305
|
+
"name": "shadow-raised",
|
|
1306
|
+
"value": "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)",
|
|
1307
|
+
"usage": "The active tab and switch thumbs (`shadow-sm`). Not used on buttons, which are flat."
|
|
1308
|
+
},
|
|
1309
|
+
{
|
|
1310
|
+
"name": "shadow-float",
|
|
1311
|
+
"value": "0 25px 50px -12px rgba(0, 0, 0, 0.25)",
|
|
1312
|
+
"usage": "Things floating over the page: dialogs, toasts, the nav pill (`shadow-2xl`)."
|
|
1313
|
+
},
|
|
1314
|
+
{
|
|
1315
|
+
"name": "shadow-float-soft",
|
|
1316
|
+
"value": "0 25px 50px -12px rgba(0, 0, 0, 0.15)",
|
|
1317
|
+
"usage": "Docked floating chrome (the nav bar once scrolled)."
|
|
1318
|
+
}
|
|
1319
|
+
]
|
|
1320
|
+
},
|
|
1321
|
+
"size": {
|
|
1322
|
+
"note": "Fixed sizes components share.",
|
|
1323
|
+
"tokens": [
|
|
1324
|
+
{
|
|
1325
|
+
"name": "control-sm",
|
|
1326
|
+
"value": "28px",
|
|
1327
|
+
"usage": "Small buttons, inputs, tags, avatars."
|
|
1328
|
+
},
|
|
1329
|
+
{
|
|
1330
|
+
"name": "control-md",
|
|
1331
|
+
"value": "36px",
|
|
1332
|
+
"usage": "Default height of buttons, inputs, selects, tab buttons and NavMenu items."
|
|
1333
|
+
},
|
|
1334
|
+
{
|
|
1335
|
+
"name": "control-lg",
|
|
1336
|
+
"value": "44px",
|
|
1337
|
+
"usage": "Large buttons (the blog's pagination pills), the tab track, the NavMenu logo box, large avatars."
|
|
1338
|
+
},
|
|
1339
|
+
{
|
|
1340
|
+
"name": "content-max",
|
|
1341
|
+
"value": "56rem",
|
|
1342
|
+
"usage": "Max width of a reading column (`max-w-4xl`)."
|
|
1343
|
+
},
|
|
1344
|
+
{
|
|
1345
|
+
"name": "icon",
|
|
1346
|
+
"value": "16px",
|
|
1347
|
+
"usage": "Icons beside 14px text: md/lg controls, alerts, toasts, NavMenu."
|
|
1348
|
+
},
|
|
1349
|
+
{
|
|
1350
|
+
"name": "icon-sm",
|
|
1351
|
+
"value": "14px",
|
|
1352
|
+
"usage": "Icons in small controls and tags."
|
|
1353
|
+
},
|
|
1354
|
+
{
|
|
1355
|
+
"name": "icon-xs",
|
|
1356
|
+
"value": "12px",
|
|
1357
|
+
"usage": "Icons beside 12px text: the checkbox tick, a field's error icon."
|
|
1358
|
+
},
|
|
1359
|
+
{
|
|
1360
|
+
"name": "icon-lg",
|
|
1361
|
+
"value": "18px",
|
|
1362
|
+
"usage": "Icons beside 16px titles: toasts, the dialog's close button."
|
|
1363
|
+
}
|
|
1364
|
+
]
|
|
1365
|
+
},
|
|
1366
|
+
"blur": {
|
|
1367
|
+
"note": "Backdrop blur behind translucent surfaces.",
|
|
1368
|
+
"tokens": [
|
|
1369
|
+
{
|
|
1370
|
+
"name": "blur-panel",
|
|
1371
|
+
"value": "24px",
|
|
1372
|
+
"usage": "Behind `surface-glass` and `backdrop` (`backdrop-blur-xl`)."
|
|
1373
|
+
},
|
|
1374
|
+
{
|
|
1375
|
+
"name": "blur-float",
|
|
1376
|
+
"value": "40px",
|
|
1377
|
+
"usage": "Behind `surface-glass-tint` (`backdrop-blur-2xl`)."
|
|
1378
|
+
}
|
|
1379
|
+
]
|
|
1380
|
+
},
|
|
1381
|
+
"layer": {
|
|
1382
|
+
"note": "Stacking order of things that float over the page (z-index). A component's own internal stacking (a tab's indicator under its labels) stays inside it.",
|
|
1383
|
+
"tokens": [
|
|
1384
|
+
{
|
|
1385
|
+
"name": "layer-dialog",
|
|
1386
|
+
"value": 900,
|
|
1387
|
+
"usage": "Dialog backdrop and popup."
|
|
1388
|
+
},
|
|
1389
|
+
{
|
|
1390
|
+
"name": "layer-popup",
|
|
1391
|
+
"value": 950,
|
|
1392
|
+
"usage": "Panels opened from a trigger (SelectPanel), so they work inside a Dialog."
|
|
1393
|
+
},
|
|
1394
|
+
{
|
|
1395
|
+
"name": "layer-toast",
|
|
1396
|
+
"value": 1000,
|
|
1397
|
+
"usage": "The toast stack, above everything else."
|
|
1398
|
+
},
|
|
1399
|
+
{
|
|
1400
|
+
"name": "layer-tooltip",
|
|
1401
|
+
"value": 1000,
|
|
1402
|
+
"usage": "Tooltips: above dialogs and popups."
|
|
1403
|
+
}
|
|
1404
|
+
]
|
|
1405
|
+
},
|
|
1406
|
+
"component": {
|
|
1407
|
+
"note": "Dimensions inside components, so every platform builds them the same: px unless noted, grouped by component. They come out as plain numbers in @tuuject/koi-tokens/dimensions (`components.switch.trackWidth`), not as CSS variables: they aren't themed and aren't meant for styling apps. Shared sizes (controls, icons, spacing, radii) are the groups above.",
|
|
1408
|
+
"groups": [
|
|
1409
|
+
{
|
|
1410
|
+
"name": "focus-ring",
|
|
1411
|
+
"usage": "The keyboard focus outline every focusable control draws.",
|
|
1412
|
+
"tokens": [
|
|
1413
|
+
{
|
|
1414
|
+
"name": "width",
|
|
1415
|
+
"value": "2px",
|
|
1416
|
+
"usage": "Outline thickness."
|
|
1417
|
+
},
|
|
1418
|
+
{
|
|
1419
|
+
"name": "offset",
|
|
1420
|
+
"value": "2px",
|
|
1421
|
+
"usage": "Gap between the control and its outline."
|
|
1422
|
+
}
|
|
1423
|
+
]
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
"name": "stroke",
|
|
1427
|
+
"usage": "Edge thicknesses.",
|
|
1428
|
+
"tokens": [
|
|
1429
|
+
{
|
|
1430
|
+
"name": "hairline",
|
|
1431
|
+
"value": "1px",
|
|
1432
|
+
"usage": "Card, field, button and divider edges."
|
|
1433
|
+
},
|
|
1434
|
+
{
|
|
1435
|
+
"name": "check",
|
|
1436
|
+
"value": "1.5px",
|
|
1437
|
+
"usage": "The checkbox and radio box edge: a little heavier so a 16px box reads at a glance."
|
|
1438
|
+
}
|
|
1439
|
+
]
|
|
1440
|
+
},
|
|
1441
|
+
{
|
|
1442
|
+
"name": "spinner",
|
|
1443
|
+
"usage": "The loading ring: drawn on a 24 grid, so its stroke scales with it.",
|
|
1444
|
+
"tokens": [
|
|
1445
|
+
{
|
|
1446
|
+
"name": "size-sm",
|
|
1447
|
+
"value": "16px",
|
|
1448
|
+
"usage": "In small buttons and beside 12px text."
|
|
1449
|
+
},
|
|
1450
|
+
{
|
|
1451
|
+
"name": "size-md",
|
|
1452
|
+
"value": "20px",
|
|
1453
|
+
"usage": "Default."
|
|
1454
|
+
},
|
|
1455
|
+
{
|
|
1456
|
+
"name": "size-lg",
|
|
1457
|
+
"value": "32px",
|
|
1458
|
+
"usage": "Loading a whole panel."
|
|
1459
|
+
},
|
|
1460
|
+
{
|
|
1461
|
+
"name": "stroke",
|
|
1462
|
+
"value": "3",
|
|
1463
|
+
"usage": "Ring and arc stroke on the 24 grid (not px)."
|
|
1464
|
+
}
|
|
1465
|
+
]
|
|
1466
|
+
},
|
|
1467
|
+
{
|
|
1468
|
+
"name": "close-button",
|
|
1469
|
+
"usage": "The round × button in alerts and toasts.",
|
|
1470
|
+
"tokens": [
|
|
1471
|
+
{
|
|
1472
|
+
"name": "size",
|
|
1473
|
+
"value": "24px",
|
|
1474
|
+
"usage": "Its width and height."
|
|
1475
|
+
}
|
|
1476
|
+
]
|
|
1477
|
+
},
|
|
1478
|
+
{
|
|
1479
|
+
"name": "popup",
|
|
1480
|
+
"usage": "Panels that open from a trigger (SelectPanel).",
|
|
1481
|
+
"tokens": [
|
|
1482
|
+
{
|
|
1483
|
+
"name": "offset",
|
|
1484
|
+
"value": "4px",
|
|
1485
|
+
"usage": "Gap between the trigger and the panel."
|
|
1486
|
+
}
|
|
1487
|
+
]
|
|
1488
|
+
},
|
|
1489
|
+
{
|
|
1490
|
+
"name": "field",
|
|
1491
|
+
"usage": "What Input, Textarea, Select and SelectPanel share.",
|
|
1492
|
+
"tokens": [
|
|
1493
|
+
{
|
|
1494
|
+
"name": "line-height",
|
|
1495
|
+
"value": "20px",
|
|
1496
|
+
"usage": "The text line inside a field (body)."
|
|
1497
|
+
},
|
|
1498
|
+
{
|
|
1499
|
+
"name": "padding-x-sm",
|
|
1500
|
+
"value": "10px",
|
|
1501
|
+
"usage": "Side padding at control-sm."
|
|
1502
|
+
},
|
|
1503
|
+
{
|
|
1504
|
+
"name": "padding-x-md",
|
|
1505
|
+
"value": "12px",
|
|
1506
|
+
"usage": "Side padding at control-md."
|
|
1507
|
+
},
|
|
1508
|
+
{
|
|
1509
|
+
"name": "padding-x-lg",
|
|
1510
|
+
"value": "14px",
|
|
1511
|
+
"usage": "Side padding at control-lg."
|
|
1512
|
+
},
|
|
1513
|
+
{
|
|
1514
|
+
"name": "gap",
|
|
1515
|
+
"value": "6px",
|
|
1516
|
+
"usage": "Between a Field's label, control, error and help (legacy; no spacing step is 6px)."
|
|
1517
|
+
},
|
|
1518
|
+
{
|
|
1519
|
+
"name": "icon-offset",
|
|
1520
|
+
"value": "2px",
|
|
1521
|
+
"usage": "Moves a 12px error icon down to center it on the 16px help line."
|
|
1522
|
+
},
|
|
1523
|
+
{
|
|
1524
|
+
"name": "chevron-inset",
|
|
1525
|
+
"value": "10px",
|
|
1526
|
+
"usage": "The native Select's chevron, from the end edge."
|
|
1527
|
+
},
|
|
1528
|
+
{
|
|
1529
|
+
"name": "chevron-space",
|
|
1530
|
+
"value": "36px",
|
|
1531
|
+
"usage": "End padding that keeps the native Select's text clear of its chevron."
|
|
1532
|
+
}
|
|
1533
|
+
]
|
|
1534
|
+
},
|
|
1535
|
+
{
|
|
1536
|
+
"name": "textarea",
|
|
1537
|
+
"usage": "Multi-line text field.",
|
|
1538
|
+
"tokens": [
|
|
1539
|
+
{
|
|
1540
|
+
"name": "min-height",
|
|
1541
|
+
"value": "80px",
|
|
1542
|
+
"usage": "At least about three lines."
|
|
1543
|
+
}
|
|
1544
|
+
]
|
|
1545
|
+
},
|
|
1546
|
+
{
|
|
1547
|
+
"name": "table",
|
|
1548
|
+
"usage": "Table and DataTable.",
|
|
1549
|
+
"tokens": [
|
|
1550
|
+
{
|
|
1551
|
+
"name": "row-height",
|
|
1552
|
+
"value": "48px",
|
|
1553
|
+
"usage": "A body row's minimum height; cells keep their own padding, so taller content grows the row."
|
|
1554
|
+
}
|
|
1555
|
+
]
|
|
1556
|
+
},
|
|
1557
|
+
{
|
|
1558
|
+
"name": "badge",
|
|
1559
|
+
"usage": "Status and count labels.",
|
|
1560
|
+
"tokens": [
|
|
1561
|
+
{
|
|
1562
|
+
"name": "height",
|
|
1563
|
+
"value": "22px",
|
|
1564
|
+
"usage": "Its height."
|
|
1565
|
+
},
|
|
1566
|
+
{
|
|
1567
|
+
"name": "padding-x",
|
|
1568
|
+
"value": "10px",
|
|
1569
|
+
"usage": "Side padding."
|
|
1570
|
+
},
|
|
1571
|
+
{
|
|
1572
|
+
"name": "dot",
|
|
1573
|
+
"value": "6px",
|
|
1574
|
+
"usage": "The leading dot."
|
|
1575
|
+
}
|
|
1576
|
+
]
|
|
1577
|
+
},
|
|
1578
|
+
{
|
|
1579
|
+
"name": "avatar",
|
|
1580
|
+
"usage": "Avatars; sm/md/lg take the control heights.",
|
|
1581
|
+
"tokens": [
|
|
1582
|
+
{
|
|
1583
|
+
"name": "size-xl",
|
|
1584
|
+
"value": "64px",
|
|
1585
|
+
"usage": "The xl avatar."
|
|
1586
|
+
},
|
|
1587
|
+
{
|
|
1588
|
+
"name": "font-sm",
|
|
1589
|
+
"value": "12px",
|
|
1590
|
+
"usage": "Initials at sm."
|
|
1591
|
+
},
|
|
1592
|
+
{
|
|
1593
|
+
"name": "font-md",
|
|
1594
|
+
"value": "14px",
|
|
1595
|
+
"usage": "Initials at md."
|
|
1596
|
+
},
|
|
1597
|
+
{
|
|
1598
|
+
"name": "font-lg",
|
|
1599
|
+
"value": "16px",
|
|
1600
|
+
"usage": "Initials at lg."
|
|
1601
|
+
},
|
|
1602
|
+
{
|
|
1603
|
+
"name": "font-xl",
|
|
1604
|
+
"value": "24px",
|
|
1605
|
+
"usage": "Initials at xl."
|
|
1606
|
+
}
|
|
1607
|
+
]
|
|
1608
|
+
},
|
|
1609
|
+
{
|
|
1610
|
+
"name": "alert",
|
|
1611
|
+
"usage": "Inline status messages.",
|
|
1612
|
+
"tokens": [
|
|
1613
|
+
{
|
|
1614
|
+
"name": "icon-offset",
|
|
1615
|
+
"value": "2px",
|
|
1616
|
+
"usage": "Moves the 16px icon down to center it on the title's 20px line."
|
|
1617
|
+
}
|
|
1618
|
+
]
|
|
1619
|
+
},
|
|
1620
|
+
{
|
|
1621
|
+
"name": "dialog",
|
|
1622
|
+
"usage": "Modal dialogs.",
|
|
1623
|
+
"tokens": [
|
|
1624
|
+
{
|
|
1625
|
+
"name": "width-sm",
|
|
1626
|
+
"value": "400px",
|
|
1627
|
+
"usage": "Max width at sm."
|
|
1628
|
+
},
|
|
1629
|
+
{
|
|
1630
|
+
"name": "width-md",
|
|
1631
|
+
"value": "520px",
|
|
1632
|
+
"usage": "Max width at md (default)."
|
|
1633
|
+
},
|
|
1634
|
+
{
|
|
1635
|
+
"name": "width-lg",
|
|
1636
|
+
"value": "720px",
|
|
1637
|
+
"usage": "Max width at lg."
|
|
1638
|
+
}
|
|
1639
|
+
]
|
|
1640
|
+
},
|
|
1641
|
+
{
|
|
1642
|
+
"name": "checkbox",
|
|
1643
|
+
"usage": "The 16px box Checkbox and RadioGroup share.",
|
|
1644
|
+
"tokens": [
|
|
1645
|
+
{
|
|
1646
|
+
"name": "box",
|
|
1647
|
+
"value": "16px",
|
|
1648
|
+
"usage": "The box's width and height."
|
|
1649
|
+
},
|
|
1650
|
+
{
|
|
1651
|
+
"name": "offset",
|
|
1652
|
+
"value": "2px",
|
|
1653
|
+
"usage": "Moves the box down to center it on the label's 20px first line."
|
|
1654
|
+
}
|
|
1655
|
+
]
|
|
1656
|
+
},
|
|
1657
|
+
{
|
|
1658
|
+
"name": "radio",
|
|
1659
|
+
"usage": "RadioGroup's control (Checkbox's box, round).",
|
|
1660
|
+
"tokens": [
|
|
1661
|
+
{
|
|
1662
|
+
"name": "dot",
|
|
1663
|
+
"value": "6px",
|
|
1664
|
+
"usage": "The checked dot."
|
|
1665
|
+
}
|
|
1666
|
+
]
|
|
1667
|
+
},
|
|
1668
|
+
{
|
|
1669
|
+
"name": "switch",
|
|
1670
|
+
"usage": "The pill toggle. The thumb travels track-width − thumb − 2 × thumb-inset.",
|
|
1671
|
+
"tokens": [
|
|
1672
|
+
{
|
|
1673
|
+
"name": "track-width",
|
|
1674
|
+
"value": "36px",
|
|
1675
|
+
"usage": "Track width."
|
|
1676
|
+
},
|
|
1677
|
+
{
|
|
1678
|
+
"name": "track-height",
|
|
1679
|
+
"value": "20px",
|
|
1680
|
+
"usage": "Track height: one label line, so it lines up like the checkbox."
|
|
1681
|
+
},
|
|
1682
|
+
{
|
|
1683
|
+
"name": "thumb",
|
|
1684
|
+
"value": "14px",
|
|
1685
|
+
"usage": "Thumb width and height."
|
|
1686
|
+
},
|
|
1687
|
+
{
|
|
1688
|
+
"name": "thumb-inset",
|
|
1689
|
+
"value": "3px",
|
|
1690
|
+
"usage": "Gap between the thumb and the track's edge."
|
|
1691
|
+
}
|
|
1692
|
+
]
|
|
1693
|
+
},
|
|
1694
|
+
{
|
|
1695
|
+
"name": "progress",
|
|
1696
|
+
"usage": "Progress bars.",
|
|
1697
|
+
"tokens": [
|
|
1698
|
+
{
|
|
1699
|
+
"name": "track-sm",
|
|
1700
|
+
"value": "4px",
|
|
1701
|
+
"usage": "Track height at sm."
|
|
1702
|
+
},
|
|
1703
|
+
{
|
|
1704
|
+
"name": "track-md",
|
|
1705
|
+
"value": "8px",
|
|
1706
|
+
"usage": "Track height at md (default)."
|
|
1707
|
+
},
|
|
1708
|
+
{
|
|
1709
|
+
"name": "track-lg",
|
|
1710
|
+
"value": "12px",
|
|
1711
|
+
"usage": "Track height at lg."
|
|
1712
|
+
}
|
|
1713
|
+
]
|
|
1714
|
+
},
|
|
1715
|
+
{
|
|
1716
|
+
"name": "pagination",
|
|
1717
|
+
"usage": "Page navigation.",
|
|
1718
|
+
"tokens": [
|
|
1719
|
+
{
|
|
1720
|
+
"name": "gap-width",
|
|
1721
|
+
"value": "24px",
|
|
1722
|
+
"usage": "The … between page numbers."
|
|
1723
|
+
}
|
|
1724
|
+
]
|
|
1725
|
+
},
|
|
1726
|
+
{
|
|
1727
|
+
"name": "tag",
|
|
1728
|
+
"usage": "Tags and filter chips.",
|
|
1729
|
+
"tokens": [
|
|
1730
|
+
{
|
|
1731
|
+
"name": "padding-x",
|
|
1732
|
+
"value": "10px",
|
|
1733
|
+
"usage": "Side padding."
|
|
1734
|
+
},
|
|
1735
|
+
{
|
|
1736
|
+
"name": "remove",
|
|
1737
|
+
"value": "16px",
|
|
1738
|
+
"usage": "The round × button."
|
|
1739
|
+
},
|
|
1740
|
+
{
|
|
1741
|
+
"name": "remove-overhang",
|
|
1742
|
+
"value": "4px",
|
|
1743
|
+
"usage": "How far the × reaches into the end padding."
|
|
1744
|
+
}
|
|
1745
|
+
]
|
|
1746
|
+
},
|
|
1747
|
+
{
|
|
1748
|
+
"name": "toast",
|
|
1749
|
+
"usage": "Toasts.",
|
|
1750
|
+
"tokens": [
|
|
1751
|
+
{
|
|
1752
|
+
"name": "width",
|
|
1753
|
+
"value": "360px",
|
|
1754
|
+
"usage": "Width (narrower on small screens)."
|
|
1755
|
+
},
|
|
1756
|
+
{
|
|
1757
|
+
"name": "icon-offset",
|
|
1758
|
+
"value": "3px",
|
|
1759
|
+
"usage": "Moves the 18px icon down to center it on the title's 24px line."
|
|
1760
|
+
},
|
|
1761
|
+
{
|
|
1762
|
+
"name": "closable-inset",
|
|
1763
|
+
"value": "44px",
|
|
1764
|
+
"usage": "End padding when closable: space-3 + close-button + space-2."
|
|
1765
|
+
},
|
|
1766
|
+
{
|
|
1767
|
+
"name": "enter-offset",
|
|
1768
|
+
"value": "12px",
|
|
1769
|
+
"usage": "How far a toast rises (or drops) as it enters."
|
|
1770
|
+
}
|
|
1771
|
+
]
|
|
1772
|
+
},
|
|
1773
|
+
{
|
|
1774
|
+
"name": "tooltip",
|
|
1775
|
+
"usage": "Tooltips.",
|
|
1776
|
+
"tokens": [
|
|
1777
|
+
{
|
|
1778
|
+
"name": "max-width",
|
|
1779
|
+
"value": "240px",
|
|
1780
|
+
"usage": "Longest line before wrapping."
|
|
1781
|
+
},
|
|
1782
|
+
{
|
|
1783
|
+
"name": "offset",
|
|
1784
|
+
"value": "8px",
|
|
1785
|
+
"usage": "Gap between the trigger and the bubble."
|
|
1786
|
+
}
|
|
1787
|
+
]
|
|
1788
|
+
},
|
|
1789
|
+
{
|
|
1790
|
+
"name": "select-panel",
|
|
1791
|
+
"usage": "SelectPanel's trigger and panel.",
|
|
1792
|
+
"tokens": [
|
|
1793
|
+
{
|
|
1794
|
+
"name": "max-height",
|
|
1795
|
+
"value": "360px",
|
|
1796
|
+
"usage": "Tallest the panel gets before it scrolls (less when the viewport is short)."
|
|
1797
|
+
},
|
|
1798
|
+
{
|
|
1799
|
+
"name": "chevron-overhang",
|
|
1800
|
+
"value": "2px",
|
|
1801
|
+
"usage": "How far the chevron reaches into the end padding (legacy sat it 10px from the edge)."
|
|
1802
|
+
}
|
|
1803
|
+
]
|
|
1804
|
+
},
|
|
1805
|
+
{
|
|
1806
|
+
"name": "link",
|
|
1807
|
+
"usage": "Inline links: the blog's dashed amber underline.",
|
|
1808
|
+
"tokens": [
|
|
1809
|
+
{
|
|
1810
|
+
"name": "underline",
|
|
1811
|
+
"value": "2px",
|
|
1812
|
+
"usage": "The dashed bottom border."
|
|
1813
|
+
},
|
|
1814
|
+
{
|
|
1815
|
+
"name": "radius",
|
|
1816
|
+
"value": "2px",
|
|
1817
|
+
"usage": "Corners of the hover tint (no radius step is that small)."
|
|
1818
|
+
},
|
|
1819
|
+
{
|
|
1820
|
+
"name": "icon-gap",
|
|
1821
|
+
"value": "2px",
|
|
1822
|
+
"usage": "Space before the external-link arrow."
|
|
1823
|
+
}
|
|
1824
|
+
]
|
|
1825
|
+
},
|
|
1826
|
+
{
|
|
1827
|
+
"name": "chat-bubble",
|
|
1828
|
+
"usage": "Chat and comment message bubbles.",
|
|
1829
|
+
"tokens": [
|
|
1830
|
+
{
|
|
1831
|
+
"name": "padding-x",
|
|
1832
|
+
"value": "12px",
|
|
1833
|
+
"usage": "Side padding."
|
|
1834
|
+
},
|
|
1835
|
+
{
|
|
1836
|
+
"name": "padding-y",
|
|
1837
|
+
"value": "8px",
|
|
1838
|
+
"usage": "Top and bottom padding."
|
|
1839
|
+
},
|
|
1840
|
+
{
|
|
1841
|
+
"name": "max-width",
|
|
1842
|
+
"value": "480px",
|
|
1843
|
+
"usage": "Longest line before wrapping; bubbles never run the full width."
|
|
1844
|
+
}
|
|
1845
|
+
]
|
|
1846
|
+
},
|
|
1847
|
+
{
|
|
1848
|
+
"name": "prose",
|
|
1849
|
+
"usage": "Long-form rich text. Only the rules that stay put at every size live here; type sizes and vertical rhythm inside Prose are em of its base size, in the recipe.",
|
|
1850
|
+
"tokens": [
|
|
1851
|
+
{
|
|
1852
|
+
"name": "quote-rule",
|
|
1853
|
+
"value": "4px",
|
|
1854
|
+
"usage": "Blockquote start border (the blog's 0.25rem)."
|
|
1855
|
+
},
|
|
1856
|
+
{
|
|
1857
|
+
"name": "head-rule",
|
|
1858
|
+
"value": "2px",
|
|
1859
|
+
"usage": "Rule under a table head (the blog's `prose-thead:border-b-2`)."
|
|
1860
|
+
},
|
|
1861
|
+
{
|
|
1862
|
+
"name": "kbd-depth",
|
|
1863
|
+
"value": "3px",
|
|
1864
|
+
"usage": "Drop of the shadow under a `kbd` key cap."
|
|
1865
|
+
}
|
|
1866
|
+
]
|
|
1867
|
+
}
|
|
1868
|
+
]
|
|
1869
|
+
}
|
|
1870
|
+
}
|