@fusion.dev/helix 0.8.1 → 0.9.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.
@@ -7220,7 +7220,7 @@
7220
7220
  "name": "--button-gap"
7221
7221
  },
7222
7222
  {
7223
- "description": "Width taken by `width=\"standard\"`.",
7223
+ "description": "A width floor. Inherits, so a section can set it once for every button under it.",
7224
7224
  "name": "--button-inline-size"
7225
7225
  },
7226
7226
  {
@@ -7301,9 +7301,9 @@
7301
7301
  "kind": "field",
7302
7302
  "name": "width",
7303
7303
  "type": {
7304
- "text": "'auto' | 'full' | 'standard' | undefined"
7304
+ "text": "'auto' | 'full' | undefined"
7305
7305
  },
7306
- "description": "How much of the space available to it the button takes.\n\n- `auto` is the default and is never written: the button is as wide as its\n label, which is what a control in a toolbar or beside a field should be.\n- `standard` is one width for every button that takes it, so a column or\n row of actions lines up instead of following the length of each word.\n- `full` fills the container, for a single action at the foot of a form or\n a card, and on a phone where a control is a target before it is a label.\n\n**Not `fill`, and not `size`.** `fill` means a surface's own color\neverywhere else in the library, in `separation=\"filled\"`, in\n`ThemeIntent.separation`'s `fill` mechanism and in every chart, so it cannot\nalso mean geometry beside an `emphasis` documented as \"How filled it is\ndrawn\". `size` fails the rule's own test, which is whether two of them\nsitting together could legitimately differ: two buttons can, because this is\na width *policy* rather than a scale, and `standard` exists precisely to\nstop a row being ragged.\n\nWidth and not weight. `emphasis` says how much a button matters and this\nsays how much room it takes, and the three are independent: a `ghost\nstandard` Cancel beside a `solid primary standard` Save is exactly the\npairing a dialog wants.\n\n**A consumer's own anchor takes it as `data-button-width`**, the way it\ntakes the emphasis as `data-button`:\n\n```html\n<a data-button=\"solid\" data-button-width=\"standard\" data-button-tone=\"primary\" href=\"/save\">Save</a>\n```\n\nBoth are one declaration in the base layer, and both are needed: this class\npromises a link styled as a button and a real button are indistinguishable,\nand a dialog's button row is built on `standard`.",
7306
+ "description": "How much of the space available to it the button takes.\n\n- `auto` is the default and is never written: the button is as wide as its\n label, which is what a control in a toolbar or beside a field should be.\n- `full` fills the container, for a single action at the foot of a form or\n a card, and on a phone where a control is a target before it is a label.\n\nFor a row that should line up rather than follow the length of each word,\nset `--button-inline-size` on the container. It inherits, and it reaches a\nplain anchor wearing `data-button` as well as this element.\n\nA consumer's own anchor takes this attribute as `data-button-width`:\n\n```html\n<a data-button=\"solid\" data-button-width=\"full\" data-button-tone=\"primary\" href=\"/save\">Save</a>\n```\n\n**Not `fill`, and not `size`.** `fill` means a surface's own color\neverywhere else in the library, so it cannot also mean geometry beside an\n`emphasis` documented as \"How filled it is drawn\". `size` fails the rule's\nown test, which is whether two of them sitting together could legitimately\ndiffer: two buttons can, because this is a width *policy* rather than a\nscale.",
7307
7307
  "attribute": "width",
7308
7308
  "reflects": true
7309
7309
  },
@@ -7935,9 +7935,9 @@
7935
7935
  {
7936
7936
  "name": "width",
7937
7937
  "type": {
7938
- "text": "'auto' | 'full' | 'standard' | undefined"
7938
+ "text": "'auto' | 'full' | undefined"
7939
7939
  },
7940
- "description": "How much of the space available to it the button takes.\n\n- `auto` is the default and is never written: the button is as wide as its\n label, which is what a control in a toolbar or beside a field should be.\n- `standard` is one width for every button that takes it, so a column or\n row of actions lines up instead of following the length of each word.\n- `full` fills the container, for a single action at the foot of a form or\n a card, and on a phone where a control is a target before it is a label.\n\n**Not `fill`, and not `size`.** `fill` means a surface's own color\neverywhere else in the library, in `separation=\"filled\"`, in\n`ThemeIntent.separation`'s `fill` mechanism and in every chart, so it cannot\nalso mean geometry beside an `emphasis` documented as \"How filled it is\ndrawn\". `size` fails the rule's own test, which is whether two of them\nsitting together could legitimately differ: two buttons can, because this is\na width *policy* rather than a scale, and `standard` exists precisely to\nstop a row being ragged.\n\nWidth and not weight. `emphasis` says how much a button matters and this\nsays how much room it takes, and the three are independent: a `ghost\nstandard` Cancel beside a `solid primary standard` Save is exactly the\npairing a dialog wants.\n\n**A consumer's own anchor takes it as `data-button-width`**, the way it\ntakes the emphasis as `data-button`:\n\n```html\n<a data-button=\"solid\" data-button-width=\"standard\" data-button-tone=\"primary\" href=\"/save\">Save</a>\n```\n\nBoth are one declaration in the base layer, and both are needed: this class\npromises a link styled as a button and a real button are indistinguishable,\nand a dialog's button row is built on `standard`.",
7940
+ "description": "How much of the space available to it the button takes.\n\n- `auto` is the default and is never written: the button is as wide as its\n label, which is what a control in a toolbar or beside a field should be.\n- `full` fills the container, for a single action at the foot of a form or\n a card, and on a phone where a control is a target before it is a label.\n\nFor a row that should line up rather than follow the length of each word,\nset `--button-inline-size` on the container. It inherits, and it reaches a\nplain anchor wearing `data-button` as well as this element.\n\nA consumer's own anchor takes this attribute as `data-button-width`:\n\n```html\n<a data-button=\"solid\" data-button-width=\"full\" data-button-tone=\"primary\" href=\"/save\">Save</a>\n```\n\n**Not `fill`, and not `size`.** `fill` means a surface's own color\neverywhere else in the library, so it cannot also mean geometry beside an\n`emphasis` documented as \"How filled it is drawn\". `size` fails the rule's\nown test, which is whether two of them sitting together could legitimately\ndiffer: two buttons can, because this is a width *policy* rather than a\nscale.",
7941
7941
  "fieldName": "width"
7942
7942
  },
7943
7943
  {
@@ -1,6 +1,9 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
2
  export const styles = createSheet(`:host {
3
3
  display: inline-flex;
4
+
5
+ min-inline-size: var(--button-inline-size, auto);
6
+ max-inline-size: 100%;
4
7
  }
5
8
 
6
9
  :host {
@@ -155,13 +158,6 @@ var(--button-background-color, color-mix(in oklab, var(--_button-tone) 8%, trans
155
158
  border-color: transparent;
156
159
  }
157
160
 
158
- :host([width="standard"]) {
159
-
160
- min-inline-size: var(--button-inline-size, var(--helix-size-button));
161
-
162
- max-inline-size: 100%;
163
- }
164
-
165
161
  :host([width="full"]) {
166
162
  display: flex;
167
163
  inline-size: 100%;
@@ -28,7 +28,7 @@ declare const HelixButton_base: (new (...args: any[]) => import("../../shared/mi
28
28
  * @cssproperty --button-background-color-hover - Fill behind the button under the pointer. Only needed beside the one above, which otherwise holds through hover.
29
29
  * @cssproperty --button-foreground-color - Label and icon color.
30
30
  * @cssproperty --button-gap - Space between the label and whatever flanks it.
31
- * @cssproperty --button-inline-size - Width taken by `width="standard"`.
31
+ * @cssproperty --button-inline-size - A width floor. Inherits, so a section can set it once for every button under it.
32
32
  * @cssproperty --button-padding-inline - Inline padding, for a container whose rhythm is not the control default.
33
33
  * @cssproperty --button-radius - Corner radius of the control.
34
34
  * @cssproperty --button-radius-end - Trailing corners, which a group flattens.
@@ -45,37 +45,27 @@ export declare class HelixButton extends HelixButton_base {
45
45
  *
46
46
  * - `auto` is the default and is never written: the button is as wide as its
47
47
  * label, which is what a control in a toolbar or beside a field should be.
48
- * - `standard` is one width for every button that takes it, so a column or
49
- * row of actions lines up instead of following the length of each word.
50
48
  * - `full` fills the container, for a single action at the foot of a form or
51
49
  * a card, and on a phone where a control is a target before it is a label.
52
50
  *
53
- * **Not `fill`, and not `size`.** `fill` means a surface's own color
54
- * everywhere else in the library, in `separation="filled"`, in
55
- * `ThemeIntent.separation`'s `fill` mechanism and in every chart, so it cannot
56
- * also mean geometry beside an `emphasis` documented as "How filled it is
57
- * drawn". `size` fails the rule's own test, which is whether two of them
58
- * sitting together could legitimately differ: two buttons can, because this is
59
- * a width *policy* rather than a scale, and `standard` exists precisely to
60
- * stop a row being ragged.
61
- *
62
- * Width and not weight. `emphasis` says how much a button matters and this
63
- * says how much room it takes, and the three are independent: a `ghost
64
- * standard` Cancel beside a `solid primary standard` Save is exactly the
65
- * pairing a dialog wants.
51
+ * For a row that should line up rather than follow the length of each word,
52
+ * set `--button-inline-size` on the container. It inherits, and it reaches a
53
+ * plain anchor wearing `data-button` as well as this element.
66
54
  *
67
- * **A consumer's own anchor takes it as `data-button-width`**, the way it
68
- * takes the emphasis as `data-button`:
55
+ * A consumer's own anchor takes this attribute as `data-button-width`:
69
56
  *
70
57
  * ```html
71
- * <a data-button="solid" data-button-width="standard" data-button-tone="primary" href="/save">Save</a>
58
+ * <a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
72
59
  * ```
73
60
  *
74
- * Both are one declaration in the base layer, and both are needed: this class
75
- * promises a link styled as a button and a real button are indistinguishable,
76
- * and a dialog's button row is built on `standard`.
61
+ * **Not `fill`, and not `size`.** `fill` means a surface's own color
62
+ * everywhere else in the library, so it cannot also mean geometry beside an
63
+ * `emphasis` documented as "How filled it is drawn". `size` fails the rule's
64
+ * own test, which is whether two of them sitting together could legitimately
65
+ * differ: two buttons can, because this is a width *policy* rather than a
66
+ * scale.
77
67
  */
78
- width?: 'auto' | 'full' | 'standard';
68
+ width?: 'auto' | 'full';
79
69
  static styles: CSSResultGroup;
80
70
  }
81
71
  declare global {
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.8.1",
4
+ "version": "0.9.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -46,14 +46,14 @@
46
46
  },
47
47
  "bugs": "https://github.com/project-fusion/fusion/issues",
48
48
  "dependencies": {
49
- "@fusion.dev/helix-core": "0.8.1",
50
- "@fusion.dev/helix-headless": "0.8.1",
51
- "@fusion.dev/helix-styles": "0.8.1"
49
+ "@fusion.dev/helix-core": "0.9.0",
50
+ "@fusion.dev/helix-headless": "0.9.0",
51
+ "@fusion.dev/helix-styles": "0.9.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@custom-elements-manifest/analyzer": "^0.11.0",
55
- "@fusion.dev/helix-cem": "0.8.1",
56
- "@fusion.dev/helix-testing": "0.8.1",
55
+ "@fusion.dev/helix-cem": "0.9.0",
56
+ "@fusion.dev/helix-testing": "0.9.0",
57
57
  "@fusion.dev/scripts": "0.0.0-dev",
58
58
  "@happy-dom/global-registrator": "^20.0.0",
59
59
  "@lit-labs/ssr": "^3.3.0",
package/types/jsx.d.ts CHANGED
@@ -1715,35 +1715,25 @@ export type HelixButtonProps = {
1715
1715
 
1716
1716
  - `auto` is the default and is never written: the button is as wide as its
1717
1717
  label, which is what a control in a toolbar or beside a field should be.
1718
- - `standard` is one width for every button that takes it, so a column or
1719
- row of actions lines up instead of following the length of each word.
1720
1718
  - `full` fills the container, for a single action at the foot of a form or
1721
1719
  a card, and on a phone where a control is a target before it is a label.
1722
1720
 
1723
- **Not `fill`, and not `size`.** `fill` means a surface's own color
1724
- everywhere else in the library, in `separation="filled"`, in
1725
- `ThemeIntent.separation`'s `fill` mechanism and in every chart, so it cannot
1726
- also mean geometry beside an `emphasis` documented as "How filled it is
1727
- drawn". `size` fails the rule's own test, which is whether two of them
1728
- sitting together could legitimately differ: two buttons can, because this is
1729
- a width *policy* rather than a scale, and `standard` exists precisely to
1730
- stop a row being ragged.
1731
-
1732
- Width and not weight. `emphasis` says how much a button matters and this
1733
- says how much room it takes, and the three are independent: a `ghost
1734
- standard` Cancel beside a `solid primary standard` Save is exactly the
1735
- pairing a dialog wants.
1736
-
1737
- **A consumer's own anchor takes it as `data-button-width`**, the way it
1738
- takes the emphasis as `data-button`:
1721
+ For a row that should line up rather than follow the length of each word,
1722
+ set `--button-inline-size` on the container. It inherits, and it reaches a
1723
+ plain anchor wearing `data-button` as well as this element.
1724
+
1725
+ A consumer's own anchor takes this attribute as `data-button-width`:
1739
1726
 
1740
1727
  ```html
1741
- <a data-button="solid" data-button-width="standard" data-button-tone="primary" href="/save">Save</a>
1728
+ <a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
1742
1729
  ```
1743
1730
 
1744
- Both are one declaration in the base layer, and both are needed: this class
1745
- promises a link styled as a button and a real button are indistinguishable,
1746
- and a dialog's button row is built on `standard`. */
1731
+ **Not `fill`, and not `size`.** `fill` means a surface's own color
1732
+ everywhere else in the library, so it cannot also mean geometry beside an
1733
+ `emphasis` documented as "How filled it is drawn". `size` fails the rule's
1734
+ own test, which is whether two of them sitting together could legitimately
1735
+ differ: two buttons can, because this is a width *policy* rather than a
1736
+ scale. */
1747
1737
  width?: (HelixButton["width"]) | undefined;
1748
1738
  /** How filled it is drawn.
1749
1739
 
@@ -1930,35 +1920,25 @@ export type HelixButtonSolidJsProps = {
1930
1920
 
1931
1921
  - `auto` is the default and is never written: the button is as wide as its
1932
1922
  label, which is what a control in a toolbar or beside a field should be.
1933
- - `standard` is one width for every button that takes it, so a column or
1934
- row of actions lines up instead of following the length of each word.
1935
1923
  - `full` fills the container, for a single action at the foot of a form or
1936
1924
  a card, and on a phone where a control is a target before it is a label.
1937
1925
 
1938
- **Not `fill`, and not `size`.** `fill` means a surface's own color
1939
- everywhere else in the library, in `separation="filled"`, in
1940
- `ThemeIntent.separation`'s `fill` mechanism and in every chart, so it cannot
1941
- also mean geometry beside an `emphasis` documented as "How filled it is
1942
- drawn". `size` fails the rule's own test, which is whether two of them
1943
- sitting together could legitimately differ: two buttons can, because this is
1944
- a width *policy* rather than a scale, and `standard` exists precisely to
1945
- stop a row being ragged.
1946
-
1947
- Width and not weight. `emphasis` says how much a button matters and this
1948
- says how much room it takes, and the three are independent: a `ghost
1949
- standard` Cancel beside a `solid primary standard` Save is exactly the
1950
- pairing a dialog wants.
1951
-
1952
- **A consumer's own anchor takes it as `data-button-width`**, the way it
1953
- takes the emphasis as `data-button`:
1926
+ For a row that should line up rather than follow the length of each word,
1927
+ set `--button-inline-size` on the container. It inherits, and it reaches a
1928
+ plain anchor wearing `data-button` as well as this element.
1929
+
1930
+ A consumer's own anchor takes this attribute as `data-button-width`:
1954
1931
 
1955
1932
  ```html
1956
- <a data-button="solid" data-button-width="standard" data-button-tone="primary" href="/save">Save</a>
1933
+ <a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
1957
1934
  ```
1958
1935
 
1959
- Both are one declaration in the base layer, and both are needed: this class
1960
- promises a link styled as a button and a real button are indistinguishable,
1961
- and a dialog's button row is built on `standard`. */
1936
+ **Not `fill`, and not `size`.** `fill` means a surface's own color
1937
+ everywhere else in the library, so it cannot also mean geometry beside an
1938
+ `emphasis` documented as "How filled it is drawn". `size` fails the rule's
1939
+ own test, which is whether two of them sitting together could legitimately
1940
+ differ: two buttons can, because this is a width *policy* rather than a
1941
+ scale. */
1962
1942
  "prop:width"?: (HelixButton["width"]) | undefined;
1963
1943
  /** How filled it is drawn.
1964
1944
 
@@ -19352,35 +19332,25 @@ export type CustomElements = {
19352
19332
  *
19353
19333
  * - `auto` is the default and is never written: the button is as wide as its
19354
19334
  * label, which is what a control in a toolbar or beside a field should be.
19355
- * - `standard` is one width for every button that takes it, so a column or
19356
- * row of actions lines up instead of following the length of each word.
19357
19335
  * - `full` fills the container, for a single action at the foot of a form or
19358
19336
  * a card, and on a phone where a control is a target before it is a label.
19359
19337
  *
19360
- * **Not `fill`, and not `size`.** `fill` means a surface's own color
19361
- * everywhere else in the library, in `separation="filled"`, in
19362
- * `ThemeIntent.separation`'s `fill` mechanism and in every chart, so it cannot
19363
- * also mean geometry beside an `emphasis` documented as "How filled it is
19364
- * drawn". `size` fails the rule's own test, which is whether two of them
19365
- * sitting together could legitimately differ: two buttons can, because this is
19366
- * a width *policy* rather than a scale, and `standard` exists precisely to
19367
- * stop a row being ragged.
19368
- *
19369
- * Width and not weight. `emphasis` says how much a button matters and this
19370
- * says how much room it takes, and the three are independent: a `ghost
19371
- * standard` Cancel beside a `solid primary standard` Save is exactly the
19372
- * pairing a dialog wants.
19373
- *
19374
- * **A consumer's own anchor takes it as `data-button-width`**, the way it
19375
- * takes the emphasis as `data-button`:
19338
+ * For a row that should line up rather than follow the length of each word,
19339
+ * set `--button-inline-size` on the container. It inherits, and it reaches a
19340
+ * plain anchor wearing `data-button` as well as this element.
19341
+ *
19342
+ * A consumer's own anchor takes this attribute as `data-button-width`:
19376
19343
  *
19377
19344
  * ```html
19378
- * <a data-button="solid" data-button-width="standard" data-button-tone="primary" href="/save">Save</a>
19345
+ * <a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
19379
19346
  * ```
19380
19347
  *
19381
- * Both are one declaration in the base layer, and both are needed: this class
19382
- * promises a link styled as a button and a real button are indistinguishable,
19383
- * and a dialog's button row is built on `standard`.
19348
+ * **Not `fill`, and not `size`.** `fill` means a surface's own color
19349
+ * everywhere else in the library, so it cannot also mean geometry beside an
19350
+ * `emphasis` documented as "How filled it is drawn". `size` fails the rule's
19351
+ * own test, which is whether two of them sitting together could legitimately
19352
+ * differ: two buttons can, because this is a width *policy* rather than a
19353
+ * scale.
19384
19354
  * - `emphasis`: How filled it is drawn.
19385
19355
  *
19386
19356
  * Not `separation`: a Card's `outlined` says where a surface ends, and this
@@ -19592,7 +19562,7 @@ export type CustomElements = {
19592
19562
  * - `--button-background-color-hover`: Fill behind the button under the pointer. Only needed beside the one above, which otherwise holds through hover. (default: `undefined`)
19593
19563
  * - `--button-foreground-color`: Label and icon color. (default: `undefined`)
19594
19564
  * - `--button-gap`: Space between the label and whatever flanks it. (default: `undefined`)
19595
- * - `--button-inline-size`: Width taken by `width="standard"`. (default: `undefined`)
19565
+ * - `--button-inline-size`: A width floor. Inherits, so a section can set it once for every button under it. (default: `undefined`)
19596
19566
  * - `--button-padding-inline`: Inline padding, for a container whose rhythm is not the control default. (default: `undefined`)
19597
19567
  * - `--button-radius`: Corner radius of the control. (default: `undefined`)
19598
19568
  * - `--button-radius-end`: Trailing corners, which a group flattens. (default: `undefined`)
@@ -35096,35 +35066,25 @@ export type CustomElementsSolidJs = {
35096
35066
  *
35097
35067
  * - `auto` is the default and is never written: the button is as wide as its
35098
35068
  * label, which is what a control in a toolbar or beside a field should be.
35099
- * - `standard` is one width for every button that takes it, so a column or
35100
- * row of actions lines up instead of following the length of each word.
35101
35069
  * - `full` fills the container, for a single action at the foot of a form or
35102
35070
  * a card, and on a phone where a control is a target before it is a label.
35103
35071
  *
35104
- * **Not `fill`, and not `size`.** `fill` means a surface's own color
35105
- * everywhere else in the library, in `separation="filled"`, in
35106
- * `ThemeIntent.separation`'s `fill` mechanism and in every chart, so it cannot
35107
- * also mean geometry beside an `emphasis` documented as "How filled it is
35108
- * drawn". `size` fails the rule's own test, which is whether two of them
35109
- * sitting together could legitimately differ: two buttons can, because this is
35110
- * a width *policy* rather than a scale, and `standard` exists precisely to
35111
- * stop a row being ragged.
35112
- *
35113
- * Width and not weight. `emphasis` says how much a button matters and this
35114
- * says how much room it takes, and the three are independent: a `ghost
35115
- * standard` Cancel beside a `solid primary standard` Save is exactly the
35116
- * pairing a dialog wants.
35117
- *
35118
- * **A consumer's own anchor takes it as `data-button-width`**, the way it
35119
- * takes the emphasis as `data-button`:
35072
+ * For a row that should line up rather than follow the length of each word,
35073
+ * set `--button-inline-size` on the container. It inherits, and it reaches a
35074
+ * plain anchor wearing `data-button` as well as this element.
35075
+ *
35076
+ * A consumer's own anchor takes this attribute as `data-button-width`:
35120
35077
  *
35121
35078
  * ```html
35122
- * <a data-button="solid" data-button-width="standard" data-button-tone="primary" href="/save">Save</a>
35079
+ * <a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
35123
35080
  * ```
35124
35081
  *
35125
- * Both are one declaration in the base layer, and both are needed: this class
35126
- * promises a link styled as a button and a real button are indistinguishable,
35127
- * and a dialog's button row is built on `standard`.
35082
+ * **Not `fill`, and not `size`.** `fill` means a surface's own color
35083
+ * everywhere else in the library, so it cannot also mean geometry beside an
35084
+ * `emphasis` documented as "How filled it is drawn". `size` fails the rule's
35085
+ * own test, which is whether two of them sitting together could legitimately
35086
+ * differ: two buttons can, because this is a width *policy* rather than a
35087
+ * scale.
35128
35088
  * - `emphasis`: How filled it is drawn.
35129
35089
  *
35130
35090
  * Not `separation`: a Card's `outlined` says where a surface ends, and this
@@ -35336,7 +35296,7 @@ export type CustomElementsSolidJs = {
35336
35296
  * - `--button-background-color-hover`: Fill behind the button under the pointer. Only needed beside the one above, which otherwise holds through hover. (default: `undefined`)
35337
35297
  * - `--button-foreground-color`: Label and icon color. (default: `undefined`)
35338
35298
  * - `--button-gap`: Space between the label and whatever flanks it. (default: `undefined`)
35339
- * - `--button-inline-size`: Width taken by `width="standard"`. (default: `undefined`)
35299
+ * - `--button-inline-size`: A width floor. Inherits, so a section can set it once for every button under it. (default: `undefined`)
35340
35300
  * - `--button-padding-inline`: Inline padding, for a container whose rhythm is not the control default. (default: `undefined`)
35341
35301
  * - `--button-radius`: Corner radius of the control. (default: `undefined`)
35342
35302
  * - `--button-radius-end`: Trailing corners, which a group flattens. (default: `undefined`)
@@ -49917,7 +49877,7 @@ export type CustomCssProperties = {
49917
49877
  "--button-foreground-color"?: (string) | undefined;
49918
49878
  /** Space between the label and whatever flanks it. */
49919
49879
  "--button-gap"?: (string) | undefined;
49920
- /** Width taken by `width="standard"`. */
49880
+ /** A width floor. Inherits, so a section can set it once for every button under it. */
49921
49881
  "--button-inline-size"?: (string) | undefined;
49922
49882
  /** Inline padding, for a container whose rhythm is not the control default. */
49923
49883
  "--button-padding-inline"?: (string) | undefined;
package/types/vue.d.ts CHANGED
@@ -882,35 +882,25 @@ export type HelixButtonVueProps = {
882
882
 
883
883
  - `auto` is the default and is never written: the button is as wide as its
884
884
  label, which is what a control in a toolbar or beside a field should be.
885
- - `standard` is one width for every button that takes it, so a column or
886
- row of actions lines up instead of following the length of each word.
887
885
  - `full` fills the container, for a single action at the foot of a form or
888
886
  a card, and on a phone where a control is a target before it is a label.
889
887
 
890
- **Not `fill`, and not `size`.** `fill` means a surface's own color
891
- everywhere else in the library, in `separation="filled"`, in
892
- `ThemeIntent.separation`'s `fill` mechanism and in every chart, so it cannot
893
- also mean geometry beside an `emphasis` documented as "How filled it is
894
- drawn". `size` fails the rule's own test, which is whether two of them
895
- sitting together could legitimately differ: two buttons can, because this is
896
- a width *policy* rather than a scale, and `standard` exists precisely to
897
- stop a row being ragged.
898
-
899
- Width and not weight. `emphasis` says how much a button matters and this
900
- says how much room it takes, and the three are independent: a `ghost
901
- standard` Cancel beside a `solid primary standard` Save is exactly the
902
- pairing a dialog wants.
903
-
904
- **A consumer's own anchor takes it as `data-button-width`**, the way it
905
- takes the emphasis as `data-button`:
888
+ For a row that should line up rather than follow the length of each word,
889
+ set `--button-inline-size` on the container. It inherits, and it reaches a
890
+ plain anchor wearing `data-button` as well as this element.
891
+
892
+ A consumer's own anchor takes this attribute as `data-button-width`:
906
893
 
907
894
  ```html
908
- <a data-button="solid" data-button-width="standard" data-button-tone="primary" href="/save">Save</a>
895
+ <a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
909
896
  ```
910
897
 
911
- Both are one declaration in the base layer, and both are needed: this class
912
- promises a link styled as a button and a real button are indistinguishable,
913
- and a dialog's button row is built on `standard`. */
898
+ **Not `fill`, and not `size`.** `fill` means a surface's own color
899
+ everywhere else in the library, so it cannot also mean geometry beside an
900
+ `emphasis` documented as "How filled it is drawn". `size` fails the rule's
901
+ own test, which is whether two of them sitting together could legitimately
902
+ differ: two buttons can, because this is a width *policy* rather than a
903
+ scale. */
914
904
  width?: (HelixButton["width"]) | undefined;
915
905
  /** How filled it is drawn.
916
906
 
@@ -9308,7 +9298,7 @@ export type CustomCssProperties = {
9308
9298
  "--button-foreground-color"?: (string) | undefined;
9309
9299
  /** Space between the label and whatever flanks it. */
9310
9300
  "--button-gap"?: (string) | undefined;
9311
- /** Width taken by `width="standard"`. */
9301
+ /** A width floor. Inherits, so a section can set it once for every button under it. */
9312
9302
  "--button-inline-size"?: (string) | undefined;
9313
9303
  /** Inline padding, for a container whose rhythm is not the control default. */
9314
9304
  "--button-padding-inline"?: (string) | undefined;