@fluentui/web-components 2.5.4 → 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.
Files changed (34) hide show
  1. package/CHANGELOG.json +46 -1
  2. package/CHANGELOG.md +20 -2
  3. package/dist/dts/styles/focus.d.ts +13 -0
  4. package/dist/dts/styles/index.d.ts +1 -0
  5. package/dist/esm/accordion/accordion-item/accordion-item.styles.js +8 -10
  6. package/dist/esm/breadcrumb-item/breadcrumb-item.styles.js +6 -10
  7. package/dist/esm/checkbox/checkbox.styles.js +4 -8
  8. package/dist/esm/combobox/combobox.styles.js +17 -8
  9. package/dist/esm/data-grid/data-grid-cell.styles.js +6 -9
  10. package/dist/esm/flipper/flipper.styles.js +5 -6
  11. package/dist/esm/listbox/listbox.styles.js +3 -4
  12. package/dist/esm/listbox-option/listbox-option.styles.js +9 -6
  13. package/dist/esm/menu/menu.styles.js +1 -1
  14. package/dist/esm/menu-item/menu-item.styles.js +5 -9
  15. package/dist/esm/progress/progress/progress.styles.js +0 -1
  16. package/dist/esm/progress/progress-ring/progress-ring.styles.js +0 -1
  17. package/dist/esm/radio/radio.styles.js +4 -9
  18. package/dist/esm/select/select.styles.js +4 -12
  19. package/dist/esm/styles/focus.js +21 -0
  20. package/dist/esm/styles/index.js +1 -0
  21. package/dist/esm/styles/patterns/button.styles.js +13 -21
  22. package/dist/esm/styles/patterns/input.styles.js +1 -9
  23. package/dist/esm/switch/switch.styles.js +5 -17
  24. package/dist/esm/tabs/tab/tab.styles.js +4 -6
  25. package/dist/esm/text-area/text-area.stories.js +2 -2
  26. package/dist/esm/toolbar/toolbar.styles.js +4 -3
  27. package/dist/esm/tree-item/tree-item.styles.js +4 -14
  28. package/dist/esm/tree-view/tree-view.styles.js +0 -4
  29. package/dist/fluent-web-components.api.json +52 -0
  30. package/dist/web-components.d.ts +15 -0
  31. package/dist/web-components.js +88 -51
  32. package/dist/web-components.min.js +150 -139
  33. package/docs/api-report.md +6 -0
  34. package/package.json +2 -2
@@ -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
+ `;
@@ -1,4 +1,5 @@
1
1
  export * from './direction';
2
2
  export * from './elevation';
3
+ export * from './focus';
3
4
  export * from './patterns/';
4
5
  export * from './size';
@@ -2,8 +2,9 @@ import { css } from '@microsoft/fast-element';
2
2
  import { SystemColors } from '@microsoft/fast-web-utilities';
3
3
  import { display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
4
4
  import { heightNumber } from '../size';
5
- import { accentFillActive, accentFillHover, accentFillRest, accentForegroundActive, accentForegroundHover, accentForegroundRest, accentStrokeControlActive, accentStrokeControlHover, accentStrokeControlRest, controlCornerRadius, density, designUnit, focusStrokeInner, focusStrokeOuter, focusStrokeWidth, foregroundOnAccentActive, foregroundOnAccentHover, foregroundOnAccentRest, neutralFillActive, neutralFillHover, neutralFillRest, neutralFillStealthActive, neutralFillStealthHover, neutralFillStealthRest, neutralForegroundRest, neutralStrokeActive, neutralStrokeControlActive, neutralStrokeControlHover, neutralStrokeControlRest, neutralStrokeHover, neutralStrokeRest, strokeWidth, } from '../../design-tokens';
5
+ import { accentFillActive, accentFillHover, accentFillRest, accentForegroundActive, accentForegroundHover, accentForegroundRest, accentStrokeControlActive, accentStrokeControlHover, accentStrokeControlRest, controlCornerRadius, density, designUnit, focusStrokeInner, focusStrokeWidth, foregroundOnAccentActive, foregroundOnAccentHover, foregroundOnAccentRest, neutralFillActive, neutralFillHover, neutralFillRest, neutralFillStealthActive, neutralFillStealthHover, neutralFillStealthRest, neutralForegroundRest, neutralStrokeActive, neutralStrokeControlActive, neutralStrokeControlHover, neutralStrokeControlRest, neutralStrokeHover, neutralStrokeRest, strokeWidth, } from '../../design-tokens';
6
6
  import { typeRampBase } from '../../styles/patterns/type-ramp';
7
+ import { focusTreatmentBase, focusTreatmentTight } from '../focus';
7
8
  /**
8
9
  * @internal
9
10
  */
@@ -11,7 +12,6 @@ export const baseButtonStyles = (context, definition, interactivitySelector = ''
11
12
  ${display('inline-flex')} :host {
12
13
  position: relative;
13
14
  box-sizing: border-box;
14
- outline: none;
15
15
  ${typeRampBase}
16
16
  height: calc(${heightNumber} * 1px);
17
17
  min-width: calc(${heightNumber} * 1px);
@@ -63,8 +63,7 @@ export const baseButtonStyles = (context, definition, interactivitySelector = ''
63
63
  }
64
64
 
65
65
  :host .control:${focusVisible} {
66
- border-color: ${focusStrokeOuter} !important;
67
- box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${focusStrokeOuter} inset !important;
66
+ ${focusTreatmentBase}
68
67
  }
69
68
 
70
69
  :host .control${nonInteractivitySelector} {
@@ -111,8 +110,7 @@ export const baseButtonStyles = (context, definition, interactivitySelector = ''
111
110
  :host(:${focusVisible}) .control {
112
111
  forced-color-adjust: none;
113
112
  background: ${SystemColors.ButtonFace};
114
- border-color: ${SystemColors.Highlight} !important;
115
- box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${SystemColors.Highlight} !important;
113
+ outline-color: ${SystemColors.Highlight};
116
114
  }
117
115
  :host([href]) .control {
118
116
  background: ${SystemColors.ButtonFace};
@@ -129,8 +127,7 @@ export const baseButtonStyles = (context, definition, interactivitySelector = ''
129
127
  }
130
128
  :host([href]) .control:${focusVisible}{
131
129
  forced-color-adjust: none;
132
- border-color: ${SystemColors.LinkText} !important;
133
- box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${SystemColors.LinkText} !important;
130
+ outline-color: ${SystemColors.LinkText};
134
131
  }
135
132
  `));
136
133
  /**
@@ -156,8 +153,8 @@ export const AccentButtonStyles = (context, definition, interactivitySelector =
156
153
  }
157
154
 
158
155
  :host .control:${focusVisible} {
159
- box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${focusStrokeOuter} inset,
160
- 0 0 0 calc(((${focusStrokeWidth} + ${strokeWidth}) - ${strokeWidth}) * 1px) ${focusStrokeInner} inset !important;
156
+ ${focusTreatmentBase}
157
+ box-shadow: 0 0 0 calc(((${focusStrokeWidth} + ${strokeWidth}) - ${strokeWidth}) * 1px) ${focusStrokeInner} inset !important;
161
158
  }
162
159
 
163
160
  :host .control${nonInteractivitySelector} {
@@ -177,8 +174,8 @@ export const AccentButtonStyles = (context, definition, interactivitySelector =
177
174
  }
178
175
  :host .control:${focusVisible} {
179
176
  background: ${SystemColors.Highlight};
180
- box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${SystemColors.Highlight} inset,
181
- 0 0 0 calc(((${focusStrokeWidth} + ${strokeWidth}) - ${strokeWidth}) * 1px) ${SystemColors.HighlightText} inset !important;
177
+ outline-color: ${SystemColors.Highlight};
178
+ box-shadow: 0 0 0 calc(((${focusStrokeWidth} + ${strokeWidth}) - ${strokeWidth}) * 1px) ${SystemColors.HighlightText} inset !important;
182
179
  }
183
180
  :host([href]) .control {
184
181
  background: ${SystemColors.LinkText};
@@ -187,14 +184,13 @@ export const AccentButtonStyles = (context, definition, interactivitySelector =
187
184
  :host([href]) .control:hover {
188
185
  background: ${SystemColors.ButtonFace};
189
186
  border-color: ${SystemColors.LinkText};
190
- box-shadow: none;
191
187
  color: ${SystemColors.LinkText};
192
188
  fill: currentcolor;
193
189
  }
194
190
  :host([href]) .control:${focusVisible} {
195
191
  background: ${SystemColors.LinkText};
196
- box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${SystemColors.LinkText} inset,
197
- 0 0 0 calc(((${focusStrokeWidth} + ${strokeWidth}) - ${strokeWidth}) * 1px) ${SystemColors.HighlightText} inset !important;
192
+ outline-color: ${SystemColors.LinkText};
193
+ box-shadow: 0 0 0 calc(((${focusStrokeWidth} + ${strokeWidth}) - ${strokeWidth}) * 1px) ${SystemColors.HighlightText} inset !important;
198
194
  color: ${SystemColors.HighlightText};
199
195
  fill: currentcolor;
200
196
  }
@@ -243,7 +239,7 @@ export const HypertextStyles = (context, definition, interactivitySelector = '',
243
239
  }
244
240
 
245
241
  :host .control:${focusVisible} {
246
- box-shadow: 0 0 0 calc(${focusStrokeWidth} * 1px) ${focusStrokeOuter} !important;
242
+ ${focusTreatmentTight}
247
243
  }
248
244
 
249
245
  :host .control${nonInteractivitySelector} {
@@ -293,7 +289,6 @@ export const LightweightButtonStyles = (context, definition, interactivitySelect
293
289
  :host .control:${focusVisible} {
294
290
  border-color: ${SystemColors.Highlight};
295
291
  background: ${SystemColors.Highlight};
296
- box-shadow: none;
297
292
  color: ${SystemColors.HighlightText};
298
293
  }
299
294
  :host([href]) .control {
@@ -303,7 +298,6 @@ export const LightweightButtonStyles = (context, definition, interactivitySelect
303
298
  :host([href]) .control:hover,
304
299
  :host([href]) .control:${focusVisible} {
305
300
  background: ${SystemColors.ButtonFace};
306
- box-shadow: none;
307
301
  color: ${SystemColors.LinkText};
308
302
  }
309
303
  `));
@@ -340,7 +334,7 @@ export const OutlineButtonStyles = (context, definition, interactivitySelector =
340
334
  border-color: ${SystemColors.LinkText};
341
335
  }
342
336
  :host([href]) .control:hover {
343
- box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${SystemColors.LinkText};
337
+ outline-color: ${SystemColors.LinkText};
344
338
  color: ${SystemColors.LinkText};
345
339
  }
346
340
  `));
@@ -375,7 +369,6 @@ export const StealthButtonStyles = (context, definition, interactivitySelector =
375
369
  :host .control:${focusVisible} {
376
370
  background: ${SystemColors.Highlight};
377
371
  border-color: ${SystemColors.Highlight};
378
- box-shadow: none !important;
379
372
  color: ${SystemColors.HighlightText};
380
373
  fill: currentcolor;
381
374
  }
@@ -387,7 +380,6 @@ export const StealthButtonStyles = (context, definition, interactivitySelector =
387
380
  :host([href]) .control:${focusVisible} {
388
381
  background: ${SystemColors.LinkText};
389
382
  border-color: ${SystemColors.LinkText};
390
- box-shadow: none !important;
391
383
  color: ${SystemColors.HighlightText};
392
384
  fill: currentcolor;
393
385
  }
@@ -1,5 +1,5 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { DesignToken, disabledCursor, focusVisible, } from '@microsoft/fast-foundation';
2
+ import { DesignToken, disabledCursor, } from '@microsoft/fast-foundation';
3
3
  import { SystemColors } from '@microsoft/fast-web-utilities';
4
4
  import { accentFillRest, controlCornerRadius, disabledOpacity, focusStrokeWidth, neutralFillInputFocus, neutralFillInputHover, neutralFillInputRecipe, neutralFillInputRest, neutralFillSecondaryHover, neutralFillSecondaryRecipe, neutralFillSecondaryRest, neutralForegroundHintRecipe, neutralForegroundRest, neutralStrokeInputHover, neutralStrokeInputRest, neutralStrokeRest, strokeWidth, } from '../../design-tokens';
5
5
  import { typeRampBase } from '../patterns/type-ramp';
@@ -32,7 +32,6 @@ export const inputStyles = (context, definition, rootSelector) => css `
32
32
  ${typeRampBase}
33
33
  color: ${neutralForegroundRest};
34
34
  fill: currentcolor;
35
- outline: none;
36
35
  user-select: none;
37
36
  position: relative;
38
37
  }
@@ -53,12 +52,6 @@ export const inputStyles = (context, definition, rootSelector) => css `
53
52
 
54
53
  .control {
55
54
  width: 100%;
56
- }
57
-
58
- .control:hover,
59
- .control:${focusVisible},
60
- .control:disabled,
61
- .control:active {
62
55
  outline: none;
63
56
  }
64
57
 
@@ -164,7 +157,6 @@ export const inputFilledStyles = (context, definition, rootSelector) => css `
164
157
 
165
158
  :host(:focus-within:not([disabled])) ${rootSelector} {
166
159
  border-color: transparent;
167
- box-shadow: none;
168
160
  }
169
161
  `;
170
162
  /**
@@ -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 { DirectionalStyleSheetBehavior, heightNumber } from '../styles';
5
- import { accentFillActive, accentFillHover, accentFillRest, bodyFont, designUnit, disabledOpacity, fillColor, focusStrokeOuter, foregroundOnAccentActive, foregroundOnAccentHover, foregroundOnAccentRest, neutralFillInputAltActive, neutralFillInputAltFocus, neutralFillInputAltHover, neutralFillInputAltRest, neutralForegroundRest, neutralStrokeStrongActive, neutralStrokeStrongHover, neutralStrokeStrongRest, strokeWidth, } from '../design-tokens';
5
+ import { accentFillActive, accentFillHover, accentFillRest, bodyFont, designUnit, disabledOpacity, foregroundOnAccentActive, foregroundOnAccentHover, 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 switchStyles = (context, definition) => css `
8
9
  :host([hidden]) {
9
10
  display: none;
@@ -35,7 +36,6 @@ export const switchStyles = (context, definition) => css `
35
36
 
36
37
  .switch {
37
38
  position: relative;
38
- outline: none;
39
39
  box-sizing: border-box;
40
40
  width: calc(((${heightNumber} / 2) + ${designUnit}) * 2px);
41
41
  height: calc(((${heightNumber} / 2) + ${designUnit}) * 1px);
@@ -56,9 +56,8 @@ export const switchStyles = (context, definition) => css `
56
56
  }
57
57
 
58
58
  :host(:${focusVisible}) .switch {
59
- box-shadow: 0 0 0 1px ${fillColor}, 0 0 0 3px ${focusStrokeOuter};
59
+ ${focusTreatmentTight}
60
60
  background: ${neutralFillInputAltFocus};
61
- border-color: ${focusStrokeOuter};
62
61
  }
63
62
 
64
63
  :host(.checked) .switch {
@@ -132,11 +131,6 @@ export const switchStyles = (context, definition) => css `
132
131
  fill: ${foregroundOnAccentActive};
133
132
  }
134
133
 
135
- :host(.checked:${focusVisible}:not(.disabled)) .switch {
136
- box-shadow: 0 0 0 1px ${fillColor}, 0 0 0 3px ${focusStrokeOuter};
137
- border-color: transparent;
138
- }
139
-
140
134
  .unchecked-message {
141
135
  display: block;
142
136
  }
@@ -197,15 +191,9 @@ export const switchStyles = (context, definition) => css `
197
191
  }
198
192
  :host(:${focusVisible}) .switch {
199
193
  forced-color-adjust: none;
200
- background: ${SystemColors.Field};
194
+ background: ${SystemColors.Field};
201
195
  border-color: ${SystemColors.Highlight};
202
- box-shadow: 0 0 0 1px ${SystemColors.Highlight}, 0 0 0 3px ${SystemColors.FieldText};
203
- }
204
- :host(.checked:${focusVisible}:not(.disabled)) .switch {
205
- forced-color-adjust: none;
206
- background: ${SystemColors.Highlight};
207
- box-shadow: 0 0 0 1px ${SystemColors.Field}, 0 0 0 3px ${SystemColors.FieldText};
208
- border-color: ${SystemColors.Field};
196
+ outline-color: ${SystemColors.FieldText};
209
197
  }
210
198
  :host(.disabled) {
211
199
  opacity: 1;
@@ -2,8 +2,9 @@ import { css } from '@microsoft/fast-element';
2
2
  import { SystemColors } from '@microsoft/fast-web-utilities';
3
3
  import { display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
4
4
  import { heightNumber } from '../../styles';
5
- import { controlCornerRadius, density, designUnit, focusStrokeOuter, focusStrokeWidth, neutralForegroundRest, strokeWidth, } from '../../design-tokens';
5
+ import { controlCornerRadius, density, designUnit, neutralForegroundRest, strokeWidth, } from '../../design-tokens';
6
6
  import { typeRampBase } from '../../styles/patterns/type-ramp';
7
+ import { focusTreatmentBase } from '../../styles/focus';
7
8
  export const tabStyles = (context, definition) => css `
8
9
  ${display('inline-flex')} :host {
9
10
  box-sizing: border-box;
@@ -17,7 +18,6 @@ export const tabStyles = (context, definition) => css `
17
18
  justify-content: center;
18
19
  grid-row: 1 / 3;
19
20
  cursor: pointer;
20
- outline: none;
21
21
  }
22
22
 
23
23
  :host([aria-selected='true']) {
@@ -30,8 +30,7 @@ export const tabStyles = (context, definition) => css `
30
30
  }
31
31
 
32
32
  :host(:${focusVisible}) {
33
- border-color: ${focusStrokeOuter};
34
- box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${focusStrokeOuter} inset;
33
+ ${focusTreatmentBase}
35
34
  }
36
35
 
37
36
  :host(.vertical) {
@@ -71,7 +70,6 @@ export const tabStyles = (context, definition) => css `
71
70
  }
72
71
  :host(:${focusVisible}) {
73
72
  background: transparent;
74
- border-color: ${SystemColors.ButtonText};
75
- box-shadow: none;
73
+ outline-color: ${SystemColors.ButtonText};
76
74
  }
77
75
  `));
@@ -4,8 +4,8 @@ export default {
4
4
  component: fluentTextArea,
5
5
  argTypes: {
6
6
  appearance: {
7
- defaultValue: 'outlined',
8
- options: ['filled', 'outlined'],
7
+ defaultValue: 'outline',
8
+ options: ['filled', 'outline'],
9
9
  control: { type: 'radio' },
10
10
  },
11
11
  autoFocus: {
@@ -1,7 +1,8 @@
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 { designUnit, fillColor, focusStrokeWidth, neutralStrokeFocus, strokeWidth } from '../design-tokens';
4
+ import { designUnit, fillColor } from '../design-tokens';
5
+ import { focusTreatmentBase } from '../styles/focus';
5
6
  export const toolbarStyles = (context, definition) => css `
6
7
  ${display('inline-flex')} :host {
7
8
  --toolbar-item-gap: calc(${designUnit} * 1px);
@@ -13,7 +14,7 @@ export const toolbarStyles = (context, definition) => css `
13
14
  }
14
15
 
15
16
  :host(${focusVisible}) {
16
- outline: calc(${strokeWidth} * 1px) solid ${neutralStrokeFocus};
17
+ ${focusTreatmentBase}
17
18
  }
18
19
 
19
20
  .positioning-region {
@@ -65,7 +66,7 @@ export const toolbarStyles = (context, definition) => css `
65
66
  }
66
67
  `.withBehaviors(forcedColorsStylesheetBehavior(css `
67
68
  :host(:${focusVisible}) {
68
- box-shadow: 0 0 0 calc(${focusStrokeWidth} * 1px) ${SystemColors.Highlight};
69
+ outline-color: ${SystemColors.Highlight};
69
70
  color: ${SystemColors.ButtonText};
70
71
  forced-color-adjust: none;
71
72
  }
@@ -2,8 +2,9 @@ import { css, cssPartial } from '@microsoft/fast-element';
2
2
  import { DesignToken, 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 { accentFillRest, baseHeightMultiplier, bodyFont, controlCornerRadius, density, designUnit, disabledOpacity, focusStrokeOuter, focusStrokeWidth, neutralFillSecondaryRecipe, neutralFillSecondaryRest, neutralFillStealthActive, neutralFillStealthHover, neutralFillStealthRecipe, neutralFillStealthRest, neutralForegroundRest, strokeWidth, } from '../design-tokens';
5
+ import { accentFillRest, baseHeightMultiplier, bodyFont, controlCornerRadius, density, designUnit, disabledOpacity, focusStrokeWidth, neutralFillSecondaryRecipe, neutralFillSecondaryRest, neutralFillStealthActive, neutralFillStealthHover, neutralFillStealthRecipe, neutralFillStealthRest, neutralForegroundRest, strokeWidth, } from '../design-tokens';
6
6
  import { typeRampBase } from '../styles/patterns/type-ramp';
7
+ import { focusTreatmentBase } from '../styles/focus';
7
8
  const ltr = css `
8
9
  .expand-collapse-button svg {
9
10
  transform: rotate(0deg);
@@ -55,14 +56,6 @@ export const treeItemStyles = (context, definition) => css `
55
56
  --tree-item-nested-width: 0;
56
57
  }
57
58
 
58
- :host(:focus) > .positioning-region {
59
- outline: none;
60
- }
61
-
62
- :host(:focus) .content-region {
63
- outline: none;
64
- }
65
-
66
59
  .positioning-region {
67
60
  display: flex;
68
61
  position: relative;
@@ -74,8 +67,7 @@ export const treeItemStyles = (context, definition) => css `
74
67
  }
75
68
 
76
69
  :host(:${focusVisible}) .positioning-region {
77
- border-color: ${focusStrokeOuter};
78
- box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${focusStrokeOuter} inset;
70
+ ${focusTreatmentBase}
79
71
  }
80
72
 
81
73
  .positioning-region::before {
@@ -114,7 +106,6 @@ export const treeItemStyles = (context, definition) => css `
114
106
  background: none;
115
107
  border: none;
116
108
  border-radius: calc(${controlCornerRadius} * 1px);
117
- outline: none;
118
109
  ${
119
110
  /* Width and Height should be based off calc(glyph-size-number + (design-unit * 4) * 1px) -
120
111
  update when density story is figured out */ ''} width: calc((${expandCollapseButtonSize} + (${designUnit} * 2)) * 1px);
@@ -220,8 +211,7 @@ export const treeItemStyles = (context, definition) => css `
220
211
  }
221
212
  :host(:${focusVisible}) .positioning-region {
222
213
  forced-color-adjust: none;
223
- border-color: ${SystemColors.ButtonText};
224
- box-shadow: 0 0 0 2px inset ${SystemColors.ButtonFace};
214
+ outline-color: ${SystemColors.ButtonFace};
225
215
  }
226
216
  :host([disabled]),
227
217
  :host([disabled]) .content-region,
@@ -11,8 +11,4 @@ export const treeViewStyles = (context, definition) => css `
11
11
  min-width: fit-content;
12
12
  font-size: 0;
13
13
  }
14
-
15
- :host:focus-visible {
16
- outline: none;
17
- }
18
14
  `;
@@ -10759,6 +10759,58 @@
10759
10759
  "endIndex": 4
10760
10760
  }
10761
10761
  },
10762
+ {
10763
+ "kind": "Variable",
10764
+ "canonicalReference": "@fluentui/web-components!focusTreatmentBase:var",
10765
+ "docComment": "/**\n * Partial CSS for the focus treatment for most typical sized components like Button, Menu Item, etc.\n *\n * @public\n */\n",
10766
+ "excerptTokens": [
10767
+ {
10768
+ "kind": "Content",
10769
+ "text": "focusTreatmentBase: "
10770
+ },
10771
+ {
10772
+ "kind": "Content",
10773
+ "text": "import(\"@microsoft/fast-element\")."
10774
+ },
10775
+ {
10776
+ "kind": "Reference",
10777
+ "text": "CSSDirective",
10778
+ "canonicalReference": "@microsoft/fast-element!CSSDirective:class"
10779
+ }
10780
+ ],
10781
+ "releaseTag": "Public",
10782
+ "name": "focusTreatmentBase",
10783
+ "variableTypeTokenRange": {
10784
+ "startIndex": 1,
10785
+ "endIndex": 3
10786
+ }
10787
+ },
10788
+ {
10789
+ "kind": "Variable",
10790
+ "canonicalReference": "@fluentui/web-components!focusTreatmentTight:var",
10791
+ "docComment": "/**\n * Partial CSS for the focus treatment for tighter components with spacing constraints, like Checkbox and Radio, or plain text like Hypertext appearance Anchor or Breadcrumb Item.\n *\n * @public\n */\n",
10792
+ "excerptTokens": [
10793
+ {
10794
+ "kind": "Content",
10795
+ "text": "focusTreatmentTight: "
10796
+ },
10797
+ {
10798
+ "kind": "Content",
10799
+ "text": "import(\"@microsoft/fast-element\")."
10800
+ },
10801
+ {
10802
+ "kind": "Reference",
10803
+ "text": "CSSDirective",
10804
+ "canonicalReference": "@microsoft/fast-element!CSSDirective:class"
10805
+ }
10806
+ ],
10807
+ "releaseTag": "Public",
10808
+ "name": "focusTreatmentTight",
10809
+ "variableTypeTokenRange": {
10810
+ "startIndex": 1,
10811
+ "endIndex": 3
10812
+ }
10813
+ },
10762
10814
  {
10763
10815
  "kind": "Variable",
10764
10816
  "canonicalReference": "@fluentui/web-components!fontWeight:var",
@@ -1804,6 +1804,21 @@ export declare const focusStrokeOuterRecipe: DesignToken<ColorRecipe>;
1804
1804
  /** @public */
1805
1805
  export declare const focusStrokeWidth: CSSDesignToken<number>;
1806
1806
 
1807
+ /**
1808
+ * Partial CSS for the focus treatment for most typical sized components like Button, Menu Item, etc.
1809
+ *
1810
+ * @public
1811
+ */
1812
+ export declare const focusTreatmentBase: CSSDirective;
1813
+
1814
+ /**
1815
+ * Partial CSS for the focus treatment for tighter components with spacing constraints, like Checkbox
1816
+ * and Radio, or plain text like Hypertext appearance Anchor or Breadcrumb Item.
1817
+ *
1818
+ * @public
1819
+ */
1820
+ export declare const focusTreatmentTight: CSSDirective;
1821
+
1807
1822
  /** @public */
1808
1823
  export declare const fontWeight: CSSDesignToken<number>;
1809
1824