@fusion.dev/helix-docs 0.192.0 → 0.194.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.
@@ -930,7 +930,7 @@ table and is styled by the token system, and the table is its accessible
930
930
  representation. When you need a grammar of graphics, use a charting library.
931
931
  `,
932
932
  'coding-agents': `---
933
- description: The files an AI agent can read to write Helix code, and where to find each one.
933
+ description: Install Helix for a coding agent, and the files an agent can read to write Helix code.
934
934
  order: 4
935
935
  section: Getting started
936
936
  title: Coding agents
@@ -942,6 +942,72 @@ We publish Helix as text for agents that write Helix code, so an agent does not
942
942
  need to read the rendered website. Three sources give it the library as text.
943
943
  We generate all three from the same sources as this site.
944
944
 
945
+ ## Install the plugin
946
+
947
+ Helix's plugin gives an agent the [Helix skill](./using-helix-with-an-agent) and
948
+ the Helix MCP server in one install. The server runs
949
+ \`npx @fusion.dev/helix-cli mcp\`, the command line your project installs, so its
950
+ answers are your version's.
951
+
952
+ | Tool | Install |
953
+ |---|---|
954
+ | Claude Code | \`claude plugin marketplace add project-fusion/fusion\`, then \`claude plugin install helix@fusion\` |
955
+ | Cursor | \`/plugin marketplace add https://github.com/project-fusion/fusion\` in Cursor's agent, then install \`helix\`. A team marketplace can import the repository instead |
956
+ | VS Code | Add \`"chat.plugins.marketplaces": ["project-fusion/fusion"]\` to your settings, search \`@agentPlugins\` in the Extensions view, and install \`helix\` |
957
+ | GitHub Copilot CLI | \`copilot plugin install project-fusion/fusion:helix/plugin\` |
958
+ | Codex | \`codex plugin marketplace add project-fusion/fusion\`, then \`codex plugin add helix@fusion\` |
959
+ | Devin | \`devin plugins install project-fusion/fusion#helix/plugin\` |
960
+ | Gemini CLI | \`gemini skills install https://github.com/project-fusion/fusion.git --path helix/plugin/skills/helix\`, for the skill alone |
961
+
962
+ The plugin follows the latest release of Helix. Its skill points to the copy in
963
+ \`node_modules\`, which matches the version you installed.
964
+
965
+ ## Link the skill without a plugin
966
+
967
+ **Point your tool at the skill, and do not copy it.** A copy starts to go stale
968
+ as soon as you paste it, and the skill changes with the library. The skill in
969
+ the package matches the Helix you installed.
970
+
971
+ Most tools read skills from \`.agents/skills\`, and Claude Code and Cline from
972
+ \`.claude/skills\`. Link it into the one your tool reads:
973
+
974
+ \`\`\`sh
975
+ mkdir -p .agents/skills
976
+ ln -s ../../node_modules/@fusion.dev/helix/skills/helix .agents/skills/helix
977
+ \`\`\`
978
+
979
+ Other tools read a file in your repository. Add a line to it that names the
980
+ skill, or this page:
981
+
982
+ \`\`\`md
983
+ Helix: read node_modules/@fusion.dev/helix/skills/helix/SKILL.md before
984
+ writing components, and node_modules/@fusion.dev/helix/api.json for the API.
985
+ \`\`\`
986
+
987
+ | Tool | Where it goes |
988
+ |---|---|
989
+ | Claude Code | \`.claude/skills/helix\`, or a line in \`AGENTS.md\` or \`CLAUDE.md\` |
990
+ | Cursor | \`.cursor/rules/\` |
991
+ | GitHub Copilot | \`.github/copilot-instructions.md\` |
992
+ | Anything else | Whatever it reads. The line is the same |
993
+
994
+ We do not write those files for you, and we chose this on purpose. You would
995
+ have to maintain a file we generated in your repository against our changes. A
996
+ tool that rewrote it on install would be a dependency you did not ask for, in a
997
+ directory you own. You add the link or the line, and you can delete it.
998
+
999
+ ## Install the Helix MCP server
1000
+
1001
+ \`\`\`sh
1002
+ helix mcp init --client claude
1003
+ \`\`\`
1004
+
1005
+ \`helix mcp\` answers from the Helix packages your project installs: families,
1006
+ examples, import lines, tokens, and the theme a brand color produces. \`--client\`
1007
+ takes \`claude\`, \`cursor\`, or \`vscode\`, and writes the server into the file that
1008
+ client reads. [The Helix MCP server](#the-helix-mcp-server) lists the tools. It runs on your
1009
+ machine, talks to a client you chose, and makes no network requests.
1010
+
945
1011
  ## The manifest
946
1012
 
947
1013
  \`\`\`
@@ -1009,37 +1075,12 @@ agent uses most:
1009
1075
  - \`specifier\` and \`words\` on each element: the line that registers it, and the
1010
1076
  properties \`registerWords\` translates
1011
1077
 
1012
- ## Import every family you write
1013
-
1014
- Each tag needs its family's entry imported. A family registers its own parts,
1015
- so \`@fusion.dev/helix/tabs\` registers Tab and Tab Panel. A family does not
1016
- register another family's elements that you write inside it:
1017
-
1018
- \`\`\`js
1019
- import '@fusion.dev/helix/select'
1020
- import '@fusion.dev/helix/option'
1021
- \`\`\`
1022
-
1023
- Without the Option import, the options are unknown elements and the Select
1024
- offers nothing. The same is true
1025
- of the layout around an example: a Button inside a Flex needs both imports.
1026
- Copy the import lines above an example together with its markup.
1027
-
1028
1078
  ## Check the code you wrote
1029
1079
 
1030
- These checks run on your project, and each one prints JSON with \`--json\`:
1031
-
1032
- | Command | What it finds |
1033
- |---|---|
1034
- | \`helix scan\` | Unknown tags, attributes, values, slots, parts, hooks, React event props, and tokens, a \`--_helix-\` primitive read, \`[disabled]\` on a form control, a selector on an attribute the element never writes back, and a tag whose entry nothing imports, each with its file and line |
1035
- | \`helix theme audit\` | Every foreground and background pair in your theme that misses its contrast target |
1036
- | \`initDiagnostics()\` from \`@fusion.dev/helix-diagnostics\` | The same findings on the running page, and what the library reports as it runs, such as an option nobody imported |
1037
-
1038
- \`helix scan\` and \`helix theme audit\` exit 1 when they find an error and 0 when
1039
- they find none. Run them after you write Helix code, and fix each finding
1040
- before you finish. \`helix scan --file <path>\` reports one file's findings, and
1041
- \`helix scan --stdin tsx\` reads a snippet from stdin. Both still read the whole
1042
- project, so an import in another file counts.
1080
+ \`helix scan\`, \`helix diagnostics --once\`, and \`helix theme audit\` check what an
1081
+ agent wrote, and the MCP server runs the same checks.
1082
+ [Using Helix with an agent](./using-helix-with-an-agent#check-the-code-you-wrote)
1083
+ lists what each finds.
1043
1084
 
1044
1085
  ## The index
1045
1086
 
@@ -4356,7 +4397,7 @@ on its own.
4356
4397
 
4357
4398
  | | Raw | Gzip | Brotli |
4358
4399
  |---|---|---|---|
4359
- | Lit and \`@fusion.dev/helix-core\` | 251,850 | 80,719 | 69,051 |
4400
+ | Lit and \`@fusion.dev/helix-core\` | 251,897 | 80,754 | 69,093 |
4360
4401
 
4361
4402
  ## Whole packages
4362
4403
 
@@ -4367,12 +4408,12 @@ either barrel. The per-component tables show what your page pays.
4367
4408
 
4368
4409
  | Package | Raw | Gzip | Brotli | |
4369
4410
  |---|---|---|---|---|
4370
- | \`@fusion.dev/helix-core\` | 251,059 | 80,557 | 68,786 | The element base class, mixins, decorators, and floating positioning. |
4371
- | \`@fusion.dev/helix-headless\` | 1,359,782 | 380,639 | 285,473 | Every headless family. The barrel entry includes all of them. |
4411
+ | \`@fusion.dev/helix-core\` | 251,106 | 80,604 | 68,830 | The element base class, mixins, decorators, and floating positioning. |
4412
+ | \`@fusion.dev/helix-headless\` | 1,359,829 | 380,685 | 285,603 | Every headless family. The barrel entry includes all of them. |
4372
4413
  | \`@fusion.dev/helix-icons\` | 56,111 | 17,847 | 15,166 | The whole glyph set. |
4373
4414
  | \`@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. |
4374
4415
  | \`fusion_helix_theme_bg.wasm\` | 490,971 | 155,905 | 125,923 | The derivation engine itself, in WebAssembly. The entry above loads it when the engine runs. |
4375
- | \`@fusion.dev/helix\` | 2,043,729 | 529,254 | 377,743 | Every styled family. |
4416
+ | \`@fusion.dev/helix\` | 2,043,807 | 529,318 | 377,652 | Every styled family. |
4376
4417
  | \`lit\` | 15,394 | 6,118 | 5,460 | Lit itself, listed so you can subtract it from every row above. |
4377
4418
 
4378
4419
  ## Stylesheets
@@ -4393,13 +4434,13 @@ shows the whole cost of using the base layer on its own.
4393
4434
 
4394
4435
  ## What the numbers say
4395
4436
 
4396
- **Most of your first component is the shared runtime.** The median styled family is 18,135 bytes gzipped alone, and it adds 4,023 to a page that already has Helix. The shared runtime is 78 percent of the first component, and the component itself is 22 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.
4437
+ **Most of your first component is the shared runtime.** The median styled family is 18,136 bytes gzipped alone, and it adds 4,021 to a page that already has Helix. The shared runtime is 78 percent of the first component, and the component itself is 22 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.
4397
4438
 
4398
- Across the 108 styled components, the smallest is \`code\` at 8,333 bytes gzipped alone, and the largest is \`data-table\` at 66,818. Every family together is 529,254.
4439
+ Across the 108 styled components, the smallest is \`code\` at 8,333 bytes gzipped alone, and the largest is \`data-table\` at 66,818. Every family together is 529,318.
4399
4440
 
4400
- No family imports a barrel. The \`barrels\` rule in \`fusion x 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 380,639 bytes gzipped, whatever else the page imports. That is 21 times the median family above. All 108 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.
4441
+ No family imports a barrel. The \`barrels\` rule in \`fusion x 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 380,685 bytes gzipped, whatever else the page imports. That is 21 times the median family above. All 108 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.
4401
4442
 
4402
- 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 17,293 bytes gzipped alone.
4443
+ 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 17,291 bytes gzipped alone.
4403
4444
 
4404
4445
  ## Compared with other systems
4405
4446
 
@@ -4411,43 +4452,43 @@ The table has no whole-library row. That row would compare how many components e
4411
4452
 
4412
4453
  | Component | System | Raw | Gzip | Brotli |
4413
4454
  |---|---|---|---|---|
4414
- | \`button\` | **Helix** | 41,612 | 14,008 | 12,420 |
4455
+ | \`button\` | **Helix** | 41,612 | 14,008 | 12,455 |
4415
4456
  | | Carbon | 133,058 | 20,959 | 17,685 |
4416
4457
  | | Material Web | 47,060 | 14,173 | 12,591 |
4417
4458
  | | Shoelace | 62,628 | 18,287 | 15,805 |
4418
4459
  | | Spectrum | 98,792 | 22,045 | 18,674 |
4419
- | \`checkbox\` | **Helix** | 46,865 | 15,190 | 13,518 |
4460
+ | \`checkbox\` | **Helix** | 46,865 | 15,190 | 13,514 |
4420
4461
  | | Carbon | 60,255 | 15,609 | 13,550 |
4421
4462
  | | Material Web | 43,785 | 13,556 | 12,015 |
4422
4463
  | | Shoelace | 47,614 | 15,177 | 13,301 |
4423
4464
  | | Spectrum | 62,492 | 15,437 | 13,481 |
4424
- | \`dialog\` | **Helix** | 43,360 | 14,855 | 13,243 |
4465
+ | \`dialog\` | **Helix** | 43,407 | 14,900 | 13,271 |
4425
4466
  | | Carbon | 510,866 | 67,390 | 39,189 |
4426
4467
  | | Material Web | 34,238 | 11,510 | 10,229 |
4427
4468
  | | Shoelace | 52,754 | 17,698 | 15,554 |
4428
4469
  | | Spectrum | 155,708 | 31,899 | 26,262 |
4429
- | \`radio\` | **Helix** | 50,349 | 15,974 | 14,201 |
4470
+ | \`radio\` | **Helix** | 50,349 | 15,975 | 14,204 |
4430
4471
  | | Carbon | 63,055 | 16,887 | 14,605 |
4431
4472
  | | Material Web | 41,044 | 13,234 | 11,757 |
4432
4473
  | | Shoelace | 34,865 | 12,027 | 10,559 |
4433
4474
  | | Spectrum | 38,685 | 10,660 | 9,370 |
4434
- | \`switch\` | **Helix** | 43,562 | 14,637 | 13,009 |
4475
+ | \`switch\` | **Helix** | 43,562 | 14,639 | 13,019 |
4435
4476
  | | Carbon | 69,423 | 17,127 | 14,764 |
4436
4477
  | | Material Web | 50,155 | 14,577 | 12,935 |
4437
4478
  | | Shoelace | 37,833 | 11,814 | 10,568 |
4438
4479
  | | Spectrum | 62,322 | 15,059 | 13,321 |
4439
- | \`tabs\` | **Helix** | 55,263 | 17,752 | 15,775 |
4480
+ | \`tabs\` | **Helix** | 55,263 | 17,752 | 15,850 |
4440
4481
  | | Carbon | 578,766 | 73,537 | 43,235 |
4441
4482
  | | Material Web | 38,883 | 12,820 | 11,368 |
4442
4483
  | | Shoelace | 54,573 | 17,140 | 15,068 |
4443
4484
  | | Spectrum | 64,875 | 18,298 | 16,283 |
4444
- | \`tooltip\` | **Helix** | 61,420 | 21,834 | 19,393 |
4485
+ | \`tooltip\` | **Helix** | 61,420 | 21,834 | 19,346 |
4445
4486
  | | Carbon | 189,382 | 30,354 | 22,273 |
4446
4487
  | | Material Web | | not shipped | |
4447
4488
  | | Shoelace | 57,412 | 20,220 | 17,933 |
4448
4489
  | | Spectrum | 136,599 | 40,552 | 35,286 |
4449
4490
 
4450
- At least one system is smaller than Helix on \`checkbox\`, \`dialog\`, \`radio\`, \`switch\`, \`tabs\`, \`tooltip\`. The largest gap is radio against Spectrum, at 5,314 bytes gzipped. 11 of 27 peer measurements are smaller than the Helix row.
4491
+ At least one system is smaller than Helix on \`checkbox\`, \`dialog\`, \`radio\`, \`switch\`, \`tabs\`, \`tooltip\`. The largest gap is radio against Spectrum, at 5,315 bytes gzipped. 11 of 27 peer measurements are smaller than the Helix row.
4451
4492
 
4452
4493
  Helix's \`radio\` family includes Radio Group, so its row carries an element that some peer rows measure without.
4453
4494
 
@@ -4493,107 +4534,107 @@ Structure, accessibility, state, and form participation. It has no presentation
4493
4534
 
4494
4535
  | Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
4495
4536
  |---|---|---|---|---|---|---|
4496
- | \`accordion\` | 31,879 | 11,804 | 10,470 | 5,329 | 1,575 | 1,256 |
4497
- | \`announcement\` | 36,692 | 13,312 | 11,876 | 4,682 | 1,386 | 1,056 |
4498
- | \`app-header\` | 32,289 | 11,898 | 10,585 | 5,871 | 1,771 | 1,332 |
4499
- | \`area-chart\` | 90,301 | 31,727 | 28,021 | 14,057 | 4,328 | 3,571 |
4500
- | \`avatar\` | 30,463 | 11,595 | 10,369 | 3,957 | 1,212 | 992 |
4501
- | \`badge\` | 27,088 | 10,568 | 9,410 | 2,942 | 897 | 809 |
4502
- | \`bar-chart\` | 94,416 | 32,821 | 29,080 | 18,022 | 5,407 | 4,361 |
4503
- | \`blockquote\` | 24,107 | 9,421 | 8,332 | 2,402 | 887 | 743 |
4504
- | \`breadcrumbs\` | 36,279 | 13,907 | 12,385 | 7,360 | 2,421 | 1,922 |
4505
- | \`button\` | 35,194 | 12,591 | 11,200 | 4,925 | 1,443 | 1,149 |
4506
- | \`button-group\` | 27,640 | 10,382 | 9,203 | 4,927 | 1,509 | 1,195 |
4507
- | \`callout\` | 35,256 | 13,593 | 12,072 | 2,884 | 981 | 712 |
4508
- | \`canvas\` | 108,483 | 34,750 | 30,384 | 68,924 | 20,915 | 17,537 |
4509
- | \`card\` | 23,777 | 9,054 | 8,019 | 2,090 | 654 | 479 |
4510
- | \`carousel\` | 42,748 | 15,233 | 13,608 | 15,005 | 4,187 | 3,250 |
4511
- | \`chat\` | 79,390 | 26,446 | 23,381 | 27,455 | 8,063 | 6,360 |
4512
- | \`checkbox\` | 40,374 | 13,681 | 12,222 | 3,107 | 957 | 656 |
4513
- | \`checkbox-group\` | 47,602 | 15,599 | 13,904 | 8,325 | 2,356 | 1,816 |
4514
- | \`code\` | 20,301 | 8,016 | 7,122 | 138 | 75 | 240 |
4515
- | \`code-block\` | 102,738 | 34,889 | 30,831 | 36,842 | 10,761 | 8,794 |
4516
- | \`color-input\` | 141,792 | 45,090 | 39,364 | 55,134 | 14,318 | 11,616 |
4517
- | \`color-picker\` | 103,415 | 32,966 | 28,868 | 47,255 | 12,727 | 10,341 |
4518
- | \`combobox\` | 132,023 | 41,951 | 36,945 | 35,789 | 9,121 | 7,168 |
4519
- | \`command\` | 99,513 | 31,475 | 27,706 | 30,059 | 8,124 | 6,386 |
4520
- | \`copy-button\` | 80,548 | 27,649 | 24,500 | 18,341 | 4,985 | 3,936 |
4521
- | \`data-table\` | 199,900 | 61,426 | 52,599 | 89,490 | 23,843 | 19,079 |
4522
- | \`date-input\` | 141,223 | 44,511 | 39,074 | 38,228 | 9,472 | 7,537 |
4523
- | \`date-picker\` | 61,360 | 20,935 | 18,732 | 20,345 | 5,604 | 4,337 |
4524
- | \`description-list\` | 22,900 | 8,765 | 7,766 | 1,565 | 526 | 419 |
4525
- | \`dialog\` | 38,247 | 13,598 | 12,117 | 5,837 | 1,727 | 1,350 |
4526
- | \`divider\` | 22,991 | 8,923 | 7,888 | 1,416 | 508 | 332 |
4527
- | \`donut-chart\` | 89,212 | 31,129 | 27,510 | 14,641 | 4,489 | 3,621 |
4528
- | \`drawer\` | 42,892 | 15,123 | 13,470 | 7,698 | 2,299 | 1,887 |
4529
- | \`drilldown\` | 42,756 | 14,941 | 13,295 | 9,709 | 2,723 | 2,106 |
4530
- | \`empty\` | 24,194 | 9,250 | 8,200 | 1,951 | 642 | 451 |
4531
- | \`file-input\` | 57,757 | 20,019 | 17,836 | 13,093 | 4,143 | 3,249 |
4532
- | \`filter-input\` | 97,846 | 32,819 | 29,103 | 21,629 | 6,180 | 4,854 |
4533
- | \`format-date\` | 30,158 | 11,290 | 10,085 | 4,434 | 1,266 | 1,052 |
4534
- | \`graph\` | 74,369 | 24,503 | 21,667 | 21,877 | 6,476 | 5,185 |
4535
- | \`heatmap\` | 98,128 | 33,502 | 29,597 | 18,944 | 5,578 | 4,446 |
4536
- | \`icon\` | 82,157 | 28,051 | 23,971 | 58,304 | 19,614 | 16,081 |
4537
- | \`icon-button\` | 35,305 | 12,619 | 11,227 | 5,034 | 1,472 | 1,068 |
4538
- | \`image\` | 25,504 | 9,479 | 8,405 | 3,823 | 1,153 | 933 |
4539
- | \`input\` | 46,361 | 15,975 | 14,087 | 7,352 | 2,426 | 1,783 |
4540
- | \`kbd\` | 27,511 | 10,569 | 9,338 | 3,516 | 1,114 | 876 |
4541
- | \`legend\` | 35,184 | 12,934 | 11,491 | 2,957 | 988 | 785 |
4542
- | \`lightbox\` | 55,724 | 18,816 | 16,718 | 16,730 | 4,662 | 3,434 |
4543
- | \`line-chart\` | 91,335 | 31,880 | 28,296 | 14,762 | 4,390 | 3,634 |
4544
- | \`list\` | 61,803 | 21,293 | 18,983 | 15,241 | 4,436 | 3,398 |
4545
- | \`listbox\` | 76,711 | 25,427 | 22,459 | 15,564 | 4,611 | 3,478 |
4546
- | \`loader\` | 26,379 | 10,041 | 8,907 | 2,775 | 945 | 814 |
4547
- | \`map\` | 78,565 | 24,393 | 21,373 | 37,026 | 10,112 | 7,935 |
4548
- | \`megamenu\` | 60,027 | 21,697 | 19,192 | 8,596 | 2,356 | 1,795 |
4549
- | \`menu\` | 97,473 | 32,553 | 28,774 | 30,180 | 7,955 | 6,350 |
4550
- | \`meter\` | 31,721 | 12,025 | 10,720 | 4,894 | 1,438 | 1,331 |
4551
- | \`navigation\` | 33,088 | 12,436 | 11,038 | 3,366 | 1,152 | 1,022 |
4552
- | \`notifications\` | 58,346 | 19,880 | 17,701 | 18,207 | 5,059 | 3,947 |
4553
- | \`number-input\` | 56,271 | 18,841 | 16,796 | 13,523 | 3,637 | 2,673 |
4554
- | \`object-inspector\` | 113,929 | 38,373 | 33,766 | 35,493 | 10,274 | 8,174 |
4555
- | \`option\` | 26,477 | 9,763 | 8,665 | 4,524 | 1,201 | 924 |
4556
- | \`outline\` | 33,612 | 12,597 | 11,180 | 7,856 | 2,562 | 2,017 |
4557
- | \`pagination\` | 136,258 | 43,650 | 37,995 | 45,378 | 11,896 | 9,383 |
4558
- | \`pin-input\` | 47,068 | 16,414 | 14,642 | 6,736 | 2,224 | 1,608 |
4559
- | \`popover\` | 63,806 | 22,940 | 20,258 | 6,374 | 1,845 | 1,343 |
4560
- | \`progress\` | 28,084 | 10,727 | 9,550 | 2,970 | 920 | 856 |
4561
- | \`qr-code\` | 42,719 | 16,647 | 14,833 | 17,004 | 6,295 | 5,372 |
4562
- | \`quote\` | 22,516 | 8,884 | 7,827 | 1,211 | 533 | 313 |
4563
- | \`radio\` | 42,561 | 14,464 | 12,873 | 3,817 | 1,191 | 838 |
4564
- | \`rating\` | 50,257 | 17,293 | 15,435 | 8,028 | 2,426 | 1,835 |
4565
- | \`scatter-chart\` | 91,226 | 31,675 | 28,004 | 16,126 | 4,810 | 3,905 |
4566
- | \`scroll-area\` | 30,430 | 11,078 | 9,814 | 8,499 | 2,589 | 2,068 |
4567
- | \`select\` | 115,289 | 38,175 | 33,456 | 26,033 | 7,152 | 5,455 |
4568
- | \`skeleton\` | 22,328 | 8,643 | 7,666 | 991 | 406 | 274 |
4569
- | \`skip-link\` | 23,871 | 9,337 | 8,265 | 1,225 | 500 | 307 |
4570
- | \`slider\` | 52,873 | 17,827 | 15,967 | 13,159 | 3,775 | 3,054 |
4571
- | \`sparkline\` | 47,984 | 17,499 | 15,601 | 5,980 | 2,122 | 1,740 |
4572
- | \`spatial-heatmap\` | 109,081 | 37,164 | 32,728 | 27,225 | 8,001 | 6,498 |
4573
- | \`spatial-scatter-chart\` | 94,415 | 33,050 | 29,166 | 16,256 | 5,251 | 4,226 |
4574
- | \`spatial-surface-chart\` | 96,111 | 33,772 | 29,722 | 17,890 | 5,911 | 4,777 |
4575
- | \`speed-dial\` | 68,751 | 24,718 | 21,856 | 10,915 | 2,964 | 2,339 |
4576
- | \`splitter\` | 43,751 | 15,169 | 13,536 | 14,396 | 3,846 | 3,053 |
4577
- | \`stat\` | 25,255 | 9,675 | 8,619 | 2,303 | 767 | 521 |
4578
- | \`steps\` | 53,623 | 18,636 | 16,599 | 13,602 | 3,853 | 3,146 |
4579
- | \`switch\` | 39,233 | 13,496 | 12,036 | 1,679 | 610 | 415 |
4580
- | \`table\` | 118,358 | 37,062 | 32,216 | 45,147 | 12,471 | 10,027 |
4581
- | \`tabs\` | 46,310 | 15,908 | 14,141 | 10,491 | 2,879 | 2,221 |
4582
- | \`tag\` | 42,676 | 15,621 | 13,970 | 8,454 | 2,532 | 1,990 |
4583
- | \`textarea\` | 43,852 | 14,940 | 13,353 | 5,402 | 1,596 | 1,175 |
4584
- | \`time-input\` | 169,269 | 52,675 | 45,788 | 48,510 | 12,432 | 9,928 |
4585
- | \`time-picker\` | 99,603 | 31,517 | 27,755 | 33,933 | 9,203 | 7,198 |
4586
- | \`timeline\` | 31,286 | 11,863 | 10,626 | 4,061 | 1,217 | 998 |
4587
- | \`toast\` | 50,871 | 17,940 | 16,020 | 12,123 | 3,514 | 2,751 |
4588
- | \`toggle\` | 45,577 | 15,269 | 13,606 | 6,007 | 1,819 | 1,438 |
4589
- | \`toolbar\` | 31,047 | 11,572 | 10,294 | 5,158 | 1,656 | 1,348 |
4590
- | \`tooltip\` | 58,616 | 21,090 | 18,701 | 8,433 | 2,350 | 1,865 |
4591
- | \`tour\` | 83,670 | 28,721 | 25,378 | 19,814 | 5,442 | 4,322 |
4592
- | \`tree\` | 67,586 | 22,717 | 20,253 | 17,198 | 4,960 | 3,915 |
4593
- | \`trend\` | 29,717 | 11,568 | 10,337 | 3,486 | 1,114 | 748 |
4594
- | \`video\` | 141,208 | 44,138 | 38,461 | 66,218 | 16,799 | 13,832 |
4595
- | \`video-playlist\` | 127,686 | 41,301 | 36,361 | 42,774 | 11,208 | 9,211 |
4596
- | \`virtual-list\` | 63,451 | 21,631 | 19,239 | 23,305 | 7,147 | 5,852 |
4537
+ | \`accordion\` | 31,879 | 11,804 | 10,470 | 5,329 | 1,584 | 1,204 |
4538
+ | \`announcement\` | 36,692 | 13,312 | 11,893 | 4,682 | 1,388 | 1,101 |
4539
+ | \`app-header\` | 32,289 | 11,898 | 10,551 | 5,871 | 1,759 | 1,312 |
4540
+ | \`area-chart\` | 90,301 | 31,727 | 28,017 | 14,057 | 4,331 | 3,465 |
4541
+ | \`avatar\` | 30,463 | 11,596 | 10,369 | 3,957 | 1,206 | 975 |
4542
+ | \`badge\` | 27,088 | 10,568 | 9,406 | 2,942 | 909 | 757 |
4543
+ | \`bar-chart\` | 94,416 | 32,821 | 29,056 | 18,022 | 5,411 | 4,357 |
4544
+ | \`blockquote\` | 24,107 | 9,420 | 8,334 | 2,402 | 884 | 652 |
4545
+ | \`breadcrumbs\` | 36,279 | 13,907 | 12,385 | 7,360 | 2,429 | 1,944 |
4546
+ | \`button\` | 35,194 | 12,591 | 11,200 | 4,925 | 1,443 | 1,131 |
4547
+ | \`button-group\` | 27,640 | 10,382 | 9,204 | 4,927 | 1,514 | 1,162 |
4548
+ | \`callout\` | 35,256 | 13,593 | 12,073 | 2,884 | 977 | 780 |
4549
+ | \`canvas\` | 108,483 | 34,750 | 30,428 | 68,924 | 20,914 | 17,652 |
4550
+ | \`card\` | 23,824 | 9,093 | 8,106 | 2,090 | 653 | 533 |
4551
+ | \`carousel\` | 42,748 | 15,233 | 13,610 | 15,005 | 4,196 | 3,211 |
4552
+ | \`chat\` | 79,390 | 26,446 | 23,375 | 27,455 | 8,064 | 6,395 |
4553
+ | \`checkbox\` | 40,374 | 13,681 | 12,198 | 3,107 | 953 | 678 |
4554
+ | \`checkbox-group\` | 47,602 | 15,601 | 13,897 | 8,325 | 2,365 | 1,717 |
4555
+ | \`code\` | 20,301 | 8,015 | 7,122 | 138 | 73 | 25 |
4556
+ | \`code-block\` | 102,738 | 34,889 | 30,833 | 36,842 | 10,758 | 8,782 |
4557
+ | \`color-input\` | 141,792 | 45,090 | 39,356 | 55,132 | 14,316 | 11,584 |
4558
+ | \`color-picker\` | 103,415 | 32,966 | 28,858 | 47,253 | 12,729 | 10,287 |
4559
+ | \`combobox\` | 132,023 | 41,951 | 36,939 | 35,789 | 9,118 | 7,130 |
4560
+ | \`command\` | 99,560 | 31,521 | 27,729 | 30,059 | 8,120 | 6,390 |
4561
+ | \`copy-button\` | 80,548 | 27,648 | 24,460 | 18,341 | 4,992 | 3,960 |
4562
+ | \`data-table\` | 199,900 | 61,426 | 52,524 | 89,488 | 23,835 | 19,149 |
4563
+ | \`date-input\` | 141,223 | 44,511 | 39,138 | 38,228 | 9,486 | 7,492 |
4564
+ | \`date-picker\` | 61,360 | 20,935 | 18,805 | 20,345 | 5,607 | 4,454 |
4565
+ | \`description-list\` | 22,900 | 8,765 | 7,765 | 1,565 | 529 | 302 |
4566
+ | \`dialog\` | 38,294 | 13,635 | 12,133 | 5,837 | 1,719 | 1,302 |
4567
+ | \`divider\` | 22,991 | 8,924 | 7,882 | 1,416 | 507 | 400 |
4568
+ | \`donut-chart\` | 89,212 | 31,129 | 27,564 | 14,641 | 4,489 | 3,590 |
4569
+ | \`drawer\` | 42,939 | 15,158 | 13,506 | 7,698 | 2,304 | 1,742 |
4570
+ | \`drilldown\` | 42,756 | 14,941 | 13,295 | 9,709 | 2,730 | 2,100 |
4571
+ | \`empty\` | 24,241 | 9,287 | 8,245 | 1,951 | 644 | 439 |
4572
+ | \`file-input\` | 57,757 | 20,019 | 17,807 | 13,093 | 4,149 | 3,315 |
4573
+ | \`filter-input\` | 97,846 | 32,818 | 29,132 | 21,629 | 6,183 | 4,933 |
4574
+ | \`format-date\` | 30,158 | 11,290 | 10,085 | 4,434 | 1,269 | 1,040 |
4575
+ | \`graph\` | 74,369 | 24,503 | 21,694 | 21,877 | 6,464 | 5,154 |
4576
+ | \`heatmap\` | 98,128 | 33,502 | 29,631 | 18,944 | 5,586 | 4,404 |
4577
+ | \`icon\` | 82,157 | 28,049 | 23,964 | 58,304 | 19,611 | 15,897 |
4578
+ | \`icon-button\` | 35,305 | 12,619 | 11,227 | 5,034 | 1,480 | 1,208 |
4579
+ | \`image\` | 25,504 | 9,479 | 8,405 | 3,823 | 1,151 | 945 |
4580
+ | \`input\` | 46,361 | 15,975 | 14,074 | 7,352 | 2,434 | 1,809 |
4581
+ | \`kbd\` | 27,511 | 10,569 | 9,338 | 3,516 | 1,119 | 901 |
4582
+ | \`legend\` | 35,184 | 12,934 | 11,492 | 2,957 | 993 | 759 |
4583
+ | \`lightbox\` | 55,724 | 18,816 | 16,719 | 16,730 | 4,681 | 3,522 |
4584
+ | \`line-chart\` | 91,335 | 31,880 | 28,245 | 14,762 | 4,405 | 3,591 |
4585
+ | \`list\` | 61,803 | 21,292 | 18,983 | 15,241 | 4,431 | 3,429 |
4586
+ | \`listbox\` | 76,711 | 25,427 | 22,459 | 15,564 | 4,618 | 3,475 |
4587
+ | \`loader\` | 26,379 | 10,041 | 8,930 | 2,775 | 948 | 654 |
4588
+ | \`map\` | 78,565 | 24,393 | 21,306 | 37,026 | 10,131 | 7,995 |
4589
+ | \`megamenu\` | 60,027 | 21,697 | 19,186 | 8,596 | 2,361 | 1,732 |
4590
+ | \`menu\` | 97,473 | 32,553 | 28,731 | 30,180 | 7,973 | 6,406 |
4591
+ | \`meter\` | 31,721 | 12,025 | 10,728 | 4,894 | 1,438 | 1,260 |
4592
+ | \`navigation\` | 33,088 | 12,436 | 11,036 | 3,366 | 1,150 | 954 |
4593
+ | \`notifications\` | 58,346 | 19,881 | 17,728 | 18,207 | 5,059 | 3,947 |
4594
+ | \`number-input\` | 56,271 | 18,842 | 16,797 | 13,523 | 3,633 | 2,708 |
4595
+ | \`object-inspector\` | 113,929 | 38,373 | 33,731 | 35,493 | 10,287 | 8,146 |
4596
+ | \`option\` | 26,477 | 9,763 | 8,667 | 4,524 | 1,192 | 940 |
4597
+ | \`outline\` | 33,612 | 12,597 | 11,180 | 7,856 | 2,581 | 2,088 |
4598
+ | \`pagination\` | 136,258 | 43,650 | 38,001 | 45,378 | 11,902 | 9,398 |
4599
+ | \`pin-input\` | 47,068 | 16,413 | 14,641 | 6,736 | 2,230 | 1,693 |
4600
+ | \`popover\` | 63,853 | 22,981 | 20,338 | 6,374 | 1,856 | 1,351 |
4601
+ | \`progress\` | 28,084 | 10,728 | 9,551 | 2,970 | 919 | 789 |
4602
+ | \`qr-code\` | 42,719 | 16,647 | 14,841 | 17,004 | 6,296 | 5,377 |
4603
+ | \`quote\` | 22,516 | 8,884 | 7,829 | 1,211 | 531 | 405 |
4604
+ | \`radio\` | 42,561 | 14,464 | 12,873 | 3,817 | 1,204 | 851 |
4605
+ | \`rating\` | 50,257 | 17,291 | 15,429 | 8,028 | 2,436 | 1,906 |
4606
+ | \`scatter-chart\` | 91,226 | 31,675 | 28,009 | 16,126 | 4,820 | 3,949 |
4607
+ | \`scroll-area\` | 30,430 | 11,078 | 9,813 | 8,499 | 2,593 | 2,089 |
4608
+ | \`select\` | 115,289 | 38,175 | 33,407 | 26,033 | 7,161 | 5,483 |
4609
+ | \`skeleton\` | 22,328 | 8,643 | 7,668 | 991 | 402 | 266 |
4610
+ | \`skip-link\` | 23,871 | 9,338 | 8,265 | 1,225 | 493 | 361 |
4611
+ | \`slider\` | 52,873 | 17,827 | 15,916 | 13,159 | 3,787 | 3,004 |
4612
+ | \`sparkline\` | 47,984 | 17,500 | 15,637 | 5,980 | 2,116 | 1,585 |
4613
+ | \`spatial-heatmap\` | 109,081 | 37,164 | 32,781 | 27,225 | 8,015 | 6,482 |
4614
+ | \`spatial-scatter-chart\` | 94,415 | 33,051 | 29,102 | 16,258 | 5,255 | 4,252 |
4615
+ | \`spatial-surface-chart\` | 96,111 | 33,772 | 29,752 | 17,890 | 5,910 | 4,832 |
4616
+ | \`speed-dial\` | 68,751 | 24,717 | 21,949 | 10,915 | 2,961 | 2,411 |
4617
+ | \`splitter\` | 43,751 | 15,169 | 13,536 | 14,396 | 3,855 | 3,139 |
4618
+ | \`stat\` | 25,255 | 9,674 | 8,601 | 2,303 | 765 | 559 |
4619
+ | \`steps\` | 53,623 | 18,636 | 16,600 | 13,602 | 3,849 | 3,027 |
4620
+ | \`switch\` | 39,233 | 13,495 | 12,037 | 1,679 | 615 | 474 |
4621
+ | \`table\` | 118,358 | 37,062 | 32,238 | 45,147 | 12,474 | 9,919 |
4622
+ | \`tabs\` | 46,310 | 15,908 | 14,138 | 10,491 | 2,883 | 2,252 |
4623
+ | \`tag\` | 42,676 | 15,621 | 13,972 | 8,454 | 2,531 | 1,931 |
4624
+ | \`textarea\` | 43,852 | 14,941 | 13,326 | 5,402 | 1,596 | 1,240 |
4625
+ | \`time-input\` | 169,269 | 52,675 | 45,763 | 48,510 | 12,450 | 9,857 |
4626
+ | \`time-picker\` | 99,603 | 31,518 | 27,788 | 33,933 | 9,200 | 7,222 |
4627
+ | \`timeline\` | 31,286 | 11,863 | 10,576 | 4,061 | 1,216 | 912 |
4628
+ | \`toast\` | 50,871 | 17,940 | 16,019 | 12,123 | 3,519 | 2,914 |
4629
+ | \`toggle\` | 45,577 | 15,271 | 13,575 | 6,007 | 1,808 | 1,331 |
4630
+ | \`toolbar\` | 31,047 | 11,573 | 10,294 | 5,158 | 1,661 | 1,302 |
4631
+ | \`tooltip\` | 58,616 | 21,090 | 18,709 | 8,433 | 2,352 | 1,956 |
4632
+ | \`tour\` | 83,717 | 28,762 | 25,413 | 19,814 | 5,443 | 4,255 |
4633
+ | \`tree\` | 67,586 | 22,717 | 20,231 | 17,198 | 4,962 | 3,902 |
4634
+ | \`trend\` | 29,717 | 11,568 | 10,337 | 3,486 | 1,116 | 926 |
4635
+ | \`video\` | 141,208 | 44,138 | 38,535 | 66,218 | 16,803 | 13,737 |
4636
+ | \`video-playlist\` | 127,686 | 41,301 | 36,388 | 42,774 | 11,219 | 9,185 |
4637
+ | \`virtual-list\` | 63,451 | 21,631 | 19,310 | 23,305 | 7,160 | 5,748 |
4597
4638
 
4598
4639
  ### Styled tier
4599
4640
 
@@ -4601,114 +4642,114 @@ The headless tier plus presentation. \`bun add @fusion.dev/helix\` installs this
4601
4642
 
4602
4643
  | Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
4603
4644
  |---|---|---|---|---|---|---|
4604
- | \`accordion\` | 35,311 | 12,653 | 11,243 | 8,746 | 2,445 | 1,948 |
4605
- | \`announcement\` | 41,307 | 14,365 | 12,833 | 9,278 | 2,474 | 2,031 |
4606
- | \`app-header\` | 37,449 | 13,103 | 11,683 | 11,016 | 2,986 | 2,445 |
4607
- | \`area-chart\` | 98,393 | 33,576 | 29,658 | 22,130 | 6,228 | 5,011 |
4608
- | \`aura\` | 56,085 | 19,320 | 17,092 | 29,774 | 9,288 | 7,861 |
4609
- | \`avatar\` | 33,464 | 12,351 | 11,022 | 6,945 | 1,975 | 1,683 |
4610
- | \`badge\` | 32,595 | 11,821 | 10,511 | 8,438 | 2,152 | 1,710 |
4611
- | \`bar-chart\` | 108,944 | 35,726 | 31,573 | 32,531 | 8,366 | 6,880 |
4612
- | \`blockquote\` | 26,332 | 9,968 | 8,809 | 4,612 | 1,414 | 1,162 |
4613
- | \`breadcrumbs\` | 43,220 | 15,115 | 13,466 | 14,285 | 3,663 | 2,974 |
4614
- | \`button\` | 41,612 | 14,008 | 12,420 | 11,324 | 2,879 | 2,375 |
4615
- | \`button-group\` | 31,138 | 11,066 | 9,811 | 8,408 | 2,198 | 1,803 |
4616
- | \`callout\` | 39,049 | 14,537 | 12,940 | 6,659 | 1,932 | 1,616 |
4617
- | \`canvas\` | 129,523 | 38,715 | 33,847 | 89,608 | 24,791 | 20,939 |
4618
- | \`card\` | 27,678 | 10,059 | 8,914 | 5,976 | 1,639 | 1,351 |
4619
- | \`carousel\` | 53,234 | 17,022 | 15,215 | 25,476 | 6,003 | 4,821 |
4620
- | \`chat\` | 94,674 | 29,166 | 25,849 | 42,729 | 10,813 | 8,831 |
4621
- | \`checkbox\` | 46,865 | 15,190 | 13,518 | 9,580 | 2,473 | 1,959 |
4622
- | \`checkbox-group\` | 54,826 | 17,244 | 15,360 | 15,538 | 4,014 | 3,208 |
4623
- | \`code\` | 21,154 | 8,333 | 7,414 | 976 | 407 | 463 |
4624
- | \`code-block\` | 127,213 | 38,714 | 34,149 | 61,301 | 14,711 | 12,090 |
4625
- | \`color-input\` | 184,176 | 51,349 | 44,873 | 97,505 | 20,451 | 17,115 |
4626
- | \`color-picker\` | 140,348 | 38,509 | 33,804 | 84,178 | 18,270 | 15,095 |
4627
- | \`combobox\` | 147,503 | 44,927 | 39,482 | 51,253 | 12,081 | 9,825 |
4628
- | \`command\` | 110,791 | 33,835 | 29,737 | 41,332 | 10,518 | 8,485 |
4629
- | \`copy-button\` | 92,577 | 29,825 | 26,436 | 30,354 | 7,209 | 5,753 |
4630
- | \`data-table\` | 230,715 | 66,818 | 57,261 | 120,284 | 29,332 | 23,801 |
4631
- | \`date-input\` | 162,349 | 48,216 | 42,359 | 59,337 | 13,203 | 10,908 |
4632
- | \`date-picker\` | 69,281 | 22,362 | 19,988 | 28,248 | 7,042 | 5,628 |
4633
- | \`description-list\` | 25,855 | 9,517 | 8,458 | 4,508 | 1,258 | 998 |
4634
- | \`dialog\` | 43,360 | 14,855 | 13,243 | 10,933 | 3,018 | 2,483 |
4635
- | \`divider\` | 25,291 | 9,545 | 8,433 | 3,699 | 1,139 | 935 |
4636
- | \`donut-chart\` | 99,170 | 33,263 | 29,402 | 24,576 | 6,672 | 5,360 |
4637
- | \`drawer\` | 48,725 | 16,508 | 14,716 | 13,512 | 3,705 | 2,967 |
4638
- | \`drilldown\` | 48,438 | 16,238 | 14,448 | 15,377 | 4,031 | 3,256 |
4639
- | \`empty\` | 25,503 | 9,726 | 8,589 | 3,242 | 1,089 | 985 |
4640
- | \`file-input\` | 69,285 | 22,419 | 19,917 | 24,612 | 6,540 | 5,345 |
4641
- | \`filter-input\` | 108,688 | 34,991 | 31,043 | 32,465 | 8,391 | 6,825 |
4642
- | \`flex\` | 25,740 | 9,194 | 8,174 | 4,763 | 1,045 | 901 |
4643
- | \`format-date\` | 30,414 | 11,403 | 10,154 | 4,672 | 1,395 | 1,169 |
4644
- | \`graph\` | 89,037 | 27,079 | 23,907 | 36,527 | 9,167 | 7,455 |
4645
- | \`grid\` | 27,002 | 9,846 | 8,729 | 5,638 | 1,466 | 1,309 |
4646
- | \`heatmap\` | 105,486 | 35,190 | 31,043 | 26,281 | 7,243 | 5,862 |
4647
- | \`icon\` | 83,995 | 28,567 | 24,447 | 60,129 | 20,127 | 16,447 |
4648
- | \`icon-button\` | 43,040 | 13,980 | 12,449 | 12,753 | 2,874 | 2,393 |
4649
- | \`image\` | 26,892 | 9,946 | 8,805 | 5,193 | 1,601 | 1,348 |
4650
- | \`input\` | 50,619 | 17,064 | 15,040 | 11,593 | 3,532 | 2,700 |
4651
- | \`kbd\` | 29,504 | 11,109 | 9,831 | 5,494 | 1,656 | 1,440 |
4652
- | \`legend\` | 40,423 | 14,213 | 12,647 | 8,067 | 2,273 | 1,813 |
4653
- | \`lightbox\` | 62,016 | 20,155 | 17,976 | 23,006 | 5,997 | 4,729 |
4654
- | \`line-chart\` | 102,454 | 34,257 | 30,351 | 25,863 | 6,825 | 5,595 |
4655
- | \`list\` | 68,150 | 22,814 | 20,348 | 21,568 | 5,956 | 4,680 |
4656
- | \`listbox\` | 81,154 | 26,542 | 23,433 | 19,993 | 5,717 | 4,348 |
4657
- | \`loader\` | 29,263 | 10,815 | 9,641 | 5,642 | 1,693 | 1,421 |
4658
- | \`map\` | 111,513 | 29,574 | 26,020 | 69,963 | 15,520 | 12,612 |
4659
- | \`megamenu\` | 64,996 | 22,864 | 20,217 | 13,546 | 3,514 | 2,779 |
4660
- | \`menu\` | 108,403 | 34,710 | 30,603 | 41,097 | 10,145 | 8,216 |
4661
- | \`meter\` | 37,896 | 13,377 | 11,975 | 11,050 | 2,795 | 2,437 |
4662
- | \`navigation\` | 36,814 | 13,268 | 11,770 | 7,077 | 2,012 | 1,622 |
4663
- | \`notifications\` | 71,808 | 22,446 | 20,064 | 31,662 | 7,634 | 6,277 |
4664
- | \`number-input\` | 61,253 | 20,026 | 17,841 | 18,490 | 4,826 | 3,830 |
4665
- | \`object-inspector\` | 130,338 | 41,205 | 36,215 | 51,881 | 13,180 | 10,743 |
4666
- | \`option\` | 29,672 | 10,762 | 9,548 | 7,711 | 2,200 | 1,814 |
4667
- | \`orb\` | 35,265 | 13,488 | 12,001 | 9,732 | 3,656 | 3,134 |
4668
- | \`outline\` | 37,846 | 13,457 | 11,936 | 12,073 | 3,434 | 2,697 |
4669
- | \`pagination\` | 153,264 | 46,929 | 40,841 | 62,365 | 15,223 | 12,273 |
4670
- | \`pin-input\` | 50,409 | 17,316 | 15,447 | 10,058 | 3,143 | 2,440 |
4671
- | \`popover\` | 66,958 | 23,702 | 20,994 | 9,508 | 2,639 | 2,007 |
4672
- | \`progress\` | 35,232 | 12,380 | 11,029 | 10,101 | 2,590 | 2,193 |
4673
- | \`qr-code\` | 44,321 | 17,121 | 15,245 | 18,588 | 6,777 | 5,738 |
4674
- | \`quote\` | 23,074 | 9,078 | 7,995 | 1,752 | 694 | 585 |
4675
- | \`radio\` | 50,349 | 15,974 | 14,201 | 11,594 | 2,747 | 2,142 |
4676
- | \`rating\` | 54,190 | 18,518 | 16,500 | 11,945 | 3,633 | 3,037 |
4677
- | \`sandbox\` | 104,428 | 31,486 | 27,627 | 72,144 | 19,144 | 16,122 |
4678
- | \`scatter-chart\` | 100,317 | 33,784 | 29,874 | 25,196 | 6,951 | 5,662 |
4679
- | \`scroll-area\` | 35,437 | 12,026 | 10,715 | 13,489 | 3,577 | 2,894 |
4680
- | \`select\` | 124,418 | 40,070 | 35,151 | 35,145 | 9,069 | 7,163 |
4681
- | \`skeleton\` | 26,090 | 9,664 | 8,585 | 4,738 | 1,404 | 1,203 |
4682
- | \`skip-link\` | 25,441 | 9,851 | 8,690 | 2,780 | 969 | 863 |
4683
- | \`slider\` | 67,842 | 20,140 | 18,012 | 28,108 | 6,151 | 4,988 |
4684
- | \`sparkline\` | 53,442 | 18,850 | 16,822 | 11,420 | 3,469 | 2,926 |
4685
- | \`spatial-heatmap\` | 118,016 | 39,202 | 34,563 | 36,139 | 10,078 | 8,224 |
4686
- | \`spatial-scatter-chart\` | 101,873 | 34,752 | 30,661 | 23,693 | 6,973 | 5,687 |
4687
- | \`spatial-surface-chart\` | 103,007 | 35,444 | 31,280 | 24,765 | 7,585 | 6,266 |
4688
- | \`speed-dial\` | 75,797 | 26,105 | 23,189 | 17,945 | 4,386 | 3,472 |
4689
- | \`splitter\` | 49,804 | 16,207 | 14,471 | 20,430 | 4,913 | 3,977 |
4690
- | \`stat\` | 28,117 | 10,371 | 9,279 | 5,157 | 1,466 | 1,202 |
4691
- | \`steps\` | 67,449 | 21,378 | 19,023 | 27,416 | 6,645 | 5,354 |
4692
- | \`strands\` | 62,138 | 23,150 | 20,401 | 38,012 | 13,745 | 11,840 |
4693
- | \`switch\` | 43,562 | 14,637 | 13,009 | 5,998 | 1,757 | 1,352 |
4694
- | \`table\` | 135,900 | 40,155 | 34,965 | 62,688 | 15,587 | 12,685 |
4695
- | \`tabs\` | 55,263 | 17,752 | 15,775 | 19,436 | 4,752 | 3,802 |
4696
- | \`tag\` | 47,247 | 16,757 | 14,959 | 13,015 | 3,624 | 2,905 |
4697
- | \`text\` | 28,756 | 9,942 | 8,755 | 7,395 | 1,508 | 1,237 |
4698
- | \`textarea\` | 47,785 | 15,949 | 14,227 | 9,318 | 2,652 | 2,048 |
4699
- | \`time-input\` | 193,597 | 56,836 | 49,584 | 72,825 | 16,676 | 13,510 |
4700
- | \`time-picker\` | 111,928 | 33,946 | 29,852 | 46,250 | 11,626 | 9,335 |
4701
- | \`timeline\` | 38,179 | 13,326 | 11,923 | 10,946 | 2,728 | 2,148 |
4702
- | \`toast\` | 58,767 | 19,783 | 17,646 | 20,005 | 5,381 | 4,318 |
4703
- | \`toggle\` | 50,439 | 16,510 | 14,665 | 10,854 | 3,070 | 2,459 |
4704
- | \`toolbar\` | 33,726 | 12,065 | 10,723 | 7,822 | 2,154 | 1,799 |
4705
- | \`tooltip\` | 61,420 | 21,834 | 19,393 | 11,219 | 3,086 | 2,499 |
4706
- | \`tour\` | 93,661 | 30,697 | 27,169 | 29,784 | 7,469 | 5,931 |
4707
- | \`tree\` | 76,275 | 24,651 | 21,973 | 25,873 | 6,900 | 5,606 |
4708
- | \`trend\` | 31,231 | 12,049 | 10,746 | 4,981 | 1,596 | 1,293 |
4709
- | \`video\` | 161,715 | 47,867 | 41,792 | 86,709 | 20,349 | 17,043 |
4710
- | \`video-playlist\` | 143,639 | 44,279 | 38,944 | 58,710 | 14,185 | 11,749 |
4711
- | \`virtual-list\` | 65,445 | 22,138 | 19,718 | 25,282 | 7,661 | 6,176 |
4645
+ | \`accordion\` | 35,311 | 12,653 | 11,212 | 8,746 | 2,446 | 2,060 |
4646
+ | \`announcement\` | 41,307 | 14,365 | 12,836 | 9,278 | 2,485 | 1,972 |
4647
+ | \`app-header\` | 37,449 | 13,103 | 11,680 | 11,016 | 2,982 | 2,438 |
4648
+ | \`area-chart\` | 98,393 | 33,576 | 29,680 | 22,130 | 6,236 | 5,083 |
4649
+ | \`aura\` | 56,085 | 19,320 | 17,090 | 29,774 | 9,282 | 7,803 |
4650
+ | \`avatar\` | 33,464 | 12,351 | 11,066 | 6,945 | 1,982 | 1,637 |
4651
+ | \`badge\` | 32,595 | 11,821 | 10,514 | 8,438 | 2,162 | 1,752 |
4652
+ | \`bar-chart\` | 108,944 | 35,726 | 31,539 | 32,531 | 8,360 | 6,866 |
4653
+ | \`blockquote\` | 26,332 | 9,968 | 8,824 | 4,612 | 1,422 | 1,221 |
4654
+ | \`breadcrumbs\` | 43,220 | 15,115 | 13,532 | 14,285 | 3,663 | 2,991 |
4655
+ | \`button\` | 41,612 | 14,008 | 12,455 | 11,324 | 2,890 | 2,340 |
4656
+ | \`button-group\` | 31,138 | 11,066 | 9,841 | 8,408 | 2,193 | 1,717 |
4657
+ | \`callout\` | 39,049 | 14,537 | 12,904 | 6,659 | 1,939 | 1,538 |
4658
+ | \`canvas\` | 129,523 | 38,715 | 33,849 | 89,608 | 24,792 | 20,896 |
4659
+ | \`card\` | 27,725 | 10,100 | 8,963 | 5,976 | 1,640 | 1,412 |
4660
+ | \`carousel\` | 53,234 | 17,022 | 15,227 | 25,476 | 6,005 | 4,908 |
4661
+ | \`chat\` | 94,674 | 29,166 | 25,837 | 42,729 | 10,823 | 8,822 |
4662
+ | \`checkbox\` | 46,865 | 15,190 | 13,514 | 9,580 | 2,480 | 1,943 |
4663
+ | \`checkbox-group\` | 54,826 | 17,244 | 15,360 | 15,538 | 4,019 | 3,109 |
4664
+ | \`code\` | 21,154 | 8,333 | 7,394 | 976 | 404 | 368 |
4665
+ | \`code-block\` | 127,213 | 38,714 | 34,147 | 61,301 | 14,729 | 12,023 |
4666
+ | \`color-input\` | 184,176 | 51,349 | 44,945 | 97,505 | 20,459 | 17,136 |
4667
+ | \`color-picker\` | 140,348 | 38,509 | 33,818 | 84,178 | 18,271 | 15,178 |
4668
+ | \`combobox\` | 147,503 | 44,927 | 39,538 | 51,253 | 12,079 | 9,675 |
4669
+ | \`command\` | 110,838 | 33,878 | 29,811 | 41,332 | 10,512 | 8,549 |
4670
+ | \`copy-button\` | 92,577 | 29,825 | 26,419 | 30,354 | 7,206 | 5,862 |
4671
+ | \`data-table\` | 230,715 | 66,818 | 57,241 | 120,284 | 29,334 | 23,795 |
4672
+ | \`date-input\` | 162,349 | 48,216 | 42,470 | 59,337 | 13,202 | 10,831 |
4673
+ | \`date-picker\` | 69,281 | 22,362 | 20,076 | 28,248 | 7,048 | 5,764 |
4674
+ | \`description-list\` | 25,855 | 9,517 | 8,467 | 4,508 | 1,253 | 1,082 |
4675
+ | \`dialog\` | 43,407 | 14,900 | 13,271 | 10,933 | 3,027 | 2,496 |
4676
+ | \`divider\` | 25,291 | 9,546 | 8,434 | 3,699 | 1,140 | 956 |
4677
+ | \`donut-chart\` | 99,170 | 33,263 | 29,399 | 24,576 | 6,688 | 5,395 |
4678
+ | \`drawer\` | 48,772 | 16,542 | 14,744 | 13,512 | 3,701 | 3,104 |
4679
+ | \`drilldown\` | 48,438 | 16,236 | 14,452 | 15,377 | 4,023 | 3,285 |
4680
+ | \`empty\` | 25,550 | 9,762 | 8,654 | 3,242 | 1,097 | 811 |
4681
+ | \`file-input\` | 69,285 | 22,419 | 19,952 | 24,612 | 6,538 | 5,331 |
4682
+ | \`filter-input\` | 108,688 | 34,990 | 30,983 | 32,465 | 8,398 | 6,864 |
4683
+ | \`flex\` | 25,740 | 9,194 | 8,150 | 4,763 | 1,041 | 911 |
4684
+ | \`format-date\` | 30,414 | 11,403 | 10,191 | 4,672 | 1,401 | 1,173 |
4685
+ | \`graph\` | 89,037 | 27,080 | 23,947 | 36,527 | 9,167 | 7,434 |
4686
+ | \`grid\` | 27,002 | 9,846 | 8,729 | 5,638 | 1,469 | 1,276 |
4687
+ | \`heatmap\` | 105,486 | 35,190 | 31,043 | 26,281 | 7,256 | 5,856 |
4688
+ | \`icon\` | 83,995 | 28,567 | 24,524 | 60,129 | 20,147 | 16,458 |
4689
+ | \`icon-button\` | 43,040 | 13,980 | 12,450 | 12,753 | 2,881 | 2,232 |
4690
+ | \`image\` | 26,892 | 9,946 | 8,806 | 5,193 | 1,595 | 1,359 |
4691
+ | \`input\` | 50,619 | 17,064 | 15,034 | 11,593 | 3,541 | 2,695 |
4692
+ | \`kbd\` | 29,504 | 11,108 | 9,827 | 5,494 | 1,668 | 1,277 |
4693
+ | \`legend\` | 40,423 | 14,214 | 12,646 | 8,067 | 2,286 | 1,752 |
4694
+ | \`lightbox\` | 62,016 | 20,155 | 17,955 | 23,006 | 5,985 | 4,597 |
4695
+ | \`line-chart\` | 102,454 | 34,257 | 30,365 | 25,863 | 6,820 | 5,495 |
4696
+ | \`list\` | 68,150 | 22,814 | 20,368 | 21,568 | 5,960 | 4,810 |
4697
+ | \`listbox\` | 81,154 | 26,542 | 23,470 | 19,993 | 5,717 | 4,361 |
4698
+ | \`loader\` | 29,263 | 10,815 | 9,652 | 5,642 | 1,704 | 1,404 |
4699
+ | \`map\` | 111,513 | 29,574 | 25,953 | 69,963 | 15,530 | 12,540 |
4700
+ | \`megamenu\` | 64,996 | 22,864 | 20,254 | 13,546 | 3,538 | 2,702 |
4701
+ | \`menu\` | 108,403 | 34,710 | 30,647 | 41,097 | 10,151 | 8,248 |
4702
+ | \`meter\` | 37,896 | 13,377 | 11,942 | 11,050 | 2,799 | 2,381 |
4703
+ | \`navigation\` | 36,814 | 13,269 | 11,770 | 7,077 | 2,016 | 1,595 |
4704
+ | \`notifications\` | 71,839 | 22,457 | 20,046 | 31,691 | 7,660 | 6,292 |
4705
+ | \`number-input\` | 61,253 | 20,026 | 17,829 | 18,490 | 4,814 | 3,860 |
4706
+ | \`object-inspector\` | 130,338 | 41,205 | 36,256 | 51,881 | 13,188 | 10,707 |
4707
+ | \`option\` | 29,672 | 10,762 | 9,548 | 7,711 | 2,201 | 1,779 |
4708
+ | \`orb\` | 35,265 | 13,488 | 12,001 | 9,732 | 3,645 | 3,055 |
4709
+ | \`outline\` | 37,846 | 13,458 | 11,936 | 12,073 | 3,441 | 2,856 |
4710
+ | \`pagination\` | 153,264 | 46,929 | 40,863 | 62,363 | 15,233 | 12,251 |
4711
+ | \`pin-input\` | 50,409 | 17,316 | 15,431 | 10,058 | 3,137 | 2,329 |
4712
+ | \`popover\` | 67,005 | 23,748 | 20,996 | 9,508 | 2,647 | 2,109 |
4713
+ | \`progress\` | 35,232 | 12,380 | 11,035 | 10,101 | 2,588 | 2,315 |
4714
+ | \`qr-code\` | 44,321 | 17,121 | 15,279 | 18,588 | 6,784 | 5,745 |
4715
+ | \`quote\` | 23,074 | 9,079 | 7,998 | 1,752 | 704 | 648 |
4716
+ | \`radio\` | 50,349 | 15,975 | 14,204 | 11,592 | 2,742 | 2,183 |
4717
+ | \`rating\` | 54,190 | 18,519 | 16,488 | 11,945 | 3,641 | 2,938 |
4718
+ | \`sandbox\` | 104,428 | 31,486 | 27,625 | 72,144 | 19,140 | 16,207 |
4719
+ | \`scatter-chart\` | 100,317 | 33,784 | 29,939 | 25,196 | 6,955 | 5,758 |
4720
+ | \`scroll-area\` | 35,437 | 12,026 | 10,702 | 13,489 | 3,575 | 2,930 |
4721
+ | \`select\` | 124,418 | 40,070 | 35,132 | 35,145 | 9,071 | 7,140 |
4722
+ | \`skeleton\` | 26,090 | 9,664 | 8,587 | 4,738 | 1,396 | 1,182 |
4723
+ | \`skip-link\` | 25,441 | 9,851 | 8,691 | 2,780 | 970 | 843 |
4724
+ | \`slider\` | 67,842 | 20,138 | 18,001 | 28,108 | 6,159 | 4,980 |
4725
+ | \`sparkline\` | 53,442 | 18,851 | 16,864 | 11,420 | 3,478 | 2,863 |
4726
+ | \`spatial-heatmap\` | 118,016 | 39,202 | 34,545 | 36,139 | 10,081 | 8,262 |
4727
+ | \`spatial-scatter-chart\` | 101,873 | 34,752 | 30,607 | 23,695 | 6,991 | 5,660 |
4728
+ | \`spatial-surface-chart\` | 103,007 | 35,444 | 31,284 | 24,765 | 7,587 | 6,162 |
4729
+ | \`speed-dial\` | 75,797 | 26,105 | 23,165 | 17,945 | 4,385 | 3,465 |
4730
+ | \`splitter\` | 49,804 | 16,208 | 14,471 | 20,430 | 4,922 | 4,076 |
4731
+ | \`stat\` | 28,117 | 10,371 | 9,280 | 5,157 | 1,469 | 1,201 |
4732
+ | \`steps\` | 67,449 | 21,378 | 19,083 | 27,416 | 6,651 | 5,427 |
4733
+ | \`strands\` | 62,138 | 23,151 | 20,397 | 38,012 | 13,741 | 11,850 |
4734
+ | \`switch\` | 43,562 | 14,639 | 13,019 | 5,998 | 1,762 | 1,477 |
4735
+ | \`table\` | 135,900 | 40,155 | 34,967 | 62,688 | 15,591 | 12,696 |
4736
+ | \`tabs\` | 55,263 | 17,752 | 15,850 | 19,436 | 4,760 | 3,803 |
4737
+ | \`tag\` | 47,247 | 16,757 | 14,961 | 13,013 | 3,628 | 2,912 |
4738
+ | \`text\` | 28,756 | 9,943 | 8,755 | 7,395 | 1,497 | 1,217 |
4739
+ | \`textarea\` | 47,785 | 15,949 | 14,234 | 9,318 | 2,650 | 2,138 |
4740
+ | \`time-input\` | 193,597 | 56,836 | 49,555 | 72,825 | 16,683 | 13,638 |
4741
+ | \`time-picker\` | 111,928 | 33,946 | 29,855 | 46,250 | 11,628 | 9,363 |
4742
+ | \`timeline\` | 38,179 | 13,327 | 11,920 | 10,946 | 2,723 | 2,242 |
4743
+ | \`toast\` | 58,767 | 19,783 | 17,679 | 20,005 | 5,383 | 4,363 |
4744
+ | \`toggle\` | 50,439 | 16,510 | 14,664 | 10,854 | 3,073 | 2,558 |
4745
+ | \`toolbar\` | 33,726 | 12,066 | 10,725 | 7,822 | 2,162 | 1,693 |
4746
+ | \`tooltip\` | 61,420 | 21,834 | 19,346 | 11,219 | 3,088 | 2,508 |
4747
+ | \`tour\` | 93,708 | 30,741 | 27,201 | 29,784 | 7,467 | 6,010 |
4748
+ | \`tree\` | 76,275 | 24,651 | 21,944 | 25,873 | 6,911 | 5,538 |
4749
+ | \`trend\` | 31,231 | 12,049 | 10,723 | 4,981 | 1,588 | 1,260 |
4750
+ | \`video\` | 161,715 | 47,867 | 41,782 | 86,709 | 20,350 | 17,119 |
4751
+ | \`video-playlist\` | 143,639 | 44,279 | 38,894 | 58,710 | 14,190 | 11,757 |
4752
+ | \`virtual-list\` | 65,445 | 22,138 | 19,709 | 25,282 | 7,667 | 6,257 |
4712
4753
 
4713
4754
  ## What an install adds to \`node_modules\`
4714
4755
 
@@ -4720,12 +4761,12 @@ stripped column shows the bytes we removed.
4720
4761
 
4721
4762
  | Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
4722
4763
  |---|---|---|---|---|
4723
- | \`@fusion.dev/helix-core\` | 2,593,533 | 567 | 743,513 | \`@floating-ui/dom\`, \`@fusion.dev/helix-icons\`, \`tslib\` |
4724
- | \`@fusion.dev/helix-headless\` | 25,855,666 | 730 | 2,314,273 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-icons\`, \`tslib\`, \`uqr\` |
4764
+ | \`@fusion.dev/helix-core\` | 2,593,631 | 567 | 743,574 | \`@floating-ui/dom\`, \`@fusion.dev/helix-icons\`, \`tslib\` |
4765
+ | \`@fusion.dev/helix-headless\` | 25,857,080 | 730 | 2,314,273 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-icons\`, \`tslib\`, \`uqr\` |
4725
4766
  | \`@fusion.dev/helix-icons\` | 150,509 | 21 | 48,154 | \`svgo\` |
4726
4767
  | \`@fusion.dev/helix-styles\` | 121,243 | 6 | 0 | none |
4727
4768
  | \`@fusion.dev/helix-theme\` | 529,299 | 8 | 5,393 | none |
4728
- | \`@fusion.dev/helix\` | 27,138,779 | 981 | 543,329 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-headless\`, \`@fusion.dev/helix-styles\`, \`tslib\` |
4769
+ | \`@fusion.dev/helix\` | 27,147,873 | 981 | 543,383 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-headless\`, \`@fusion.dev/helix-styles\`, \`tslib\` |
4729
4770
 
4730
4771
  ## Not measured yet
4731
4772
 
@@ -7944,7 +7985,7 @@ type needs less leading. \`--helix-leading-heading\` expresses that once, so no
7944
7985
  heading level needs its own multiplier.
7945
7986
  `,
7946
7987
  'using-helix-with-an-agent': `---
7947
- description: Five mistakes that look like Helix bugs, and the files an agent should read.
7988
+ description: The rules an agent follows to write Helix code, and the five mistakes that look like Helix bugs.
7948
7989
  parent: coding-agents
7949
7990
  section: Getting started
7950
7991
  title: Using Helix with an agent
@@ -7953,41 +7994,52 @@ title: Using Helix with an agent
7953
7994
 
7954
7995
  # Using Helix with an agent
7955
7996
 
7956
- This guide is in two places, and both say the same thing:
7997
+ This guide is what an agent reads before writing Helix code. It is also the
7998
+ \`helix\` skill: \`skills/helix/SKILL.md\` in \`@fusion.dev/helix\`, which matches the
7999
+ version installed, and the skill in Helix's plugin for coding agents. [Coding
8000
+ agents](./coding-agents) says how to install the plugin or link the skill.
7957
8001
 
7958
- - this page, which [llms.txt](https://fusion.dev/llms.txt) indexes
7959
- - \`skills/helix/SKILL.md\` inside \`@fusion.dev/helix\`, which matches the version
7960
- you installed and works offline
8002
+ ## Use a Helix family wherever one exists
7961
8003
 
7962
- [Link your tool to this guide](#link-your-tool-to-this-guide) says how to point
7963
- each tool at one of them. [The MCP server](./coding-agents) works with any
7964
- vendor and runs code, and Claude, Cursor, Windsurf, and Zed all support it.
8004
+ Write a Helix element for everything Helix has a family for, and a native
8005
+ element only for page structure. Before you write a native element, ask whether
8006
+ a family stands in for it:
7965
8007
 
7966
- ## Read the family before writing its tags
8008
+ - \`helix api find <tag>\`, or the MCP tool \`helix_find\`, answers a native tag
8009
+ with its family: \`button\` finds Button, and \`h1\` finds Text.
8010
+ - Each family's file lists the native elements it replaces under \`replaces\`.
7967
8011
 
7968
- \`\`\`
7969
- https://fusion.dev/helix/components/<family>.md
7970
- https://fusion.dev/helix/components/<family>.json
7971
- \`\`\`
8012
+ These native elements have families:
7972
8013
 
7973
- Each family's file lists:
8014
+ - controls: \`button\`, \`input\` of every visible type, \`select\`, and \`textarea\`
8015
+ - overlays and disclosure: \`dialog\` and \`details\`
8016
+ - text: \`h1\` to \`h6\` and \`p\`, which \`helix-text\` writes with \`as="h1"\` and the
8017
+ rest
8018
+ - content: \`img\`, \`picture\`, \`hr\`, \`ul\`, \`ol\`, \`table\`, \`code\`, \`pre\`, \`kbd\`,
8019
+ \`blockquote\`, \`q\`, \`video\`, \`progress\`, and \`meter\`
7974
8020
 
7975
- - the import lines for the family
7976
- - every tag
7977
- - every property, with its literal union
7978
- - every event, with its class and its React prop
7979
- - every slot, part, and custom property
7980
- - the examples, each with the import lines it needs
8021
+ Page structure stays native: \`main\`, \`section\`, \`article\`, \`header\`, \`footer\`,
8022
+ \`nav\`, \`form\`, \`label\`, \`div\`, \`span\`, and \`a\`. So does markup a CMS writes
8023
+ inside \`data-prose\`.
7981
8024
 
7982
- **If a tag is not in a family's file, it does not exist.** A property value
7983
- outside a declared union is invalid. Property types are literal unions for this
7984
- reason. \`'ghost' | 'outlined' | 'solid' | 'subtle'\` shows you the values, and a
7985
- named type such as \`ButtonEmphasis\` sends you somewhere else to find them.
8025
+ \`helix scan\` and the MCP tool \`helix_check\` report each native element a page
8026
+ writes where an installed family stands in for it, as \`native-element\`.
8027
+
8028
+ ## Look up a family before writing its tags
8029
+
8030
+ Each family's API is in the packages you installed, and on this site:
7986
8031
 
7987
- The manifest at \`https://fusion.dev/helix/custom-elements.json\` holds every
7988
- family in one file, which is several megabytes. Read the families you use.
7989
- Start from \`https://fusion.dev/llms.txt\`. In one request, it names every
7990
- document and the machine-readable sources.
8032
+ - \`helix api family <family>\`, or the MCP tool \`helix_family\`
8033
+ - \`node_modules/@fusion.dev/helix/api.json\`
8034
+ - \`https://fusion.dev/helix/components/<family>.md\` and \`.json\`
8035
+
8036
+ Each lists the import lines, every tag, every property with its literal union,
8037
+ every event with its React prop, every slot, part, and custom property, and the
8038
+ examples with the imports each one needs.
8039
+
8040
+ **If a tag is not in a family's file, it does not exist.** A property value
8041
+ outside a declared union is invalid. Find a family by name, alias, or purpose
8042
+ with \`helix api find\`, or the MCP tool \`helix_find\`.
7991
8043
 
7992
8044
  ## Five mistakes that look like Helix bugs
7993
8045
 
@@ -8092,12 +8144,9 @@ Each missing layer has its own symptom:
8092
8144
  - Unstyled headings mean \`base.css\` is missing.
8093
8145
  - No color anywhere means \`primitives.css\` or \`tokens.css\` is missing.
8094
8146
 
8095
- To tell the last two apart, look at the stylesheet. The screen looks the same.
8096
- Without \`tokens.css\`, nothing declares \`--helix-color-*\`. Without
8097
- \`primitives.css\`, all 185 semantic tokens are declared and every color resolves
8098
- to \`rgba(0, 0, 0, 0)\`, because \`tokens.css\` refers to a primitive 297 times and
8099
- to nothing else. A missing \`primitives.css\` looks like a working install, and
8100
- \`helix.css\` exists to prevent it.
8147
+ To tell the last two apart, look at the stylesheet. Without \`tokens.css\`,
8148
+ nothing declares \`--helix-color-*\`. Without \`primitives.css\`, every token is
8149
+ declared and every color resolves to transparent.
8101
8150
 
8102
8151
  ## Choosing a component family
8103
8152
 
@@ -8137,73 +8186,25 @@ You can style a component in three ways. Try them in this order:
8137
8186
  belong to \`@fusion.dev/helix-styles\`. The underscore marks them as internal.
8138
8187
  Read the semantic tokens that refer to them.
8139
8188
 
8140
- ## Styling HTML without custom elements
8141
-
8142
- \`@fusion.dev/helix-styles\` is plain CSS with no JavaScript. It includes recipes
8143
- for markup that Helix does not render:
8144
-
8145
- \`\`\`html
8146
- <button
8147
- data-button="solid"
8148
- data-button-tone="primary"
8149
- >Save</button>
8150
- <article data-prose><h2>From a CMS</h2></article>
8151
- <div data-density="sm">…</div>
8152
- \`\`\`
8153
-
8154
- A recipe sets appearance only. It has none of these:
8155
-
8156
- - state
8157
- - form participation
8158
- - focus trapping
8159
- - keyboard handling
8160
-
8161
- If you are adding a script to a recipe, use the component.
8162
-
8163
- ## Link your tool to this guide
8164
-
8165
- **Point your tool at the guide, and do not copy it.** A copy starts to go stale
8166
- as soon as you paste it, and the guide changes with the library.
8167
-
8168
- The skill in the package matches the Helix you installed. In Claude Code, link
8169
- it into your project's skills folder:
8170
-
8171
- \`\`\`sh
8172
- mkdir -p .claude/skills
8173
- ln -s ../../node_modules/@fusion.dev/helix/skills/helix .claude/skills/helix
8174
- \`\`\`
8175
-
8176
- Other tools read a file in your repository. Add a line to it that names the
8177
- skill, or this page:
8178
-
8179
- \`\`\`md
8180
- Helix: read node_modules/@fusion.dev/helix/skills/helix/SKILL.md before
8181
- writing components, and node_modules/@fusion.dev/helix/api.json for the API.
8182
- \`\`\`
8189
+ ## Markup Helix does not render
8183
8190
 
8184
- | Tool | Where it goes |
8185
- |---|---|
8186
- | Claude Code | \`.claude/skills/helix\`, or a line in \`AGENTS.md\` or \`CLAUDE.md\` |
8187
- | Cursor | \`.cursor/rules/\` |
8188
- | GitHub Copilot | \`.github/copilot-instructions.md\` |
8189
- | Anything else | Whatever it reads. The line is the same |
8191
+ HTML that a CMS or a Markdown library writes, inside an element with
8192
+ \`data-prose\`, takes Helix's typography from \`@fusion.dev/helix-styles\` and needs
8193
+ no Helix elements. Everywhere else, write the Helix element.
8190
8194
 
8191
- We do not write those files for you, and we chose this on purpose. You would
8192
- have to maintain a file we generated in your repository against our changes. A
8193
- tool that rewrote it on install would be a dependency you did not ask for, in a
8194
- directory you own. You add the link or the line, and you can delete it.
8195
+ ## Check the code you wrote
8195
8196
 
8196
- ## Install the Helix MCP server
8197
+ Run these after you write Helix code, and fix every finding at \`error\` and
8198
+ \`warn\` before you finish. Each prints JSON with \`--json\`.
8197
8199
 
8198
- \`\`\`sh
8199
- helix mcp init --client claude
8200
- \`\`\`
8200
+ | Command | MCP tool | What it finds |
8201
+ |---|---|---|
8202
+ | \`helix scan\` | \`helix_check\` | Unknown tags, attributes, values, slots, parts, hooks, events, and tokens, a native element a Helix family replaces, a missing import, and the rest, each with its file and line |
8203
+ | \`helix diagnostics --once <url>\` | \`helix_check_page\` | The same on the running page, and what the library logged as it ran |
8204
+ | \`helix theme audit\` | \`helix_audit_theme\` | Every foreground and background pair in your theme that misses its contrast target |
8201
8205
 
8202
- \`helix mcp\` answers from the Helix packages your project installs: families,
8203
- examples, import lines, tokens, and the theme a brand color produces. \`--client\`
8204
- takes \`claude\`, \`cursor\`, or \`vscode\`, and writes the server into the file that
8205
- client reads. [Coding agents](./coding-agents) lists the tools. It runs on your
8206
- machine, talks to a client you chose, and makes no network requests.
8206
+ \`helix scan --file <path>\` reports one file's findings and still reads the whole
8207
+ project, so an import in another file counts.
8207
8208
 
8208
8209
  ## What this guide does not cover
8209
8210