@fusion.dev/helix-docs 0.142.1 → 0.143.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/accessibility.mdx +21 -7
- package/content/building-on-the-headless-tier.mdx +19 -17
- package/content/charting.mdx +26 -0
- package/content/color.mdx +2 -2
- package/content/composition.mdx +15 -7
- package/content/events.mdx +30 -2
- package/content/forms.mdx +46 -7
- package/content/graphs.mdx +25 -7
- package/content/installation.mdx +17 -19
- package/content/introduction.mdx +3 -3
- package/content/localization.mdx +16 -2
- package/content/maps.mdx +18 -4
- package/content/metrics.mdx +228 -226
- package/content/other-frameworks.mdx +3 -2
- package/content/overlays.mdx +17 -3
- package/content/react.mdx +3 -1
- package/content/sandbox.mdx +67 -3
- package/content/server-rendering.mdx +1 -1
- package/content/state-and-control.mdx +8 -1
- package/content/svelte.mdx +1 -1
- package/content/theming.mdx +5 -1
- package/content/using-helix-with-an-agent.mdx +1 -1
- package/content/using-the-elements.mdx +21 -1
- package/content/vue.mdx +2 -1
- package/dist/sources.generated.js +594 -318
- package/package.json +9 -9
package/content/metrics.mdx
CHANGED
|
@@ -46,7 +46,7 @@ on its own.
|
|
|
46
46
|
|
|
47
47
|
| | Raw | Gzip | Brotli |
|
|
48
48
|
|---|---|---|---|
|
|
49
|
-
| Lit and `@fusion.dev/helix-core` |
|
|
49
|
+
| Lit and `@fusion.dev/helix-core` | 147,394 | 45,659 | 39,405 |
|
|
50
50
|
|
|
51
51
|
## Whole packages
|
|
52
52
|
|
|
@@ -57,12 +57,12 @@ either barrel. The per-component tables show what your page pays.
|
|
|
57
57
|
|
|
58
58
|
| Package | Raw | Gzip | Brotli | |
|
|
59
59
|
|---|---|---|---|---|
|
|
60
|
-
| `@fusion.dev/helix-core` |
|
|
61
|
-
| `@fusion.dev/helix-headless` |
|
|
62
|
-
| `@fusion.dev/helix-icons` | 55,
|
|
60
|
+
| `@fusion.dev/helix-core` | 146,947 | 45,293 | 39,172 | The element base class, mixins, decorators, and floating positioning. |
|
|
61
|
+
| `@fusion.dev/helix-headless` | 833,065 | 218,034 | 167,434 | Every headless family. The barrel entry includes all of them. |
|
|
62
|
+
| `@fusion.dev/helix-icons` | 55,738 | 17,784 | 15,143 | The whole glyph set. |
|
|
63
63
|
| `@fusion.dev/helix-theme` | 3,626 | 1,597 | 1,384 | The JavaScript that runs the derivation engine. Most sites run it at build time, and a theme switcher runs it in the browser. |
|
|
64
64
|
| `fusion_helix_theme_bg.wasm` | 490,270 | 155,600 | 125,779 | The derivation engine itself, in WebAssembly. The entry above loads it when the engine runs. |
|
|
65
|
-
| `@fusion.dev/helix` | 1,
|
|
65
|
+
| `@fusion.dev/helix` | 1,349,191 | 315,452 | 227,193 | Every styled family. |
|
|
66
66
|
| `lit` | 15,394 | 6,118 | 5,460 | Lit itself, listed so you can subtract it from every row above. |
|
|
67
67
|
|
|
68
68
|
## Stylesheets
|
|
@@ -83,61 +83,63 @@ shows the whole cost of using the base layer on its own.
|
|
|
83
83
|
|
|
84
84
|
## What the numbers say
|
|
85
85
|
|
|
86
|
-
**Most of your first component is the shared runtime.** The median styled family is
|
|
86
|
+
**Most of your first component is the shared runtime.** The median styled family is 16,274 bytes gzipped alone, and it adds 2,322 to a page that already has Helix. The shared runtime is 86 percent of the first component, and the component itself is 14 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.
|
|
87
87
|
|
|
88
|
-
Across the 104 styled components, the smallest is `code` at 10,
|
|
88
|
+
Across the 104 styled components, the smallest is `code` at 10,625 bytes gzipped alone, and the largest is `data-table` at 54,367. Every family together is 315,452.
|
|
89
89
|
|
|
90
|
-
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
|
|
90
|
+
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 218,034 bytes gzipped, whatever else the page imports. That is 13 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.
|
|
91
91
|
|
|
92
|
-
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
|
|
92
|
+
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 15,324 bytes gzipped alone.
|
|
93
93
|
|
|
94
94
|
## Compared with other systems
|
|
95
95
|
|
|
96
|
-
We compare Helix with
|
|
96
|
+
We compare Helix with the libraries of custom elements listed under the table. `turbo run peers` measured them on 2026-08-24. It installs pinned versions into `.local` and bundles them with the same harness as the tables above. The Helix rows are measured on every run of `bun run gen:metrics`, so they always match this repository.
|
|
97
97
|
|
|
98
98
|
Every system in the table is built on Lit. The runtime is the same library in every column, so the differences come from the components. React component libraries are left out, because comparing a custom element with a React component would measure the framework.
|
|
99
99
|
|
|
100
|
-
The table has no whole-library row. That row would compare how many components each vendor ships and how each vendor counts a component. It would look like a measurement and mean little. The table compares
|
|
100
|
+
The table has no whole-library row. That row would compare how many components each vendor ships and how each vendor counts a component. It would look like a measurement and mean little. The table compares components that most systems ship, and a system without one says so.
|
|
101
101
|
|
|
102
102
|
| Component | System | Raw | Gzip | Brotli |
|
|
103
103
|
|---|---|---|---|---|
|
|
104
|
-
| `button` | **Helix** |
|
|
104
|
+
| `button` | **Helix** | 52,405 | 14,962 | 13,154 |
|
|
105
105
|
| | Carbon | 133,058 | 20,959 | 17,685 |
|
|
106
106
|
| | Material Web | 47,060 | 14,173 | 12,591 |
|
|
107
107
|
| | Shoelace | 62,628 | 18,287 | 15,805 |
|
|
108
108
|
| | Spectrum | 98,792 | 22,045 | 18,674 |
|
|
109
|
-
| `checkbox` | **Helix** |
|
|
109
|
+
| `checkbox` | **Helix** | 57,661 | 16,224 | 14,282 |
|
|
110
110
|
| | Carbon | 60,255 | 15,609 | 13,550 |
|
|
111
111
|
| | Material Web | 43,785 | 13,556 | 12,015 |
|
|
112
112
|
| | Shoelace | 47,614 | 15,177 | 13,301 |
|
|
113
113
|
| | Spectrum | 62,492 | 15,437 | 13,481 |
|
|
114
|
-
| `dialog` | **Helix** |
|
|
114
|
+
| `dialog` | **Helix** | 48,373 | 14,225 | 12,495 |
|
|
115
115
|
| | Carbon | 510,866 | 67,390 | 39,189 |
|
|
116
116
|
| | Material Web | 34,238 | 11,510 | 10,229 |
|
|
117
117
|
| | Shoelace | 52,754 | 17,698 | 15,554 |
|
|
118
118
|
| | Spectrum | 155,708 | 31,899 | 26,262 |
|
|
119
|
-
| `radio` | **Helix** |
|
|
119
|
+
| `radio` | **Helix** | 61,642 | 16,891 | 14,906 |
|
|
120
120
|
| | Carbon | 63,055 | 16,887 | 14,605 |
|
|
121
121
|
| | Material Web | 41,044 | 13,234 | 11,757 |
|
|
122
122
|
| | Shoelace | 34,865 | 12,027 | 10,559 |
|
|
123
123
|
| | Spectrum | 38,685 | 10,660 | 9,370 |
|
|
124
|
-
| `switch` | **Helix** |
|
|
124
|
+
| `switch` | **Helix** | 54,591 | 15,726 | 13,799 |
|
|
125
125
|
| | Carbon | 69,423 | 17,127 | 14,764 |
|
|
126
126
|
| | Material Web | 50,155 | 14,577 | 12,935 |
|
|
127
127
|
| | Shoelace | 37,833 | 11,814 | 10,568 |
|
|
128
128
|
| | Spectrum | 62,322 | 15,059 | 13,321 |
|
|
129
|
-
| `tabs` | **Helix** |
|
|
129
|
+
| `tabs` | **Helix** | 54,198 | 15,497 | 13,584 |
|
|
130
130
|
| | Carbon | 578,766 | 73,537 | 43,235 |
|
|
131
131
|
| | Material Web | 38,883 | 12,820 | 11,368 |
|
|
132
132
|
| | Shoelace | 54,573 | 17,140 | 15,068 |
|
|
133
133
|
| | Spectrum | 64,875 | 18,298 | 16,283 |
|
|
134
|
-
| `tooltip` | **Helix** |
|
|
134
|
+
| `tooltip` | **Helix** | 72,456 | 23,199 | 20,502 |
|
|
135
135
|
| | Carbon | 189,382 | 30,354 | 22,273 |
|
|
136
136
|
| | Material Web | | not shipped | |
|
|
137
137
|
| | Shoelace | 57,412 | 20,220 | 17,933 |
|
|
138
138
|
| | Spectrum | 136,599 | 40,552 | 35,286 |
|
|
139
139
|
|
|
140
|
-
At least one system is smaller than Helix on `checkbox`, `dialog`, `radio`, `switch`, `tabs`, `tooltip`. The largest gap is radio against Spectrum, at
|
|
140
|
+
At least one system is smaller than Helix on `button`, `checkbox`, `dialog`, `radio`, `switch`, `tabs`, `tooltip`. The largest gap is radio against Spectrum, at 6,231 bytes gzipped. 15 of 27 peer measurements are smaller than the Helix row.
|
|
141
|
+
|
|
142
|
+
Helix's `radio` family includes Radio Group, so its row carries an element that some peer rows measure without.
|
|
141
143
|
|
|
142
144
|
- **Carbon** `@carbon/web-components@2.61.0`. Its dialog is Modal, its radio is Radio Button, and its switch is Toggle.
|
|
143
145
|
- **Material Web** `@material/web@2.5.0`. Ships no tooltip. Its button is measured as the filled one, there being no single button element.
|
|
@@ -181,104 +183,104 @@ Structure, accessibility, state, and form participation. It has no presentation
|
|
|
181
183
|
|
|
182
184
|
| Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
|
|
183
185
|
|---|---|---|---|---|---|---|
|
|
184
|
-
| `accordion` |
|
|
185
|
-
| `announcement` |
|
|
186
|
-
| `app-header` |
|
|
187
|
-
| `area-chart` |
|
|
188
|
-
| `avatar` |
|
|
189
|
-
| `badge` |
|
|
190
|
-
| `bar-chart` |
|
|
191
|
-
| `blockquote` |
|
|
192
|
-
| `breadcrumbs` |
|
|
193
|
-
| `button` |
|
|
194
|
-
| `button-group` |
|
|
195
|
-
| `callout` |
|
|
196
|
-
| `canvas` |
|
|
197
|
-
| `card` |
|
|
198
|
-
| `carousel` |
|
|
199
|
-
| `chat` |
|
|
200
|
-
| `checkbox` |
|
|
201
|
-
| `checkbox-group` |
|
|
202
|
-
| `code` |
|
|
203
|
-
| `code-block` |
|
|
204
|
-
| `color-input` |
|
|
205
|
-
| `color-picker` |
|
|
206
|
-
| `combobox` |
|
|
207
|
-
| `command` |
|
|
208
|
-
| `copy-button` |
|
|
209
|
-
| `data-table` |
|
|
210
|
-
| `date-input` |
|
|
211
|
-
| `date-picker` |
|
|
212
|
-
| `description-list` |
|
|
213
|
-
| `dialog` |
|
|
214
|
-
| `divider` |
|
|
215
|
-
| `donut-chart` |
|
|
216
|
-
| `drawer` |
|
|
217
|
-
| `drilldown` |
|
|
218
|
-
| `empty` |
|
|
219
|
-
| `file-input` |
|
|
220
|
-
| `filter-input` |
|
|
221
|
-
| `format-date` |
|
|
222
|
-
| `graph` |
|
|
223
|
-
| `heatmap` |
|
|
224
|
-
| `icon` |
|
|
225
|
-
| `icon-button` |
|
|
226
|
-
| `image` |
|
|
227
|
-
| `input` |
|
|
228
|
-
| `kbd` |
|
|
229
|
-
| `legend` |
|
|
230
|
-
| `lightbox` |
|
|
231
|
-
| `line-chart` |
|
|
232
|
-
| `list` |
|
|
233
|
-
| `listbox` |
|
|
234
|
-
| `loader` |
|
|
235
|
-
| `map` |
|
|
236
|
-
| `megamenu` |
|
|
237
|
-
| `menu` |
|
|
238
|
-
| `meter` |
|
|
239
|
-
| `navigation` |
|
|
240
|
-
| `notifications` |
|
|
241
|
-
| `number-input` |
|
|
242
|
-
| `object-inspector` |
|
|
243
|
-
| `option` |
|
|
244
|
-
| `outline` |
|
|
245
|
-
| `pagination` |
|
|
246
|
-
| `pin-input` |
|
|
247
|
-
| `popover` |
|
|
248
|
-
| `progress` |
|
|
249
|
-
| `qr-code` |
|
|
250
|
-
| `quote` |
|
|
251
|
-
| `radio` |
|
|
252
|
-
| `rating` |
|
|
253
|
-
| `scatter-chart` |
|
|
254
|
-
| `scroll-area` |
|
|
255
|
-
| `select` |
|
|
256
|
-
| `skeleton` |
|
|
257
|
-
| `skip-link` |
|
|
258
|
-
| `slider` |
|
|
259
|
-
| `sparkline` |
|
|
260
|
-
| `speed-dial` |
|
|
261
|
-
| `splitter` |
|
|
262
|
-
| `stat` |
|
|
263
|
-
| `steps` |
|
|
264
|
-
| `switch` |
|
|
265
|
-
| `table` |
|
|
266
|
-
| `tabs` |
|
|
267
|
-
| `tag` |
|
|
268
|
-
| `textarea` |
|
|
269
|
-
| `time-input` |
|
|
270
|
-
| `time-picker` |
|
|
271
|
-
| `timeline` |
|
|
272
|
-
| `toast` |
|
|
273
|
-
| `toggle` |
|
|
274
|
-
| `toolbar` |
|
|
275
|
-
| `tooltip` |
|
|
276
|
-
| `tour` |
|
|
277
|
-
| `tree` |
|
|
278
|
-
| `trend` |
|
|
279
|
-
| `video` |
|
|
280
|
-
| `video-playlist` |
|
|
281
|
-
| `virtual-list` |
|
|
186
|
+
| `accordion` | 44,531 | 13,582 | 11,941 | 4,240 | 1,093 | 965 |
|
|
187
|
+
| `announcement` | 40,486 | 12,371 | 10,871 | 1,633 | 411 | 327 |
|
|
188
|
+
| `app-header` | 37,144 | 11,124 | 9,797 | 1,800 | 423 | 376 |
|
|
189
|
+
| `area-chart` | 84,922 | 27,615 | 24,332 | 12,158 | 3,566 | 3,076 |
|
|
190
|
+
| `avatar` | 39,247 | 11,727 | 10,328 | 3,928 | 1,078 | 898 |
|
|
191
|
+
| `badge` | 35,973 | 10,839 | 9,528 | 1,163 | 286 | 239 |
|
|
192
|
+
| `bar-chart` | 87,483 | 28,346 | 24,948 | 14,313 | 4,165 | 3,520 |
|
|
193
|
+
| `blockquote` | 36,125 | 10,913 | 9,590 | 912 | 215 | 232 |
|
|
194
|
+
| `breadcrumbs` | 38,342 | 11,545 | 10,147 | 2,248 | 526 | 490 |
|
|
195
|
+
| `button` | 46,146 | 13,778 | 12,078 | 3,934 | 981 | 779 |
|
|
196
|
+
| `button-group` | 35,843 | 10,745 | 9,443 | 661 | 128 | 127 |
|
|
197
|
+
| `callout` | 38,540 | 11,805 | 10,378 | 1,132 | 292 | 275 |
|
|
198
|
+
| `canvas` | 97,775 | 28,702 | 25,080 | 50,696 | 15,190 | 12,742 |
|
|
199
|
+
| `card` | 35,877 | 10,756 | 9,453 | 694 | 138 | 159 |
|
|
200
|
+
| `carousel` | 48,862 | 14,558 | 12,859 | 12,339 | 3,052 | 2,586 |
|
|
201
|
+
| `chat` | 63,648 | 19,423 | 17,122 | 18,372 | 5,274 | 4,374 |
|
|
202
|
+
| `checkbox` | 51,033 | 14,772 | 13,004 | 2,870 | 730 | 530 |
|
|
203
|
+
| `checkbox-group` | 54,983 | 15,722 | 13,809 | 6,298 | 1,561 | 1,189 |
|
|
204
|
+
| `code` | 34,462 | 10,329 | 9,052 | 451 | 78 | 66 |
|
|
205
|
+
| `code-block` | 91,328 | 28,695 | 25,278 | 20,194 | 5,201 | 4,342 |
|
|
206
|
+
| `color-input` | 113,740 | 33,688 | 29,591 | 30,723 | 7,328 | 6,007 |
|
|
207
|
+
| `color-picker` | 77,625 | 22,365 | 19,720 | 23,960 | 6,012 | 4,933 |
|
|
208
|
+
| `combobox` | 110,175 | 32,674 | 28,735 | 27,570 | 6,721 | 5,437 |
|
|
209
|
+
| `command` | 77,258 | 21,751 | 19,099 | 22,515 | 5,705 | 4,731 |
|
|
210
|
+
| `copy-button` | 85,373 | 26,991 | 23,792 | 14,235 | 3,495 | 2,911 |
|
|
211
|
+
| `data-table` | 160,226 | 46,170 | 39,965 | 73,874 | 18,970 | 15,490 |
|
|
212
|
+
| `date-input` | 107,976 | 31,846 | 28,112 | 24,131 | 6,002 | 4,918 |
|
|
213
|
+
| `date-picker` | 55,612 | 16,519 | 14,611 | 12,474 | 3,302 | 2,786 |
|
|
214
|
+
| `description-list` | 35,946 | 10,698 | 9,382 | 1,132 | 189 | 137 |
|
|
215
|
+
| `dialog` | 43,992 | 13,200 | 11,608 | 3,984 | 1,123 | 931 |
|
|
216
|
+
| `divider` | 36,193 | 10,944 | 9,595 | 981 | 222 | 228 |
|
|
217
|
+
| `donut-chart` | 82,994 | 26,781 | 23,563 | 11,658 | 3,272 | 2,857 |
|
|
218
|
+
| `drawer` | 42,522 | 12,827 | 11,244 | 2,805 | 757 | 618 |
|
|
219
|
+
| `drilldown` | 50,555 | 15,348 | 13,508 | 6,373 | 1,581 | 1,291 |
|
|
220
|
+
| `empty` | 36,631 | 11,057 | 9,703 | 956 | 225 | 155 |
|
|
221
|
+
| `file-input` | 57,808 | 17,236 | 15,191 | 7,749 | 2,238 | 1,839 |
|
|
222
|
+
| `filter-input` | 117,407 | 34,721 | 30,452 | 30,511 | 7,397 | 6,060 |
|
|
223
|
+
| `format-date` | 40,640 | 12,232 | 10,797 | 3,377 | 828 | 692 |
|
|
224
|
+
| `graph` | 68,708 | 20,592 | 18,136 | 14,807 | 4,455 | 3,798 |
|
|
225
|
+
| `heatmap` | 86,523 | 27,639 | 24,240 | 12,260 | 3,220 | 2,671 |
|
|
226
|
+
| `icon` | 91,862 | 29,593 | 24,502 | 54,441 | 18,378 | 14,882 |
|
|
227
|
+
| `icon-button` | 46,545 | 13,805 | 12,130 | 4,333 | 1,026 | 867 |
|
|
228
|
+
| `image` | 38,130 | 11,314 | 9,951 | 3,269 | 814 | 659 |
|
|
229
|
+
| `input` | 56,582 | 16,890 | 14,728 | 7,173 | 2,187 | 1,677 |
|
|
230
|
+
| `kbd` | 37,867 | 11,557 | 10,155 | 3,046 | 944 | 718 |
|
|
231
|
+
| `legend` | 40,520 | 12,217 | 10,753 | 1,236 | 321 | 295 |
|
|
232
|
+
| `lightbox` | 45,844 | 13,576 | 11,891 | 5,077 | 1,309 | 1,118 |
|
|
233
|
+
| `line-chart` | 85,212 | 27,603 | 24,422 | 12,296 | 3,456 | 2,971 |
|
|
234
|
+
| `list` | 36,939 | 10,945 | 9,627 | 1,766 | 336 | 329 |
|
|
235
|
+
| `listbox` | 66,528 | 19,325 | 17,038 | 14,139 | 3,691 | 3,035 |
|
|
236
|
+
| `loader` | 36,083 | 10,861 | 9,521 | 900 | 227 | 240 |
|
|
237
|
+
| `map` | 88,696 | 24,546 | 21,300 | 37,987 | 9,713 | 7,564 |
|
|
238
|
+
| `megamenu` | 67,375 | 21,873 | 19,259 | 5,166 | 1,282 | 1,024 |
|
|
239
|
+
| `menu` | 82,759 | 26,552 | 23,307 | 10,756 | 2,601 | 2,146 |
|
|
240
|
+
| `meter` | 39,466 | 11,802 | 10,380 | 4,291 | 1,113 | 939 |
|
|
241
|
+
| `navigation` | 40,361 | 12,268 | 10,700 | 1,587 | 356 | 265 |
|
|
242
|
+
| `notifications` | 57,176 | 16,480 | 14,524 | 13,049 | 3,035 | 2,600 |
|
|
243
|
+
| `number-input` | 58,602 | 17,009 | 14,994 | 9,198 | 2,335 | 1,925 |
|
|
244
|
+
| `object-inspector` | 101,188 | 31,909 | 28,027 | 23,851 | 6,367 | 5,237 |
|
|
245
|
+
| `option` | 38,177 | 11,313 | 9,938 | 3,000 | 597 | 472 |
|
|
246
|
+
| `outline` | 41,276 | 12,620 | 11,097 | 4,703 | 1,317 | 1,096 |
|
|
247
|
+
| `pagination` | 115,172 | 34,200 | 29,842 | 36,108 | 8,978 | 7,303 |
|
|
248
|
+
| `pin-input` | 53,468 | 15,598 | 13,735 | 5,546 | 1,588 | 1,250 |
|
|
249
|
+
| `popover` | 67,088 | 21,955 | 19,298 | 2,360 | 546 | 437 |
|
|
250
|
+
| `progress` | 37,468 | 11,283 | 9,925 | 2,293 | 599 | 516 |
|
|
251
|
+
| `qr-code` | 48,159 | 15,300 | 13,444 | 13,372 | 4,976 | 4,151 |
|
|
252
|
+
| `quote` | 35,366 | 10,620 | 9,333 | 552 | 137 | 116 |
|
|
253
|
+
| `radio` | 53,348 | 15,393 | 13,602 | 3,454 | 859 | 704 |
|
|
254
|
+
| `rating` | 57,759 | 17,167 | 15,141 | 7,025 | 1,930 | 1,642 |
|
|
255
|
+
| `scatter-chart` | 84,344 | 27,236 | 23,963 | 12,438 | 3,562 | 3,042 |
|
|
256
|
+
| `scroll-area` | 37,609 | 11,305 | 9,932 | 2,743 | 716 | 619 |
|
|
257
|
+
| `select` | 99,650 | 30,319 | 26,661 | 20,882 | 5,227 | 4,248 |
|
|
258
|
+
| `skeleton` | 35,927 | 10,769 | 9,479 | 744 | 154 | 156 |
|
|
259
|
+
| `skip-link` | 36,528 | 11,065 | 9,725 | 1,562 | 459 | 356 |
|
|
260
|
+
| `slider` | 54,718 | 15,853 | 13,964 | 6,551 | 1,688 | 1,378 |
|
|
261
|
+
| `sparkline` | 42,823 | 13,199 | 11,635 | 2,387 | 776 | 634 |
|
|
262
|
+
| `speed-dial` | 70,296 | 23,092 | 20,399 | 4,222 | 981 | 741 |
|
|
263
|
+
| `splitter` | 48,695 | 14,346 | 12,659 | 10,974 | 2,631 | 2,364 |
|
|
264
|
+
| `stat` | 36,680 | 10,934 | 9,626 | 1,498 | 323 | 267 |
|
|
265
|
+
| `steps` | 52,437 | 15,470 | 13,601 | 7,665 | 1,866 | 1,437 |
|
|
266
|
+
| `switch` | 50,222 | 14,655 | 12,858 | 1,658 | 440 | 340 |
|
|
267
|
+
| `table` | 55,545 | 16,720 | 14,777 | 14,836 | 4,124 | 3,515 |
|
|
268
|
+
| `tabs` | 47,579 | 14,153 | 12,437 | 4,025 | 831 | 670 |
|
|
269
|
+
| `tag` | 39,281 | 11,904 | 10,482 | 1,502 | 355 | 270 |
|
|
270
|
+
| `textarea` | 52,411 | 15,190 | 13,395 | 4,004 | 1,010 | 798 |
|
|
271
|
+
| `time-input` | 122,739 | 35,784 | 31,347 | 34,903 | 8,541 | 7,113 |
|
|
272
|
+
| `time-picker` | 77,815 | 22,421 | 19,721 | 24,273 | 6,323 | 5,284 |
|
|
273
|
+
| `timeline` | 38,338 | 11,513 | 10,124 | 2,239 | 492 | 462 |
|
|
274
|
+
| `toast` | 46,209 | 13,943 | 12,268 | 6,631 | 1,725 | 1,325 |
|
|
275
|
+
| `toggle` | 55,270 | 15,967 | 14,097 | 3,859 | 918 | 828 |
|
|
276
|
+
| `toolbar` | 41,802 | 12,830 | 11,234 | 4,134 | 1,227 | 968 |
|
|
277
|
+
| `tooltip` | 69,378 | 22,430 | 19,869 | 7,373 | 1,948 | 1,646 |
|
|
278
|
+
| `tour` | 81,985 | 25,759 | 22,618 | 12,789 | 3,163 | 2,598 |
|
|
279
|
+
| `tree` | 53,094 | 15,962 | 14,019 | 8,342 | 2,132 | 1,862 |
|
|
280
|
+
| `trend` | 37,851 | 11,482 | 10,080 | 2,134 | 536 | 482 |
|
|
281
|
+
| `video` | 117,688 | 35,512 | 31,035 | 41,045 | 10,341 | 8,533 |
|
|
282
|
+
| `video-playlist` | 90,918 | 28,242 | 24,787 | 17,517 | 4,073 | 3,420 |
|
|
283
|
+
| `virtual-list` | 46,217 | 14,195 | 12,467 | 3,995 | 1,234 | 973 |
|
|
282
284
|
|
|
283
285
|
### Styled tier
|
|
284
286
|
|
|
@@ -286,110 +288,110 @@ The headless tier plus presentation. `bun add @fusion.dev/helix` installs this t
|
|
|
286
288
|
|
|
287
289
|
| Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
|
|
288
290
|
|---|---|---|---|---|---|---|
|
|
289
|
-
| `accordion` |
|
|
290
|
-
| `announcement` |
|
|
291
|
-
| `app-header` |
|
|
292
|
-
| `area-chart` |
|
|
293
|
-
| `aura` |
|
|
294
|
-
| `avatar` |
|
|
295
|
-
| `badge` |
|
|
296
|
-
| `bar-chart` |
|
|
297
|
-
| `blockquote` |
|
|
298
|
-
| `breadcrumbs` |
|
|
299
|
-
| `button` |
|
|
300
|
-
| `button-group` |
|
|
301
|
-
| `callout` |
|
|
302
|
-
| `canvas` |
|
|
303
|
-
| `card` |
|
|
304
|
-
| `carousel` |
|
|
305
|
-
| `chat` |
|
|
306
|
-
| `checkbox` |
|
|
307
|
-
| `checkbox-group` |
|
|
308
|
-
| `code` |
|
|
309
|
-
| `code-block` |
|
|
310
|
-
| `color-input` |
|
|
311
|
-
| `color-picker` |
|
|
312
|
-
| `combobox` |
|
|
313
|
-
| `command` |
|
|
314
|
-
| `copy-button` |
|
|
315
|
-
| `data-table` |
|
|
316
|
-
| `date-input` |
|
|
317
|
-
| `date-picker` |
|
|
318
|
-
| `description-list` |
|
|
319
|
-
| `dialog` |
|
|
320
|
-
| `divider` |
|
|
321
|
-
| `donut-chart` |
|
|
322
|
-
| `drawer` |
|
|
323
|
-
| `drilldown` |
|
|
324
|
-
| `empty` |
|
|
325
|
-
| `file-input` |
|
|
326
|
-
| `filter-input` |
|
|
327
|
-
| `flex` |
|
|
328
|
-
| `format-date` |
|
|
329
|
-
| `graph` |
|
|
330
|
-
| `grid` |
|
|
331
|
-
| `heatmap` |
|
|
332
|
-
| `icon` |
|
|
333
|
-
| `icon-button` |
|
|
334
|
-
| `image` |
|
|
335
|
-
| `input` |
|
|
336
|
-
| `kbd` |
|
|
337
|
-
| `legend` |
|
|
338
|
-
| `lightbox` |
|
|
339
|
-
| `line-chart` |
|
|
340
|
-
| `list` |
|
|
341
|
-
| `listbox` |
|
|
342
|
-
| `loader` |
|
|
343
|
-
| `map` |
|
|
344
|
-
| `megamenu` |
|
|
345
|
-
| `menu` |
|
|
346
|
-
| `meter` |
|
|
347
|
-
| `navigation` |
|
|
348
|
-
| `notifications` |
|
|
349
|
-
| `number-input` |
|
|
350
|
-
| `object-inspector` |
|
|
351
|
-
| `option` |
|
|
352
|
-
| `orb` |
|
|
353
|
-
| `outline` |
|
|
354
|
-
| `pagination` |
|
|
355
|
-
| `pin-input` |
|
|
356
|
-
| `popover` |
|
|
357
|
-
| `progress` |
|
|
358
|
-
| `qr-code` |
|
|
359
|
-
| `quote` |
|
|
360
|
-
| `radio` |
|
|
361
|
-
| `rating` |
|
|
362
|
-
| `sandbox` |
|
|
363
|
-
| `scatter-chart` |
|
|
364
|
-
| `scroll-area` |
|
|
365
|
-
| `select` |
|
|
366
|
-
| `skeleton` |
|
|
367
|
-
| `skip-link` |
|
|
368
|
-
| `slider` |
|
|
369
|
-
| `sparkline` |
|
|
370
|
-
| `speed-dial` |
|
|
371
|
-
| `splitter` |
|
|
372
|
-
| `stat` |
|
|
373
|
-
| `steps` |
|
|
374
|
-
| `switch` |
|
|
375
|
-
| `table` |
|
|
376
|
-
| `tabs` |
|
|
377
|
-
| `tag` |
|
|
378
|
-
| `text` |
|
|
379
|
-
| `textarea` |
|
|
380
|
-
| `time-input` |
|
|
381
|
-
| `time-picker` |
|
|
382
|
-
| `timeline` |
|
|
383
|
-
| `toast` |
|
|
384
|
-
| `toggle` |
|
|
385
|
-
| `toolbar` |
|
|
386
|
-
| `tooltip` |
|
|
387
|
-
| `tour` |
|
|
388
|
-
| `tree` |
|
|
389
|
-
| `trend` |
|
|
390
|
-
| `video` |
|
|
391
|
-
| `video-playlist` |
|
|
392
|
-
| `virtual-list` |
|
|
291
|
+
| `accordion` | 47,951 | 14,385 | 12,685 | 7,647 | 1,876 | 1,657 |
|
|
292
|
+
| `announcement` | 45,249 | 13,413 | 11,773 | 6,380 | 1,478 | 1,291 |
|
|
293
|
+
| `app-header` | 41,032 | 12,015 | 10,567 | 5,673 | 1,328 | 1,192 |
|
|
294
|
+
| `area-chart` | 92,307 | 29,222 | 25,745 | 19,520 | 5,204 | 4,351 |
|
|
295
|
+
| `aura` | 64,723 | 19,667 | 17,322 | 26,741 | 8,302 | 7,048 |
|
|
296
|
+
| `avatar` | 42,839 | 12,494 | 10,995 | 7,505 | 1,803 | 1,560 |
|
|
297
|
+
| `badge` | 39,387 | 11,595 | 10,171 | 4,560 | 1,062 | 908 |
|
|
298
|
+
| `bar-chart` | 100,458 | 30,942 | 27,249 | 27,266 | 6,771 | 5,807 |
|
|
299
|
+
| `blockquote` | 37,335 | 11,206 | 9,842 | 2,106 | 515 | 440 |
|
|
300
|
+
| `breadcrumbs` | 41,907 | 12,315 | 10,809 | 5,802 | 1,315 | 1,112 |
|
|
301
|
+
| `button` | 52,405 | 14,962 | 13,154 | 10,174 | 2,133 | 1,775 |
|
|
302
|
+
| `button-group` | 37,519 | 11,123 | 9,761 | 2,320 | 525 | 423 |
|
|
303
|
+
| `callout` | 40,626 | 12,341 | 10,828 | 3,201 | 822 | 688 |
|
|
304
|
+
| `canvas` | 118,080 | 32,428 | 28,262 | 70,990 | 18,956 | 15,838 |
|
|
305
|
+
| `card` | 39,179 | 11,594 | 10,187 | 3,984 | 993 | 900 |
|
|
306
|
+
| `carousel` | 59,803 | 16,343 | 14,501 | 23,269 | 4,923 | 4,179 |
|
|
307
|
+
| `chat` | 77,805 | 21,908 | 19,228 | 32,518 | 7,775 | 6,583 |
|
|
308
|
+
| `checkbox` | 57,661 | 16,224 | 14,282 | 9,480 | 2,165 | 1,855 |
|
|
309
|
+
| `checkbox-group` | 57,264 | 16,323 | 14,303 | 8,565 | 2,104 | 1,649 |
|
|
310
|
+
| `code` | 35,539 | 10,625 | 9,315 | 1,511 | 382 | 346 |
|
|
311
|
+
| `code-block` | 108,555 | 31,394 | 27,689 | 37,406 | 7,961 | 6,698 |
|
|
312
|
+
| `color-input` | 146,235 | 38,701 | 34,055 | 63,200 | 12,344 | 10,528 |
|
|
313
|
+
| `color-picker` | 104,421 | 26,675 | 23,558 | 50,744 | 10,385 | 8,771 |
|
|
314
|
+
| `combobox` | 125,460 | 35,408 | 31,146 | 42,836 | 9,441 | 7,779 |
|
|
315
|
+
| `command` | 88,011 | 23,835 | 20,911 | 33,255 | 7,793 | 6,494 |
|
|
316
|
+
| `copy-button` | 96,160 | 28,742 | 25,364 | 25,008 | 5,300 | 4,460 |
|
|
317
|
+
| `data-table` | 201,788 | 54,367 | 45,967 | 115,173 | 27,068 | 21,428 |
|
|
318
|
+
| `date-input` | 124,423 | 34,929 | 30,753 | 40,562 | 9,080 | 7,575 |
|
|
319
|
+
| `date-picker` | 61,514 | 17,671 | 15,668 | 18,358 | 4,490 | 3,781 |
|
|
320
|
+
| `description-list` | 38,324 | 11,260 | 9,897 | 3,503 | 770 | 639 |
|
|
321
|
+
| `dialog` | 48,373 | 14,225 | 12,495 | 8,346 | 2,085 | 1,844 |
|
|
322
|
+
| `divider` | 38,349 | 11,463 | 10,044 | 3,120 | 759 | 684 |
|
|
323
|
+
| `donut-chart` | 92,273 | 28,697 | 25,243 | 20,913 | 5,308 | 4,552 |
|
|
324
|
+
| `drawer` | 47,214 | 13,889 | 12,230 | 7,478 | 1,807 | 1,603 |
|
|
325
|
+
| `drilldown` | 55,252 | 16,372 | 14,402 | 11,057 | 2,563 | 2,233 |
|
|
326
|
+
| `empty` | 38,071 | 11,496 | 10,044 | 2,380 | 680 | 571 |
|
|
327
|
+
| `file-input` | 67,640 | 19,220 | 16,970 | 17,570 | 4,210 | 3,572 |
|
|
328
|
+
| `filter-input` | 144,090 | 39,010 | 34,131 | 57,182 | 11,683 | 9,635 |
|
|
329
|
+
| `flex` | 36,900 | 10,980 | 9,665 | 2,078 | 457 | 439 |
|
|
330
|
+
| `format-date` | 41,288 | 12,373 | 10,931 | 4,007 | 990 | 837 |
|
|
331
|
+
| `graph` | 83,551 | 23,062 | 20,255 | 29,630 | 7,000 | 5,989 |
|
|
332
|
+
| `grid` | 38,354 | 11,548 | 10,200 | 3,533 | 1,030 | 906 |
|
|
333
|
+
| `heatmap` | 93,320 | 29,067 | 25,476 | 19,036 | 4,674 | 3,974 |
|
|
334
|
+
| `icon` | 92,568 | 29,773 | 24,662 | 55,130 | 18,562 | 14,930 |
|
|
335
|
+
| `icon-button` | 53,347 | 14,875 | 13,100 | 11,117 | 2,064 | 1,794 |
|
|
336
|
+
| `image` | 39,824 | 11,785 | 10,344 | 4,945 | 1,293 | 1,039 |
|
|
337
|
+
| `input` | 61,246 | 17,959 | 15,650 | 11,826 | 3,284 | 2,612 |
|
|
338
|
+
| `kbd` | 39,279 | 12,016 | 10,550 | 4,443 | 1,386 | 1,204 |
|
|
339
|
+
| `legend` | 45,375 | 13,337 | 11,678 | 5,946 | 1,422 | 1,189 |
|
|
340
|
+
| `lightbox` | 48,856 | 14,326 | 12,602 | 8,073 | 1,990 | 1,755 |
|
|
341
|
+
| `line-chart` | 95,156 | 29,650 | 26,141 | 22,221 | 5,557 | 4,788 |
|
|
342
|
+
| `list` | 41,161 | 11,917 | 10,489 | 5,979 | 1,337 | 1,217 |
|
|
343
|
+
| `listbox` | 71,045 | 20,352 | 17,918 | 18,646 | 4,741 | 4,008 |
|
|
344
|
+
| `loader` | 39,249 | 11,628 | 10,226 | 4,051 | 1,002 | 935 |
|
|
345
|
+
| `map` | 125,745 | 29,962 | 26,027 | 75,027 | 15,272 | 12,380 |
|
|
346
|
+
| `megamenu` | 72,256 | 22,968 | 20,250 | 10,031 | 2,283 | 2,020 |
|
|
347
|
+
| `menu` | 90,293 | 28,100 | 24,730 | 18,270 | 4,214 | 3,586 |
|
|
348
|
+
| `meter` | 44,944 | 12,921 | 11,402 | 9,751 | 2,216 | 2,011 |
|
|
349
|
+
| `navigation` | 42,012 | 12,721 | 11,159 | 3,221 | 853 | 727 |
|
|
350
|
+
| `notifications` | 70,289 | 18,854 | 16,681 | 26,155 | 5,478 | 4,713 |
|
|
351
|
+
| `number-input` | 63,484 | 18,135 | 16,046 | 14,064 | 3,450 | 2,892 |
|
|
352
|
+
| `object-inspector` | 115,606 | 34,265 | 30,127 | 38,251 | 8,743 | 7,365 |
|
|
353
|
+
| `option` | 41,431 | 12,212 | 10,724 | 6,240 | 1,514 | 1,224 |
|
|
354
|
+
| `orb` | 46,194 | 14,632 | 12,903 | 8,724 | 3,180 | 2,797 |
|
|
355
|
+
| `outline` | 45,016 | 13,393 | 11,774 | 8,426 | 2,070 | 1,864 |
|
|
356
|
+
| `pagination` | 133,156 | 37,272 | 32,511 | 54,070 | 12,052 | 9,905 |
|
|
357
|
+
| `pin-input` | 56,633 | 16,422 | 14,490 | 8,694 | 2,372 | 1,964 |
|
|
358
|
+
| `popover` | 69,759 | 22,630 | 19,856 | 5,013 | 1,233 | 1,032 |
|
|
359
|
+
| `progress` | 42,497 | 12,451 | 10,950 | 7,304 | 1,753 | 1,582 |
|
|
360
|
+
| `qr-code` | 49,827 | 15,727 | 13,822 | 15,020 | 5,415 | 4,508 |
|
|
361
|
+
| `quote` | 36,021 | 10,784 | 9,464 | 1,191 | 310 | 253 |
|
|
362
|
+
| `radio` | 61,642 | 16,891 | 14,906 | 11,739 | 2,361 | 1,936 |
|
|
363
|
+
| `rating` | 62,070 | 18,418 | 16,250 | 11,320 | 3,107 | 2,653 |
|
|
364
|
+
| `sandbox` | 75,289 | 19,932 | 17,597 | 37,267 | 8,230 | 6,967 |
|
|
365
|
+
| `scatter-chart` | 92,737 | 29,041 | 25,603 | 20,807 | 5,409 | 4,602 |
|
|
366
|
+
| `scroll-area` | 40,757 | 11,954 | 10,480 | 5,874 | 1,374 | 1,131 |
|
|
367
|
+
| `select` | 112,503 | 32,698 | 28,696 | 33,721 | 7,651 | 6,284 |
|
|
368
|
+
| `skeleton` | 37,735 | 11,283 | 9,898 | 2,535 | 648 | 562 |
|
|
369
|
+
| `skip-link` | 37,991 | 11,464 | 10,049 | 3,008 | 872 | 685 |
|
|
370
|
+
| `slider` | 65,800 | 17,845 | 15,771 | 17,614 | 3,667 | 3,238 |
|
|
371
|
+
| `sparkline` | 46,743 | 14,146 | 12,494 | 6,294 | 1,716 | 1,553 |
|
|
372
|
+
| `speed-dial` | 132,863 | 42,937 | 36,467 | 65,068 | 20,630 | 16,586 |
|
|
373
|
+
| `splitter` | 54,767 | 15,342 | 13,569 | 17,028 | 3,647 | 3,212 |
|
|
374
|
+
| `stat` | 40,105 | 11,640 | 10,261 | 4,916 | 1,070 | 961 |
|
|
375
|
+
| `steps` | 66,243 | 17,909 | 15,727 | 21,460 | 4,323 | 3,617 |
|
|
376
|
+
| `switch` | 54,591 | 15,726 | 13,799 | 6,010 | 1,518 | 1,356 |
|
|
377
|
+
| `table` | 61,309 | 17,888 | 15,730 | 20,596 | 5,314 | 4,492 |
|
|
378
|
+
| `tabs` | 54,198 | 15,497 | 13,584 | 10,627 | 2,163 | 1,852 |
|
|
379
|
+
| `tag` | 42,632 | 12,773 | 11,210 | 4,838 | 1,239 | 1,112 |
|
|
380
|
+
| `text` | 40,822 | 11,755 | 10,289 | 6,004 | 1,304 | 1,035 |
|
|
381
|
+
| `textarea` | 55,847 | 16,040 | 14,071 | 7,423 | 1,859 | 1,566 |
|
|
382
|
+
| `time-input` | 143,685 | 39,361 | 34,464 | 55,836 | 12,143 | 10,069 |
|
|
383
|
+
| `time-picker` | 89,544 | 24,646 | 21,632 | 35,992 | 8,549 | 7,139 |
|
|
384
|
+
| `timeline` | 41,650 | 12,245 | 10,769 | 5,541 | 1,256 | 1,061 |
|
|
385
|
+
| `toast` | 54,188 | 15,651 | 13,762 | 14,595 | 3,373 | 2,922 |
|
|
386
|
+
| `toggle` | 60,461 | 17,172 | 15,120 | 9,041 | 2,121 | 1,774 |
|
|
387
|
+
| `toolbar` | 43,094 | 13,127 | 11,519 | 5,409 | 1,531 | 1,281 |
|
|
388
|
+
| `tooltip` | 72,456 | 23,199 | 20,502 | 10,433 | 2,644 | 2,223 |
|
|
389
|
+
| `tour` | 91,772 | 27,402 | 24,147 | 22,560 | 4,915 | 4,092 |
|
|
390
|
+
| `tree` | 58,944 | 17,328 | 15,238 | 14,181 | 3,488 | 3,071 |
|
|
391
|
+
| `trend` | 39,374 | 11,903 | 10,444 | 3,639 | 961 | 780 |
|
|
392
|
+
| `video` | 135,406 | 38,723 | 33,819 | 58,745 | 13,560 | 11,359 |
|
|
393
|
+
| `video-playlist` | 103,336 | 30,436 | 26,772 | 29,918 | 6,351 | 5,376 |
|
|
394
|
+
| `virtual-list` | 47,010 | 14,410 | 12,652 | 4,770 | 1,433 | 1,136 |
|
|
393
395
|
|
|
394
396
|
## What an install adds to `node_modules`
|
|
395
397
|
|
|
@@ -401,18 +403,18 @@ stripped column shows the bytes we removed.
|
|
|
401
403
|
|
|
402
404
|
| Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
|
|
403
405
|
|---|---|---|---|---|
|
|
404
|
-
| `@fusion.dev/helix-core` | 1,
|
|
405
|
-
| `@fusion.dev/helix-headless` |
|
|
406
|
-
| `@fusion.dev/helix-icons` |
|
|
406
|
+
| `@fusion.dev/helix-core` | 1,326,497 | 181 | 307,309 | `@floating-ui/dom`, `@fusion.dev/helix-icons` |
|
|
407
|
+
| `@fusion.dev/helix-headless` | 14,918,832 | 511 | 1,228,029 | `@fusion.dev/helix-core`, `@fusion.dev/helix-icons`, `uqr` |
|
|
408
|
+
| `@fusion.dev/helix-icons` | 149,615 | 21 | 47,843 | `svgo` |
|
|
407
409
|
| `@fusion.dev/helix-styles` | 106,097 | 6 | 0 | none |
|
|
408
410
|
| `@fusion.dev/helix-theme` | 528,598 | 8 | 5,393 | none |
|
|
409
|
-
| `@fusion.dev/helix` |
|
|
411
|
+
| `@fusion.dev/helix` | 15,761,419 | 877 | 378,696 | `@fusion.dev/helix-core`, `@fusion.dev/helix-headless`, `@fusion.dev/helix-styles` |
|
|
410
412
|
|
|
411
413
|
## Not measured yet
|
|
412
414
|
|
|
413
415
|
We list these gaps so you know what the numbers above leave out.
|
|
414
416
|
|
|
415
|
-
- **No whole-library comparison, and
|
|
417
|
+
- **No whole-library comparison, and a short list of components.** Adding a component means choosing the matching element in each system by hand, so we add components one at a time.
|
|
416
418
|
- **The peer numbers are pinned, so they age.** The comparison shows the date they were measured. Run `turbo run peers` to refresh them. No check fails when they are old. Another library's release changes nothing in this repository, so a check based on the date would fail for no useful reason.
|
|
417
419
|
- **No first paint.** The timings above measure single components. First paint depends on the whole page, so the app that renders the page should measure it.
|
|
418
420
|
- **No per-component stylesheet bytes.** Each family's CSS is compiled into its JavaScript, so every number above already includes it. `elements.css` is the light-DOM layer, and it is in the stylesheet table.
|