@fusion.dev/helix-docs 0.131.0 → 0.132.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/content/intent-reference.mdx +2 -1
- package/content/metrics.mdx +17 -17
- package/content/theme-builder.mdx +45 -38
- package/dist/sources.generated.js +56 -48
- package/package.json +9 -9
|
@@ -28,7 +28,8 @@ computed from `brand` or from the Helix design language. A theme that sets only
|
|
|
28
28
|
|---|---|
|
|
29
29
|
| `brand` | Your main brand color. Required |
|
|
30
30
|
| `accent` | The second emphasis color. Defaults to the brand color. `{ from: 'brand', rotate: 180 }` gives the complementary color |
|
|
31
|
-
| `
|
|
31
|
+
| `background` | The page's color, `{ light, dark }`, for a page that is not pure white or pure black. The surfaces keep their contrast with it, and the grays take its tint. A page no text color can reach the contrast target on is refused |
|
|
32
|
+
| `neutral` | The gray ramp, which can be tinted toward the brand. With `background`, it takes the page's tint |
|
|
32
33
|
| `status` | `info`, `success`, `warning`, and `danger`. A color pins one. An object adjusts its hue while it keeps its meaning |
|
|
33
34
|
| `chroma` | How saturated the palette is, independent of hue |
|
|
34
35
|
| `scheme` | `'light'` or `'dark'`, for a theme that has only one mode |
|
package/content/metrics.mdx
CHANGED
|
@@ -58,10 +58,10 @@ either barrel. The per-component tables show what your page pays.
|
|
|
58
58
|
| Package | Raw | Gzip | Brotli | |
|
|
59
59
|
|---|---|---|---|---|
|
|
60
60
|
| `@fusion.dev/helix-core` | 183,735 | 58,230 | 49,473 | The element base class, mixins, decorators, and floating positioning. |
|
|
61
|
-
| `@fusion.dev/helix-headless` |
|
|
61
|
+
| `@fusion.dev/helix-headless` | 746,073 | 193,246 | 149,775 | Every headless family. The barrel entry includes all of them. |
|
|
62
62
|
| `@fusion.dev/helix-icons` | 55,565 | 17,727 | 14,864 | The whole glyph set. |
|
|
63
63
|
| `@fusion.dev/helix-theme` | 3,626 | 1,597 | 1,384 | The derivation engine. Most sites run it at build time, and a theme switcher runs it in the browser. |
|
|
64
|
-
| `@fusion.dev/helix` | 1,291,
|
|
64
|
+
| `@fusion.dev/helix` | 1,291,284 | 301,883 | 220,711 | Every styled family. |
|
|
65
65
|
| `lit` | 15,394 | 6,118 | 5,460 | Lit itself, listed so you can subtract it from every row above. |
|
|
66
66
|
|
|
67
67
|
## Stylesheets
|
|
@@ -84,9 +84,9 @@ shows the whole cost of using the base layer on its own.
|
|
|
84
84
|
|
|
85
85
|
**Most of your first component is the shared runtime.** The median styled family is 21,372 bytes gzipped alone, and it adds 2,254 to a page that already has Helix. The shared runtime is 89 percent of the first component, and the component itself is 11 percent. Ten typical components cost the first number once, plus nine of the added number. The two columns in the tables below let you work that out for your own components.
|
|
86
86
|
|
|
87
|
-
Across the 104 styled components, the smallest is `code` at 9,928 bytes gzipped alone, and the largest is `data-table` at 63,813. Every family together is 301,
|
|
87
|
+
Across the 104 styled components, the smallest is `code` at 9,928 bytes gzipped alone, and the largest is `data-table` at 63,813. Every family together is 301,883.
|
|
88
88
|
|
|
89
|
-
No family imports a barrel. The `barrels` rule in `fusion workspace` enforces that. `@fusion.dev/helix-headless` marks every module in `dist` as having side effects, which is true of a file that calls `customElements.define`. A bundler can remove none of it. One `import { HelixHeadlessButton } from '@fusion.dev/helix-headless'` costs 193,
|
|
89
|
+
No family imports a barrel. The `barrels` rule in `fusion workspace` enforces that. `@fusion.dev/helix-headless` marks every module in `dist` as having side effects, which is true of a file that calls `customElements.define`. A bundler can remove none of it. One `import { HelixHeadlessButton } from '@fusion.dev/helix-headless'` costs 193,246 bytes gzipped, whatever else the page imports. That is 9 times the median family above. All 104 styled families import the headless family they extend directly. The rule checks the shape of the import, so it applies to any package that sets `sideEffects`, whatever its name.
|
|
90
90
|
|
|
91
91
|
The headless tier never had the problem, so it serves as the control. `@fusion.dev/helix-core` is `sideEffects: false`, and the median headless family is 21,928 bytes gzipped alone.
|
|
92
92
|
|
|
@@ -202,11 +202,11 @@ Structure, accessibility, state, and form participation. It has no presentation
|
|
|
202
202
|
| `code-block` | 133,803 | 43,664 | 36,792 | 17,288 | 4,490 | 3,847 |
|
|
203
203
|
| `color-input` | 151,779 | 47,718 | 40,233 | 25,691 | 5,998 | 4,976 |
|
|
204
204
|
| `color-picker` | 118,224 | 37,113 | 30,494 | 19,588 | 4,689 | 3,874 |
|
|
205
|
-
| `combobox` | 146,
|
|
205
|
+
| `combobox` | 146,722 | 46,415 | 38,946 | 21,177 | 5,239 | 4,380 |
|
|
206
206
|
| `command` | 116,641 | 36,394 | 29,750 | 18,065 | 4,588 | 3,719 |
|
|
207
207
|
| `copy-button` | 128,401 | 42,039 | 35,305 | 11,883 | 2,933 | 2,322 |
|
|
208
208
|
| `data-table` | 186,894 | 56,878 | 48,021 | 57,295 | 14,485 | 11,997 |
|
|
209
|
-
| `date-input` | 144,
|
|
209
|
+
| `date-input` | 144,981 | 45,912 | 38,562 | 19,209 | 4,845 | 4,000 |
|
|
210
210
|
| `date-picker` | 100,136 | 32,351 | 26,467 | 9,900 | 2,714 | 2,336 |
|
|
211
211
|
| `description-list` | 33,012 | 10,012 | 8,793 | 1,132 | 182 | 155 |
|
|
212
212
|
| `dialog` | 36,561 | 11,114 | 9,752 | 2,717 | 765 | 587 |
|
|
@@ -215,7 +215,7 @@ Structure, accessibility, state, and form participation. It has no presentation
|
|
|
215
215
|
| `drawer` | 35,314 | 10,755 | 9,427 | 1,761 | 466 | 446 |
|
|
216
216
|
| `drilldown` | 97,002 | 31,492 | 25,596 | 5,704 | 1,481 | 1,170 |
|
|
217
217
|
| `empty` | 33,506 | 10,310 | 9,098 | 956 | 233 | 140 |
|
|
218
|
-
| `file-input` | 100,
|
|
218
|
+
| `file-input` | 100,500 | 32,345 | 26,387 | 6,266 | 1,803 | 1,479 |
|
|
219
219
|
| `filter-input` | 157,243 | 49,107 | 41,347 | 28,023 | 6,779 | 5,542 |
|
|
220
220
|
| `format-date` | 36,522 | 11,235 | 9,940 | 2,867 | 684 | 532 |
|
|
221
221
|
| `graph` | 114,708 | 36,466 | 29,953 | 11,479 | 3,233 | 2,708 |
|
|
@@ -263,9 +263,9 @@ Structure, accessibility, state, and form participation. It has no presentation
|
|
|
263
263
|
| `switch` | 41,773 | 12,384 | 10,883 | 1,650 | 497 | 338 |
|
|
264
264
|
| `table` | 99,327 | 32,297 | 26,296 | 10,158 | 2,798 | 2,311 |
|
|
265
265
|
| `tabs` | 41,013 | 12,219 | 10,747 | 3,925 | 834 | 594 |
|
|
266
|
-
| `tag` | 88,
|
|
266
|
+
| `tag` | 88,370 | 28,577 | 23,348 | 908 | 197 | 161 |
|
|
267
267
|
| `textarea` | 43,960 | 12,892 | 11,311 | 3,996 | 1,070 | 755 |
|
|
268
|
-
| `time-input` | 158,
|
|
268
|
+
| `time-input` | 158,111 | 49,133 | 41,350 | 29,048 | 7,058 | 5,895 |
|
|
269
269
|
| `time-picker` | 117,196 | 37,094 | 30,330 | 19,136 | 5,104 | 4,148 |
|
|
270
270
|
| `timeline` | 88,806 | 28,574 | 23,446 | 1,809 | 380 | 300 |
|
|
271
271
|
| `toast` | 92,163 | 29,709 | 24,315 | 4,078 | 951 | 820 |
|
|
@@ -308,11 +308,11 @@ The headless tier plus presentation. `bun add @fusion.dev/helix` installs this t
|
|
|
308
308
|
| `code-block` | 150,253 | 46,548 | 39,158 | 33,717 | 7,215 | 6,126 |
|
|
309
309
|
| `color-input` | 185,460 | 52,861 | 44,724 | 59,352 | 11,295 | 9,511 |
|
|
310
310
|
| `color-picker` | 146,202 | 41,656 | 34,488 | 47,560 | 9,284 | 7,867 |
|
|
311
|
-
| `combobox` | 161,
|
|
311
|
+
| `combobox` | 161,978 | 49,085 | 41,270 | 36,410 | 7,955 | 6,615 |
|
|
312
312
|
| `command` | 127,393 | 38,493 | 31,618 | 28,803 | 6,694 | 5,583 |
|
|
313
313
|
| `copy-button` | 138,405 | 43,830 | 36,878 | 21,871 | 4,664 | 3,877 |
|
|
314
314
|
| `data-table` | 225,180 | 63,813 | 53,600 | 95,314 | 21,365 | 17,447 |
|
|
315
|
-
| `date-input` |
|
|
315
|
+
| `date-input` | 161,140 | 48,929 | 41,318 | 35,357 | 7,899 | 6,643 |
|
|
316
316
|
| `date-picker` | 105,753 | 33,518 | 27,415 | 15,499 | 3,859 | 3,238 |
|
|
317
317
|
| `description-list` | 35,390 | 10,586 | 9,287 | 3,502 | 768 | 694 |
|
|
318
318
|
| `dialog` | 40,938 | 12,132 | 10,723 | 7,079 | 1,782 | 1,494 |
|
|
@@ -321,7 +321,7 @@ The headless tier plus presentation. `bun add @fusion.dev/helix` installs this t
|
|
|
321
321
|
| `drawer` | 39,577 | 11,767 | 10,345 | 6,007 | 1,482 | 1,263 |
|
|
322
322
|
| `drilldown` | 101,699 | 32,584 | 26,513 | 10,393 | 2,528 | 2,071 |
|
|
323
323
|
| `empty` | 34,946 | 10,764 | 9,445 | 2,380 | 678 | 489 |
|
|
324
|
-
| `file-input` |
|
|
324
|
+
| `file-input` | 112,026 | 34,672 | 28,381 | 17,793 | 4,076 | 3,392 |
|
|
325
325
|
| `filter-input` | 185,579 | 53,639 | 45,210 | 56,353 | 11,398 | 9,498 |
|
|
326
326
|
| `flex` | 33,966 | 10,295 | 9,062 | 2,078 | 445 | 296 |
|
|
327
327
|
| `format-date` | 37,170 | 11,382 | 10,030 | 3,497 | 860 | 608 |
|
|
@@ -373,10 +373,10 @@ The headless tier plus presentation. `bun add @fusion.dev/helix` installs this t
|
|
|
373
373
|
| `switch` | 46,139 | 13,459 | 11,778 | 6,001 | 1,568 | 1,279 |
|
|
374
374
|
| `table` | 104,921 | 33,482 | 27,341 | 15,746 | 3,981 | 3,421 |
|
|
375
375
|
| `tabs` | 47,249 | 13,492 | 11,867 | 10,154 | 2,155 | 1,927 |
|
|
376
|
-
| `tag` | 91,
|
|
376
|
+
| `tag` | 91,721 | 29,528 | 24,083 | 4,244 | 1,063 | 870 |
|
|
377
377
|
| `text` | 36,086 | 10,644 | 9,325 | 4,200 | 880 | 692 |
|
|
378
378
|
| `textarea` | 47,395 | 13,733 | 12,034 | 7,418 | 1,928 | 1,528 |
|
|
379
|
-
| `time-input` | 179,
|
|
379
|
+
| `time-input` | 179,749 | 52,754 | 44,471 | 50,668 | 10,753 | 8,930 |
|
|
380
380
|
| `time-picker` | 128,924 | 39,284 | 32,256 | 30,852 | 7,322 | 6,068 |
|
|
381
381
|
| `timeline` | 92,119 | 29,344 | 24,098 | 5,110 | 1,130 | 917 |
|
|
382
382
|
| `toast` | 99,696 | 31,426 | 25,725 | 11,599 | 2,601 | 2,189 |
|
|
@@ -401,11 +401,11 @@ stripped column shows the bytes we removed.
|
|
|
401
401
|
| Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
|
|
402
402
|
|---|---|---|---|---|
|
|
403
403
|
| `@fusion.dev/helix-core` | 1,192,742 | 171 | 267,144 | `@floating-ui/dom`, `@fusion.dev/helix-icons` |
|
|
404
|
-
| `@fusion.dev/helix-headless` | 13,
|
|
404
|
+
| `@fusion.dev/helix-headless` | 13,508,620 | 510 | 1,077,666 | `@fusion.dev/helix-core`, `@fusion.dev/helix-icons`, `uqr` |
|
|
405
405
|
| `@fusion.dev/helix-icons` | 150,162 | 21 | 50,346 | `svgo` |
|
|
406
406
|
| `@fusion.dev/helix-styles` | 102,155 | 6 | 0 | none |
|
|
407
|
-
| `@fusion.dev/helix-theme` |
|
|
408
|
-
| `@fusion.dev/helix` | 14,
|
|
407
|
+
| `@fusion.dev/helix-theme` | 514,288 | 8 | 5,300 | none |
|
|
408
|
+
| `@fusion.dev/helix` | 14,621,013 | 876 | 373,802 | `@fusion.dev/helix-core`, `@fusion.dev/helix-headless`, `@fusion.dev/helix-styles` |
|
|
409
409
|
|
|
410
410
|
## Not measured yet
|
|
411
411
|
|
|
@@ -15,53 +15,60 @@ a theme from a few inputs, and the theme builder shows you the result.
|
|
|
15
15
|
|
|
16
16
|
You enter the same inputs that `derive()` takes:
|
|
17
17
|
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
18
|
+
- **Color:** the brand, the color scheme, the contrast target, the saturation,
|
|
19
|
+
the accent angle, and the page's color in light and in dark
|
|
20
|
+
- **Shape and type:** the density, the corner radius, the three faces, the body
|
|
21
|
+
size, and the type scale
|
|
22
|
+
- **Status:** how far the status colors follow the palette, and how far their
|
|
23
|
+
hues may move
|
|
24
|
+
- **Motion, separation, and material:** the motion character, how surfaces are
|
|
25
|
+
set apart, and how floating surfaces are blurred and see-through
|
|
26
|
+
|
|
27
|
+
The theme builder runs the full derivation on every change. It shows a page
|
|
28
|
+
drawn with the theme, and the stylesheet the theme generates beside it.
|
|
29
|
+
|
|
30
|
+
The Color scheme field picks which half you see: light, dark, or the site's own
|
|
31
|
+
mode. See [Color modes](./color-modes).
|
|
32
|
+
|
|
33
|
+
## A page of your own color
|
|
34
|
+
|
|
35
|
+
The Light page and Dark page fields give the page a color, such as a warm cream
|
|
36
|
+
or a deep teal. They start at pure white and pure black, the page Helix draws
|
|
37
|
+
without one. The surfaces keep the contrast with the page they keep with white
|
|
38
|
+
or black, the grays take its tint, and every text color is solved against it. A
|
|
39
|
+
page that no text color can reach the contrast target on is left out of the
|
|
40
|
+
preview, and a caption under the fields says so.
|
|
41
|
+
|
|
42
|
+
## The audit
|
|
43
|
+
|
|
44
|
+
The audit lists every color pair Helix computed. Each pair shows its ratio,
|
|
45
|
+
measured against the background it is painted on, and either passes or fails
|
|
46
|
+
its target. Its three tabs are:
|
|
47
|
+
|
|
48
|
+
- **Contrast.** The pairs that fail, or a line saying that every pair passes.
|
|
49
|
+
- **Collisions.** Colors too close to each other to tell apart, such as the
|
|
50
|
+
primary color and a status color.
|
|
51
|
+
- **Unverifiable.** Pairs whose background is translucent, so there is no known
|
|
52
|
+
color to measure against. This is the cost of a translucent material, and
|
|
53
|
+
the theme builder reports it.
|
|
54
|
+
|
|
55
|
+
## What the theme builder gives you
|
|
56
|
+
|
|
57
|
+
The generated stylesheet is the token block as CSS, to paste into your own
|
|
51
58
|
stylesheet:
|
|
52
59
|
|
|
53
60
|
```css
|
|
54
|
-
|
|
55
|
-
--helix-color-
|
|
61
|
+
[data-theme="preview"] {
|
|
62
|
+
--helix-color-background: #f7f2eb;
|
|
56
63
|
…
|
|
57
64
|
}
|
|
58
65
|
```
|
|
59
66
|
|
|
60
|
-
|
|
61
|
-
theme
|
|
67
|
+
The page's link holds every input you changed, so a link is the theme. To derive
|
|
68
|
+
the theme in your own build, write the same inputs as an intent object:
|
|
62
69
|
|
|
63
70
|
```ts
|
|
64
|
-
export const theme = {
|
|
71
|
+
export const theme = { background: { light: '#f7f2eb' }, brand: '#ff6200' }
|
|
65
72
|
```
|
|
66
73
|
|
|
67
74
|
**Keep the intent object in your repository.** The tokens are the output of a
|
|
@@ -2309,7 +2309,8 @@ computed from \`brand\` or from the Helix design language. A theme that sets onl
|
|
|
2309
2309
|
|---|---|
|
|
2310
2310
|
| \`brand\` | Your main brand color. Required |
|
|
2311
2311
|
| \`accent\` | The second emphasis color. Defaults to the brand color. \`{ from: 'brand', rotate: 180 }\` gives the complementary color |
|
|
2312
|
-
| \`
|
|
2312
|
+
| \`background\` | The page's color, \`{ light, dark }\`, for a page that is not pure white or pure black. The surfaces keep their contrast with it, and the grays take its tint. A page no text color can reach the contrast target on is refused |
|
|
2313
|
+
| \`neutral\` | The gray ramp, which can be tinted toward the brand. With \`background\`, it takes the page's tint |
|
|
2313
2314
|
| \`status\` | \`info\`, \`success\`, \`warning\`, and \`danger\`. A color pins one. An object adjusts its hue while it keeps its meaning |
|
|
2314
2315
|
| \`chroma\` | How saturated the palette is, independent of hue |
|
|
2315
2316
|
| \`scheme\` | \`'light'\` or \`'dark'\`, for a theme that has only one mode |
|
|
@@ -3345,10 +3346,10 @@ either barrel. The per-component tables show what your page pays.
|
|
|
3345
3346
|
| Package | Raw | Gzip | Brotli | |
|
|
3346
3347
|
|---|---|---|---|---|
|
|
3347
3348
|
| \`@fusion.dev/helix-core\` | 183,735 | 58,230 | 49,473 | The element base class, mixins, decorators, and floating positioning. |
|
|
3348
|
-
| \`@fusion.dev/helix-headless\` |
|
|
3349
|
+
| \`@fusion.dev/helix-headless\` | 746,073 | 193,246 | 149,775 | Every headless family. The barrel entry includes all of them. |
|
|
3349
3350
|
| \`@fusion.dev/helix-icons\` | 55,565 | 17,727 | 14,864 | The whole glyph set. |
|
|
3350
3351
|
| \`@fusion.dev/helix-theme\` | 3,626 | 1,597 | 1,384 | The derivation engine. Most sites run it at build time, and a theme switcher runs it in the browser. |
|
|
3351
|
-
| \`@fusion.dev/helix\` | 1,291,
|
|
3352
|
+
| \`@fusion.dev/helix\` | 1,291,284 | 301,883 | 220,711 | Every styled family. |
|
|
3352
3353
|
| \`lit\` | 15,394 | 6,118 | 5,460 | Lit itself, listed so you can subtract it from every row above. |
|
|
3353
3354
|
|
|
3354
3355
|
## Stylesheets
|
|
@@ -3371,9 +3372,9 @@ shows the whole cost of using the base layer on its own.
|
|
|
3371
3372
|
|
|
3372
3373
|
**Most of your first component is the shared runtime.** The median styled family is 21,372 bytes gzipped alone, and it adds 2,254 to a page that already has Helix. The shared runtime is 89 percent of the first component, and the component itself is 11 percent. Ten typical components cost the first number once, plus nine of the added number. The two columns in the tables below let you work that out for your own components.
|
|
3373
3374
|
|
|
3374
|
-
Across the 104 styled components, the smallest is \`code\` at 9,928 bytes gzipped alone, and the largest is \`data-table\` at 63,813. Every family together is 301,
|
|
3375
|
+
Across the 104 styled components, the smallest is \`code\` at 9,928 bytes gzipped alone, and the largest is \`data-table\` at 63,813. Every family together is 301,883.
|
|
3375
3376
|
|
|
3376
|
-
No family imports a barrel. The \`barrels\` rule in \`fusion workspace\` enforces that. \`@fusion.dev/helix-headless\` marks every module in \`dist\` as having side effects, which is true of a file that calls \`customElements.define\`. A bundler can remove none of it. One \`import { HelixHeadlessButton } from '@fusion.dev/helix-headless'\` costs 193,
|
|
3377
|
+
No family imports a barrel. The \`barrels\` rule in \`fusion workspace\` enforces that. \`@fusion.dev/helix-headless\` marks every module in \`dist\` as having side effects, which is true of a file that calls \`customElements.define\`. A bundler can remove none of it. One \`import { HelixHeadlessButton } from '@fusion.dev/helix-headless'\` costs 193,246 bytes gzipped, whatever else the page imports. That is 9 times the median family above. All 104 styled families import the headless family they extend directly. The rule checks the shape of the import, so it applies to any package that sets \`sideEffects\`, whatever its name.
|
|
3377
3378
|
|
|
3378
3379
|
The headless tier never had the problem, so it serves as the control. \`@fusion.dev/helix-core\` is \`sideEffects: false\`, and the median headless family is 21,928 bytes gzipped alone.
|
|
3379
3380
|
|
|
@@ -3489,11 +3490,11 @@ Structure, accessibility, state, and form participation. It has no presentation
|
|
|
3489
3490
|
| \`code-block\` | 133,803 | 43,664 | 36,792 | 17,288 | 4,490 | 3,847 |
|
|
3490
3491
|
| \`color-input\` | 151,779 | 47,718 | 40,233 | 25,691 | 5,998 | 4,976 |
|
|
3491
3492
|
| \`color-picker\` | 118,224 | 37,113 | 30,494 | 19,588 | 4,689 | 3,874 |
|
|
3492
|
-
| \`combobox\` | 146,
|
|
3493
|
+
| \`combobox\` | 146,722 | 46,415 | 38,946 | 21,177 | 5,239 | 4,380 |
|
|
3493
3494
|
| \`command\` | 116,641 | 36,394 | 29,750 | 18,065 | 4,588 | 3,719 |
|
|
3494
3495
|
| \`copy-button\` | 128,401 | 42,039 | 35,305 | 11,883 | 2,933 | 2,322 |
|
|
3495
3496
|
| \`data-table\` | 186,894 | 56,878 | 48,021 | 57,295 | 14,485 | 11,997 |
|
|
3496
|
-
| \`date-input\` | 144,
|
|
3497
|
+
| \`date-input\` | 144,981 | 45,912 | 38,562 | 19,209 | 4,845 | 4,000 |
|
|
3497
3498
|
| \`date-picker\` | 100,136 | 32,351 | 26,467 | 9,900 | 2,714 | 2,336 |
|
|
3498
3499
|
| \`description-list\` | 33,012 | 10,012 | 8,793 | 1,132 | 182 | 155 |
|
|
3499
3500
|
| \`dialog\` | 36,561 | 11,114 | 9,752 | 2,717 | 765 | 587 |
|
|
@@ -3502,7 +3503,7 @@ Structure, accessibility, state, and form participation. It has no presentation
|
|
|
3502
3503
|
| \`drawer\` | 35,314 | 10,755 | 9,427 | 1,761 | 466 | 446 |
|
|
3503
3504
|
| \`drilldown\` | 97,002 | 31,492 | 25,596 | 5,704 | 1,481 | 1,170 |
|
|
3504
3505
|
| \`empty\` | 33,506 | 10,310 | 9,098 | 956 | 233 | 140 |
|
|
3505
|
-
| \`file-input\` | 100,
|
|
3506
|
+
| \`file-input\` | 100,500 | 32,345 | 26,387 | 6,266 | 1,803 | 1,479 |
|
|
3506
3507
|
| \`filter-input\` | 157,243 | 49,107 | 41,347 | 28,023 | 6,779 | 5,542 |
|
|
3507
3508
|
| \`format-date\` | 36,522 | 11,235 | 9,940 | 2,867 | 684 | 532 |
|
|
3508
3509
|
| \`graph\` | 114,708 | 36,466 | 29,953 | 11,479 | 3,233 | 2,708 |
|
|
@@ -3550,9 +3551,9 @@ Structure, accessibility, state, and form participation. It has no presentation
|
|
|
3550
3551
|
| \`switch\` | 41,773 | 12,384 | 10,883 | 1,650 | 497 | 338 |
|
|
3551
3552
|
| \`table\` | 99,327 | 32,297 | 26,296 | 10,158 | 2,798 | 2,311 |
|
|
3552
3553
|
| \`tabs\` | 41,013 | 12,219 | 10,747 | 3,925 | 834 | 594 |
|
|
3553
|
-
| \`tag\` | 88,
|
|
3554
|
+
| \`tag\` | 88,370 | 28,577 | 23,348 | 908 | 197 | 161 |
|
|
3554
3555
|
| \`textarea\` | 43,960 | 12,892 | 11,311 | 3,996 | 1,070 | 755 |
|
|
3555
|
-
| \`time-input\` | 158,
|
|
3556
|
+
| \`time-input\` | 158,111 | 49,133 | 41,350 | 29,048 | 7,058 | 5,895 |
|
|
3556
3557
|
| \`time-picker\` | 117,196 | 37,094 | 30,330 | 19,136 | 5,104 | 4,148 |
|
|
3557
3558
|
| \`timeline\` | 88,806 | 28,574 | 23,446 | 1,809 | 380 | 300 |
|
|
3558
3559
|
| \`toast\` | 92,163 | 29,709 | 24,315 | 4,078 | 951 | 820 |
|
|
@@ -3595,11 +3596,11 @@ The headless tier plus presentation. \`bun add @fusion.dev/helix\` installs this
|
|
|
3595
3596
|
| \`code-block\` | 150,253 | 46,548 | 39,158 | 33,717 | 7,215 | 6,126 |
|
|
3596
3597
|
| \`color-input\` | 185,460 | 52,861 | 44,724 | 59,352 | 11,295 | 9,511 |
|
|
3597
3598
|
| \`color-picker\` | 146,202 | 41,656 | 34,488 | 47,560 | 9,284 | 7,867 |
|
|
3598
|
-
| \`combobox\` | 161,
|
|
3599
|
+
| \`combobox\` | 161,978 | 49,085 | 41,270 | 36,410 | 7,955 | 6,615 |
|
|
3599
3600
|
| \`command\` | 127,393 | 38,493 | 31,618 | 28,803 | 6,694 | 5,583 |
|
|
3600
3601
|
| \`copy-button\` | 138,405 | 43,830 | 36,878 | 21,871 | 4,664 | 3,877 |
|
|
3601
3602
|
| \`data-table\` | 225,180 | 63,813 | 53,600 | 95,314 | 21,365 | 17,447 |
|
|
3602
|
-
| \`date-input\` |
|
|
3603
|
+
| \`date-input\` | 161,140 | 48,929 | 41,318 | 35,357 | 7,899 | 6,643 |
|
|
3603
3604
|
| \`date-picker\` | 105,753 | 33,518 | 27,415 | 15,499 | 3,859 | 3,238 |
|
|
3604
3605
|
| \`description-list\` | 35,390 | 10,586 | 9,287 | 3,502 | 768 | 694 |
|
|
3605
3606
|
| \`dialog\` | 40,938 | 12,132 | 10,723 | 7,079 | 1,782 | 1,494 |
|
|
@@ -3608,7 +3609,7 @@ The headless tier plus presentation. \`bun add @fusion.dev/helix\` installs this
|
|
|
3608
3609
|
| \`drawer\` | 39,577 | 11,767 | 10,345 | 6,007 | 1,482 | 1,263 |
|
|
3609
3610
|
| \`drilldown\` | 101,699 | 32,584 | 26,513 | 10,393 | 2,528 | 2,071 |
|
|
3610
3611
|
| \`empty\` | 34,946 | 10,764 | 9,445 | 2,380 | 678 | 489 |
|
|
3611
|
-
| \`file-input\` |
|
|
3612
|
+
| \`file-input\` | 112,026 | 34,672 | 28,381 | 17,793 | 4,076 | 3,392 |
|
|
3612
3613
|
| \`filter-input\` | 185,579 | 53,639 | 45,210 | 56,353 | 11,398 | 9,498 |
|
|
3613
3614
|
| \`flex\` | 33,966 | 10,295 | 9,062 | 2,078 | 445 | 296 |
|
|
3614
3615
|
| \`format-date\` | 37,170 | 11,382 | 10,030 | 3,497 | 860 | 608 |
|
|
@@ -3660,10 +3661,10 @@ The headless tier plus presentation. \`bun add @fusion.dev/helix\` installs this
|
|
|
3660
3661
|
| \`switch\` | 46,139 | 13,459 | 11,778 | 6,001 | 1,568 | 1,279 |
|
|
3661
3662
|
| \`table\` | 104,921 | 33,482 | 27,341 | 15,746 | 3,981 | 3,421 |
|
|
3662
3663
|
| \`tabs\` | 47,249 | 13,492 | 11,867 | 10,154 | 2,155 | 1,927 |
|
|
3663
|
-
| \`tag\` | 91,
|
|
3664
|
+
| \`tag\` | 91,721 | 29,528 | 24,083 | 4,244 | 1,063 | 870 |
|
|
3664
3665
|
| \`text\` | 36,086 | 10,644 | 9,325 | 4,200 | 880 | 692 |
|
|
3665
3666
|
| \`textarea\` | 47,395 | 13,733 | 12,034 | 7,418 | 1,928 | 1,528 |
|
|
3666
|
-
| \`time-input\` | 179,
|
|
3667
|
+
| \`time-input\` | 179,749 | 52,754 | 44,471 | 50,668 | 10,753 | 8,930 |
|
|
3667
3668
|
| \`time-picker\` | 128,924 | 39,284 | 32,256 | 30,852 | 7,322 | 6,068 |
|
|
3668
3669
|
| \`timeline\` | 92,119 | 29,344 | 24,098 | 5,110 | 1,130 | 917 |
|
|
3669
3670
|
| \`toast\` | 99,696 | 31,426 | 25,725 | 11,599 | 2,601 | 2,189 |
|
|
@@ -3688,11 +3689,11 @@ stripped column shows the bytes we removed.
|
|
|
3688
3689
|
| Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
|
|
3689
3690
|
|---|---|---|---|---|
|
|
3690
3691
|
| \`@fusion.dev/helix-core\` | 1,192,742 | 171 | 267,144 | \`@floating-ui/dom\`, \`@fusion.dev/helix-icons\` |
|
|
3691
|
-
| \`@fusion.dev/helix-headless\` | 13,
|
|
3692
|
+
| \`@fusion.dev/helix-headless\` | 13,508,620 | 510 | 1,077,666 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-icons\`, \`uqr\` |
|
|
3692
3693
|
| \`@fusion.dev/helix-icons\` | 150,162 | 21 | 50,346 | \`svgo\` |
|
|
3693
3694
|
| \`@fusion.dev/helix-styles\` | 102,155 | 6 | 0 | none |
|
|
3694
|
-
| \`@fusion.dev/helix-theme\` |
|
|
3695
|
-
| \`@fusion.dev/helix\` | 14,
|
|
3695
|
+
| \`@fusion.dev/helix-theme\` | 514,288 | 8 | 5,300 | none |
|
|
3696
|
+
| \`@fusion.dev/helix\` | 14,621,013 | 876 | 373,802 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-headless\`, \`@fusion.dev/helix-styles\` |
|
|
3696
3697
|
|
|
3697
3698
|
## Not measured yet
|
|
3698
3699
|
|
|
@@ -5584,53 +5585,60 @@ a theme from a few inputs, and the theme builder shows you the result.
|
|
|
5584
5585
|
|
|
5585
5586
|
You enter the same inputs that \`derive()\` takes:
|
|
5586
5587
|
|
|
5587
|
-
-
|
|
5588
|
-
|
|
5589
|
-
-
|
|
5590
|
-
|
|
5591
|
-
-
|
|
5592
|
-
|
|
5588
|
+
- **Color:** the brand, the color scheme, the contrast target, the saturation,
|
|
5589
|
+
the accent angle, and the page's color in light and in dark
|
|
5590
|
+
- **Shape and type:** the density, the corner radius, the three faces, the body
|
|
5591
|
+
size, and the type scale
|
|
5592
|
+
- **Status:** how far the status colors follow the palette, and how far their
|
|
5593
|
+
hues may move
|
|
5594
|
+
- **Motion, separation, and material:** the motion character, how surfaces are
|
|
5595
|
+
set apart, and how floating surfaces are blurred and see-through
|
|
5593
5596
|
|
|
5594
|
-
The theme builder runs the full derivation. It shows
|
|
5595
|
-
|
|
5597
|
+
The theme builder runs the full derivation on every change. It shows a page
|
|
5598
|
+
drawn with the theme, and the stylesheet the theme generates beside it.
|
|
5596
5599
|
|
|
5597
|
-
|
|
5598
|
-
|
|
5599
|
-
[Color modes](./color-modes).
|
|
5600
|
+
The Color scheme field picks which half you see: light, dark, or the site's own
|
|
5601
|
+
mode. See [Color modes](./color-modes).
|
|
5600
5602
|
|
|
5601
|
-
##
|
|
5603
|
+
## A page of your own color
|
|
5602
5604
|
|
|
5603
|
-
The
|
|
5604
|
-
|
|
5605
|
-
|
|
5605
|
+
The Light page and Dark page fields give the page a color, such as a warm cream
|
|
5606
|
+
or a deep teal. They start at pure white and pure black, the page Helix draws
|
|
5607
|
+
without one. The surfaces keep the contrast with the page they keep with white
|
|
5608
|
+
or black, the grays take its tint, and every text color is solved against it. A
|
|
5609
|
+
page that no text color can reach the contrast target on is left out of the
|
|
5610
|
+
preview, and a caption under the fields says so.
|
|
5606
5611
|
|
|
5607
|
-
|
|
5608
|
-
- **Unverifiable.** The background is translucent, so there is no known color
|
|
5609
|
-
to measure against. The pair neither passes nor fails. This is the cost of a
|
|
5610
|
-
translucent material, and the theme builder reports it.
|
|
5611
|
-
- **Pinned.** You set the color yourself. The engine did not compute it, so its
|
|
5612
|
-
contrast is not guaranteed.
|
|
5612
|
+
## The audit
|
|
5613
5613
|
|
|
5614
|
-
|
|
5615
|
-
|
|
5614
|
+
The audit lists every color pair Helix computed. Each pair shows its ratio,
|
|
5615
|
+
measured against the background it is painted on, and either passes or fails
|
|
5616
|
+
its target. Its three tabs are:
|
|
5616
5617
|
|
|
5617
|
-
|
|
5618
|
+
- **Contrast.** The pairs that fail, or a line saying that every pair passes.
|
|
5619
|
+
- **Collisions.** Colors too close to each other to tell apart, such as the
|
|
5620
|
+
primary color and a status color.
|
|
5621
|
+
- **Unverifiable.** Pairs whose background is translucent, so there is no known
|
|
5622
|
+
color to measure against. This is the cost of a translucent material, and
|
|
5623
|
+
the theme builder reports it.
|
|
5618
5624
|
|
|
5619
|
-
|
|
5625
|
+
## What the theme builder gives you
|
|
5626
|
+
|
|
5627
|
+
The generated stylesheet is the token block as CSS, to paste into your own
|
|
5620
5628
|
stylesheet:
|
|
5621
5629
|
|
|
5622
5630
|
\`\`\`css
|
|
5623
|
-
|
|
5624
|
-
--helix-color-
|
|
5631
|
+
[data-theme="preview"] {
|
|
5632
|
+
--helix-color-background: #f7f2eb;
|
|
5625
5633
|
…
|
|
5626
5634
|
}
|
|
5627
5635
|
\`\`\`
|
|
5628
5636
|
|
|
5629
|
-
|
|
5630
|
-
theme
|
|
5637
|
+
The page's link holds every input you changed, so a link is the theme. To derive
|
|
5638
|
+
the theme in your own build, write the same inputs as an intent object:
|
|
5631
5639
|
|
|
5632
5640
|
\`\`\`ts
|
|
5633
|
-
export const theme = {
|
|
5641
|
+
export const theme = { background: { light: '#f7f2eb' }, brand: '#ff6200' }
|
|
5634
5642
|
\`\`\`
|
|
5635
5643
|
|
|
5636
5644
|
**Keep the intent object in your repository.** The tokens are the output of a
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion.dev/helix-docs",
|
|
3
3
|
"description": "Versioned documentation content and registry for Helix.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.132.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
},
|
|
37
37
|
"bugs": "https://github.com/project-fusion/fusion/issues",
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@fusion.dev/helix": "0.
|
|
40
|
-
"@fusion.dev/helix-cem": "0.
|
|
41
|
-
"@fusion.dev/helix-headless": "0.
|
|
42
|
-
"@fusion.dev/helix-icons": "0.
|
|
43
|
-
"@fusion.dev/helix-map": "0.
|
|
44
|
-
"@fusion.dev/helix-styles": "0.
|
|
45
|
-
"@fusion.dev/helix-testing": "0.
|
|
46
|
-
"@fusion.dev/helix-theme": "0.
|
|
39
|
+
"@fusion.dev/helix": "0.132.0",
|
|
40
|
+
"@fusion.dev/helix-cem": "0.132.0",
|
|
41
|
+
"@fusion.dev/helix-headless": "0.132.0",
|
|
42
|
+
"@fusion.dev/helix-icons": "0.132.0",
|
|
43
|
+
"@fusion.dev/helix-map": "0.132.0",
|
|
44
|
+
"@fusion.dev/helix-styles": "0.132.0",
|
|
45
|
+
"@fusion.dev/helix-testing": "0.132.0",
|
|
46
|
+
"@fusion.dev/helix-theme": "0.132.0",
|
|
47
47
|
"@fusion.dev/scripts": "0.0.0-dev",
|
|
48
48
|
"lit": "^3.2.1",
|
|
49
49
|
"playwright": "^1.62.1"
|