@fusion.dev/helix-docs 0.104.0 → 0.105.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 +92 -71
- package/content/angular.mdx +26 -24
- package/content/browser-support.mdx +61 -58
- package/content/building-on-the-headless-tier.mdx +100 -74
- package/content/charting.mdx +98 -79
- package/content/coding-agents.mdx +87 -69
- package/content/color-modes.mdx +40 -37
- package/content/color.mdx +67 -54
- package/content/composition.mdx +85 -83
- package/content/elevation-and-material.mdx +32 -29
- package/content/events.mdx +77 -65
- package/content/forms.mdx +69 -58
- package/content/iconography.mdx +75 -71
- package/content/installation.mdx +77 -68
- package/content/intent-reference.mdx +59 -54
- package/content/introduction.mdx +25 -23
- package/content/localization.mdx +122 -82
- package/content/maps.mdx +222 -0
- package/content/metrics.mdx +294 -297
- package/content/motion.mdx +44 -36
- package/content/other-frameworks.mdx +33 -31
- package/content/overlays.mdx +72 -54
- package/content/overriding-a-component.mdx +85 -74
- package/content/react.mdx +72 -64
- package/content/recipes.mdx +64 -47
- package/content/routing.mdx +100 -93
- package/content/sandbox.mdx +39 -39
- package/content/server-rendering.mdx +95 -84
- package/content/shape-and-borders.mdx +44 -37
- package/content/size-and-density.mdx +51 -46
- package/content/space-and-size.mdx +41 -34
- package/content/state-and-control.mdx +63 -51
- package/content/surfaces-and-separation.mdx +55 -53
- package/content/svelte.mdx +20 -19
- package/content/theme-builder.mdx +42 -31
- package/content/theming.mdx +58 -51
- package/content/tiers.mdx +69 -61
- package/content/tokens.mdx +72 -53
- package/content/typography.mdx +47 -47
- package/content/using-helix-with-an-agent.mdx +147 -115
- package/content/using-the-elements.mdx +55 -50
- package/content/versioning.mdx +42 -35
- package/content/visual-axes.mdx +168 -146
- package/content/vue.mdx +24 -24
- package/content/without-a-bundler.mdx +40 -23
- package/dist/pages.generated.js +49 -43
- package/dist/sources.generated.js +3337 -2680
- package/package.json +3 -3
package/content/metrics.mdx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: How much Helix adds to a page, measured from the built packages.
|
|
3
3
|
order: 7
|
|
4
4
|
section: Getting started
|
|
5
5
|
title: Metrics
|
|
@@ -7,152 +7,151 @@ title: Metrics
|
|
|
7
7
|
|
|
8
8
|
# Metrics
|
|
9
9
|
|
|
10
|
-
*Generated by `bun run gen:metrics` from the built packages. Do not edit
|
|
11
|
-
|
|
10
|
+
*Generated by `bun run gen:metrics` from the built packages. Do not edit the
|
|
11
|
+
page by hand, because every number on it comes from a measurement.*
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
We measure Helix in two ways: the bytes it adds to your page, and the time its
|
|
14
|
+
components take to render. We compare the bytes with other systems, because
|
|
15
|
+
you can check a byte count on any machine. We keep the timings out of that
|
|
16
|
+
comparison, because a timing depends on the page, the machine, and the day.
|
|
17
17
|
|
|
18
|
-
## How
|
|
18
|
+
## How we measure
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
than a measurement.
|
|
20
|
+
We publish the method so you can repeat each measurement.
|
|
22
21
|
|
|
23
|
-
- **The published
|
|
24
|
-
- **Everything is bundled
|
|
25
|
-
- **A package row re-exports the package
|
|
26
|
-
- **Gzip
|
|
27
|
-
- **The bundler version
|
|
22
|
+
- **The published files.** Each row bundles `dist`, the files npm ships, with Bun 1.1.43. The bundle is minified ESM for the browser, with no source maps.
|
|
23
|
+
- **Everything is bundled, including Lit.** A page with no other Lit library downloads Lit, so we count it. Lit has its own row in the package table below, so you can subtract it.
|
|
24
|
+
- **A package row re-exports the package, and a component row imports the component for effect.** You import an element to register it, so a component row measures that import. A package row measures the whole public API. Importing a `sideEffects: false` package for effect measures nothing, because the bundler removes it.
|
|
25
|
+
- **Gzip runs at level 9 and brotli at quality 11**, the settings a CDN uses for static assets.
|
|
26
|
+
- **The bundler version affects the numbers.** It is pinned in `packageManager` and in CI, so the same source gives the same numbers in both places.
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
Each component has two columns. Components share a runtime, so no single
|
|
29
|
+
number gives the cost of one component:
|
|
31
30
|
|
|
32
|
-
- **Alone** is a page that uses
|
|
33
|
-
- **Added** is what
|
|
31
|
+
- **Alone** is a page that uses the component and nothing else. It includes the runtime the component needs, so a sum of Alone numbers counts the runtime once for every component.
|
|
32
|
+
- **Added** is what the component adds to a page that already has the runtime. It leaves out the shared runtime, so it understates the cost of your first component.
|
|
34
33
|
|
|
35
|
-
|
|
34
|
+
The cost on your page falls between the two numbers.
|
|
36
35
|
|
|
37
|
-
## The
|
|
36
|
+
## The shared runtime
|
|
38
37
|
|
|
39
|
-
Lit and `@fusion.dev/helix-core
|
|
40
|
-
owns.
|
|
38
|
+
The shared runtime is Lit and `@fusion.dev/helix-core`. Every element needs it,
|
|
39
|
+
and no single element owns it. The Added columns are measured against it.
|
|
41
40
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
The shared runtime is larger than most single components below. It re-exports
|
|
42
|
+
all of `@fusion.dev/helix-core`, so it is the same size under every family. A
|
|
43
|
+
family that uses only part of core leaves the rest out of its bundle, and can
|
|
44
|
+
come in smaller than the shared runtime. No page downloads the shared runtime
|
|
45
|
+
on its own.
|
|
47
46
|
|
|
48
47
|
| | Raw | Gzip | Brotli |
|
|
49
48
|
|---|---|---|---|
|
|
50
|
-
| Lit and `@fusion.dev/helix-core` | 167,
|
|
49
|
+
| Lit and `@fusion.dev/helix-core` | 167,631 | 54,135 | 45,804 |
|
|
51
50
|
|
|
52
51
|
## Whole packages
|
|
53
52
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
Each row keeps everything a package exports, so it is the most the package can
|
|
54
|
+
cost. `@fusion.dev/helix` and `@fusion.dev/helix-headless` have side effects, so a
|
|
55
|
+
barrel import of either costs the whole row. Nothing in this repository imports
|
|
56
|
+
either barrel. The per-component tables show what your page pays.
|
|
58
57
|
|
|
59
58
|
| Package | Raw | Gzip | Brotli | |
|
|
60
59
|
|---|---|---|---|---|
|
|
61
|
-
| `@fusion.dev/helix-core` |
|
|
62
|
-
| `@fusion.dev/helix-headless` |
|
|
60
|
+
| `@fusion.dev/helix-core` | 167,185 | 53,719 | 45,579 | The element base class, mixins, decorators, and floating positioning. |
|
|
61
|
+
| `@fusion.dev/helix-headless` | 692,504 | 179,427 | 139,511 | Every headless family. The barrel entry includes all of them. |
|
|
63
62
|
| `@fusion.dev/helix-icons` | 47,484 | 14,907 | 12,553 | The whole glyph set. |
|
|
64
|
-
| `@fusion.dev/helix-theme` | 3,288 | 1,571 | 1,355 | The derivation engine.
|
|
65
|
-
| `@fusion.dev/helix` | 1,
|
|
66
|
-
| `lit` | 15,394 | 6,118 | 5,460 |
|
|
63
|
+
| `@fusion.dev/helix-theme` | 3,288 | 1,571 | 1,355 | The derivation engine. Most sites run it at build time, and a theme switcher runs it in the browser. |
|
|
64
|
+
| `@fusion.dev/helix` | 1,213,542 | 284,037 | 207,956 | Every styled family. |
|
|
65
|
+
| `lit` | 15,394 | 6,118 | 5,460 | Lit itself, listed so you can subtract it from every row above. |
|
|
67
66
|
|
|
68
|
-
##
|
|
67
|
+
## Stylesheets
|
|
69
68
|
|
|
70
|
-
|
|
71
|
-
receives them. `@fusion.dev/helix-styles` ships its stylesheets
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
You link these files directly, so the sizes are the files as a browser
|
|
70
|
+
receives them. `@fusion.dev/helix-styles` ships its stylesheets without comments
|
|
71
|
+
and keeps the commented sources in the repository. The shipped files are a
|
|
72
|
+
quarter of the size of the sources. The package has no JavaScript, so the table
|
|
73
|
+
shows the whole cost of using the base layer on its own.
|
|
75
74
|
|
|
76
75
|
| File | Raw | Gzip | Brotli | |
|
|
77
76
|
|---|---|---|---|---|
|
|
78
|
-
| `base.css` | 30,672 | 4,430 | 3,844 | The base layer.
|
|
79
|
-
| `elements.css` | 8,
|
|
80
|
-
| `helix.css` | 207 | 148 | 118 | The four
|
|
81
|
-
| `primitives.css` | 6,390 | 1,260 | 1,084 | The primitive layer.
|
|
82
|
-
| `tokens.css` | 20,987 | 2,567 | 2,138 | The 191 semantic tokens.
|
|
77
|
+
| `base.css` | 30,672 | 4,430 | 3,844 | The base layer. It styles markup Helix does not render, and it works with no JavaScript. |
|
|
78
|
+
| `elements.css` | 8,457 | 1,433 | 1,282 | Hides each element until its definition loads. It is generated from the tags in `@fusion.dev/helix`. |
|
|
79
|
+
| `helix.css` | 207 | 148 | 118 | The other four stylesheets in one import, in the order they must load. |
|
|
80
|
+
| `primitives.css` | 6,390 | 1,260 | 1,084 | The primitive layer. It is private, and it ships because `tokens.css` refers to it. |
|
|
81
|
+
| `tokens.css` | 20,987 | 2,567 | 2,138 | The 191 semantic tokens. Every styled component needs them. |
|
|
83
82
|
|
|
84
83
|
## What the numbers say
|
|
85
84
|
|
|
86
|
-
**Most of
|
|
85
|
+
**Most of your first component is the shared runtime.** The median styled family is 19,792 bytes gzipped alone, and it adds 2,196 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.
|
|
87
86
|
|
|
88
|
-
Across the
|
|
87
|
+
Across the 103 styled components, the smallest is `code` at 9,746 bytes gzipped alone, and the largest is `data-table` at 59,994. Every family together is 284,037.
|
|
89
88
|
|
|
90
|
-
|
|
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 179,427 bytes gzipped, whatever else the page imports. That is 9 times the median family above. All 103 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
90
|
|
|
92
|
-
The headless tier never had the problem,
|
|
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 20,674 bytes gzipped alone.
|
|
93
92
|
|
|
94
|
-
##
|
|
93
|
+
## Compared with other systems
|
|
95
94
|
|
|
96
|
-
|
|
95
|
+
We compare Helix with four other libraries of custom elements. `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
96
|
|
|
98
|
-
|
|
97
|
+
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
98
|
|
|
100
|
-
|
|
99
|
+
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 five components that every system has.
|
|
101
100
|
|
|
102
101
|
| Component | System | Raw | Gzip | Brotli |
|
|
103
102
|
|---|---|---|---|---|
|
|
104
|
-
| `button` | **Helix** | 41,
|
|
103
|
+
| `button` | **Helix** | 41,947 | 12,322 | 10,856 |
|
|
105
104
|
| | Carbon | 133,058 | 20,959 | 17,685 |
|
|
106
105
|
| | Material Web | 47,060 | 14,173 | 12,591 |
|
|
107
106
|
| | Shoelace | 62,628 | 18,287 | 15,805 |
|
|
108
107
|
| | Spectrum | 98,792 | 22,045 | 18,674 |
|
|
109
|
-
| `checkbox` | **Helix** |
|
|
108
|
+
| `checkbox` | **Helix** | 46,351 | 13,506 | 11,862 |
|
|
110
109
|
| | Carbon | 60,255 | 15,609 | 13,550 |
|
|
111
110
|
| | Material Web | 43,785 | 13,556 | 12,015 |
|
|
112
111
|
| | Shoelace | 47,614 | 15,177 | 13,301 |
|
|
113
112
|
| | Spectrum | 62,492 | 15,437 | 13,481 |
|
|
114
|
-
| `dialog` | **Helix** |
|
|
113
|
+
| `dialog` | **Helix** | 39,181 | 11,931 | 10,532 |
|
|
115
114
|
| | Carbon | 510,866 | 67,390 | 39,189 |
|
|
116
115
|
| | Material Web | 34,238 | 11,510 | 10,229 |
|
|
117
116
|
| | Shoelace | 52,754 | 17,698 | 15,554 |
|
|
118
117
|
| | Spectrum | 155,708 | 31,899 | 26,262 |
|
|
119
|
-
| `radio` | **Helix** |
|
|
118
|
+
| `radio` | **Helix** | 50,217 | 14,033 | 12,351 |
|
|
120
119
|
| | Carbon | 63,055 | 16,887 | 14,605 |
|
|
121
120
|
| | Material Web | 41,044 | 13,234 | 11,757 |
|
|
122
121
|
| | Shoelace | 34,865 | 12,027 | 10,559 |
|
|
123
122
|
| | Spectrum | 38,685 | 10,660 | 9,370 |
|
|
124
|
-
| `switch` | **Helix** | 43,
|
|
123
|
+
| `switch` | **Helix** | 43,727 | 13,096 | 11,526 |
|
|
125
124
|
| | Carbon | 69,423 | 17,127 | 14,764 |
|
|
126
125
|
| | Material Web | 50,155 | 14,577 | 12,935 |
|
|
127
126
|
| | Shoelace | 37,833 | 11,814 | 10,568 |
|
|
128
127
|
| | Spectrum | 62,322 | 15,059 | 13,321 |
|
|
129
|
-
| `tabs` | **Helix** | 45,
|
|
128
|
+
| `tabs` | **Helix** | 45,492 | 13,287 | 11,706 |
|
|
130
129
|
| | Carbon | 578,766 | 73,537 | 43,235 |
|
|
131
130
|
| | Material Web | 38,883 | 12,820 | 11,368 |
|
|
132
131
|
| | Shoelace | 54,573 | 17,140 | 15,068 |
|
|
133
132
|
| | Spectrum | 64,875 | 18,298 | 16,283 |
|
|
134
|
-
| `tooltip` | **Helix** |
|
|
133
|
+
| `tooltip` | **Helix** | 66,072 | 21,770 | 19,269 |
|
|
135
134
|
| | Carbon | 189,382 | 30,354 | 22,273 |
|
|
136
135
|
| | Material Web | | not shipped | |
|
|
137
136
|
| | Shoelace | 57,412 | 20,220 | 17,933 |
|
|
138
137
|
| | Spectrum | 136,599 | 40,552 | 35,286 |
|
|
139
138
|
|
|
140
|
-
|
|
139
|
+
At least one system is smaller than Helix on `dialog`, `radio`, `switch`, `tabs`, `tooltip`. The largest gap is radio against Spectrum, at 3,373 bytes gzipped. 7 of 28 peer measurements are smaller than the Helix row.
|
|
141
140
|
|
|
142
141
|
- **Carbon** `@carbon/web-components@2.61.0`. Its dialog is Modal, its radio is Radio Button, and its switch is Toggle.
|
|
143
142
|
- **Material Web** `@material/web@2.5.0`. Ships no tooltip. Its button is measured as the filled one, there being no single button element.
|
|
144
143
|
- **Shoelace** `@shoelace-style/shoelace@2.20.1`. Its tabs element is Tab Group.
|
|
145
144
|
- **Spectrum** `@spectrum-web-components/button@1.12.2`. One package per component, so there is no barrel to import by accident.
|
|
146
145
|
|
|
147
|
-
Every specifier measured is in [`peers.json`](https://github.com/project-fusion/fusion/blob/main/helix/docs/peers.json), so
|
|
146
|
+
Every specifier we measured is in [`peers.json`](https://github.com/project-fusion/fusion/blob/main/helix/docs/peers.json), so you can run the same measurement yourself.
|
|
148
147
|
|
|
149
|
-
## What
|
|
148
|
+
## What a component costs in time
|
|
150
149
|
|
|
151
|
-
|
|
150
|
+
`turbo run timings` measured these on 2026-08-26 by loading the built packages in a real browser. Each figure is the median of 9 runs on one machine.
|
|
152
151
|
|
|
153
|
-
|
|
152
|
+
We do not compare these timings with other systems. A byte count belongs to a package, so you can compare it with any other package. A timing depends on the page, the machine, and the day. Timings from another library, measured on another machine, would show the difference between the two machines.
|
|
154
153
|
|
|
155
|
-
|
|
154
|
+
No check runs on these timings. A timing moves several percent between runs on one machine, and much more between machines. A check on it would fail when no code changed, and a team soon learns to ignore a check like that. `verify` does not run the measurement. We refresh it by hand, like the peer table, and the date above shows how current it is.
|
|
156
155
|
|
|
157
156
|
| Component | Time to upgrade | First render | Hydration |
|
|
158
157
|
| --- | --- | --- | --- |
|
|
@@ -162,257 +161,255 @@ Measured on 2026-08-26 by `turbo run timings`, which drives a real browser again
|
|
|
162
161
|
| `tabs` | 6.60ms | 0.10ms | 6.90ms |
|
|
163
162
|
| `tooltip` | 6.90ms | 0.10ms | 7.00ms |
|
|
164
163
|
|
|
165
|
-
**Time to upgrade** is the
|
|
164
|
+
**Time to upgrade** is the time from the markup entering the document to its shadow root existing. During that gap you see a flash of unstyled content, which server rendering removes. The measurement parses the markup first and loads the definition after it, in the same order as a script at the end of a page. Most of the time goes to fetching and evaluating the module, so the column follows the byte tables above.
|
|
166
165
|
|
|
167
|
-
**First render** is
|
|
166
|
+
**First render** is the time one new element takes once its definition has loaded, from construction to the end of its first update. Most of that time is spent in Lit, so it is close to the same for every family. A family far from the others does extra work in its first update.
|
|
168
167
|
|
|
169
|
-
**Hydration** is the
|
|
168
|
+
**Hydration** is the time from a server-rendered tree being in the document to that tree becoming live. Server rendering is worth using only if this number is small, and it is the easiest of the three to measure wrongly. We measure it against a document the server rendered and delivered. Markup assigned with `innerHTML` does not parse a declarative shadow root, so the element would have nothing to adopt, and every reading would be a rebuild.
|
|
170
169
|
|
|
171
|
-
|
|
170
|
+
We check every figure above for adoption. Adoption adds nothing to the shadow root, so the count of parts before the definition arrives must equal the count after. Marking a node and looking for it later does not work as a check. Lit does not clear a shadow root it did not create, so a failed hydration keeps the mark and adds a second copy of the tree below it. On Button with the support module removed, the parts went from one to two, and the timing moved by only half a millisecond. Without the adoption check, the wrong number looks the same as the right one. A row marked `(rebuilt)` shows that failure, and no row has it.
|
|
172
171
|
|
|
173
172
|
## Per component
|
|
174
173
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
before they can check it.
|
|
174
|
+
Families are in alphabetical order. Sizes are in bytes, so you can check each
|
|
175
|
+
number without rounding.
|
|
178
176
|
|
|
179
177
|
### Headless tier
|
|
180
178
|
|
|
181
|
-
Structure, accessibility, state and form participation.
|
|
179
|
+
Structure, accessibility, state, and form participation. It has no presentation and no stylesheet to load.
|
|
182
180
|
|
|
183
181
|
| Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
|
|
184
182
|
|---|---|---|---|---|---|---|
|
|
185
|
-
| `accordion` | 82,
|
|
186
|
-
| `announcement` |
|
|
187
|
-
| `app-header` | 31,
|
|
188
|
-
| `area-chart` | 77,
|
|
189
|
-
| `avatar` | 33,
|
|
190
|
-
| `badge` |
|
|
191
|
-
| `bar-chart` |
|
|
192
|
-
| `blockquote` |
|
|
193
|
-
| `breadcrumbs` |
|
|
194
|
-
| `button` | 35,
|
|
195
|
-
| `button-group` |
|
|
196
|
-
| `callout` | 78,
|
|
197
|
-
| `canvas` |
|
|
198
|
-
| `card` |
|
|
199
|
-
| `carousel` | 88,
|
|
200
|
-
| `chat` |
|
|
201
|
-
| `checkbox` | 39,
|
|
202
|
-
| `checkbox-group` | 42,
|
|
203
|
-
| `code` | 29,
|
|
204
|
-
| `code-block` |
|
|
205
|
-
| `color-input` | 141,
|
|
206
|
-
| `color-picker` |
|
|
207
|
-
| `combobox` | 136,
|
|
208
|
-
| `command` | 106,
|
|
209
|
-
| `copy-button` | 118,
|
|
210
|
-
| `data-table` | 174,
|
|
211
|
-
| `date-input` |
|
|
212
|
-
| `date-picker` | 90,
|
|
213
|
-
| `description-list` |
|
|
214
|
-
| `dialog` | 34,
|
|
215
|
-
| `divider` | 31,
|
|
216
|
-
| `donut-chart` | 75,
|
|
217
|
-
| `drawer` | 33,
|
|
218
|
-
| `drilldown` | 87,
|
|
219
|
-
| `empty` | 31,
|
|
220
|
-
| `file-input` | 90,
|
|
221
|
-
| `filter-input` | 147,
|
|
222
|
-
| `format-date` | 34,
|
|
223
|
-
| `heatmap` | 76,
|
|
224
|
-
| `icon` |
|
|
225
|
-
| `icon-button` |
|
|
226
|
-
| `image` |
|
|
227
|
-
| `input` | 89,
|
|
228
|
-
| `kbd` |
|
|
229
|
-
| `legend` |
|
|
230
|
-
| `lightbox` | 39,
|
|
231
|
-
| `line-chart` |
|
|
232
|
-
| `list` |
|
|
233
|
-
| `listbox` | 98,
|
|
234
|
-
| `loader` | 31,
|
|
235
|
-
| `map` |
|
|
236
|
-
| `megamenu` | 61,
|
|
237
|
-
| `menu` | 117,
|
|
238
|
-
| `meter` | 34,
|
|
239
|
-
| `navigation` |
|
|
240
|
-
| `notifications` | 94,
|
|
241
|
-
| `number-input` | 92,
|
|
242
|
-
| `object-inspector` | 131,
|
|
243
|
-
| `option` | 33,
|
|
244
|
-
| `outline` | 36,
|
|
245
|
-
| `pagination` | 140,
|
|
246
|
-
| `pin-input` | 42,
|
|
247
|
-
| `popover` | 58,
|
|
248
|
-
| `progress` | 32,
|
|
249
|
-
| `qr-code` |
|
|
250
|
-
| `quote` | 30,
|
|
251
|
-
| `radio` |
|
|
252
|
-
| `rating` | 44,
|
|
253
|
-
| `scatter-chart` |
|
|
254
|
-
| `scroll-area` | 32,
|
|
255
|
-
| `select` | 128,
|
|
256
|
-
| `skeleton` | 29,
|
|
257
|
-
| `skip-link` | 31,
|
|
258
|
-
| `slider` |
|
|
259
|
-
| `sparkline` | 37,
|
|
260
|
-
| `speed-dial` |
|
|
261
|
-
| `splitter` | 40,
|
|
262
|
-
| `stat` | 31,
|
|
263
|
-
| `steps` | 87,
|
|
264
|
-
| `switch` | 39,
|
|
265
|
-
| `table` | 88,
|
|
266
|
-
| `tabs` |
|
|
267
|
-
| `tag` | 78,
|
|
268
|
-
| `textarea` |
|
|
269
|
-
| `time-input` |
|
|
270
|
-
| `time-picker` |
|
|
271
|
-
| `timeline` |
|
|
272
|
-
| `toast` | 82,
|
|
273
|
-
| `toggle` |
|
|
274
|
-
| `toolbar` |
|
|
275
|
-
| `tooltip` | 62,
|
|
276
|
-
| `tour` | 68,
|
|
277
|
-
| `tree` | 89,
|
|
278
|
-
| `trend` |
|
|
279
|
-
| `video` | 145,
|
|
280
|
-
| `video-playlist` | 124,
|
|
281
|
-
| `virtual-list` |
|
|
183
|
+
| `accordion` | 82,901 | 27,154 | 22,228 | 2,875 | 723 | 599 |
|
|
184
|
+
| `announcement` | 80,317 | 26,327 | 21,514 | 1,386 | 335 | 293 |
|
|
185
|
+
| `app-header` | 31,746 | 10,029 | 8,858 | 1,248 | 272 | 204 |
|
|
186
|
+
| `area-chart` | 77,668 | 25,981 | 22,873 | 11,004 | 3,364 | 2,731 |
|
|
187
|
+
| `avatar` | 33,795 | 10,619 | 9,376 | 3,257 | 851 | 674 |
|
|
188
|
+
| `badge` | 31,282 | 9,961 | 8,768 | 1,163 | 283 | 250 |
|
|
189
|
+
| `bar-chart` | 79,319 | 26,337 | 23,258 | 12,644 | 3,701 | 3,090 |
|
|
190
|
+
| `blockquote` | 31,296 | 9,982 | 8,795 | 774 | 157 | 103 |
|
|
191
|
+
| `breadcrumbs` | 79,357 | 25,667 | 21,199 | 1,965 | 437 | 368 |
|
|
192
|
+
| `button` | 35,854 | 11,208 | 9,849 | 3,095 | 794 | 588 |
|
|
193
|
+
| `button-group` | 31,152 | 9,869 | 8,691 | 661 | 120 | 65 |
|
|
194
|
+
| `callout` | 78,477 | 25,533 | 21,048 | 914 | 217 | 191 |
|
|
195
|
+
| `canvas` | 83,665 | 25,431 | 22,249 | 46,815 | 14,052 | 11,876 |
|
|
196
|
+
| `card` | 31,186 | 9,883 | 8,719 | 694 | 116 | 122 |
|
|
197
|
+
| `carousel` | 88,760 | 28,594 | 23,618 | 10,942 | 2,759 | 2,267 |
|
|
198
|
+
| `chat` | 102,068 | 33,433 | 27,460 | 17,447 | 5,117 | 4,235 |
|
|
199
|
+
| `checkbox` | 39,842 | 12,090 | 10,632 | 2,335 | 654 | 382 |
|
|
200
|
+
| `checkbox-group` | 42,967 | 12,782 | 11,281 | 4,939 | 1,249 | 1,015 |
|
|
201
|
+
| `code` | 29,771 | 9,455 | 8,318 | 451 | 62 | 45 |
|
|
202
|
+
| `code-block` | 124,101 | 40,739 | 34,366 | 17,201 | 4,506 | 3,737 |
|
|
203
|
+
| `color-input` | 141,600 | 44,819 | 37,809 | 25,273 | 5,924 | 4,953 |
|
|
204
|
+
| `color-picker` | 108,091 | 34,002 | 28,065 | 19,215 | 4,622 | 3,992 |
|
|
205
|
+
| `combobox` | 136,787 | 43,454 | 36,534 | 21,033 | 5,217 | 4,287 |
|
|
206
|
+
| `command` | 106,783 | 33,346 | 27,377 | 17,997 | 4,600 | 3,808 |
|
|
207
|
+
| `copy-button` | 118,699 | 39,107 | 32,921 | 11,796 | 2,909 | 2,423 |
|
|
208
|
+
| `data-table` | 174,981 | 53,493 | 45,112 | 55,522 | 14,090 | 11,680 |
|
|
209
|
+
| `date-input` | 135,143 | 42,972 | 36,189 | 19,132 | 4,846 | 3,961 |
|
|
210
|
+
| `date-picker` | 90,536 | 29,334 | 24,060 | 9,900 | 2,710 | 2,197 |
|
|
211
|
+
| `description-list` | 31,255 | 9,820 | 8,631 | 1,132 | 166 | 133 |
|
|
212
|
+
| `dialog` | 34,804 | 10,920 | 9,610 | 2,717 | 764 | 674 |
|
|
213
|
+
| `divider` | 31,502 | 10,055 | 8,819 | 981 | 220 | 123 |
|
|
214
|
+
| `donut-chart` | 75,451 | 24,938 | 22,046 | 10,214 | 2,960 | 2,616 |
|
|
215
|
+
| `drawer` | 33,557 | 10,558 | 9,293 | 1,761 | 453 | 416 |
|
|
216
|
+
| `drilldown` | 87,372 | 28,526 | 23,210 | 5,704 | 1,495 | 1,194 |
|
|
217
|
+
| `empty` | 31,749 | 10,112 | 8,909 | 956 | 214 | 189 |
|
|
218
|
+
| `file-input` | 90,644 | 29,316 | 23,959 | 6,170 | 1,761 | 1,345 |
|
|
219
|
+
| `filter-input` | 147,385 | 46,304 | 38,962 | 27,973 | 6,764 | 5,611 |
|
|
220
|
+
| `format-date` | 34,765 | 11,036 | 9,757 | 2,867 | 687 | 510 |
|
|
221
|
+
| `heatmap` | 76,673 | 25,165 | 22,241 | 10,872 | 2,985 | 2,449 |
|
|
222
|
+
| `icon` | 78,044 | 25,357 | 20,849 | 1,018 | 216 | 143 |
|
|
223
|
+
| `icon-button` | 36,253 | 11,243 | 9,885 | 3,494 | 825 | 628 |
|
|
224
|
+
| `image` | 33,325 | 10,417 | 9,166 | 3,156 | 815 | 691 |
|
|
225
|
+
| `input` | 89,734 | 28,797 | 23,541 | 4,702 | 1,281 | 945 |
|
|
226
|
+
| `kbd` | 33,106 | 10,647 | 9,406 | 2,976 | 951 | 696 |
|
|
227
|
+
| `legend` | 35,158 | 11,146 | 9,802 | 1,080 | 268 | 220 |
|
|
228
|
+
| `lightbox` | 39,522 | 12,181 | 10,706 | 4,807 | 1,253 | 1,061 |
|
|
229
|
+
| `line-chart` | 77,249 | 25,679 | 22,678 | 10,667 | 3,076 | 2,588 |
|
|
230
|
+
| `list` | 32,208 | 10,055 | 8,872 | 1,726 | 328 | 245 |
|
|
231
|
+
| `listbox` | 98,495 | 31,487 | 25,684 | 11,194 | 3,014 | 2,433 |
|
|
232
|
+
| `loader` | 31,392 | 9,987 | 8,780 | 900 | 207 | 245 |
|
|
233
|
+
| `map` | 53,734 | 15,846 | 13,956 | 15,316 | 3,889 | 3,216 |
|
|
234
|
+
| `megamenu` | 61,633 | 20,674 | 18,272 | 4,941 | 1,321 | 974 |
|
|
235
|
+
| `menu` | 117,475 | 39,035 | 32,785 | 8,848 | 2,208 | 1,774 |
|
|
236
|
+
| `meter` | 34,582 | 10,837 | 9,570 | 4,099 | 1,048 | 871 |
|
|
237
|
+
| `navigation` | 33,086 | 10,518 | 9,271 | 1,361 | 328 | 243 |
|
|
238
|
+
| `notifications` | 94,551 | 30,059 | 24,642 | 11,383 | 2,649 | 2,215 |
|
|
239
|
+
| `number-input` | 92,660 | 29,603 | 24,178 | 7,625 | 2,007 | 1,553 |
|
|
240
|
+
| `object-inspector` | 131,749 | 43,371 | 36,527 | 19,463 | 5,181 | 4,284 |
|
|
241
|
+
| `option` | 33,422 | 10,422 | 9,209 | 2,933 | 641 | 445 |
|
|
242
|
+
| `outline` | 36,510 | 11,706 | 10,328 | 4,628 | 1,357 | 1,031 |
|
|
243
|
+
| `pagination` | 140,740 | 44,142 | 37,163 | 27,534 | 6,449 | 5,302 |
|
|
244
|
+
| `pin-input` | 42,758 | 13,010 | 11,433 | 5,194 | 1,510 | 1,152 |
|
|
245
|
+
| `popover` | 58,839 | 19,921 | 17,599 | 1,899 | 477 | 337 |
|
|
246
|
+
| `progress` | 32,433 | 10,261 | 9,035 | 1,951 | 477 | 400 |
|
|
247
|
+
| `qr-code` | 43,082 | 14,300 | 12,585 | 12,983 | 4,692 | 3,989 |
|
|
248
|
+
| `quote` | 30,675 | 9,744 | 8,564 | 552 | 89 | 118 |
|
|
249
|
+
| `radio` | 42,020 | 12,549 | 11,057 | 2,822 | 696 | 473 |
|
|
250
|
+
| `rating` | 44,493 | 13,597 | 11,997 | 6,605 | 1,856 | 1,535 |
|
|
251
|
+
| `scatter-chart` | 77,153 | 25,592 | 22,565 | 11,346 | 3,384 | 2,814 |
|
|
252
|
+
| `scroll-area` | 32,918 | 10,423 | 9,151 | 2,743 | 747 | 517 |
|
|
253
|
+
| `select` | 128,850 | 41,531 | 34,906 | 15,857 | 4,004 | 3,169 |
|
|
254
|
+
| `skeleton` | 29,864 | 9,489 | 8,354 | 544 | 96 | 112 |
|
|
255
|
+
| `skip-link` | 31,454 | 10,045 | 8,831 | 1,178 | 335 | 218 |
|
|
256
|
+
| `slider` | 43,252 | 13,023 | 11,499 | 5,535 | 1,473 | 1,172 |
|
|
257
|
+
| `sparkline` | 37,577 | 12,171 | 10,735 | 2,387 | 771 | 608 |
|
|
258
|
+
| `speed-dial` | 109,021 | 36,657 | 30,848 | 3,743 | 931 | 643 |
|
|
259
|
+
| `splitter` | 40,957 | 12,491 | 11,063 | 10,282 | 2,578 | 2,226 |
|
|
260
|
+
| `stat` | 31,640 | 9,918 | 8,739 | 1,148 | 171 | 115 |
|
|
261
|
+
| `steps` | 87,485 | 28,117 | 23,085 | 6,177 | 1,482 | 1,191 |
|
|
262
|
+
| `switch` | 39,459 | 12,044 | 10,580 | 1,550 | 449 | 378 |
|
|
263
|
+
| `table` | 88,964 | 28,904 | 23,621 | 9,425 | 2,518 | 2,151 |
|
|
264
|
+
| `tabs` | 39,256 | 12,020 | 10,599 | 3,925 | 869 | 769 |
|
|
265
|
+
| `tag` | 78,757 | 25,623 | 20,999 | 895 | 162 | 167 |
|
|
266
|
+
| `textarea` | 42,000 | 12,640 | 11,086 | 3,953 | 1,064 | 726 |
|
|
267
|
+
| `time-input` | 148,087 | 46,297 | 38,913 | 28,815 | 7,042 | 5,924 |
|
|
268
|
+
| `time-picker` | 107,250 | 34,027 | 27,969 | 18,980 | 5,090 | 4,122 |
|
|
269
|
+
| `timeline` | 79,206 | 25,596 | 21,098 | 1,809 | 365 | 300 |
|
|
270
|
+
| `toast` | 82,563 | 26,731 | 21,884 | 4,078 | 959 | 769 |
|
|
271
|
+
| `toggle` | 44,055 | 13,155 | 11,608 | 3,342 | 817 | 574 |
|
|
272
|
+
| `toolbar` | 33,246 | 10,621 | 9,327 | 2,624 | 749 | 601 |
|
|
273
|
+
| `tooltip` | 62,994 | 21,020 | 18,657 | 6,369 | 1,736 | 1,416 |
|
|
274
|
+
| `tour` | 68,711 | 22,383 | 19,798 | 10,945 | 2,735 | 2,140 |
|
|
275
|
+
| `tree` | 89,391 | 28,923 | 23,646 | 7,223 | 1,938 | 1,478 |
|
|
276
|
+
| `trend` | 78,084 | 25,393 | 20,935 | 1,056 | 264 | 347 |
|
|
277
|
+
| `video` | 145,674 | 45,979 | 38,881 | 32,513 | 7,667 | 6,523 |
|
|
278
|
+
| `video-playlist` | 124,965 | 40,646 | 34,154 | 14,933 | 3,484 | 2,875 |
|
|
279
|
+
| `virtual-list` | 37,053 | 11,852 | 10,471 | 2,413 | 701 | 486 |
|
|
282
280
|
|
|
283
281
|
### Styled tier
|
|
284
282
|
|
|
285
|
-
The headless tier plus presentation.
|
|
283
|
+
The headless tier plus presentation. `bun add @fusion.dev/helix` installs this tier.
|
|
286
284
|
|
|
287
285
|
| Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
|
|
288
286
|
|---|---|---|---|---|---|---|
|
|
289
|
-
| `accordion` |
|
|
290
|
-
| `announcement` | 84,
|
|
291
|
-
| `app-header` | 35,
|
|
292
|
-
| `area-chart` |
|
|
293
|
-
| `aura` | 98,
|
|
294
|
-
| `avatar` | 37,
|
|
295
|
-
| `badge` | 34,
|
|
296
|
-
| `bar-chart` |
|
|
297
|
-
| `blockquote` | 32,
|
|
298
|
-
| `breadcrumbs` | 82,
|
|
299
|
-
| `button` | 41,
|
|
300
|
-
| `button-group` | 32,
|
|
301
|
-
| `callout` | 80,
|
|
302
|
-
| `canvas` |
|
|
303
|
-
| `card` | 34,
|
|
304
|
-
| `carousel` | 99,
|
|
305
|
-
| `chat` |
|
|
306
|
-
| `checkbox` |
|
|
307
|
-
| `checkbox-group` |
|
|
308
|
-
| `code` | 30,
|
|
309
|
-
| `code-block` | 140,
|
|
310
|
-
| `color-input` |
|
|
311
|
-
| `color-picker` | 135,
|
|
312
|
-
| `combobox` | 151,
|
|
313
|
-
| `command` | 117,
|
|
314
|
-
| `copy-button` | 128,
|
|
315
|
-
| `data-table` |
|
|
316
|
-
| `date-input` |
|
|
317
|
-
| `date-picker` |
|
|
318
|
-
| `description-list` | 33,
|
|
319
|
-
| `dialog` |
|
|
320
|
-
| `divider` | 33,
|
|
321
|
-
| `donut-chart` | 84,
|
|
322
|
-
| `drawer` | 37,
|
|
323
|
-
| `drilldown` |
|
|
324
|
-
| `empty` |
|
|
325
|
-
| `file-input` | 101,
|
|
326
|
-
| `filter-input` | 175,
|
|
327
|
-
| `flex` |
|
|
328
|
-
| `format-date` | 35,
|
|
329
|
-
| `grid` | 32,
|
|
330
|
-
| `heatmap` | 83,
|
|
331
|
-
| `icon` | 78,
|
|
332
|
-
| `icon-button` |
|
|
333
|
-
| `image` |
|
|
334
|
-
| `input` |
|
|
335
|
-
| `kbd` | 34,
|
|
336
|
-
| `legend` | 39,
|
|
337
|
-
| `lightbox` | 42,
|
|
338
|
-
| `line-chart` |
|
|
339
|
-
| `list` |
|
|
340
|
-
| `listbox` | 102,
|
|
341
|
-
| `loader` | 34,
|
|
342
|
-
| `map` |
|
|
343
|
-
| `megamenu` | 66,
|
|
344
|
-
| `menu` |
|
|
345
|
-
| `meter` | 39,
|
|
346
|
-
| `navigation` | 34,
|
|
347
|
-
| `notifications` | 107,
|
|
348
|
-
| `number-input` | 97,
|
|
349
|
-
| `object-inspector` | 145,
|
|
350
|
-
| `option` | 36,
|
|
351
|
-
| `orb` | 41,
|
|
352
|
-
| `outline` |
|
|
353
|
-
| `pagination` | 158,
|
|
354
|
-
| `pin-input` | 45,
|
|
355
|
-
| `popover` | 61,
|
|
356
|
-
| `progress` | 37,
|
|
357
|
-
| `qr-code` | 44,
|
|
358
|
-
| `quote` |
|
|
359
|
-
| `radio` |
|
|
360
|
-
| `rating` | 48,
|
|
361
|
-
| `sandbox` | 66,
|
|
362
|
-
| `scatter-chart` | 85,
|
|
363
|
-
| `scroll-area` |
|
|
364
|
-
| `select` | 141,
|
|
365
|
-
| `skeleton` | 32,
|
|
366
|
-
| `skip-link` | 32,
|
|
367
|
-
| `slider` |
|
|
368
|
-
| `sparkline` | 41,
|
|
369
|
-
| `speed-dial` | 116,
|
|
370
|
-
| `splitter` |
|
|
371
|
-
| `stat` | 34,
|
|
372
|
-
| `steps` |
|
|
373
|
-
| `switch` | 43,
|
|
374
|
-
| `table` | 94,
|
|
375
|
-
| `tabs` | 45,
|
|
376
|
-
| `tag` | 81,
|
|
377
|
-
| `text` |
|
|
378
|
-
| `textarea` |
|
|
379
|
-
| `time-input` | 169,
|
|
380
|
-
| `time-picker` | 118,
|
|
381
|
-
| `timeline` | 82,
|
|
382
|
-
| `toast` |
|
|
383
|
-
| `toggle` |
|
|
384
|
-
| `toolbar` | 34,
|
|
385
|
-
| `tooltip` |
|
|
386
|
-
| `tour` |
|
|
387
|
-
| `tree` |
|
|
388
|
-
| `trend` |
|
|
389
|
-
| `video` |
|
|
390
|
-
| `video-playlist` |
|
|
391
|
-
| `virtual-list` | 37,
|
|
392
|
-
|
|
393
|
-
## What
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
budget is
|
|
397
|
-
publishes,
|
|
398
|
-
|
|
399
|
-
column
|
|
287
|
+
| `accordion` | 86,243 | 27,975 | 22,881 | 6,204 | 1,522 | 1,370 |
|
|
288
|
+
| `announcement` | 84,879 | 27,390 | 22,450 | 5,932 | 1,398 | 1,231 |
|
|
289
|
+
| `app-header` | 35,636 | 10,930 | 9,626 | 5,121 | 1,186 | 968 |
|
|
290
|
+
| `area-chart` | 85,054 | 27,582 | 24,425 | 18,366 | 4,989 | 4,120 |
|
|
291
|
+
| `aura` | 98,773 | 33,422 | 28,965 | 65,483 | 22,875 | 19,664 |
|
|
292
|
+
| `avatar` | 37,381 | 11,380 | 10,043 | 6,833 | 1,625 | 1,385 |
|
|
293
|
+
| `badge` | 34,386 | 10,667 | 9,371 | 4,250 | 969 | 771 |
|
|
294
|
+
| `bar-chart` | 92,123 | 28,884 | 25,506 | 25,425 | 6,308 | 5,287 |
|
|
295
|
+
| `blockquote` | 32,452 | 10,273 | 9,053 | 1,914 | 447 | 347 |
|
|
296
|
+
| `breadcrumbs` | 82,923 | 26,471 | 21,873 | 5,518 | 1,215 | 1,004 |
|
|
297
|
+
| `button` | 41,947 | 12,322 | 10,856 | 9,170 | 1,896 | 1,563 |
|
|
298
|
+
| `button-group` | 32,828 | 10,248 | 9,030 | 2,320 | 501 | 400 |
|
|
299
|
+
| `callout` | 80,478 | 26,064 | 21,528 | 2,899 | 744 | 725 |
|
|
300
|
+
| `canvas` | 102,743 | 28,891 | 25,198 | 65,878 | 17,483 | 14,799 |
|
|
301
|
+
| `card` | 34,419 | 10,712 | 9,427 | 3,915 | 947 | 714 |
|
|
302
|
+
| `carousel` | 99,548 | 30,332 | 25,169 | 21,719 | 4,514 | 3,835 |
|
|
303
|
+
| `chat` | 116,225 | 35,929 | 29,677 | 31,590 | 7,633 | 6,375 |
|
|
304
|
+
| `checkbox` | 46,351 | 13,506 | 11,862 | 8,828 | 2,064 | 1,753 |
|
|
305
|
+
| `checkbox-group` | 45,150 | 13,354 | 11,757 | 7,108 | 1,817 | 1,429 |
|
|
306
|
+
| `code` | 30,848 | 9,746 | 8,571 | 1,511 | 348 | 324 |
|
|
307
|
+
| `code-block` | 140,551 | 43,624 | 36,810 | 33,630 | 7,225 | 6,052 |
|
|
308
|
+
| `color-input` | 175,183 | 49,952 | 42,280 | 58,836 | 11,170 | 9,615 |
|
|
309
|
+
| `color-picker` | 135,971 | 38,505 | 32,062 | 47,089 | 9,156 | 7,851 |
|
|
310
|
+
| `combobox` | 151,739 | 46,130 | 38,874 | 35,962 | 7,871 | 6,514 |
|
|
311
|
+
| `command` | 117,437 | 35,400 | 29,194 | 28,637 | 6,693 | 5,567 |
|
|
312
|
+
| `copy-button` | 128,703 | 40,894 | 34,435 | 21,784 | 4,647 | 3,838 |
|
|
313
|
+
| `data-table` | 212,351 | 59,994 | 50,477 | 92,625 | 20,552 | 16,824 |
|
|
314
|
+
| `date-input` | 151,056 | 46,026 | 38,825 | 35,034 | 7,835 | 6,560 |
|
|
315
|
+
| `date-picker` | 96,153 | 30,498 | 25,054 | 15,499 | 3,884 | 3,213 |
|
|
316
|
+
| `description-list` | 33,633 | 10,391 | 9,137 | 3,502 | 762 | 677 |
|
|
317
|
+
| `dialog` | 39,181 | 11,931 | 10,532 | 7,079 | 1,783 | 1,435 |
|
|
318
|
+
| `divider` | 33,658 | 10,583 | 9,299 | 3,120 | 729 | 567 |
|
|
319
|
+
| `donut-chart` | 84,558 | 26,826 | 23,735 | 19,297 | 4,922 | 4,114 |
|
|
320
|
+
| `drawer` | 37,820 | 11,562 | 10,177 | 6,007 | 1,468 | 1,197 |
|
|
321
|
+
| `drilldown` | 92,069 | 29,589 | 24,176 | 10,393 | 2,512 | 2,051 |
|
|
322
|
+
| `empty` | 33,189 | 10,558 | 9,258 | 2,380 | 655 | 541 |
|
|
323
|
+
| `file-input` | 101,924 | 31,552 | 25,919 | 17,451 | 3,979 | 3,317 |
|
|
324
|
+
| `filter-input` | 175,598 | 50,781 | 42,812 | 56,180 | 11,354 | 9,494 |
|
|
325
|
+
| `flex` | 32,209 | 10,095 | 8,884 | 2,078 | 429 | 354 |
|
|
326
|
+
| `format-date` | 35,413 | 11,181 | 9,904 | 3,497 | 850 | 639 |
|
|
327
|
+
| `grid` | 32,663 | 10,250 | 9,017 | 2,528 | 571 | 510 |
|
|
328
|
+
| `heatmap` | 83,471 | 26,569 | 23,519 | 17,648 | 4,426 | 3,717 |
|
|
329
|
+
| `icon` | 78,750 | 25,535 | 20,998 | 1,707 | 395 | 278 |
|
|
330
|
+
| `icon-button` | 42,268 | 12,254 | 10,774 | 9,495 | 1,824 | 1,461 |
|
|
331
|
+
| `image` | 35,027 | 10,897 | 9,588 | 4,840 | 1,280 | 1,005 |
|
|
332
|
+
| `input` | 96,001 | 30,194 | 24,737 | 10,963 | 2,646 | 2,136 |
|
|
333
|
+
| `kbd` | 34,518 | 11,102 | 9,772 | 4,373 | 1,397 | 1,125 |
|
|
334
|
+
| `legend` | 39,974 | 12,265 | 10,769 | 5,790 | 1,373 | 1,053 |
|
|
335
|
+
| `lightbox` | 42,535 | 12,934 | 11,397 | 7,805 | 2,001 | 1,641 |
|
|
336
|
+
| `line-chart` | 87,020 | 27,684 | 24,496 | 20,419 | 5,138 | 4,277 |
|
|
337
|
+
| `list` | 36,274 | 11,001 | 9,667 | 5,782 | 1,289 | 1,052 |
|
|
338
|
+
| `listbox` | 102,914 | 32,484 | 26,576 | 15,602 | 4,043 | 3,239 |
|
|
339
|
+
| `loader` | 34,558 | 10,756 | 9,465 | 4,051 | 972 | 882 |
|
|
340
|
+
| `map` | 78,398 | 19,792 | 17,409 | 39,970 | 7,880 | 6,635 |
|
|
341
|
+
| `megamenu` | 66,514 | 21,751 | 19,257 | 9,805 | 2,400 | 2,031 |
|
|
342
|
+
| `menu` | 125,002 | 40,682 | 34,240 | 16,355 | 3,816 | 3,081 |
|
|
343
|
+
| `meter` | 39,980 | 11,977 | 10,567 | 9,479 | 2,196 | 1,967 |
|
|
344
|
+
| `navigation` | 34,467 | 10,912 | 9,604 | 2,726 | 726 | 537 |
|
|
345
|
+
| `notifications` | 107,662 | 32,470 | 26,790 | 24,486 | 5,061 | 4,234 |
|
|
346
|
+
| `number-input` | 97,442 | 30,741 | 25,172 | 12,396 | 3,121 | 2,483 |
|
|
347
|
+
| `object-inspector` | 145,386 | 45,727 | 38,558 | 33,080 | 7,507 | 6,384 |
|
|
348
|
+
| `option` | 36,676 | 11,333 | 9,993 | 6,176 | 1,538 | 1,215 |
|
|
349
|
+
| `orb` | 41,405 | 13,728 | 12,132 | 8,623 | 3,194 | 2,772 |
|
|
350
|
+
| `outline` | 40,250 | 12,490 | 11,050 | 8,351 | 2,157 | 1,718 |
|
|
351
|
+
| `pagination` | 158,625 | 47,196 | 39,768 | 45,401 | 9,510 | 7,909 |
|
|
352
|
+
| `pin-input` | 45,825 | 13,797 | 12,162 | 8,244 | 2,321 | 1,836 |
|
|
353
|
+
| `popover` | 61,475 | 20,565 | 18,186 | 4,517 | 1,139 | 908 |
|
|
354
|
+
| `progress` | 37,462 | 11,435 | 10,114 | 6,962 | 1,631 | 1,440 |
|
|
355
|
+
| `qr-code` | 44,745 | 14,729 | 12,988 | 14,629 | 5,141 | 4,411 |
|
|
356
|
+
| `quote` | 31,330 | 9,901 | 8,697 | 1,191 | 258 | 173 |
|
|
357
|
+
| `radio` | 50,217 | 14,033 | 12,351 | 11,010 | 2,231 | 1,866 |
|
|
358
|
+
| `rating` | 48,707 | 14,803 | 13,052 | 10,802 | 3,067 | 2,455 |
|
|
359
|
+
| `sandbox` | 66,692 | 17,792 | 15,758 | 35,718 | 7,890 | 6,662 |
|
|
360
|
+
| `scatter-chart` | 85,545 | 27,403 | 24,187 | 19,718 | 5,218 | 4,345 |
|
|
361
|
+
| `scroll-area` | 36,066 | 11,084 | 9,734 | 5,874 | 1,400 | 1,103 |
|
|
362
|
+
| `select` | 141,605 | 43,930 | 36,894 | 28,601 | 6,420 | 5,278 |
|
|
363
|
+
| `skeleton` | 32,382 | 10,236 | 9,004 | 2,242 | 571 | 435 |
|
|
364
|
+
| `skip-link` | 32,917 | 10,453 | 9,185 | 2,624 | 728 | 562 |
|
|
365
|
+
| `slider` | 54,234 | 14,993 | 13,257 | 16,500 | 3,483 | 2,950 |
|
|
366
|
+
| `sparkline` | 41,495 | 13,116 | 11,576 | 6,293 | 1,736 | 1,483 |
|
|
367
|
+
| `speed-dial` | 116,653 | 38,164 | 32,130 | 11,356 | 2,375 | 1,911 |
|
|
368
|
+
| `splitter` | 47,029 | 13,495 | 11,985 | 16,336 | 3,624 | 3,080 |
|
|
369
|
+
| `stat` | 34,456 | 10,547 | 9,311 | 3,954 | 814 | 717 |
|
|
370
|
+
| `steps` | 101,103 | 30,547 | 25,231 | 19,784 | 3,900 | 3,290 |
|
|
371
|
+
| `switch` | 43,727 | 13,096 | 11,526 | 5,803 | 1,510 | 1,260 |
|
|
372
|
+
| `table` | 94,492 | 30,072 | 24,671 | 14,947 | 3,695 | 3,121 |
|
|
373
|
+
| `tabs` | 45,492 | 13,287 | 11,706 | 10,154 | 2,185 | 1,781 |
|
|
374
|
+
| `tag` | 81,960 | 26,491 | 21,687 | 4,083 | 992 | 805 |
|
|
375
|
+
| `text` | 34,116 | 10,386 | 9,128 | 3,987 | 800 | 674 |
|
|
376
|
+
| `textarea` | 45,337 | 13,450 | 11,805 | 7,277 | 1,904 | 1,528 |
|
|
377
|
+
| `time-input` | 169,479 | 49,807 | 42,031 | 50,189 | 10,656 | 8,990 |
|
|
378
|
+
| `time-picker` | 118,880 | 36,173 | 29,854 | 30,598 | 7,288 | 6,001 |
|
|
379
|
+
| `timeline` | 82,519 | 26,351 | 21,755 | 5,110 | 1,115 | 952 |
|
|
380
|
+
| `toast` | 90,096 | 28,398 | 23,346 | 11,599 | 2,602 | 2,126 |
|
|
381
|
+
| `toggle` | 49,152 | 14,337 | 12,673 | 8,427 | 2,043 | 1,670 |
|
|
382
|
+
| `toolbar` | 34,538 | 10,914 | 9,578 | 3,899 | 1,061 | 803 |
|
|
383
|
+
| `tooltip` | 66,072 | 21,770 | 19,269 | 9,429 | 2,459 | 1,945 |
|
|
384
|
+
| `tour` | 78,262 | 23,991 | 21,278 | 20,478 | 4,382 | 3,594 |
|
|
385
|
+
| `tree` | 95,241 | 30,320 | 24,831 | 13,069 | 3,349 | 2,711 |
|
|
386
|
+
| `trend` | 81,303 | 26,123 | 21,520 | 4,271 | 953 | 805 |
|
|
387
|
+
| `video` | 165,092 | 49,434 | 41,913 | 51,911 | 11,204 | 9,633 |
|
|
388
|
+
| `video-playlist` | 139,082 | 43,237 | 36,399 | 29,031 | 6,050 | 5,047 |
|
|
389
|
+
| `virtual-list` | 37,845 | 12,063 | 10,639 | 3,187 | 914 | 780 |
|
|
390
|
+
|
|
391
|
+
## What an install adds to `node_modules`
|
|
392
|
+
|
|
393
|
+
These sizes are what an install adds to your disk, which is what an install
|
|
394
|
+
budget limits. Each row is the unpacked size of exactly what a package
|
|
395
|
+
publishes, as listed in its `files` field. The sizes do not include source
|
|
396
|
+
maps. We strip them from the tarball when we pack it, and the Source maps
|
|
397
|
+
stripped column shows the bytes we removed.
|
|
400
398
|
|
|
401
399
|
| Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
|
|
402
400
|
|---|---|---|---|---|
|
|
403
|
-
| `@fusion.dev/helix-core` | 1,
|
|
404
|
-
| `@fusion.dev/helix-headless` | 12,
|
|
401
|
+
| `@fusion.dev/helix-core` | 1,118,596 | 165 | 248,014 | `@floating-ui/dom`, `@fusion.dev/helix-icons` |
|
|
402
|
+
| `@fusion.dev/helix-headless` | 12,876,176 | 494 | 1,008,417 | `@fusion.dev/helix-core`, `@fusion.dev/helix-icons`, `uqr` |
|
|
405
403
|
| `@fusion.dev/helix-icons` | 131,512 | 21 | 44,809 | `svgo` |
|
|
406
|
-
| `@fusion.dev/helix-styles` | 101,
|
|
404
|
+
| `@fusion.dev/helix-styles` | 101,805 | 6 | 0 | none |
|
|
407
405
|
| `@fusion.dev/helix-theme` | 465,413 | 8 | 4,703 | none |
|
|
408
|
-
| `@fusion.dev/helix` | 13,
|
|
406
|
+
| `@fusion.dev/helix` | 13,914,310 | 848 | 355,824 | `@fusion.dev/helix-core`, `@fusion.dev/helix-headless`, `@fusion.dev/helix-styles` |
|
|
409
407
|
|
|
410
408
|
## Not measured yet
|
|
411
409
|
|
|
412
|
-
|
|
413
|
-
not say as much as for what it does.
|
|
410
|
+
We list these gaps so you know what the numbers above leave out.
|
|
414
411
|
|
|
415
|
-
- **No whole-library comparison, and no
|
|
416
|
-
- **The peer numbers are pinned, so they age.**
|
|
417
|
-
- **No first paint.** The timings above
|
|
418
|
-
- **No per-component stylesheet bytes.**
|
|
412
|
+
- **No whole-library comparison, and no more than five components.** The comparison above covers five components in four systems. Adding a component means choosing the matching element in each system by hand, so we add components one at a time.
|
|
413
|
+
- **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.
|
|
414
|
+
- **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.
|
|
415
|
+
- **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.
|