@fusion.dev/helix-docs 0.59.1 → 0.59.3

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.
@@ -395,11 +395,11 @@ column is what was removed rather than part of what remains.
395
395
  | Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
396
396
  |---|---|---|---|---|
397
397
  | `@fusion.dev/helix-core` | 983,274 | 153 | 222,331 | `@floating-ui/dom`, `@fusion.dev/helix-icons` |
398
- | `@fusion.dev/helix-headless` | 11,342,927 | 464 | 836,712 | `@fusion.dev/helix-core`, `@fusion.dev/helix-icons`, `uqr` |
398
+ | `@fusion.dev/helix-headless` | 11,353,229 | 464 | 836,734 | `@fusion.dev/helix-core`, `@fusion.dev/helix-icons`, `uqr` |
399
399
  | `@fusion.dev/helix-icons` | 65,943 | 11 | 20,928 | none |
400
400
  | `@fusion.dev/helix-styles` | 101,139 | 6 | 0 | none |
401
401
  | `@fusion.dev/helix-theme` | 465,413 | 8 | 4,703 | none |
402
- | `@fusion.dev/helix` | 12,458,091 | 796 | 333,797 | `@fusion.dev/helix-core`, `@fusion.dev/helix-headless`, `@fusion.dev/helix-styles` |
402
+ | `@fusion.dev/helix` | 12,470,065 | 796 | 333,806 | `@fusion.dev/helix-core`, `@fusion.dev/helix-headless`, `@fusion.dev/helix-styles` |
403
403
 
404
404
  ## Not measured yet
405
405
 
@@ -87,6 +87,29 @@ write it with nothing painted.
87
87
  and never of controls, which take their height from the region they sit in
88
88
  through `data-density`, so it lives only where something is painted.
89
89
 
90
+ ## When a family takes `neutral`
91
+
92
+ `tone` is the one axis whose vocabulary the table above leaves open, and
93
+ `neutral` is the value families have kept deciding about one at a time. Three
94
+ have argued it at their own declarations and arrived at the same rule, so it
95
+ belongs here once instead.
96
+
97
+ **A family that reports a status takes the status words and stops.** `Callout`
98
+ and `Toast` say it in nearly the same sentence: a callout reports a status and
99
+ never a brand role, so it takes four of the seven. There is no neutral status,
100
+ and a value that could not be drawn is worse than a value that cannot be named.
101
+
102
+ **A family whose resting state is already untoned does not need it.** `Text`
103
+ gives that reason against its own missing `default`: a value matching no rule
104
+ would fall through to the inherited ink and read as working while saying
105
+ nothing. The absent attribute is the resting case and says it better.
106
+
107
+ **`neutral` is for a thing that carries a tone without reporting one**: a gray
108
+ tag beside six colored ones, a button that is a button rather than the primary
109
+ action. `Announcement` spells its own out rather than leaving the attribute off,
110
+ which is what makes the tone sayable rather than only reachable, and that is the
111
+ whole of when this value is worth taking.
112
+
90
113
  ## What each shape is
91
114
 
92
115
  `shape` is the axis whose values are geometries that look alike in a table and
@@ -107,6 +130,27 @@ not on a page, so it is worth saying what each one draws.
107
130
  `square` too, in the same registered axis. Membership is what a check can see,
108
131
  so nothing could have caught that, and a table is what stops it happening again.
109
132
 
133
+ ## What each separation draws
134
+
135
+ `separation` says where a box ends, and `elevated` is the value nearly every
136
+ family leaves out, so it is worth saying what each one draws and what that
137
+ omission is about.
138
+
139
+ | Value | What it draws |
140
+ |---|---|
141
+ | `elevated` | A surface lifted off the page, with a shadow under it |
142
+ | `filled` | A ground of its own, and no edge |
143
+ | `outlined` | An edge over the ground it already has |
144
+ | `plain` | Neither, so the box ends where its content does |
145
+
146
+ **Leaving `elevated` out is a fact about the value rather than about the family
147
+ that skips it.** A shadow says the box floats above the page, which is true of a
148
+ card picked up off a grid and of an announcement laid over the content, and
149
+ false of a row in a feed, a groove a thumb sits in, a checkbox, or a bar across
150
+ a video. A family taking the other three and stopping is following the value,
151
+ not departing from the axis, and owes no argument for it. A family that *does*
152
+ take it is the one saying something, and `Card` and `Announcement` both do.
153
+
110
154
  ## What a step inward means
111
155
 
112
156
  `nesting` is the one axis whose values are three readings of the same fact, so
@@ -123,3 +167,112 @@ depth and quiets the child; `heading` keys on holding children and relabels the
123
167
  parent, which is why a branch at any depth is a heading while the step below
124
168
  stops after one, and why a top-level leaf sitting beside a branch is left alone
125
169
  by both for opposite reasons.
170
+
171
+ ## What each emphasis claims
172
+
173
+ `emphasis` is how loud a control is, and its values are one ladder with a rung
174
+ that changes meaning halfway along, so it is worth saying what each draws.
175
+
176
+ | Value | What it draws |
177
+ |---|---|
178
+ | `solid` | The tone as a full ground, with the ink flipped to read on it |
179
+ | `subtle` | A wash of the tone and no edge, the quietest thing that still has a surface |
180
+ | `outlined` | An edge in the tone |
181
+ | `ghost` | Nothing at rest, the tone carried by the ink alone |
182
+ | `muted` | Quieter ink, where there is no surface to quiet |
183
+
184
+ **`outlined` is the rung that changes.** On a control the edge arrives and the
185
+ fill leaves, which is what makes it quieter than `solid`. On a chart mark the
186
+ fill stays under the edge, because there the area encodes a value and dropping
187
+ it would drop the reading. Both are the same question, how much ink this claims,
188
+ answered by what the thing has to spend it on.
189
+
190
+ **`muted` is for a thing whose only ink is its letterform.** Text carries it and
191
+ nothing else does, because everything else has a surface to quiet first. That is
192
+ a fact about the value, not a gap.
193
+
194
+ ## What each material is made of
195
+
196
+ `material` is one pair of declarations at three strengths, and the pair is the
197
+ point: a translucent ground without a backdrop filter is a smear, and a filter
198
+ behind an opaque ground is invisible. Absent is opaque.
199
+
200
+ | Value | What it draws |
201
+ |---|---|
202
+ | `glass` | A translucent ground and the backdrop filter that makes it read |
203
+ | `frosted` | The same pair turned up, a heavier ground under a heavier blur |
204
+ | `transparent` | Neither, so the page shows through structure and spacing |
205
+
206
+ `frosted` is for a surface that has to stay readable over a busy page. It is not
207
+ "more glass than `glass`" in a theme's sense: a theme owns how strong the pair
208
+ is, and these three are which pair.
209
+
210
+ ## What each orientation turns
211
+
212
+ `orientation` is not paint, which is why it is a value a component reads rather
213
+ than a rule a stylesheet applies: the drag axis, the arrow keys and
214
+ `aria-orientation` all turn with it, and a CSS-only version would look stacked
215
+ while behaving side by side, with the keyboard moving the wrong way.
216
+
217
+ | Value | What it does |
218
+ |---|---|
219
+ | `horizontal` | Lays along the inline axis and says so in `aria-orientation` |
220
+ | `vertical` | Along the block axis, and says that |
221
+ | `auto` | Lets the component decide from the room it has, and turn again when that changes |
222
+
223
+ **`auto` asks the component's own width and never the viewport.** A splitter in a
224
+ 300px panel of a 1400px window has no room for two panes side by side, and a
225
+ media query would hand it the desktop branch, so a `ResizeObserver` on the host
226
+ asks the only question with an honest answer.
227
+
228
+ ## What each size step is
229
+
230
+ `size` is asked of pictures and regions and never of controls, which is the
231
+ domain and not a list of who carries it. The table is worth having because one
232
+ of the four is not a rung of the same kind.
233
+
234
+ | Value | What it draws |
235
+ |---|---|
236
+ | `sm` | The small rung |
237
+ | `md` | The middle one, and the resting case where a family has one |
238
+ | `lg` | The large one |
239
+ | `full` | The region less the same inset every rung already stops short by |
240
+
241
+ **`full` is one more rung and not a second property.** A takeover dialog is the
242
+ same question answered further along, so it belongs on this axis rather than in
243
+ a `fullscreen` boolean beside it, which would be a private spelling of a
244
+ registry question.
245
+
246
+ ## What each tone means
247
+
248
+ `tone` is the one axis whose cell in the table above is prose rather than a
249
+ list, because a page naming four of the seven reads better than a page reciting
250
+ all of them. The seven are still fixed, and this is where they are said.
251
+
252
+ | Value | What it means |
253
+ |---|---|
254
+ | `primary` | The main action, or the brand speaking in its own voice |
255
+ | `accent` | The second brand voice, for a thing that must not read as primary |
256
+ | `neutral` | A tone that reports no status |
257
+ | `info` | Worth knowing, with nothing to do about it |
258
+ | `success` | Finished, or correct |
259
+ | `warning` | May go wrong, or needs attention before it does |
260
+ | `danger` | Destructive, or already wrong |
261
+
262
+ The first three are intent and the last four are status, which is the split a
263
+ family is really choosing between when it takes a subset. See above for when
264
+ `neutral` is worth taking.
265
+
266
+ ## What each width policy is
267
+
268
+ `width` here is a policy, not a measurement: two buttons sitting together may
269
+ legitimately differ, which is the test that keeps this off `size`.
270
+
271
+ | Value | What it draws |
272
+ |---|---|
273
+ | `auto` | As wide as its content, the resting behavior said out loud |
274
+ | `full` | The whole of the inline space its parent offers |
275
+
276
+ **A `width` taking a number is a different property wearing the same name.** A
277
+ canvas and a table column are measured rather than given a policy, so they take
278
+ a length and are not on this axis. The name is shared and the question is not.
@@ -2359,11 +2359,11 @@ column is what was removed rather than part of what remains.
2359
2359
  | Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
2360
2360
  |---|---|---|---|---|
2361
2361
  | \`@fusion.dev/helix-core\` | 983,274 | 153 | 222,331 | \`@floating-ui/dom\`, \`@fusion.dev/helix-icons\` |
2362
- | \`@fusion.dev/helix-headless\` | 11,342,927 | 464 | 836,712 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-icons\`, \`uqr\` |
2362
+ | \`@fusion.dev/helix-headless\` | 11,353,229 | 464 | 836,734 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-icons\`, \`uqr\` |
2363
2363
  | \`@fusion.dev/helix-icons\` | 65,943 | 11 | 20,928 | none |
2364
2364
  | \`@fusion.dev/helix-styles\` | 101,139 | 6 | 0 | none |
2365
2365
  | \`@fusion.dev/helix-theme\` | 465,413 | 8 | 4,703 | none |
2366
- | \`@fusion.dev/helix\` | 12,458,091 | 796 | 333,797 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-headless\`, \`@fusion.dev/helix-styles\` |
2366
+ | \`@fusion.dev/helix\` | 12,470,065 | 796 | 333,806 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-headless\`, \`@fusion.dev/helix-styles\` |
2367
2367
 
2368
2368
  ## Not measured yet
2369
2369
 
@@ -5156,6 +5156,29 @@ write it with nothing painted.
5156
5156
  and never of controls, which take their height from the region they sit in
5157
5157
  through \`data-density\`, so it lives only where something is painted.
5158
5158
 
5159
+ ## When a family takes \`neutral\`
5160
+
5161
+ \`tone\` is the one axis whose vocabulary the table above leaves open, and
5162
+ \`neutral\` is the value families have kept deciding about one at a time. Three
5163
+ have argued it at their own declarations and arrived at the same rule, so it
5164
+ belongs here once instead.
5165
+
5166
+ **A family that reports a status takes the status words and stops.** \`Callout\`
5167
+ and \`Toast\` say it in nearly the same sentence: a callout reports a status and
5168
+ never a brand role, so it takes four of the seven. There is no neutral status,
5169
+ and a value that could not be drawn is worse than a value that cannot be named.
5170
+
5171
+ **A family whose resting state is already untoned does not need it.** \`Text\`
5172
+ gives that reason against its own missing \`default\`: a value matching no rule
5173
+ would fall through to the inherited ink and read as working while saying
5174
+ nothing. The absent attribute is the resting case and says it better.
5175
+
5176
+ **\`neutral\` is for a thing that carries a tone without reporting one**: a gray
5177
+ tag beside six colored ones, a button that is a button rather than the primary
5178
+ action. \`Announcement\` spells its own out rather than leaving the attribute off,
5179
+ which is what makes the tone sayable rather than only reachable, and that is the
5180
+ whole of when this value is worth taking.
5181
+
5159
5182
  ## What each shape is
5160
5183
 
5161
5184
  \`shape\` is the axis whose values are geometries that look alike in a table and
@@ -5176,6 +5199,27 @@ not on a page, so it is worth saying what each one draws.
5176
5199
  \`square\` too, in the same registered axis. Membership is what a check can see,
5177
5200
  so nothing could have caught that, and a table is what stops it happening again.
5178
5201
 
5202
+ ## What each separation draws
5203
+
5204
+ \`separation\` says where a box ends, and \`elevated\` is the value nearly every
5205
+ family leaves out, so it is worth saying what each one draws and what that
5206
+ omission is about.
5207
+
5208
+ | Value | What it draws |
5209
+ |---|---|
5210
+ | \`elevated\` | A surface lifted off the page, with a shadow under it |
5211
+ | \`filled\` | A ground of its own, and no edge |
5212
+ | \`outlined\` | An edge over the ground it already has |
5213
+ | \`plain\` | Neither, so the box ends where its content does |
5214
+
5215
+ **Leaving \`elevated\` out is a fact about the value rather than about the family
5216
+ that skips it.** A shadow says the box floats above the page, which is true of a
5217
+ card picked up off a grid and of an announcement laid over the content, and
5218
+ false of a row in a feed, a groove a thumb sits in, a checkbox, or a bar across
5219
+ a video. A family taking the other three and stopping is following the value,
5220
+ not departing from the axis, and owes no argument for it. A family that *does*
5221
+ take it is the one saying something, and \`Card\` and \`Announcement\` both do.
5222
+
5179
5223
  ## What a step inward means
5180
5224
 
5181
5225
  \`nesting\` is the one axis whose values are three readings of the same fact, so
@@ -5192,6 +5236,115 @@ depth and quiets the child; \`heading\` keys on holding children and relabels th
5192
5236
  parent, which is why a branch at any depth is a heading while the step below
5193
5237
  stops after one, and why a top-level leaf sitting beside a branch is left alone
5194
5238
  by both for opposite reasons.
5239
+
5240
+ ## What each emphasis claims
5241
+
5242
+ \`emphasis\` is how loud a control is, and its values are one ladder with a rung
5243
+ that changes meaning halfway along, so it is worth saying what each draws.
5244
+
5245
+ | Value | What it draws |
5246
+ |---|---|
5247
+ | \`solid\` | The tone as a full ground, with the ink flipped to read on it |
5248
+ | \`subtle\` | A wash of the tone and no edge, the quietest thing that still has a surface |
5249
+ | \`outlined\` | An edge in the tone |
5250
+ | \`ghost\` | Nothing at rest, the tone carried by the ink alone |
5251
+ | \`muted\` | Quieter ink, where there is no surface to quiet |
5252
+
5253
+ **\`outlined\` is the rung that changes.** On a control the edge arrives and the
5254
+ fill leaves, which is what makes it quieter than \`solid\`. On a chart mark the
5255
+ fill stays under the edge, because there the area encodes a value and dropping
5256
+ it would drop the reading. Both are the same question, how much ink this claims,
5257
+ answered by what the thing has to spend it on.
5258
+
5259
+ **\`muted\` is for a thing whose only ink is its letterform.** Text carries it and
5260
+ nothing else does, because everything else has a surface to quiet first. That is
5261
+ a fact about the value, not a gap.
5262
+
5263
+ ## What each material is made of
5264
+
5265
+ \`material\` is one pair of declarations at three strengths, and the pair is the
5266
+ point: a translucent ground without a backdrop filter is a smear, and a filter
5267
+ behind an opaque ground is invisible. Absent is opaque.
5268
+
5269
+ | Value | What it draws |
5270
+ |---|---|
5271
+ | \`glass\` | A translucent ground and the backdrop filter that makes it read |
5272
+ | \`frosted\` | The same pair turned up, a heavier ground under a heavier blur |
5273
+ | \`transparent\` | Neither, so the page shows through structure and spacing |
5274
+
5275
+ \`frosted\` is for a surface that has to stay readable over a busy page. It is not
5276
+ "more glass than \`glass\`" in a theme's sense: a theme owns how strong the pair
5277
+ is, and these three are which pair.
5278
+
5279
+ ## What each orientation turns
5280
+
5281
+ \`orientation\` is not paint, which is why it is a value a component reads rather
5282
+ than a rule a stylesheet applies: the drag axis, the arrow keys and
5283
+ \`aria-orientation\` all turn with it, and a CSS-only version would look stacked
5284
+ while behaving side by side, with the keyboard moving the wrong way.
5285
+
5286
+ | Value | What it does |
5287
+ |---|---|
5288
+ | \`horizontal\` | Lays along the inline axis and says so in \`aria-orientation\` |
5289
+ | \`vertical\` | Along the block axis, and says that |
5290
+ | \`auto\` | Lets the component decide from the room it has, and turn again when that changes |
5291
+
5292
+ **\`auto\` asks the component's own width and never the viewport.** A splitter in a
5293
+ 300px panel of a 1400px window has no room for two panes side by side, and a
5294
+ media query would hand it the desktop branch, so a \`ResizeObserver\` on the host
5295
+ asks the only question with an honest answer.
5296
+
5297
+ ## What each size step is
5298
+
5299
+ \`size\` is asked of pictures and regions and never of controls, which is the
5300
+ domain and not a list of who carries it. The table is worth having because one
5301
+ of the four is not a rung of the same kind.
5302
+
5303
+ | Value | What it draws |
5304
+ |---|---|
5305
+ | \`sm\` | The small rung |
5306
+ | \`md\` | The middle one, and the resting case where a family has one |
5307
+ | \`lg\` | The large one |
5308
+ | \`full\` | The region less the same inset every rung already stops short by |
5309
+
5310
+ **\`full\` is one more rung and not a second property.** A takeover dialog is the
5311
+ same question answered further along, so it belongs on this axis rather than in
5312
+ a \`fullscreen\` boolean beside it, which would be a private spelling of a
5313
+ registry question.
5314
+
5315
+ ## What each tone means
5316
+
5317
+ \`tone\` is the one axis whose cell in the table above is prose rather than a
5318
+ list, because a page naming four of the seven reads better than a page reciting
5319
+ all of them. The seven are still fixed, and this is where they are said.
5320
+
5321
+ | Value | What it means |
5322
+ |---|---|
5323
+ | \`primary\` | The main action, or the brand speaking in its own voice |
5324
+ | \`accent\` | The second brand voice, for a thing that must not read as primary |
5325
+ | \`neutral\` | A tone that reports no status |
5326
+ | \`info\` | Worth knowing, with nothing to do about it |
5327
+ | \`success\` | Finished, or correct |
5328
+ | \`warning\` | May go wrong, or needs attention before it does |
5329
+ | \`danger\` | Destructive, or already wrong |
5330
+
5331
+ The first three are intent and the last four are status, which is the split a
5332
+ family is really choosing between when it takes a subset. See above for when
5333
+ \`neutral\` is worth taking.
5334
+
5335
+ ## What each width policy is
5336
+
5337
+ \`width\` here is a policy, not a measurement: two buttons sitting together may
5338
+ legitimately differ, which is the test that keeps this off \`size\`.
5339
+
5340
+ | Value | What it draws |
5341
+ |---|---|
5342
+ | \`auto\` | As wide as its content, the resting behavior said out loud |
5343
+ | \`full\` | The whole of the inline space its parent offers |
5344
+
5345
+ **A \`width\` taking a number is a different property wearing the same name.** A
5346
+ canvas and a table column are measured rather than given a policy, so they take
5347
+ a length and are not on this axis. The name is shared and the question is not.
5195
5348
  `,
5196
5349
  vue: `---
5197
5350
  description: The one compiler setting Vue needs, and why props and events already work.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix-docs",
3
3
  "description": "Versioned documentation content and registry for Helix.",
4
- "version": "0.59.1",
4
+ "version": "0.59.3",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -36,8 +36,8 @@
36
36
  },
37
37
  "bugs": "https://github.com/project-fusion/fusion/issues",
38
38
  "devDependencies": {
39
- "@fusion.dev/helix-cem": "0.59.1",
40
- "@fusion.dev/helix-testing": "0.59.1",
39
+ "@fusion.dev/helix-cem": "0.59.3",
40
+ "@fusion.dev/helix-testing": "0.59.3",
41
41
  "@fusion.dev/scripts": "0.0.0-dev",
42
42
  "lit": "^3.2.1",
43
43
  "playwright": "^1.62.1"