@fusion.dev/helix 0.181.1 → 0.182.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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix",
3
3
  "description": "Styled component tier. Extends the headless tier with token-driven presentation.",
4
- "version": "0.181.1",
4
+ "version": "0.182.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -54,13 +54,13 @@
54
54
  },
55
55
  "bugs": "https://github.com/project-fusion/fusion/issues",
56
56
  "dependencies": {
57
- "@fusion.dev/helix-core": "0.181.1",
58
- "@fusion.dev/helix-headless": "0.181.1",
59
- "@fusion.dev/helix-styles": "0.181.1"
57
+ "@fusion.dev/helix-core": "0.182.0",
58
+ "@fusion.dev/helix-headless": "0.182.0",
59
+ "@fusion.dev/helix-styles": "0.182.0"
60
60
  },
61
61
  "devDependencies": {
62
- "@fusion.dev/helix-cem": "0.181.1",
63
- "@fusion.dev/helix-testing": "0.181.1",
62
+ "@fusion.dev/helix-cem": "0.182.0",
63
+ "@fusion.dev/helix-testing": "0.182.0",
64
64
  "@fusion.dev/scripts": "0.0.0-dev",
65
65
  "@happy-dom/global-registrator": "^20.14.5",
66
66
  "@lit-labs/ssr": "^4.1.0",
package/types/jsx.d.ts CHANGED
@@ -33817,9 +33817,10 @@ range. The strands at the front of the ribbon's roll are drawn thicker,
33817
33817
  brighter, and further from its axis, and those at the back thinner, dimmer,
33818
33818
  and out of focus. */
33819
33819
  depth?: (HelixStrands["depth"]) | undefined;
33820
- /** How differently each strand moves, from `0`, the whole ribbon rolling and
33821
- waving as one, to `1`, each strand at its own pace and angle, crossing
33822
- over the others. Clamped to that range. */
33820
+ /** How differently the strands move across the ribbon, from `0`, the whole
33821
+ ribbon rolling and waving as one, to `1`, its edges flowing at their own
33822
+ pace past its middle. Neighbors always move together, so no strand leaves
33823
+ its lane. Clamped to that range. */
33823
33824
  drift?: (HelixStrands["drift"]) | undefined;
33824
33825
  /** How many specks of dust drift around the strands, as a multiplier: `0`
33825
33826
  draws none, `1` six hundred, and `4`, the most, two thousand four
@@ -33827,6 +33828,11 @@ hundred. They gather where the ribbon is brightest. */
33827
33828
  dust?: (HelixStrands["dust"]) | undefined;
33828
33829
  /** Overall brightness, as a multiplier on the light. */
33829
33830
  gain?: (HelixStrands["gain"]) | undefined;
33831
+ /** The ids of elements the light dims behind, separated by spaces, such as
33832
+ a hero's words. Inside each, the ribbon keeps a faint glow, so words over
33833
+ it stay crisp and nothing busy runs under them, and it eases back to full
33834
+ a short way past each edge. Up to four; ids that name nothing are skipped. */
33835
+ quiet?: (HelixStrands["quiet"]) | undefined;
33830
33836
  /** The share of strands drawn out of focus where the ribbon is wide, from `0`,
33831
33837
  every strand sharp, to `1`, every one soft. Clamped to that range. A tight
33832
33838
  form, such as a bend's apex or a wave, stays sharp whatever this says. */
@@ -33876,9 +33882,10 @@ range. The strands at the front of the ribbon's roll are drawn thicker,
33876
33882
  brighter, and further from its axis, and those at the back thinner, dimmer,
33877
33883
  and out of focus. */
33878
33884
  "prop:depth"?: (HelixStrands["depth"]) | undefined;
33879
- /** How differently each strand moves, from `0`, the whole ribbon rolling and
33880
- waving as one, to `1`, each strand at its own pace and angle, crossing
33881
- over the others. Clamped to that range. */
33885
+ /** How differently the strands move across the ribbon, from `0`, the whole
33886
+ ribbon rolling and waving as one, to `1`, its edges flowing at their own
33887
+ pace past its middle. Neighbors always move together, so no strand leaves
33888
+ its lane. Clamped to that range. */
33882
33889
  "prop:drift"?: (HelixStrands["drift"]) | undefined;
33883
33890
  /** How many specks of dust drift around the strands, as a multiplier: `0`
33884
33891
  draws none, `1` six hundred, and `4`, the most, two thousand four
@@ -33886,6 +33893,11 @@ hundred. They gather where the ribbon is brightest. */
33886
33893
  "prop:dust"?: (HelixStrands["dust"]) | undefined;
33887
33894
  /** Overall brightness, as a multiplier on the light. */
33888
33895
  "prop:gain"?: (HelixStrands["gain"]) | undefined;
33896
+ /** The ids of elements the light dims behind, separated by spaces, such as
33897
+ a hero's words. Inside each, the ribbon keeps a faint glow, so words over
33898
+ it stay crisp and nothing busy runs under them, and it eases back to full
33899
+ a short way past each edge. Up to four; ids that name nothing are skipped. */
33900
+ "prop:quiet"?: (HelixStrands["quiet"]) | undefined;
33889
33901
  /** The share of strands drawn out of focus where the ribbon is wide, from `0`,
33890
33902
  every strand sharp, to `1`, every one soft. Clamped to that range. A tight
33891
33903
  form, such as a bend's apex or a wave, stays sharp whatever this says. */
@@ -44118,6 +44130,13 @@ export type CustomElements = {
44118
44130
  * - `--chart-stroke`: Thickness of a `lines` series. Bar Chart, Line Chart, and the top edge of Area Chart share this property. `--bar-chart-line-width` overrides it here.
44119
44131
  * - `--bar-chart-axis`: The width of an axis, in `ch`, set from the widest number on it. The chart sets it on the axis itself, and only when the categories run along the bottom. In a horizontal chart the axis is a row, one line high.
44120
44132
  * - `--bar-chart-secondary`: The color of the secondary axis, when one series is on it. The chart sets it from that series' `--chart-series-*` property, so the axis is drawn in whatever color that property resolves to.
44133
+ * - `--bar-chart-tone-accent`: The color of a bar whose cell says `data-tone="accent"`.
44134
+ * - `--bar-chart-tone-danger`: The color of a bar whose cell says `data-tone="danger"`.
44135
+ * - `--bar-chart-tone-info`: The color of a bar whose cell says `data-tone="info"`.
44136
+ * - `--bar-chart-tone-muted`: The color of a bar whose cell says `data-tone="muted"`.
44137
+ * - `--bar-chart-tone-primary`: The color of a bar whose cell says `data-tone="primary"`. A tone with no property of its own falls back to the bar's series color, and the same holds for a name you define.
44138
+ * - `--bar-chart-tone-success`: The color of a bar whose cell says `data-tone="success"`.
44139
+ * - `--bar-chart-tone-warning`: The color of a bar whose cell says `data-tone="warning"`.
44121
44140
  * - `--chart-bar-wash`: The gradient for a bar, named per bar so the styled tier can use it as the `fill`. It is always drawn, and used only when `wash="gradient"` is set.
44122
44141
  *
44123
44142
  * ## CSS Parts
@@ -65980,9 +65999,15 @@ export type CustomElements = {
65980
65999
  * `--helix-color-background`. On a light page the light becomes ink, because
65981
66000
  * light added to near-white cannot be seen.
65982
66001
  *
65983
- * **Three forms, set with `variant`.** `bend` turns bright strands through one tight point, with its
65984
- * arms opening to the right. `ribbon`, the default, is a broad, soft ribbon in
65985
- * long curves. `waves` is sharp strands crossing the full width.
66002
+ * **Four forms, set with `variant`.** `bend` turns bright strands through one
66003
+ * tight point, with its arms opening to the right. `ribbon`, the default, is a
66004
+ * broad, soft ribbon in long curves. `sweep` enters at a top corner, the one
66005
+ * `at` is nearer, and crosses in one diagonal to the far side. `waves` is sharp
66006
+ * strands crossing the full width.
66007
+ *
66008
+ * **Quiet behind words.** `quiet` names elements, such as a hero's words, that
66009
+ * the light dims behind to a faint glow, so a bright ribbon can cross the page
66010
+ * under them and they stay crisp.
65986
66011
  *
65987
66012
  * **In its own box, by default.** The element fills the box it is given, the
65988
66013
  * way an image does, and `at` places the bend's apex or the ribbon's axis across
@@ -66034,13 +66059,18 @@ export type CustomElements = {
66034
66059
  * range. The strands at the front of the ribbon's roll are drawn thicker,
66035
66060
  * brighter, and further from its axis, and those at the back thinner, dimmer,
66036
66061
  * and out of focus.
66037
- * - `drift`: How differently each strand moves, from `0`, the whole ribbon rolling and
66038
- * waving as one, to `1`, each strand at its own pace and angle, crossing
66039
- * over the others. Clamped to that range.
66062
+ * - `drift`: How differently the strands move across the ribbon, from `0`, the whole
66063
+ * ribbon rolling and waving as one, to `1`, its edges flowing at their own
66064
+ * pace past its middle. Neighbors always move together, so no strand leaves
66065
+ * its lane. Clamped to that range.
66040
66066
  * - `dust`: How many specks of dust drift around the strands, as a multiplier: `0`
66041
66067
  * draws none, `1` six hundred, and `4`, the most, two thousand four
66042
66068
  * hundred. They gather where the ribbon is brightest.
66043
66069
  * - `gain`: Overall brightness, as a multiplier on the light.
66070
+ * - `quiet`: The ids of elements the light dims behind, separated by spaces, such as
66071
+ * a hero's words. Inside each, the ribbon keeps a faint glow, so words over
66072
+ * it stay crisp and nothing busy runs under them, and it eases back to full
66073
+ * a short way past each edge. Up to four; ids that name nothing are skipped.
66044
66074
  * - `softness`: The share of strands drawn out of focus where the ribbon is wide, from `0`,
66045
66075
  * every strand sharp, to `1`, every one soft. Clamped to that range. A tight
66046
66076
  * form, such as a bend's apex or a wave, stays sharp whatever this says.
@@ -66116,9 +66146,11 @@ export type CustomElements = {
66116
66146
  /**
66117
66147
  * Placed inside a `helix-strands` with `travel`, a stop names an element with
66118
66148
  * `for` and says which form the ribbon takes when the page reaches it: a `bend`
66119
- * turning through it, a `ribbon` passing through `at`, or `waves` crossing at
66120
- * its top edge. The stops are read in page order, whatever order they are
66121
- * written in, and a stop naming no element is skipped.
66149
+ * turning through it, a `ribbon` passing through `at`, a `sweep` crossing in one
66150
+ * diagonal from the page's top corner on the side `at` is nearer to the
66151
+ * element's far top corner, or `waves` crossing at its top edge. The stops are
66152
+ * read in page order, whatever order they are written in, and a stop naming no
66153
+ * element is skipped.
66122
66154
  *
66123
66155
  * A stop draws nothing itself and is never shown.
66124
66156
  *
@@ -73833,6 +73865,13 @@ export type CustomElementsSolidJs = {
73833
73865
  * - `--chart-stroke`: Thickness of a `lines` series. Bar Chart, Line Chart, and the top edge of Area Chart share this property. `--bar-chart-line-width` overrides it here.
73834
73866
  * - `--bar-chart-axis`: The width of an axis, in `ch`, set from the widest number on it. The chart sets it on the axis itself, and only when the categories run along the bottom. In a horizontal chart the axis is a row, one line high.
73835
73867
  * - `--bar-chart-secondary`: The color of the secondary axis, when one series is on it. The chart sets it from that series' `--chart-series-*` property, so the axis is drawn in whatever color that property resolves to.
73868
+ * - `--bar-chart-tone-accent`: The color of a bar whose cell says `data-tone="accent"`.
73869
+ * - `--bar-chart-tone-danger`: The color of a bar whose cell says `data-tone="danger"`.
73870
+ * - `--bar-chart-tone-info`: The color of a bar whose cell says `data-tone="info"`.
73871
+ * - `--bar-chart-tone-muted`: The color of a bar whose cell says `data-tone="muted"`.
73872
+ * - `--bar-chart-tone-primary`: The color of a bar whose cell says `data-tone="primary"`. A tone with no property of its own falls back to the bar's series color, and the same holds for a name you define.
73873
+ * - `--bar-chart-tone-success`: The color of a bar whose cell says `data-tone="success"`.
73874
+ * - `--bar-chart-tone-warning`: The color of a bar whose cell says `data-tone="warning"`.
73836
73875
  * - `--chart-bar-wash`: The gradient for a bar, named per bar so the styled tier can use it as the `fill`. It is always drawn, and used only when `wash="gradient"` is set.
73837
73876
  *
73838
73877
  * ## CSS Parts
@@ -96053,9 +96092,15 @@ export type CustomElementsSolidJs = {
96053
96092
  * `--helix-color-background`. On a light page the light becomes ink, because
96054
96093
  * light added to near-white cannot be seen.
96055
96094
  *
96056
- * **Three forms, set with `variant`.** `bend` turns bright strands through one tight point, with its
96057
- * arms opening to the right. `ribbon`, the default, is a broad, soft ribbon in
96058
- * long curves. `waves` is sharp strands crossing the full width.
96095
+ * **Four forms, set with `variant`.** `bend` turns bright strands through one
96096
+ * tight point, with its arms opening to the right. `ribbon`, the default, is a
96097
+ * broad, soft ribbon in long curves. `sweep` enters at a top corner, the one
96098
+ * `at` is nearer, and crosses in one diagonal to the far side. `waves` is sharp
96099
+ * strands crossing the full width.
96100
+ *
96101
+ * **Quiet behind words.** `quiet` names elements, such as a hero's words, that
96102
+ * the light dims behind to a faint glow, so a bright ribbon can cross the page
96103
+ * under them and they stay crisp.
96059
96104
  *
96060
96105
  * **In its own box, by default.** The element fills the box it is given, the
96061
96106
  * way an image does, and `at` places the bend's apex or the ribbon's axis across
@@ -96107,13 +96152,18 @@ export type CustomElementsSolidJs = {
96107
96152
  * range. The strands at the front of the ribbon's roll are drawn thicker,
96108
96153
  * brighter, and further from its axis, and those at the back thinner, dimmer,
96109
96154
  * and out of focus.
96110
- * - `drift`: How differently each strand moves, from `0`, the whole ribbon rolling and
96111
- * waving as one, to `1`, each strand at its own pace and angle, crossing
96112
- * over the others. Clamped to that range.
96155
+ * - `drift`: How differently the strands move across the ribbon, from `0`, the whole
96156
+ * ribbon rolling and waving as one, to `1`, its edges flowing at their own
96157
+ * pace past its middle. Neighbors always move together, so no strand leaves
96158
+ * its lane. Clamped to that range.
96113
96159
  * - `dust`: How many specks of dust drift around the strands, as a multiplier: `0`
96114
96160
  * draws none, `1` six hundred, and `4`, the most, two thousand four
96115
96161
  * hundred. They gather where the ribbon is brightest.
96116
96162
  * - `gain`: Overall brightness, as a multiplier on the light.
96163
+ * - `quiet`: The ids of elements the light dims behind, separated by spaces, such as
96164
+ * a hero's words. Inside each, the ribbon keeps a faint glow, so words over
96165
+ * it stay crisp and nothing busy runs under them, and it eases back to full
96166
+ * a short way past each edge. Up to four; ids that name nothing are skipped.
96117
96167
  * - `softness`: The share of strands drawn out of focus where the ribbon is wide, from `0`,
96118
96168
  * every strand sharp, to `1`, every one soft. Clamped to that range. A tight
96119
96169
  * form, such as a bend's apex or a wave, stays sharp whatever this says.
@@ -96192,9 +96242,11 @@ export type CustomElementsSolidJs = {
96192
96242
  /**
96193
96243
  * Placed inside a `helix-strands` with `travel`, a stop names an element with
96194
96244
  * `for` and says which form the ribbon takes when the page reaches it: a `bend`
96195
- * turning through it, a `ribbon` passing through `at`, or `waves` crossing at
96196
- * its top edge. The stops are read in page order, whatever order they are
96197
- * written in, and a stop naming no element is skipped.
96245
+ * turning through it, a `ribbon` passing through `at`, a `sweep` crossing in one
96246
+ * diagonal from the page's top corner on the side `at` is nearer to the
96247
+ * element's far top corner, or `waves` crossing at its top edge. The stops are
96248
+ * read in page order, whatever order they are written in, and a stop naming no
96249
+ * element is skipped.
96198
96250
  *
96199
96251
  * A stop draws nothing itself and is never shown.
96200
96252
  *
@@ -102296,6 +102348,20 @@ export type CustomCssProperties = {
102296
102348
  "--bar-chart-axis"?: (string) | undefined;
102297
102349
  /** The color of the secondary axis, when one series is on it. The chart sets it from that series' `--chart-series-*` property, so the axis is drawn in whatever color that property resolves to. */
102298
102350
  "--bar-chart-secondary"?: (string) | undefined;
102351
+ /** The color of a bar whose cell says `data-tone="accent"`. */
102352
+ "--bar-chart-tone-accent"?: (string) | undefined;
102353
+ /** The color of a bar whose cell says `data-tone="danger"`. */
102354
+ "--bar-chart-tone-danger"?: (string) | undefined;
102355
+ /** The color of a bar whose cell says `data-tone="info"`. */
102356
+ "--bar-chart-tone-info"?: (string) | undefined;
102357
+ /** The color of a bar whose cell says `data-tone="muted"`. */
102358
+ "--bar-chart-tone-muted"?: (string) | undefined;
102359
+ /** The color of a bar whose cell says `data-tone="primary"`. A tone with no property of its own falls back to the bar's series color, and the same holds for a name you define. */
102360
+ "--bar-chart-tone-primary"?: (string) | undefined;
102361
+ /** The color of a bar whose cell says `data-tone="success"`. */
102362
+ "--bar-chart-tone-success"?: (string) | undefined;
102363
+ /** The color of a bar whose cell says `data-tone="warning"`. */
102364
+ "--bar-chart-tone-warning"?: (string) | undefined;
102299
102365
  /** The gradient for a bar, named per bar so the styled tier can use it as the `fill`. It is always drawn, and used only when `wash="gradient"` is set. */
102300
102366
  "--chart-bar-wash"?: (string) | undefined;
102301
102367
  /** The color of the attribution. */
package/types/vue.d.ts CHANGED
@@ -17353,9 +17353,10 @@ range. The strands at the front of the ribbon's roll are drawn thicker,
17353
17353
  brighter, and further from its axis, and those at the back thinner, dimmer,
17354
17354
  and out of focus. */
17355
17355
  depth?: (HelixStrands["depth"]) | undefined;
17356
- /** How differently each strand moves, from `0`, the whole ribbon rolling and
17357
- waving as one, to `1`, each strand at its own pace and angle, crossing
17358
- over the others. Clamped to that range. */
17356
+ /** How differently the strands move across the ribbon, from `0`, the whole
17357
+ ribbon rolling and waving as one, to `1`, its edges flowing at their own
17358
+ pace past its middle. Neighbors always move together, so no strand leaves
17359
+ its lane. Clamped to that range. */
17359
17360
  drift?: (HelixStrands["drift"]) | undefined;
17360
17361
  /** How many specks of dust drift around the strands, as a multiplier: `0`
17361
17362
  draws none, `1` six hundred, and `4`, the most, two thousand four
@@ -17363,6 +17364,11 @@ hundred. They gather where the ribbon is brightest. */
17363
17364
  dust?: (HelixStrands["dust"]) | undefined;
17364
17365
  /** Overall brightness, as a multiplier on the light. */
17365
17366
  gain?: (HelixStrands["gain"]) | undefined;
17367
+ /** The ids of elements the light dims behind, separated by spaces, such as
17368
+ a hero's words. Inside each, the ribbon keeps a faint glow, so words over
17369
+ it stay crisp and nothing busy runs under them, and it eases back to full
17370
+ a short way past each edge. Up to four; ids that name nothing are skipped. */
17371
+ quiet?: (HelixStrands["quiet"]) | undefined;
17366
17372
  /** The share of strands drawn out of focus where the ribbon is wide, from `0`,
17367
17373
  every strand sharp, to `1`, every one soft. Clamped to that range. A tight
17368
17374
  form, such as a bend's apex or a wave, stays sharp whatever this says. */
@@ -21815,6 +21821,20 @@ export type CustomCssProperties = {
21815
21821
  "--bar-chart-axis"?: (string) | undefined;
21816
21822
  /** The color of the secondary axis, when one series is on it. The chart sets it from that series' `--chart-series-*` property, so the axis is drawn in whatever color that property resolves to. */
21817
21823
  "--bar-chart-secondary"?: (string) | undefined;
21824
+ /** The color of a bar whose cell says `data-tone="accent"`. */
21825
+ "--bar-chart-tone-accent"?: (string) | undefined;
21826
+ /** The color of a bar whose cell says `data-tone="danger"`. */
21827
+ "--bar-chart-tone-danger"?: (string) | undefined;
21828
+ /** The color of a bar whose cell says `data-tone="info"`. */
21829
+ "--bar-chart-tone-info"?: (string) | undefined;
21830
+ /** The color of a bar whose cell says `data-tone="muted"`. */
21831
+ "--bar-chart-tone-muted"?: (string) | undefined;
21832
+ /** The color of a bar whose cell says `data-tone="primary"`. A tone with no property of its own falls back to the bar's series color, and the same holds for a name you define. */
21833
+ "--bar-chart-tone-primary"?: (string) | undefined;
21834
+ /** The color of a bar whose cell says `data-tone="success"`. */
21835
+ "--bar-chart-tone-success"?: (string) | undefined;
21836
+ /** The color of a bar whose cell says `data-tone="warning"`. */
21837
+ "--bar-chart-tone-warning"?: (string) | undefined;
21818
21838
  /** The gradient for a bar, named per bar so the styled tier can use it as the `fill`. It is always drawn, and used only when `wash="gradient"` is set. */
21819
21839
  "--chart-bar-wash"?: (string) | undefined;
21820
21840
  /** The color of the attribution. */
@@ -24975,13 +24995,13 @@ export interface WcToolkitVueGlobalComponents {
24975
24995
  HelixStepVueProps,
24976
24996
  HelixStepVueEvents
24977
24997
  >;
24978
- /** Hundreds of thin strands are drawn as one ribbon, and the light they add together is bloomed, so where they converge the ribbon burns hot. The ribbon moves on its own all the time: it sways and breathes, its strands wave and roll over one another, and light runs along them. Its palette comes from the tokens. The strands are '--helix-color-primary', a few are '--helix-color-accent' for depth, and the page they light is '--helix-color-background'. On a light page the light becomes ink, because light added to near-white cannot be seen. **Three forms, set with 'variant'.** 'bend' turns bright strands through one tight point, with its arms opening to the right. 'ribbon', the default, is a broad, soft ribbon in long curves. 'waves' is sharp strands crossing the full width. **In its own box, by default.** The element fills the box it is given, the way an image does, and 'at' places the bend's apex or the ribbon's axis across it. Content placed inside sits over the ribbon, in the 'content' part. **Down the whole page, with 'travel'.** The element fixes itself behind the page, on '--helix-layer-beneath', and lays one ribbon from the top of the page to the bottom, so scrolling travels along it. Put 'helix-strands-stop' elements inside to pin a form to a section: each names an element with 'for' and says which form the ribbon takes there. Between stops the ribbon fills the gap in its own 'variant', and between two waves less than a screen and a half apart it turns off screen so each wave reads alone. Set 'z-index' on the element to move it. The ribbon stops moving in these cases: - 'prefers-reduced-motion' is set. The element shows one still frame, and in 'travel' still follows the scroll, without easing. - The element is off screen or in a background tab. It shows a gradient from the same tokens in these cases, and matches ':state(fallback)' and sends 'helix-strands-fallback' with the reason: - The renderer draws on the CPU, such as a headless browser or a machine with no usable GPU. - There is no WebGL, or the browser took the drawing context back. Strands is styled only and has behavior, as 'Aura' does: its behavior is drawing to a canvas, so there is no structure for a headless version to hold. */
24998
+ /** Hundreds of thin strands are drawn as one ribbon, and the light they add together is bloomed, so where they converge the ribbon burns hot. The ribbon moves on its own all the time: it sways and breathes, its strands wave and roll over one another, and light runs along them. Its palette comes from the tokens. The strands are '--helix-color-primary', a few are '--helix-color-accent' for depth, and the page they light is '--helix-color-background'. On a light page the light becomes ink, because light added to near-white cannot be seen. **Four forms, set with 'variant'.** 'bend' turns bright strands through one tight point, with its arms opening to the right. 'ribbon', the default, is a broad, soft ribbon in long curves. 'sweep' enters at a top corner, the one 'at' is nearer, and crosses in one diagonal to the far side. 'waves' is sharp strands crossing the full width. **Quiet behind words.** 'quiet' names elements, such as a hero's words, that the light dims behind to a faint glow, so a bright ribbon can cross the page under them and they stay crisp. **In its own box, by default.** The element fills the box it is given, the way an image does, and 'at' places the bend's apex or the ribbon's axis across it. Content placed inside sits over the ribbon, in the 'content' part. **Down the whole page, with 'travel'.** The element fixes itself behind the page, on '--helix-layer-beneath', and lays one ribbon from the top of the page to the bottom, so scrolling travels along it. Put 'helix-strands-stop' elements inside to pin a form to a section: each names an element with 'for' and says which form the ribbon takes there. Between stops the ribbon fills the gap in its own 'variant', and between two waves less than a screen and a half apart it turns off screen so each wave reads alone. Set 'z-index' on the element to move it. The ribbon stops moving in these cases: - 'prefers-reduced-motion' is set. The element shows one still frame, and in 'travel' still follows the scroll, without easing. - The element is off screen or in a background tab. It shows a gradient from the same tokens in these cases, and matches ':state(fallback)' and sends 'helix-strands-fallback' with the reason: - The renderer draws on the CPU, such as a headless browser or a machine with no usable GPU. - There is no WebGL, or the browser took the drawing context back. Strands is styled only and has behavior, as 'Aura' does: its behavior is drawing to a canvas, so there is no structure for a headless version to hold. */
24979
24999
  "helix-strands": DefineCustomElement<
24980
25000
  HelixStrands,
24981
25001
  HelixStrandsVueProps,
24982
25002
  HelixStrandsVueEvents
24983
25003
  >;
24984
- /** Placed inside a 'helix-strands' with 'travel', a stop names an element with 'for' and says which form the ribbon takes when the page reaches it: a 'bend' turning through it, a 'ribbon' passing through 'at', or 'waves' crossing at its top edge. The stops are read in page order, whatever order they are written in, and a stop naming no element is skipped. A stop draws nothing itself and is never shown. **Every property is reflected**, because the parent watches its stops' attributes to lay the ribbon out again: a change made from script reaches the page as a change made in markup does. None has a default, so a stop writes nothing it was not given. */
25004
+ /** Placed inside a 'helix-strands' with 'travel', a stop names an element with 'for' and says which form the ribbon takes when the page reaches it: a 'bend' turning through it, a 'ribbon' passing through 'at', a 'sweep' crossing in one diagonal from the page's top corner on the side 'at' is nearer to the element's far top corner, or 'waves' crossing at its top edge. The stops are read in page order, whatever order they are written in, and a stop naming no element is skipped. A stop draws nothing itself and is never shown. **Every property is reflected**, because the parent watches its stops' attributes to lay the ribbon out again: a change made from script reaches the page as a change made in markup does. None has a default, so a stop writes nothing it was not given. */
24985
25005
  "helix-strands-stop": DefineCustomElement<
24986
25006
  HelixStrandsStop,
24987
25007
  HelixStrandsStopVueProps,