@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.
- package/custom-elements.json +5 -5
- package/dist/button/root/button-root.css.js +3 -7
- package/dist/button/root/button-root.d.ts +13 -23
- package/package.json +6 -6
- package/types/jsx.d.ts +51 -91
- package/types/vue.d.ts +13 -23
package/custom-elements.json
CHANGED
|
@@ -7220,7 +7220,7 @@
|
|
|
7220
7220
|
"name": "--button-gap"
|
|
7221
7221
|
},
|
|
7222
7222
|
{
|
|
7223
|
-
"description": "
|
|
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' |
|
|
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- `
|
|
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' |
|
|
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- `
|
|
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 -
|
|
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
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
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
|
-
*
|
|
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="
|
|
58
|
+
* <a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
|
|
72
59
|
* ```
|
|
73
60
|
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
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'
|
|
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.
|
|
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.
|
|
50
|
-
"@fusion.dev/helix-headless": "0.
|
|
51
|
-
"@fusion.dev/helix-styles": "0.
|
|
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.
|
|
56
|
-
"@fusion.dev/helix-testing": "0.
|
|
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
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
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="
|
|
1728
|
+
<a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
|
|
1742
1729
|
```
|
|
1743
1730
|
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
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
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
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="
|
|
1933
|
+
<a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
|
|
1957
1934
|
```
|
|
1958
1935
|
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
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
|
-
*
|
|
19361
|
-
*
|
|
19362
|
-
*
|
|
19363
|
-
*
|
|
19364
|
-
*
|
|
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="
|
|
19345
|
+
* <a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
|
|
19379
19346
|
* ```
|
|
19380
19347
|
*
|
|
19381
|
-
*
|
|
19382
|
-
*
|
|
19383
|
-
*
|
|
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`:
|
|
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
|
-
*
|
|
35105
|
-
*
|
|
35106
|
-
*
|
|
35107
|
-
*
|
|
35108
|
-
*
|
|
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="
|
|
35079
|
+
* <a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
|
|
35123
35080
|
* ```
|
|
35124
35081
|
*
|
|
35125
|
-
*
|
|
35126
|
-
*
|
|
35127
|
-
*
|
|
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`:
|
|
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
|
-
/**
|
|
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
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
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="
|
|
895
|
+
<a data-button="solid" data-button-width="full" data-button-tone="primary" href="/save">Save</a>
|
|
909
896
|
```
|
|
910
897
|
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
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
|
-
/**
|
|
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;
|