@fluentui/web-components 2.3.0 → 2.5.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.
Files changed (41) hide show
  1. package/CHANGELOG.json +69 -1
  2. package/CHANGELOG.md +29 -2
  3. package/dist/dts/custom-elements.d.ts +21 -20
  4. package/dist/dts/design-tokens.d.ts +20 -0
  5. package/dist/dts/styles/patterns/index.d.ts +1 -0
  6. package/dist/dts/styles/patterns/type-ramp.d.ts +18 -0
  7. package/dist/dts/utilities/type-ramp.d.ts +12 -0
  8. package/dist/esm/accordion/accordion-item/accordion-item.styles.js +4 -5
  9. package/dist/esm/accordion/accordion.styles.js +3 -4
  10. package/dist/esm/badge/badge.styles.js +3 -4
  11. package/dist/esm/breadcrumb/breadcrumb.styles.js +2 -4
  12. package/dist/esm/breadcrumb-item/breadcrumb-item.styles.js +3 -4
  13. package/dist/esm/calendar/calendar.styles.js +3 -4
  14. package/dist/esm/checkbox/checkbox.styles.js +3 -4
  15. package/dist/esm/combobox/combobox.styles.js +3 -3
  16. package/dist/esm/data-grid/data-grid-cell.styles.js +3 -5
  17. package/dist/esm/design-tokens.js +38 -1
  18. package/dist/esm/listbox-option/listbox-option.styles.js +3 -4
  19. package/dist/esm/menu-item/menu-item.styles.js +3 -4
  20. package/dist/esm/radio/radio.styles.js +3 -4
  21. package/dist/esm/search/search.styles.js +3 -4
  22. package/dist/esm/select/select.styles.js +3 -4
  23. package/dist/esm/slider-label/slider-label.styles.js +3 -2
  24. package/dist/esm/styles/patterns/button.styles.js +3 -4
  25. package/dist/esm/styles/patterns/index.js +1 -0
  26. package/dist/esm/styles/patterns/input.styles.js +4 -6
  27. package/dist/esm/styles/patterns/type-ramp.js +74 -0
  28. package/dist/esm/switch/switch.styles.js +4 -5
  29. package/dist/esm/tabs/tab/tab.styles.js +3 -5
  30. package/dist/esm/tabs/tab-panel/tab-panel.styles.js +3 -5
  31. package/dist/esm/tabs/tabs.styles.js +3 -4
  32. package/dist/esm/tooltip/tooltip.styles.js +3 -4
  33. package/dist/esm/tree-item/tree-item.styles.js +3 -4
  34. package/dist/esm/utilities/type-ramp.js +12 -0
  35. package/dist/fluent-web-components.api.json +554 -20
  36. package/dist/web-components.d.ts +73 -16
  37. package/dist/web-components.js +3867 -3282
  38. package/dist/web-components.min.js +230 -158
  39. package/docs/api-report.md +80 -23
  40. package/package.json +6 -6
  41. package/public/SegoeUI-VF.ttf +0 -0
@@ -17,6 +17,7 @@ import { neutralLayer4 as neutralLayer4Algorithm } from './color/recipes/neutral
17
17
  import { accentBase, middleGrey } from './color/utilities/color-constants';
18
18
  import { StandardLuminance } from './color/utilities/base-layer-luminance';
19
19
  import { directionByIsDark } from './color/utilities/direction-by-is-dark';
20
+ import { StandardFontWeight } from './utilities/type-ramp';
20
21
  const { create } = DesignToken;
21
22
  function createNonCss(name) {
22
23
  return DesignToken.create({ name, cssCustomPropertyName: null });
@@ -46,43 +47,79 @@ export const strokeWidth = create('stroke-width').withDefault(1);
46
47
  export const focusStrokeWidth = create('focus-stroke-width').withDefault(2);
47
48
  // Typography values
48
49
  /** @public */
49
- export const bodyFont = create('body-font').withDefault('Segoe UI, sans-serif');
50
+ export const bodyFont = create('body-font').withDefault('"Segoe UI Variable", "Segoe UI", sans-serif');
51
+ /** @public */
52
+ export const fontWeight = create('font-weight').withDefault(StandardFontWeight.Normal);
53
+ function fontVariations(sizeToken) {
54
+ return (element) => {
55
+ const size = sizeToken.getValueFor(element);
56
+ const weight = fontWeight.getValueFor(element);
57
+ if (size.endsWith('px')) {
58
+ const px = Number.parseFloat(size.replace('px', ''));
59
+ if (px <= 12) {
60
+ return `"wght" ${weight}, "opsz" 8`;
61
+ }
62
+ else if (px > 24) {
63
+ return `"wght" ${weight}, "opsz" 36`;
64
+ }
65
+ }
66
+ return `"wght" ${weight}, "opsz" 10.5`;
67
+ };
68
+ }
50
69
  /** @public */
51
70
  export const typeRampBaseFontSize = create('type-ramp-base-font-size').withDefault('14px');
52
71
  /** @public */
53
72
  export const typeRampBaseLineHeight = create('type-ramp-base-line-height').withDefault('20px');
54
73
  /** @public */
74
+ export const typeRampBaseFontVariations = create('type-ramp-base-font-variations').withDefault(fontVariations(typeRampBaseFontSize));
75
+ /** @public */
55
76
  export const typeRampMinus1FontSize = create('type-ramp-minus-1-font-size').withDefault('12px');
56
77
  /** @public */
57
78
  export const typeRampMinus1LineHeight = create('type-ramp-minus-1-line-height').withDefault('16px');
58
79
  /** @public */
80
+ export const typeRampMinus1FontVariations = create('type-ramp-minus-1-font-variations').withDefault(fontVariations(typeRampMinus1FontSize));
81
+ /** @public */
59
82
  export const typeRampMinus2FontSize = create('type-ramp-minus-2-font-size').withDefault('10px');
60
83
  /** @public */
61
84
  export const typeRampMinus2LineHeight = create('type-ramp-minus-2-line-height').withDefault('14px');
62
85
  /** @public */
86
+ export const typeRampMinus2FontVariations = create('type-ramp-minus-2-font-variations').withDefault(fontVariations(typeRampMinus2FontSize));
87
+ /** @public */
63
88
  export const typeRampPlus1FontSize = create('type-ramp-plus-1-font-size').withDefault('16px');
64
89
  /** @public */
65
90
  export const typeRampPlus1LineHeight = create('type-ramp-plus-1-line-height').withDefault('22px');
66
91
  /** @public */
92
+ export const typeRampPlus1FontVariations = create('type-ramp-plus-1-font-variations').withDefault(fontVariations(typeRampPlus1FontSize));
93
+ /** @public */
67
94
  export const typeRampPlus2FontSize = create('type-ramp-plus-2-font-size').withDefault('20px');
68
95
  /** @public */
69
96
  export const typeRampPlus2LineHeight = create('type-ramp-plus-2-line-height').withDefault('26px');
70
97
  /** @public */
98
+ export const typeRampPlus2FontVariations = create('type-ramp-plus-2-font-variations').withDefault(fontVariations(typeRampPlus2FontSize));
99
+ /** @public */
71
100
  export const typeRampPlus3FontSize = create('type-ramp-plus-3-font-size').withDefault('24px');
72
101
  /** @public */
73
102
  export const typeRampPlus3LineHeight = create('type-ramp-plus-3-line-height').withDefault('32px');
74
103
  /** @public */
104
+ export const typeRampPlus3FontVariations = create('type-ramp-plus-3-font-variations').withDefault(fontVariations(typeRampPlus3FontSize));
105
+ /** @public */
75
106
  export const typeRampPlus4FontSize = create('type-ramp-plus-4-font-size').withDefault('28px');
76
107
  /** @public */
77
108
  export const typeRampPlus4LineHeight = create('type-ramp-plus-4-line-height').withDefault('36px');
78
109
  /** @public */
110
+ export const typeRampPlus4FontVariations = create('type-ramp-plus-4-font-variations').withDefault(fontVariations(typeRampPlus4FontSize));
111
+ /** @public */
79
112
  export const typeRampPlus5FontSize = create('type-ramp-plus-5-font-size').withDefault('32px');
80
113
  /** @public */
81
114
  export const typeRampPlus5LineHeight = create('type-ramp-plus-5-line-height').withDefault('40px');
82
115
  /** @public */
116
+ export const typeRampPlus5FontVariations = create('type-ramp-plus-5-font-variations').withDefault(fontVariations(typeRampPlus5FontSize));
117
+ /** @public */
83
118
  export const typeRampPlus6FontSize = create('type-ramp-plus-6-font-size').withDefault('40px');
84
119
  /** @public */
85
120
  export const typeRampPlus6LineHeight = create('type-ramp-plus-6-line-height').withDefault('52px');
121
+ /** @public */
122
+ export const typeRampPlus6FontVariations = create('type-ramp-plus-6-font-variations').withDefault(fontVariations(typeRampPlus6FontSize));
86
123
  // Color recipe values
87
124
  /** @public */
88
125
  export const baseLayerLuminance = create('base-layer-luminance').withDefault(StandardLuminance.LightMode);
@@ -2,11 +2,12 @@ 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, bodyFont, controlCornerRadius, designUnit, disabledOpacity, focusStrokeOuter, focusStrokeWidth, neutralFillSecondaryActive, neutralFillSecondaryHover, neutralFillSecondaryRest, neutralFillStealthActive, neutralFillStealthFocus, neutralFillStealthHover, neutralFillStealthRest, neutralForegroundRest, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../design-tokens';
5
+ import { accentFillRest, controlCornerRadius, designUnit, disabledOpacity, focusStrokeOuter, focusStrokeWidth, neutralFillSecondaryActive, neutralFillSecondaryHover, neutralFillSecondaryRest, neutralFillStealthActive, neutralFillStealthFocus, neutralFillStealthHover, neutralFillStealthRest, neutralForegroundRest, } from '../design-tokens';
6
+ import { typeRampBase } from '../styles/patterns/type-ramp';
6
7
  export const optionStyles = (context, definition) => css `
7
8
  ${display('inline-flex')} :host {
8
9
  position: relative;
9
- font-family: ${bodyFont};
10
+ ${typeRampBase}
10
11
  background: ${neutralFillStealthRest};
11
12
  border-radius: calc(${controlCornerRadius} * 1px);
12
13
  border: calc(${focusStrokeWidth} * 1px) solid transparent;
@@ -14,9 +15,7 @@ export const optionStyles = (context, definition) => css `
14
15
  color: ${neutralForegroundRest};
15
16
  cursor: pointer;
16
17
  fill: currentcolor;
17
- font-size: ${typeRampBaseFontSize};
18
18
  height: calc(${heightNumber} * 1px);
19
- line-height: ${typeRampBaseLineHeight};
20
19
  outline: none;
21
20
  overflow: hidden;
22
21
  align-items: center;
@@ -2,12 +2,13 @@ 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 { bodyFont, controlCornerRadius, disabledOpacity, focusStrokeOuter, focusStrokeWidth, neutralFillStealthActive, neutralFillStealthHover, neutralForegroundHint, neutralForegroundRest, strokeWidth, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../design-tokens';
5
+ import { controlCornerRadius, disabledOpacity, focusStrokeOuter, focusStrokeWidth, neutralFillStealthActive, neutralFillStealthHover, neutralForegroundHint, neutralForegroundRest, strokeWidth, } from '../design-tokens';
6
+ import { typeRampBase } from '../styles/patterns/type-ramp';
6
7
  export const menuItemStyles = (context, definition) => css `
7
8
  ${display('grid')} :host {
8
9
  contain: layout;
9
10
  overflow: visible;
10
- font-family: ${bodyFont};
11
+ ${typeRampBase}
11
12
  outline: none;
12
13
  box-sizing: border-box;
13
14
  height: calc(${heightNumber} * 1px);
@@ -20,8 +21,6 @@ export const menuItemStyles = (context, definition) => css `
20
21
  color: ${neutralForegroundRest};
21
22
  fill: currentcolor;
22
23
  cursor: pointer;
23
- font-size: ${typeRampBaseFontSize};
24
- line-height: ${typeRampBaseLineHeight};
25
24
  border-radius: calc(${controlCornerRadius} * 1px);
26
25
  border: calc(${strokeWidth} * 1px) solid transparent;
27
26
  }
@@ -2,7 +2,8 @@ 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, bodyFont, designUnit, disabledOpacity, fillColor, focusStrokeOuter, foregroundOnAccentRest, neutralFillInputAltActive, neutralFillInputAltFocus, neutralFillInputAltHover, neutralFillInputAltRest, neutralForegroundRest, neutralStrokeStrongActive, neutralStrokeStrongHover, neutralStrokeStrongRest, strokeWidth, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../design-tokens';
5
+ import { accentFillActive, accentFillHover, accentFillRest, designUnit, disabledOpacity, fillColor, focusStrokeOuter, foregroundOnAccentRest, neutralFillInputAltActive, neutralFillInputAltFocus, neutralFillInputAltHover, neutralFillInputAltRest, neutralForegroundRest, neutralStrokeStrongActive, neutralStrokeStrongHover, neutralStrokeStrongRest, strokeWidth, } from '../design-tokens';
6
+ import { typeRampBase } from '../styles/patterns/type-ramp';
6
7
  export const radioStyles = (context, definition) => css `
7
8
  ${display('inline-flex')} :host {
8
9
  --input-size: calc((${heightNumber} / 2) + ${designUnit});
@@ -36,14 +37,12 @@ export const radioStyles = (context, definition) => css `
36
37
  }
37
38
 
38
39
  .label {
39
- font-family: ${bodyFont};
40
+ ${typeRampBase}
40
41
  color: ${neutralForegroundRest};
41
42
  ${
42
43
  /* Need to discuss with Brian how HorizontalSpacingNumber can work. https://github.com/microsoft/fast/issues/2766 */ ''} padding-inline-start: calc(${designUnit} * 2px + 2px);
43
44
  margin-inline-end: calc(${designUnit} * 2px + 2px);
44
45
  cursor: pointer;
45
- font-size: ${typeRampBaseFontSize};
46
- line-height: ${typeRampBaseLineHeight};
47
46
  }
48
47
 
49
48
  .control,
@@ -2,7 +2,8 @@ import { css } from '@microsoft/fast-element';
2
2
  import { Button, DesignToken, display, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
3
3
  import { heightNumber, inputFilledForcedColorStyles, inputFilledStyles, inputForcedColorStyles, inputStateStyles, inputStyles, } from '../styles';
4
4
  import { appearanceBehavior } from '../utilities/behaviors';
5
- import { bodyFont, controlCornerRadius, density, designUnit, neutralFillInputRecipe, neutralFillStealthRecipe, neutralForegroundRest, typeRampBaseFontSize, typeRampBaseLineHeight } from '../design-tokens';
5
+ import { controlCornerRadius, density, designUnit, neutralFillInputRecipe, neutralFillStealthRecipe, neutralForegroundRest } from '../design-tokens';
6
+ import { typeRampBase } from '../styles/patterns/type-ramp';
6
7
  const clearButtonHover = DesignToken.create("clear-button-hover").withDefault((target) => {
7
8
  const buttonRecipe = neutralFillStealthRecipe.getValueFor(target);
8
9
  const inputRecipe = neutralFillInputRecipe.getValueFor(target);
@@ -51,10 +52,8 @@ export const searchStyles = (context, definition) => css `
51
52
  border: none;
52
53
  border-radius: calc(${controlCornerRadius} * 1px);
53
54
  min-width: calc(${heightNumber} * 1px);
54
- font-size: ${typeRampBaseFontSize};
55
- line-height: ${typeRampBaseLineHeight};
55
+ ${typeRampBase}
56
56
  outline: none;
57
- font-family: ${bodyFont};
58
57
  padding: 0 calc((10 + (${designUnit} * 2 * ${density})) * 1px);
59
58
  }
60
59
  .clear-button:hover {
@@ -4,7 +4,8 @@ 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, focusStrokeOuter, layerCornerRadius, neutralFillActive, neutralFillHover, neutralFillRest, neutralFillSecondaryActive, neutralFillSecondaryHover, neutralFillSecondaryRest, neutralFillStealthActive, neutralFillStealthHover, neutralFillStealthRest, neutralForegroundRest, neutralStrokeControlActive, neutralStrokeControlHover, neutralStrokeControlRest, strokeWidth, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../design-tokens';
7
+ import { bodyFont, controlCornerRadius, designUnit, disabledOpacity, fillColor, focusStrokeOuter, layerCornerRadius, neutralFillActive, neutralFillHover, neutralFillRest, neutralFillSecondaryActive, neutralFillSecondaryHover, neutralFillSecondaryRest, neutralFillStealthActive, neutralFillStealthHover, neutralFillStealthRest, neutralForegroundRest, neutralStrokeControlActive, neutralStrokeControlHover, neutralStrokeControlRest, strokeWidth, } from '../design-tokens';
8
+ import { typeRampBase } from '../styles/patterns/type-ramp';
8
9
  export const selectFilledStyles = (context, definition) => css `
9
10
  :host {
10
11
  background: ${neutralFillSecondaryRest};
@@ -95,10 +96,8 @@ export const selectStyles = (context, definition) => css `
95
96
  box-sizing: border-box;
96
97
  cursor: pointer;
97
98
  display: flex;
98
- font-size: ${typeRampBaseFontSize};
99
- font-family: inherit;
99
+ ${typeRampBase}
100
100
  min-height: 100%;
101
- line-height: ${typeRampBaseLineHeight};
102
101
  padding: 0 calc(${designUnit} * 2.25px);
103
102
  width: 100%;
104
103
  }
@@ -1,10 +1,11 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { SystemColors } from '@microsoft/fast-web-utilities';
3
3
  import { display, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
4
- import { bodyFont, designUnit, disabledOpacity, neutralStrokeStrongRest, strokeWidth } from '../design-tokens';
4
+ import { designUnit, disabledOpacity, neutralStrokeStrongRest, strokeWidth } from '../design-tokens';
5
+ import { typeRampMinus1 } from '../styles/patterns/type-ramp';
5
6
  export const sliderLabelStyles = (context, definition) => css `
6
7
  ${display('block')} :host {
7
- font-family: ${bodyFont};
8
+ ${typeRampMinus1}
8
9
  }
9
10
  .root {
10
11
  position: absolute;
@@ -2,7 +2,8 @@ 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, bodyFont, controlCornerRadius, density, designUnit, focusStrokeInner, focusStrokeOuter, focusStrokeWidth, foregroundOnAccentActive, foregroundOnAccentHover, foregroundOnAccentRest, neutralFillActive, neutralFillHover, neutralFillRest, neutralFillStealthActive, neutralFillStealthHover, neutralFillStealthRest, neutralForegroundRest, neutralStrokeActive, neutralStrokeControlActive, neutralStrokeControlHover, neutralStrokeControlRest, neutralStrokeHover, neutralStrokeRest, strokeWidth, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../../design-tokens';
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';
6
+ import { typeRampBase } from '../../styles/patterns/type-ramp';
6
7
  /**
7
8
  * @internal
8
9
  */
@@ -10,10 +11,8 @@ export const baseButtonStyles = (context, definition, interactivitySelector = ''
10
11
  ${display('inline-flex')} :host {
11
12
  position: relative;
12
13
  box-sizing: border-box;
13
- font-family: ${bodyFont};
14
14
  outline: none;
15
- font-size: ${typeRampBaseFontSize};
16
- line-height: ${typeRampBaseLineHeight};
15
+ ${typeRampBase}
17
16
  height: calc(${heightNumber} * 1px);
18
17
  min-width: calc(${heightNumber} * 1px);
19
18
  color: ${neutralForegroundRest};
@@ -1,2 +1,3 @@
1
1
  export * from './button.styles';
2
2
  export * from './input.styles';
3
+ export * from './type-ramp';
@@ -1,7 +1,8 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { DesignToken, disabledCursor, focusVisible, } from '@microsoft/fast-foundation';
3
3
  import { SystemColors } from '@microsoft/fast-web-utilities';
4
- import { accentFillRest, bodyFont, controlCornerRadius, disabledOpacity, focusStrokeWidth, neutralFillInputFocus, neutralFillInputHover, neutralFillInputRecipe, neutralFillInputRest, neutralFillSecondaryHover, neutralFillSecondaryRecipe, neutralFillSecondaryRest, neutralForegroundHintRecipe, neutralForegroundRest, neutralStrokeInputHover, neutralStrokeInputRest, neutralStrokeRest, strokeWidth, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../../design-tokens';
4
+ import { accentFillRest, controlCornerRadius, disabledOpacity, focusStrokeWidth, neutralFillInputFocus, neutralFillInputHover, neutralFillInputRecipe, neutralFillInputRest, neutralFillSecondaryHover, neutralFillSecondaryRecipe, neutralFillSecondaryRest, neutralForegroundHintRecipe, neutralForegroundRest, neutralStrokeInputHover, neutralStrokeInputRest, neutralStrokeRest, strokeWidth, } from '../../design-tokens';
5
+ import { typeRampBase } from '../patterns/type-ramp';
5
6
  import { heightNumber } from '../size';
6
7
  const placeholderRest = DesignToken.create('input-placeholder-rest').withDefault((target) => {
7
8
  const baseRecipe = neutralFillInputRecipe.getValueFor(target);
@@ -28,9 +29,7 @@ const filledPlaceholderHover = DesignToken.create('input-filled-placeholder-hove
28
29
  */
29
30
  export const inputStyles = (context, definition, rootSelector) => css `
30
31
  :host {
31
- font-family: ${bodyFont};
32
- font-size: ${typeRampBaseFontSize};
33
- line-height: ${typeRampBaseLineHeight};
32
+ ${typeRampBase}
34
33
  color: ${neutralForegroundRest};
35
34
  fill: currentcolor;
36
35
  outline: none;
@@ -67,8 +66,7 @@ export const inputStyles = (context, definition, rootSelector) => css `
67
66
  display: block;
68
67
  color: ${neutralForegroundRest};
69
68
  cursor: pointer;
70
- font-size: ${typeRampBaseFontSize};
71
- line-height: ${typeRampBaseLineHeight};
69
+ ${typeRampBase}
72
70
  margin-bottom: 4px;
73
71
  }
74
72
 
@@ -0,0 +1,74 @@
1
+ import { cssPartial } from '@microsoft/fast-element';
2
+ import { bodyFont, typeRampBaseFontSize, typeRampBaseFontVariations, typeRampBaseLineHeight, typeRampMinus1FontSize, typeRampMinus1FontVariations, typeRampMinus1LineHeight, typeRampMinus2FontSize, typeRampMinus2FontVariations, typeRampMinus2LineHeight, typeRampPlus1FontSize, typeRampPlus1FontVariations, typeRampPlus1LineHeight, typeRampPlus2FontSize, typeRampPlus2FontVariations, typeRampPlus2LineHeight, typeRampPlus3FontSize, typeRampPlus3FontVariations, typeRampPlus3LineHeight, typeRampPlus4FontSize, typeRampPlus4FontVariations, typeRampPlus4LineHeight, typeRampPlus5FontSize, typeRampPlus5FontVariations, typeRampPlus5LineHeight, typeRampPlus6FontSize, typeRampPlus6FontVariations, typeRampPlus6LineHeight, } from '../../design-tokens';
3
+ /** @public */
4
+ export const typeRampBase = cssPartial `
5
+ font-family: ${bodyFont};
6
+ font-size: ${typeRampBaseFontSize};
7
+ line-height: ${typeRampBaseLineHeight};
8
+ font-weight: initial;
9
+ font-variation-settings: ${typeRampBaseFontVariations};
10
+ `;
11
+ /** @public */
12
+ export const typeRampMinus1 = cssPartial `
13
+ font-family: ${bodyFont};
14
+ font-size: ${typeRampMinus1FontSize};
15
+ line-height: ${typeRampMinus1LineHeight};
16
+ font-weight: initial;
17
+ font-variation-settings: ${typeRampMinus1FontVariations};
18
+ `;
19
+ /** @public */
20
+ export const typeRampMinus2 = cssPartial `
21
+ font-family: ${bodyFont};
22
+ font-size: ${typeRampMinus2FontSize};
23
+ line-height: ${typeRampMinus2LineHeight};
24
+ font-weight: initial;
25
+ font-variation-settings: ${typeRampMinus2FontVariations};
26
+ `;
27
+ /** @public */
28
+ export const typeRampPlus1 = cssPartial `
29
+ font-family: ${bodyFont};
30
+ font-size: ${typeRampPlus1FontSize};
31
+ line-height: ${typeRampPlus1LineHeight};
32
+ font-weight: initial;
33
+ font-variation-settings: ${typeRampPlus1FontVariations};
34
+ `;
35
+ /** @public */
36
+ export const typeRampPlus2 = cssPartial `
37
+ font-family: ${bodyFont};
38
+ font-size: ${typeRampPlus2FontSize};
39
+ line-height: ${typeRampPlus2LineHeight};
40
+ font-weight: initial;
41
+ font-variation-settings: ${typeRampPlus2FontVariations};
42
+ `;
43
+ /** @public */
44
+ export const typeRampPlus3 = cssPartial `
45
+ font-family: ${bodyFont};
46
+ font-size: ${typeRampPlus3FontSize};
47
+ line-height: ${typeRampPlus3LineHeight};
48
+ font-weight: initial;
49
+ font-variation-settings: ${typeRampPlus3FontVariations};
50
+ `;
51
+ /** @public */
52
+ export const typeRampPlus4 = cssPartial `
53
+ font-family: ${bodyFont};
54
+ font-size: ${typeRampPlus4FontSize};
55
+ line-height: ${typeRampPlus4LineHeight};
56
+ font-weight: initial;
57
+ font-variation-settings: ${typeRampPlus4FontVariations};
58
+ `;
59
+ /** @public */
60
+ export const typeRampPlus5 = cssPartial `
61
+ font-family: ${bodyFont};
62
+ font-size: ${typeRampPlus5FontSize};
63
+ line-height: ${typeRampPlus5LineHeight};
64
+ font-weight: initial;
65
+ font-variation-settings: ${typeRampPlus5FontVariations};
66
+ `;
67
+ /** @public */
68
+ export const typeRampPlus6 = cssPartial `
69
+ font-family: ${bodyFont};
70
+ font-size: ${typeRampPlus6FontSize};
71
+ line-height: ${typeRampPlus6LineHeight};
72
+ font-weight: initial;
73
+ font-variation-settings: ${typeRampPlus6FontVariations};
74
+ `;
@@ -2,7 +2,8 @@ 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, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../design-tokens';
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';
6
+ import { typeRampBase } from '../styles/patterns/type-ramp';
6
7
  export const switchStyles = (context, definition) => css `
7
8
  :host([hidden]) {
8
9
  display: none;
@@ -86,8 +87,7 @@ export const switchStyles = (context, definition) => css `
86
87
  .status-message {
87
88
  color: ${neutralForegroundRest};
88
89
  cursor: pointer;
89
- font-size: ${typeRampBaseFontSize};
90
- line-height: ${typeRampBaseLineHeight};
90
+ ${typeRampBase}
91
91
  }
92
92
 
93
93
  .label__hidden {
@@ -97,8 +97,7 @@ export const switchStyles = (context, definition) => css `
97
97
 
98
98
  .label {
99
99
  color: ${neutralForegroundRest};
100
- font-size: ${typeRampBaseFontSize};
101
- line-height: ${typeRampBaseLineHeight};
100
+ ${typeRampBase}
102
101
  margin-inline-end: calc(${designUnit} * 2px + 2px);
103
102
  cursor: pointer;
104
103
  }
@@ -2,14 +2,12 @@ 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 { bodyFont, controlCornerRadius, density, designUnit, focusStrokeOuter, focusStrokeWidth, neutralForegroundRest, strokeWidth, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../../design-tokens';
5
+ import { controlCornerRadius, density, designUnit, focusStrokeOuter, focusStrokeWidth, neutralForegroundRest, strokeWidth, } from '../../design-tokens';
6
+ import { typeRampBase } from '../../styles/patterns/type-ramp';
6
7
  export const tabStyles = (context, definition) => css `
7
8
  ${display('inline-flex')} :host {
8
9
  box-sizing: border-box;
9
- font-family: ${bodyFont};
10
- font-size: ${typeRampBaseFontSize};
11
- font-weight: 400;
12
- line-height: ${typeRampBaseLineHeight};
10
+ ${typeRampBase}
13
11
  height: calc((${heightNumber} + (${designUnit} * 2)) * 1px);
14
12
  padding: 0 calc((6 + (${designUnit} * 2 * ${density})) * 1px);
15
13
  color: ${neutralForegroundRest};
@@ -1,13 +1,11 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { display } from '@microsoft/fast-foundation';
3
- import { bodyFont, density, designUnit, typeRampBaseFontSize, typeRampBaseLineHeight } from '../../design-tokens';
3
+ import { density, designUnit } from '../../design-tokens';
4
+ import { typeRampBase } from '../../styles/patterns/type-ramp';
4
5
  export const tabPanelStyles = (context, definition) => css `
5
6
  ${display('block')} :host {
6
7
  box-sizing: border-box;
7
- font-family: ${bodyFont};
8
- font-size: ${typeRampBaseFontSize};
9
- font-weight: 400;
10
- line-height: ${typeRampBaseLineHeight};
8
+ ${typeRampBase}
11
9
  padding: 0 calc((6 + (${designUnit} * 2 * ${density})) * 1px);
12
10
  }
13
11
  `;
@@ -1,14 +1,13 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { SystemColors } from '@microsoft/fast-web-utilities';
3
3
  import { display, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
4
- import { accentFillRest, bodyFont, controlCornerRadius, focusStrokeWidth, neutralForegroundRest, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../design-tokens';
4
+ import { accentFillRest, controlCornerRadius, focusStrokeWidth, neutralForegroundRest, } from '../design-tokens';
5
5
  import { heightNumber } from '../styles';
6
+ import { typeRampBase } from '../styles/patterns/type-ramp';
6
7
  export const tabsStyles = (context, definition) => css `
7
8
  ${display('grid')} :host {
8
9
  box-sizing: border-box;
9
- font-family: ${bodyFont};
10
- font-size: ${typeRampBaseFontSize};
11
- line-height: ${typeRampBaseLineHeight};
10
+ ${typeRampBase}
12
11
  color: ${neutralForegroundRest};
13
12
  grid-template-columns: auto 1fr auto;
14
13
  grid-template-rows: auto 1fr;
@@ -1,7 +1,8 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
3
3
  import { elevationShadowTooltip } from '../styles/index';
4
- import { bodyFont, controlCornerRadius, fillColor, neutralForegroundRest, neutralStrokeLayerRest, strokeWidth, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../design-tokens';
4
+ import { controlCornerRadius, fillColor, neutralForegroundRest, neutralStrokeLayerRest, strokeWidth, } from '../design-tokens';
5
+ import { typeRampBase } from '../styles/patterns/type-ramp';
5
6
  export const tooltipStyles = (context, definition) => css `
6
7
  :host {
7
8
  position: relative;
@@ -21,9 +22,7 @@ export const tooltipStyles = (context, definition) => css `
21
22
  padding: 4px 12px;
22
23
  height: fit-content;
23
24
  width: fit-content;
24
- font-family: ${bodyFont};
25
- font-size: ${typeRampBaseFontSize};
26
- line-height: ${typeRampBaseLineHeight};
25
+ ${typeRampBase}
27
26
  white-space: nowrap;
28
27
  box-shadow: ${elevationShadowTooltip};
29
28
  }
@@ -2,7 +2,8 @@ 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, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../design-tokens';
5
+ import { accentFillRest, baseHeightMultiplier, bodyFont, controlCornerRadius, density, designUnit, disabledOpacity, focusStrokeOuter, focusStrokeWidth, neutralFillSecondaryRecipe, neutralFillSecondaryRest, neutralFillStealthActive, neutralFillStealthHover, neutralFillStealthRecipe, neutralFillStealthRest, neutralForegroundRest, strokeWidth, } from '../design-tokens';
6
+ import { typeRampBase } from '../styles/patterns/type-ramp';
6
7
  const ltr = css `
7
8
  .expand-collapse-button svg {
8
9
  transform: rotate(0deg);
@@ -99,9 +100,7 @@ export const treeItemStyles = (context, definition) => css `
99
100
  width: 100%;
100
101
  height: calc(${heightNumber} * 1px);
101
102
  margin-inline-start: calc(${designUnit} * 2px + 8px);
102
- font-size: ${typeRampBaseFontSize};
103
- line-height: ${typeRampBaseLineHeight};
104
- font-weight: 400;
103
+ ${typeRampBase}
105
104
  }
106
105
 
107
106
  .items {
@@ -0,0 +1,12 @@
1
+ /** @public */
2
+ export const StandardFontWeight = {
3
+ Thin: 100,
4
+ ExtraLight: 200,
5
+ Light: 300,
6
+ Normal: 400,
7
+ Medium: 500,
8
+ SemiBold: 600,
9
+ Bold: 700,
10
+ ExtraBold: 800,
11
+ Black: 900,
12
+ };