@fluentui/web-components 2.5.5 → 2.5.6
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/CHANGELOG.json +16 -1
- package/CHANGELOG.md +11 -2
- package/dist/dts/styles/focus.d.ts +13 -0
- package/dist/dts/styles/index.d.ts +1 -0
- package/dist/esm/accordion/accordion-item/accordion-item.styles.js +8 -10
- package/dist/esm/breadcrumb-item/breadcrumb-item.styles.js +6 -10
- package/dist/esm/checkbox/checkbox.styles.js +4 -8
- package/dist/esm/combobox/combobox.styles.js +17 -8
- package/dist/esm/data-grid/data-grid-cell.styles.js +6 -9
- package/dist/esm/flipper/flipper.styles.js +5 -6
- package/dist/esm/listbox/listbox.styles.js +3 -4
- package/dist/esm/listbox-option/listbox-option.styles.js +9 -6
- package/dist/esm/menu/menu.styles.js +1 -1
- package/dist/esm/menu-item/menu-item.styles.js +5 -9
- package/dist/esm/progress/progress/progress.styles.js +0 -1
- package/dist/esm/progress/progress-ring/progress-ring.styles.js +0 -1
- package/dist/esm/radio/radio.styles.js +4 -9
- package/dist/esm/select/select.styles.js +4 -12
- package/dist/esm/styles/focus.js +21 -0
- package/dist/esm/styles/index.js +1 -0
- package/dist/esm/styles/patterns/button.styles.js +13 -21
- package/dist/esm/styles/patterns/input.styles.js +1 -9
- package/dist/esm/switch/switch.styles.js +5 -17
- package/dist/esm/tabs/tab/tab.styles.js +4 -6
- package/dist/esm/text-area/text-area.stories.js +2 -2
- package/dist/esm/toolbar/toolbar.styles.js +4 -3
- package/dist/esm/tree-item/tree-item.styles.js +4 -14
- package/dist/esm/tree-view/tree-view.styles.js +0 -4
- package/dist/fluent-web-components.api.json +52 -0
- package/dist/web-components.d.ts +15 -0
- package/dist/web-components.js +78 -51
- package/dist/web-components.min.js +150 -139
- package/docs/api-report.md +6 -0
- package/package.json +1 -1
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,22 @@
|
|
|
2
2
|
"name": "@fluentui/web-components",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Mon, 19 Sep 2022 07:45:53 GMT",
|
|
6
|
+
"tag": "@fluentui/web-components_v2.5.6",
|
|
7
|
+
"version": "2.5.6",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"author": "47367562+bheston@users.noreply.github.com",
|
|
12
|
+
"package": "@fluentui/web-components",
|
|
13
|
+
"commit": "2420757404f54aba8e92cdbc41965a6fdbce8a3d",
|
|
14
|
+
"comment": "Standardized focus treatment to use `outline` instead of a combination of `border` and `box-shadow`"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"date": "Wed, 07 Sep 2022 07:54:43 GMT",
|
|
6
21
|
"tag": "@fluentui/web-components_v2.5.5",
|
|
7
22
|
"version": "2.5.5",
|
|
8
23
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
# Change Log - @fluentui/web-components
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Mon, 19 Sep 2022 07:45:53 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## [2.5.6](https://github.com/microsoft/fluentui/tree/@fluentui/web-components_v2.5.6)
|
|
8
|
+
|
|
9
|
+
Mon, 19 Sep 2022 07:45:53 GMT
|
|
10
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/web-components_v2.5.5..@fluentui/web-components_v2.5.6)
|
|
11
|
+
|
|
12
|
+
### Patches
|
|
13
|
+
|
|
14
|
+
- Standardized focus treatment to use `outline` instead of a combination of `border` and `box-shadow` ([PR #24771](https://github.com/microsoft/fluentui/pull/24771) by 47367562+bheston@users.noreply.github.com)
|
|
15
|
+
|
|
7
16
|
## [2.5.5](https://github.com/microsoft/fluentui/tree/@fluentui/web-components_v2.5.5)
|
|
8
17
|
|
|
9
|
-
Wed, 07 Sep 2022 07:
|
|
18
|
+
Wed, 07 Sep 2022 07:54:43 GMT
|
|
10
19
|
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/web-components_v2.5.4..@fluentui/web-components_v2.5.5)
|
|
11
20
|
|
|
12
21
|
### Patches
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partial CSS for the focus treatment for most typical sized components like Button, Menu Item, etc.
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export declare const focusTreatmentBase: import("@microsoft/fast-element").CSSDirective;
|
|
7
|
+
/**
|
|
8
|
+
* Partial CSS for the focus treatment for tighter components with spacing constraints, like Checkbox
|
|
9
|
+
* and Radio, or plain text like Hypertext appearance Anchor or Breadcrumb Item.
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export declare const focusTreatmentTight: import("@microsoft/fast-element").CSSDirective;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { css } from '@microsoft/fast-element';
|
|
2
2
|
import { DesignToken, display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
|
|
3
3
|
import { SystemColors } from '@microsoft/fast-web-utilities';
|
|
4
|
-
import { controlCornerRadius, designUnit,
|
|
4
|
+
import { controlCornerRadius, designUnit, layerCornerRadius, neutralFillLayerAltRest, neutralFillLayerRecipe, neutralFillLayerRest, neutralFillStealthRecipe, neutralForegroundRest, neutralStrokeLayerRest, strokeWidth, } from '../../design-tokens';
|
|
5
|
+
import { focusTreatmentBase } from '../../styles/focus';
|
|
5
6
|
import { typeRampBase } from '../../styles/patterns/type-ramp';
|
|
6
7
|
import { heightNumber } from '../../styles/size';
|
|
7
8
|
const neutralFillStealthRestOnNeutralFillLayerRest = DesignToken.create('neutral-fill-stealth-rest-on-neutral-fill-layer-rest').withDefault((target) => {
|
|
@@ -61,18 +62,16 @@ export const accordionItemStyles = (context, definition) => css `
|
|
|
61
62
|
.button::before {
|
|
62
63
|
content: '';
|
|
63
64
|
position: absolute;
|
|
64
|
-
top:
|
|
65
|
-
left:
|
|
66
|
-
right:
|
|
67
|
-
bottom:
|
|
65
|
+
top: calc(${strokeWidth} * -1px);
|
|
66
|
+
left: calc(${strokeWidth} * -1px);
|
|
67
|
+
right: calc(${strokeWidth} * -1px);
|
|
68
|
+
bottom: calc(${strokeWidth} * -1px);
|
|
68
69
|
cursor: pointer;
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
.button:${focusVisible}::before {
|
|
72
|
-
|
|
73
|
-
border: calc(${strokeWidth} * 1px) solid ${focusStrokeOuter};
|
|
73
|
+
${focusTreatmentBase}
|
|
74
74
|
border-radius: calc(${layerCornerRadius} * 1px);
|
|
75
|
-
box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${focusStrokeOuter};
|
|
76
75
|
}
|
|
77
76
|
|
|
78
77
|
:host(.expanded) .button:${focusVisible}::before {
|
|
@@ -147,8 +146,7 @@ export const accordionItemStyles = (context, definition) => css `
|
|
|
147
146
|
}
|
|
148
147
|
`.withBehaviors(forcedColorsStylesheetBehavior(css `
|
|
149
148
|
.button:${focusVisible}::before {
|
|
150
|
-
|
|
151
|
-
box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${SystemColors.Highlight};
|
|
149
|
+
outline-color: ${SystemColors.Highlight};
|
|
152
150
|
}
|
|
153
151
|
.icon {
|
|
154
152
|
fill: ${SystemColors.ButtonText};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { css } from '@microsoft/fast-element';
|
|
2
2
|
import { display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
|
|
3
3
|
import { SystemColors } from '@microsoft/fast-web-utilities';
|
|
4
|
-
import { controlCornerRadius,
|
|
4
|
+
import { controlCornerRadius, neutralForegroundActive, neutralForegroundHover, neutralForegroundRest, } from '../design-tokens';
|
|
5
5
|
import { typeRampBase } from '../styles/patterns/type-ramp';
|
|
6
6
|
import { heightNumber } from '../styles/index';
|
|
7
|
+
import { focusTreatmentTight } from '../styles/focus';
|
|
7
8
|
export const breadcrumbItemStyles = (context, definition) => css `
|
|
8
9
|
${display('inline-flex')} :host {
|
|
9
10
|
background: transparent;
|
|
@@ -13,7 +14,6 @@ export const breadcrumbItemStyles = (context, definition) => css `
|
|
|
13
14
|
${typeRampBase};
|
|
14
15
|
min-width: calc(${heightNumber} * 1px);
|
|
15
16
|
border-radius: calc(${controlCornerRadius} * 1px);
|
|
16
|
-
outline: none;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.listitem {
|
|
@@ -44,12 +44,8 @@ export const breadcrumbItemStyles = (context, definition) => css `
|
|
|
44
44
|
color: ${neutralForegroundActive};
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
.control:${focusVisible}
|
|
48
|
-
|
|
49
|
-
position: absolute;
|
|
50
|
-
inset: calc(${strokeWidth} * -1px);
|
|
51
|
-
box-shadow: 0 0 0 calc(${focusStrokeWidth} * 1px) ${focusStrokeOuter} inset;
|
|
52
|
-
border-radius: inherit;
|
|
47
|
+
.control:${focusVisible} {
|
|
48
|
+
${focusTreatmentTight}
|
|
53
49
|
}
|
|
54
50
|
|
|
55
51
|
:host(:not([href])),
|
|
@@ -94,7 +90,7 @@ export const breadcrumbItemStyles = (context, definition) => css `
|
|
|
94
90
|
color: ${SystemColors.HighlightText};
|
|
95
91
|
fill: currentcolor;
|
|
96
92
|
}
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
.control:${focusVisible} {
|
|
94
|
+
outline-color: ${SystemColors.LinkText};
|
|
99
95
|
}
|
|
100
96
|
`));
|
|
@@ -2,8 +2,9 @@ import { css } from '@microsoft/fast-element';
|
|
|
2
2
|
import { disabledCursor, display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
|
|
3
3
|
import { SystemColors } from '@microsoft/fast-web-utilities';
|
|
4
4
|
import { heightNumber } from '../styles';
|
|
5
|
-
import { accentFillActive, accentFillHover, accentFillRest, controlCornerRadius, designUnit, disabledOpacity,
|
|
5
|
+
import { accentFillActive, accentFillHover, accentFillRest, controlCornerRadius, designUnit, disabledOpacity, foregroundOnAccentRest, neutralFillInputAltActive, neutralFillInputAltFocus, neutralFillInputAltHover, neutralFillInputAltRest, neutralForegroundRest, neutralStrokeStrongActive, neutralStrokeStrongHover, neutralStrokeStrongRest, strokeWidth, } from '../design-tokens';
|
|
6
6
|
import { typeRampBase } from '../styles/patterns/type-ramp';
|
|
7
|
+
import { focusTreatmentTight } from '../styles/focus';
|
|
7
8
|
export const checkboxStyles = (context, definition) => css `
|
|
8
9
|
${display('inline-flex')} :host {
|
|
9
10
|
align-items: center;
|
|
@@ -23,7 +24,6 @@ export const checkboxStyles = (context, definition) => css `
|
|
|
23
24
|
border-radius: calc(${controlCornerRadius} * 1px);
|
|
24
25
|
border: calc(${strokeWidth} * 1px) solid ${neutralStrokeStrongRest};
|
|
25
26
|
background: ${neutralFillInputAltRest};
|
|
26
|
-
outline: none;
|
|
27
27
|
cursor: pointer;
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -74,9 +74,8 @@ export const checkboxStyles = (context, definition) => css `
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
:host(:${focusVisible}) .control {
|
|
77
|
-
box-shadow: 0 0 0 1px ${fillColor}, 0 0 0 3px ${focusStrokeOuter};
|
|
78
77
|
background: ${neutralFillInputAltFocus};
|
|
79
|
-
|
|
78
|
+
${focusTreatmentTight}
|
|
80
79
|
}
|
|
81
80
|
|
|
82
81
|
:host(.checked) .control {
|
|
@@ -125,7 +124,7 @@ export const checkboxStyles = (context, definition) => css `
|
|
|
125
124
|
}
|
|
126
125
|
:host(:${focusVisible}) .control {
|
|
127
126
|
forced-color-adjust: none;
|
|
128
|
-
|
|
127
|
+
outline-color: ${SystemColors.FieldText};
|
|
129
128
|
background: ${SystemColors.Field};
|
|
130
129
|
border-color: ${SystemColors.Highlight};
|
|
131
130
|
}
|
|
@@ -138,9 +137,6 @@ export const checkboxStyles = (context, definition) => css `
|
|
|
138
137
|
background: ${SystemColors.HighlightText};
|
|
139
138
|
border-color: ${SystemColors.Highlight};
|
|
140
139
|
}
|
|
141
|
-
:host(.checked:${focusVisible}) .control {
|
|
142
|
-
box-shadow: 0 0 0 1px ${SystemColors.Field}, 0 0 0 3px ${SystemColors.FieldText};
|
|
143
|
-
}
|
|
144
140
|
:host(.checked) slot[name='checked-indicator'],
|
|
145
141
|
:host(.checked) slot[name='indeterminate-indicator'] {
|
|
146
142
|
fill: ${SystemColors.HighlightText};
|
|
@@ -1,12 +1,27 @@
|
|
|
1
1
|
import { css } from '@microsoft/fast-element';
|
|
2
|
-
import { disabledCursor
|
|
2
|
+
import { disabledCursor } from '@microsoft/fast-foundation';
|
|
3
3
|
import { selectFilledStyles, selectStyles } from '../select/select.styles';
|
|
4
4
|
import { appearanceBehavior } from '../utilities/behaviors';
|
|
5
|
-
import { strokeWidth } from '../design-tokens';
|
|
5
|
+
import { neutralFillInputActive, neutralFillInputHover, neutralFillInputRest, neutralStrokeInputActive, neutralStrokeInputHover, neutralStrokeInputRest, strokeWidth } from '../design-tokens';
|
|
6
6
|
import { typeRampBase } from '../styles/patterns/type-ramp';
|
|
7
7
|
export const comboboxStyles = (context, definition) => css `
|
|
8
8
|
${selectStyles(context, definition)}
|
|
9
9
|
|
|
10
|
+
:host {
|
|
11
|
+
background: padding-box linear-gradient(${neutralFillInputRest}, ${neutralFillInputRest}),
|
|
12
|
+
border-box ${neutralStrokeInputRest};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:host(:not([disabled]):not([open]):hover) {
|
|
16
|
+
background: padding-box linear-gradient(${neutralFillInputHover}, ${neutralFillInputHover}),
|
|
17
|
+
border-box ${neutralStrokeInputHover};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
:host(:not([disabled]):not([open]):active) {
|
|
21
|
+
background: padding-box linear-gradient(${neutralFillInputActive}, ${neutralFillInputActive}),
|
|
22
|
+
border-box ${neutralStrokeInputActive};
|
|
23
|
+
}
|
|
24
|
+
|
|
10
25
|
:host(:empty) .listbox {
|
|
11
26
|
display: none;
|
|
12
27
|
}
|
|
@@ -30,12 +45,6 @@ export const comboboxStyles = (context, definition) => css `
|
|
|
30
45
|
height: calc(100% - ${strokeWidth} * 1px));
|
|
31
46
|
margin: auto 0;
|
|
32
47
|
width: 100%;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.selected-value:hover,
|
|
36
|
-
.selected-value:${focusVisible},
|
|
37
|
-
.selected-value:disabled,
|
|
38
|
-
.selected-value:active {
|
|
39
48
|
outline: none;
|
|
40
49
|
}
|
|
41
50
|
`.withBehaviors(appearanceBehavior('filled', selectFilledStyles(context, definition)));
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { css } from '@microsoft/fast-element';
|
|
2
2
|
import { SystemColors } from '@microsoft/fast-web-utilities';
|
|
3
3
|
import { focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
|
|
4
|
-
import { controlCornerRadius, designUnit,
|
|
4
|
+
import { controlCornerRadius, designUnit, focusStrokeWidth, neutralForegroundRest, strokeWidth, } from '../design-tokens';
|
|
5
5
|
import { typeRampBase } from '../styles/patterns/type-ramp';
|
|
6
|
+
import { focusTreatmentBase } from '../styles/focus';
|
|
6
7
|
export const dataGridCellStyles = (context, definition) => css `
|
|
7
8
|
:host {
|
|
8
|
-
padding: calc(${designUnit} * 1px) calc(${designUnit} *
|
|
9
|
+
padding: calc((${designUnit} + ${focusStrokeWidth} - ${strokeWidth}) * 1px) calc(((${designUnit} * 3) + ${focusStrokeWidth} - ${strokeWidth}) * 1px);
|
|
9
10
|
color: ${neutralForegroundRest};
|
|
10
11
|
box-sizing: border-box;
|
|
11
12
|
${typeRampBase}
|
|
12
|
-
border: transparent calc(${
|
|
13
|
+
border: transparent calc(${strokeWidth} * 1px) solid;
|
|
13
14
|
overflow: hidden;
|
|
14
|
-
outline: none;
|
|
15
15
|
white-space: nowrap;
|
|
16
16
|
border-radius: calc(${controlCornerRadius} * 1px);
|
|
17
17
|
}
|
|
@@ -21,19 +21,16 @@ export const dataGridCellStyles = (context, definition) => css `
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
:host(:${focusVisible}) {
|
|
24
|
-
|
|
24
|
+
${focusTreatmentBase}
|
|
25
25
|
}
|
|
26
26
|
`.withBehaviors(forcedColorsStylesheetBehavior(css `
|
|
27
27
|
:host {
|
|
28
28
|
forced-color-adjust: none;
|
|
29
|
-
border-color: transparent;
|
|
30
29
|
background: ${SystemColors.Field};
|
|
31
30
|
color: ${SystemColors.FieldText};
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
:host(:${focusVisible}) {
|
|
35
|
-
|
|
36
|
-
box-shadow: 0 0 0 2px inset ${SystemColors.Field};
|
|
37
|
-
color: ${SystemColors.FieldText};
|
|
34
|
+
outline-color: ${SystemColors.FieldText};
|
|
38
35
|
}
|
|
39
36
|
`));
|
|
@@ -2,7 +2,8 @@ import { css } from '@microsoft/fast-element';
|
|
|
2
2
|
import { disabledCursor, display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
|
|
3
3
|
import { SystemColors } from '@microsoft/fast-web-utilities';
|
|
4
4
|
import { heightNumber } from '../styles';
|
|
5
|
-
import { controlCornerRadius, designUnit, disabledOpacity,
|
|
5
|
+
import { controlCornerRadius, designUnit, disabledOpacity, neutralFillRest, neutralFillStrongActive, neutralFillStrongHover, neutralFillStrongRest, neutralStrokeControlRest, strokeWidth, } from '../design-tokens';
|
|
6
|
+
import { focusTreatmentBase } from '../styles/focus';
|
|
6
7
|
export const flipperStyles = (context, definition) => css `
|
|
7
8
|
${display('inline-flex')} :host {
|
|
8
9
|
height: calc((${heightNumber} + ${designUnit}) * 1px);
|
|
@@ -13,9 +14,8 @@ export const flipperStyles = (context, definition) => css `
|
|
|
13
14
|
background: padding-box linear-gradient(${neutralFillRest}, ${neutralFillRest}),
|
|
14
15
|
border-box ${neutralStrokeControlRest};
|
|
15
16
|
box-sizing: border-box;
|
|
16
|
-
border: calc(${
|
|
17
|
+
border: calc(${strokeWidth} * 1px) solid transparent;
|
|
17
18
|
border-radius: calc(${controlCornerRadius} * 1px);
|
|
18
|
-
outline: none;
|
|
19
19
|
padding: 0;
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -43,7 +43,7 @@ export const flipperStyles = (context, definition) => css `
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
:host(:${focusVisible}) {
|
|
46
|
-
|
|
46
|
+
${focusTreatmentBase}
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
:host::-moz-focus-inner {
|
|
@@ -79,7 +79,6 @@ export const flipperStyles = (context, definition) => css `
|
|
|
79
79
|
}
|
|
80
80
|
:host(:${focusVisible}) {
|
|
81
81
|
forced-color-adjust: none;
|
|
82
|
-
|
|
83
|
-
box-shadow: 0 0 0 2px ${SystemColors.ButtonFace}, 0 0 0 4px ${SystemColors.ButtonText};
|
|
82
|
+
outline-color: ${SystemColors.Highlight};
|
|
84
83
|
}
|
|
85
84
|
`));
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { css } from '@microsoft/fast-element';
|
|
2
2
|
import { display, ListboxOption } from '@microsoft/fast-foundation';
|
|
3
|
-
import { controlCornerRadius, designUnit,
|
|
3
|
+
import { controlCornerRadius, designUnit, neutralStrokeRest, strokeWidth, } from '../design-tokens';
|
|
4
|
+
import { focusTreatmentBase } from '../styles/focus';
|
|
4
5
|
export const listboxStyles = (context, definition) => css `
|
|
5
6
|
${display('inline-flex')} :host {
|
|
6
7
|
border: calc(${strokeWidth} * 1px) solid ${neutralStrokeRest};
|
|
@@ -8,7 +9,6 @@ export const listboxStyles = (context, definition) => css `
|
|
|
8
9
|
box-sizing: border-box;
|
|
9
10
|
flex-direction: column;
|
|
10
11
|
padding: calc(${designUnit} * 1px) 0;
|
|
11
|
-
outline: none;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
::slotted(${context.tagFor(ListboxOption)}) {
|
|
@@ -16,7 +16,6 @@ export const listboxStyles = (context, definition) => css `
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
:host(:focus-within:not([disabled])) {
|
|
19
|
-
|
|
20
|
-
box-shadow: 0 0 0 1px ${focusStrokeOuter} inset;
|
|
19
|
+
${focusTreatmentBase}
|
|
21
20
|
}
|
|
22
21
|
`;
|
|
@@ -2,24 +2,24 @@ import { css } from '@microsoft/fast-element';
|
|
|
2
2
|
import { disabledCursor, display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
|
|
3
3
|
import { SystemColors } from '@microsoft/fast-web-utilities';
|
|
4
4
|
import { heightNumber } from '../styles/size';
|
|
5
|
-
import { accentFillRest, controlCornerRadius, designUnit, disabledOpacity,
|
|
5
|
+
import { accentFillRest, controlCornerRadius, designUnit, disabledOpacity, focusStrokeWidth, neutralFillSecondaryActive, neutralFillSecondaryHover, neutralFillSecondaryRest, neutralFillStealthActive, neutralFillStealthFocus, neutralFillStealthHover, neutralFillStealthRest, neutralForegroundRest, strokeWidth, } from '../design-tokens';
|
|
6
6
|
import { typeRampBase } from '../styles/patterns/type-ramp';
|
|
7
|
+
import { focusTreatmentBase } from '../styles/focus';
|
|
7
8
|
export const optionStyles = (context, definition) => css `
|
|
8
9
|
${display('inline-flex')} :host {
|
|
9
10
|
position: relative;
|
|
10
11
|
${typeRampBase}
|
|
11
12
|
background: ${neutralFillStealthRest};
|
|
12
13
|
border-radius: calc(${controlCornerRadius} * 1px);
|
|
13
|
-
border: calc(${
|
|
14
|
+
border: calc(${strokeWidth} * 1px) solid transparent;
|
|
14
15
|
box-sizing: border-box;
|
|
15
16
|
color: ${neutralForegroundRest};
|
|
16
17
|
cursor: pointer;
|
|
17
18
|
fill: currentcolor;
|
|
18
19
|
height: calc(${heightNumber} * 1px);
|
|
19
|
-
outline: none;
|
|
20
20
|
overflow: hidden;
|
|
21
21
|
align-items: center;
|
|
22
|
-
padding: 0 calc(${designUnit} *
|
|
22
|
+
padding: 0 calc(((${designUnit} * 3) - ${strokeWidth} - 1) * 1px);
|
|
23
23
|
user-select: none;
|
|
24
24
|
white-space: nowrap;
|
|
25
25
|
}
|
|
@@ -28,7 +28,7 @@ export const optionStyles = (context, definition) => css `
|
|
|
28
28
|
content: '';
|
|
29
29
|
display: block;
|
|
30
30
|
position: absolute;
|
|
31
|
-
left:
|
|
31
|
+
left: calc((${focusStrokeWidth} - ${strokeWidth}) * 1px);
|
|
32
32
|
top: calc((${heightNumber} / 4) - ${focusStrokeWidth} * 1px);
|
|
33
33
|
width: 3px;
|
|
34
34
|
height: calc((${heightNumber} / 2) * 1px);
|
|
@@ -54,7 +54,7 @@ export const optionStyles = (context, definition) => css `
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
:host(:${focusVisible}) {
|
|
57
|
-
|
|
57
|
+
${focusTreatmentBase}
|
|
58
58
|
background: ${neutralFillStealthFocus};
|
|
59
59
|
}
|
|
60
60
|
|
|
@@ -127,4 +127,7 @@ export const optionStyles = (context, definition) => css `
|
|
|
127
127
|
fill: currentcolor;
|
|
128
128
|
opacity: 1;
|
|
129
129
|
}
|
|
130
|
+
:host(:${focusVisible}) {
|
|
131
|
+
outline-color: ${SystemColors.CanvasText};
|
|
132
|
+
}
|
|
130
133
|
`));
|
|
@@ -9,7 +9,7 @@ export const menuStyles = (context, definition) => css `
|
|
|
9
9
|
border: calc(${strokeWidth} * 1px) solid transparent;
|
|
10
10
|
border-radius: calc(${layerCornerRadius} * 1px);
|
|
11
11
|
box-shadow: ${elevationShadowFlyout};
|
|
12
|
-
padding: calc(${designUnit} * 1px) 0;
|
|
12
|
+
padding: calc((${designUnit} - ${strokeWidth}) * 1px) 0;
|
|
13
13
|
max-width: 368px;
|
|
14
14
|
min-width: 64px;
|
|
15
15
|
}
|
|
@@ -2,14 +2,14 @@ import { css } from '@microsoft/fast-element';
|
|
|
2
2
|
import { disabledCursor, display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
|
|
3
3
|
import { SystemColors } from '@microsoft/fast-web-utilities';
|
|
4
4
|
import { DirectionalStyleSheetBehavior, heightNumber } from '../styles/index';
|
|
5
|
-
import { controlCornerRadius, disabledOpacity,
|
|
5
|
+
import { controlCornerRadius, disabledOpacity, neutralFillStealthActive, neutralFillStealthHover, neutralForegroundHint, neutralForegroundRest, strokeWidth, } from '../design-tokens';
|
|
6
6
|
import { typeRampBase } from '../styles/patterns/type-ramp';
|
|
7
|
+
import { focusTreatmentBase } from '../styles/focus';
|
|
7
8
|
export const menuItemStyles = (context, definition) => css `
|
|
8
9
|
${display('grid')} :host {
|
|
9
10
|
contain: layout;
|
|
10
11
|
overflow: visible;
|
|
11
12
|
${typeRampBase}
|
|
12
|
-
outline: none;
|
|
13
13
|
box-sizing: border-box;
|
|
14
14
|
height: calc(${heightNumber} * 1px);
|
|
15
15
|
grid-template-columns: minmax(32px, auto) 1fr minmax(32px, auto);
|
|
@@ -64,8 +64,7 @@ export const menuItemStyles = (context, definition) => css `
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
:host(:${focusVisible}) {
|
|
67
|
-
|
|
68
|
-
box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${focusStrokeOuter};
|
|
67
|
+
${focusTreatmentBase}
|
|
69
68
|
}
|
|
70
69
|
|
|
71
70
|
:host(:not([disabled]):hover) {
|
|
@@ -151,7 +150,6 @@ export const menuItemStyles = (context, definition) => css `
|
|
|
151
150
|
justify-content: center;
|
|
152
151
|
position: relative;
|
|
153
152
|
box-sizing: border-box;
|
|
154
|
-
outline: none;
|
|
155
153
|
}
|
|
156
154
|
|
|
157
155
|
:host .checkbox-indicator,
|
|
@@ -197,13 +195,11 @@ export const menuItemStyles = (context, definition) => css `
|
|
|
197
195
|
}
|
|
198
196
|
:host(.expanded) {
|
|
199
197
|
background: ${SystemColors.Highlight};
|
|
200
|
-
border-color: ${SystemColors.Highlight};
|
|
201
198
|
color: ${SystemColors.HighlightText};
|
|
202
199
|
}
|
|
203
200
|
:host(:${focusVisible}) {
|
|
204
201
|
background: ${SystemColors.Highlight};
|
|
205
|
-
|
|
206
|
-
box-shadow: 0 0 0 calc(${strokeWidth} * 1px) inset ${SystemColors.HighlightText};
|
|
202
|
+
outline-color: ${SystemColors.ButtonText};
|
|
207
203
|
color: ${SystemColors.HighlightText};
|
|
208
204
|
fill: currentcolor;
|
|
209
205
|
}
|
|
@@ -219,7 +215,7 @@ export const menuItemStyles = (context, definition) => css `
|
|
|
219
215
|
opacity: 1;
|
|
220
216
|
}
|
|
221
217
|
:host([disabled]:${focusVisible}) {
|
|
222
|
-
|
|
218
|
+
outline-color: ${SystemColors.GrayText};
|
|
223
219
|
}
|
|
224
220
|
:host .expanded-toggle,
|
|
225
221
|
:host .checkbox,
|
|
@@ -6,7 +6,6 @@ import { accentFillRest, neutralForegroundHint } from '../../design-tokens';
|
|
|
6
6
|
export const progressRingStyles = (context, definition) => css `
|
|
7
7
|
${display('flex')} :host {
|
|
8
8
|
align-items: center;
|
|
9
|
-
outline: none;
|
|
10
9
|
height: calc(${heightNumber} * 1px);
|
|
11
10
|
width: calc(${heightNumber} * 1px);
|
|
12
11
|
}
|
|
@@ -2,8 +2,9 @@ import { css } from '@microsoft/fast-element';
|
|
|
2
2
|
import { SystemColors } from '@microsoft/fast-web-utilities';
|
|
3
3
|
import { disabledCursor, display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
|
|
4
4
|
import { heightNumber } from '../styles';
|
|
5
|
-
import { accentFillActive, accentFillHover, accentFillRest, designUnit, disabledOpacity,
|
|
5
|
+
import { accentFillActive, accentFillHover, accentFillRest, designUnit, disabledOpacity, foregroundOnAccentRest, neutralFillInputAltActive, neutralFillInputAltFocus, neutralFillInputAltHover, neutralFillInputAltRest, neutralForegroundRest, neutralStrokeStrongActive, neutralStrokeStrongHover, neutralStrokeStrongRest, strokeWidth, } from '../design-tokens';
|
|
6
6
|
import { typeRampBase } from '../styles/patterns/type-ramp';
|
|
7
|
+
import { focusTreatmentTight } from '../styles/focus';
|
|
7
8
|
export const radioStyles = (context, definition) => css `
|
|
8
9
|
${display('inline-flex')} :host {
|
|
9
10
|
--input-size: calc((${heightNumber} / 2) + ${designUnit});
|
|
@@ -27,7 +28,6 @@ export const radioStyles = (context, definition) => css `
|
|
|
27
28
|
border-radius: 50%;
|
|
28
29
|
border: calc(${strokeWidth} * 1px) solid ${neutralStrokeStrongRest};
|
|
29
30
|
background: ${neutralFillInputAltRest};
|
|
30
|
-
outline: none;
|
|
31
31
|
cursor: pointer;
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -76,9 +76,8 @@ export const radioStyles = (context, definition) => css `
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
:host(:${focusVisible}) .control {
|
|
79
|
-
|
|
79
|
+
${focusTreatmentTight}
|
|
80
80
|
background: ${neutralFillInputAltFocus};
|
|
81
|
-
border-color: ${focusStrokeOuter};
|
|
82
81
|
}
|
|
83
82
|
|
|
84
83
|
:host(.checked) .control {
|
|
@@ -121,18 +120,14 @@ export const radioStyles = (context, definition) => css `
|
|
|
121
120
|
}
|
|
122
121
|
:host(:${focusVisible}) .control {
|
|
123
122
|
forced-color-adjust: none;
|
|
124
|
-
box-shadow: 0 0 0 1px ${SystemColors.Field}, 0 0 0 3px ${SystemColors.FieldText};
|
|
125
123
|
background: ${SystemColors.Field};
|
|
126
|
-
|
|
124
|
+
outline-color: ${SystemColors.FieldText};
|
|
127
125
|
}
|
|
128
126
|
:host(.checked:not(.disabled):hover) .control,
|
|
129
127
|
:host(.checked:not(.disabled):active) .control {
|
|
130
128
|
border-color: ${SystemColors.Highlight};
|
|
131
129
|
background: ${SystemColors.Highlight};
|
|
132
130
|
}
|
|
133
|
-
:host(.checked:${focusVisible}) .control {
|
|
134
|
-
box-shadow: 0 0 0 1px ${SystemColors.Field}, 0 0 0 3px ${SystemColors.FieldText};
|
|
135
|
-
}
|
|
136
131
|
:host(.checked) slot[name='checked-indicator'] {
|
|
137
132
|
fill: ${SystemColors.Highlight};
|
|
138
133
|
}
|
|
@@ -4,8 +4,9 @@ import { SystemColors } from '@microsoft/fast-web-utilities';
|
|
|
4
4
|
import { elevationShadowFlyout } from '../styles/elevation';
|
|
5
5
|
import { heightNumber } from '../styles/size';
|
|
6
6
|
import { appearanceBehavior } from '../utilities/behaviors';
|
|
7
|
-
import { bodyFont, controlCornerRadius, designUnit, disabledOpacity, fillColor,
|
|
7
|
+
import { bodyFont, controlCornerRadius, designUnit, disabledOpacity, fillColor, layerCornerRadius, neutralFillActive, neutralFillHover, neutralFillRest, neutralFillSecondaryActive, neutralFillSecondaryHover, neutralFillSecondaryRest, neutralFillStealthActive, neutralFillStealthHover, neutralFillStealthRest, neutralForegroundRest, neutralStrokeControlActive, neutralStrokeControlHover, neutralStrokeControlRest, strokeWidth, } from '../design-tokens';
|
|
8
8
|
import { typeRampBase } from '../styles/patterns/type-ramp';
|
|
9
|
+
import { focusTreatmentBase } from '../styles/focus';
|
|
9
10
|
export const selectFilledStyles = (context, definition) => css `
|
|
10
11
|
:host {
|
|
11
12
|
background: ${neutralFillSecondaryRest};
|
|
@@ -29,12 +30,6 @@ export const selectFilledStyles = (context, definition) => css `
|
|
|
29
30
|
:host(:not([disabled]):not([open]):active) {
|
|
30
31
|
border-color: ${SystemColors.Highlight};
|
|
31
32
|
}
|
|
32
|
-
:host(:${focusVisible}) {
|
|
33
|
-
forced-color-adjust: none;
|
|
34
|
-
background: transparent;
|
|
35
|
-
border-color: ${SystemColors.Highlight};
|
|
36
|
-
box-shadow: 0 0 0 1px inset ${SystemColors.Highlight};
|
|
37
|
-
}
|
|
38
33
|
`));
|
|
39
34
|
export const selectStealthStyles = (context, definition) => css `
|
|
40
35
|
:host {
|
|
@@ -113,9 +108,7 @@ export const selectStyles = (context, definition) => css `
|
|
|
113
108
|
}
|
|
114
109
|
|
|
115
110
|
:host(:${focusVisible}) {
|
|
116
|
-
|
|
117
|
-
outline: none;
|
|
118
|
-
box-shadow: 0 0 0 1px inset ${focusStrokeOuter};
|
|
111
|
+
${focusTreatmentBase}
|
|
119
112
|
}
|
|
120
113
|
|
|
121
114
|
:host([disabled]) {
|
|
@@ -188,8 +181,7 @@ export const selectStyles = (context, definition) => css `
|
|
|
188
181
|
}
|
|
189
182
|
:host(:${focusVisible}) {
|
|
190
183
|
forced-color-adjust: none;
|
|
191
|
-
|
|
192
|
-
box-shadow: 0 0 0 1px inset ${SystemColors.Highlight};
|
|
184
|
+
outline-color: ${SystemColors.Highlight};
|
|
193
185
|
}
|
|
194
186
|
:host([open]) .listbox {
|
|
195
187
|
background: ${SystemColors.ButtonFace};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { cssPartial } from '@microsoft/fast-element';
|
|
2
|
+
import { focusStrokeOuter, focusStrokeWidth, strokeWidth } from '../design-tokens';
|
|
3
|
+
/**
|
|
4
|
+
* Partial CSS for the focus treatment for most typical sized components like Button, Menu Item, etc.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export const focusTreatmentBase = cssPartial `
|
|
9
|
+
outline: calc(${focusStrokeWidth} * 1px) solid ${focusStrokeOuter};
|
|
10
|
+
outline-offset: calc(${focusStrokeWidth} * -1px);
|
|
11
|
+
`;
|
|
12
|
+
/**
|
|
13
|
+
* Partial CSS for the focus treatment for tighter components with spacing constraints, like Checkbox
|
|
14
|
+
* and Radio, or plain text like Hypertext appearance Anchor or Breadcrumb Item.
|
|
15
|
+
*
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export const focusTreatmentTight = cssPartial `
|
|
19
|
+
outline: calc(${focusStrokeWidth} * 1px) solid ${focusStrokeOuter};
|
|
20
|
+
outline-offset: calc(${strokeWidth} * 1px);
|
|
21
|
+
`;
|