@danske/sapphire-css 16.3.0 → 26.1.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 (91) hide show
  1. package/README.md +2 -12
  2. package/build/themes/cjs/default-dark.d.ts +3 -2
  3. package/build/themes/cjs/default-dark.js +5 -1
  4. package/build/themes/cjs/default.d.ts +3 -2
  5. package/build/themes/cjs/default.js +5 -1
  6. package/build/themes/cjs/index.d.ts +4 -0
  7. package/build/themes/cjs/june-dark.d.ts +3 -2
  8. package/build/themes/cjs/june-dark.js +5 -1
  9. package/build/themes/cjs/june.d.ts +3 -2
  10. package/build/themes/cjs/june.js +5 -1
  11. package/build/themes/esm/default-dark.d.ts +3 -2
  12. package/build/themes/esm/default-dark.js +5 -1
  13. package/build/themes/esm/default.d.ts +3 -2
  14. package/build/themes/esm/default.js +5 -1
  15. package/build/themes/esm/index.d.ts +4 -0
  16. package/build/themes/esm/june-dark.d.ts +3 -2
  17. package/build/themes/esm/june-dark.js +5 -1
  18. package/build/themes/esm/june.d.ts +3 -2
  19. package/build/themes/esm/june.js +5 -1
  20. package/components/accordion/accordion.module.css +163 -0
  21. package/components/avatar/avatar.module.css +137 -0
  22. package/components/badge/badge.module.css +246 -79
  23. package/components/badge/badge.module.css.d.ts +42 -10
  24. package/components/button/button.module.css +401 -74
  25. package/components/button/button.module.css.d.ts +11 -5
  26. package/components/buttonGroup/buttonGroup.module.css +20 -4
  27. package/components/buttonGroup/buttonGroup.module.css.d.ts +2 -1
  28. package/components/calendar/calendar.module.css +9 -2
  29. package/components/calendar/calendar.module.css.d.ts +1 -2
  30. package/components/checkbox/checkbox.module.css +44 -11
  31. package/components/checkbox/checkbox.module.css.d.ts +3 -0
  32. package/components/dateField/dateField.module.css +81 -86
  33. package/components/dateField/dateField.module.css.d.ts +3 -6
  34. package/components/dialog/dialog.module.css +34 -15
  35. package/components/dialog/dialog.module.css.d.ts +2 -2
  36. package/components/field/field.module.css +164 -0
  37. package/components/fieldGroup/fieldGroup.module.css +8 -54
  38. package/components/fieldGroup/fieldGroup.module.css.d.ts +4 -8
  39. package/components/icon/icon.module.css +11 -6
  40. package/components/icon/icon.module.css.d.ts +1 -0
  41. package/components/iconButton/iconButton.module.css +356 -70
  42. package/components/iconButton/iconButton.module.css.d.ts +8 -4
  43. package/components/label/label.module.css +29 -0
  44. package/components/link/link.module.css +71 -13
  45. package/components/link/link.module.css.d.ts +7 -2
  46. package/components/list/list.module.css +47 -21
  47. package/components/list/list.module.css.d.ts +1 -1
  48. package/components/listbox/listbox.module.css +53 -13
  49. package/components/listbox/listbox.module.css.d.ts +3 -1
  50. package/components/notificationBadge/notificationBadge.module.css +126 -0
  51. package/components/panel/panel.module.css +32 -14
  52. package/components/panel/panel.module.css.d.ts +3 -2
  53. package/components/paragraph/paragraph.module.css +4 -7
  54. package/components/paragraph/paragraph.module.css.d.ts +1 -2
  55. package/components/radio/radio.module.css +34 -9
  56. package/components/radio/radio.module.css.d.ts +2 -0
  57. package/components/searchField/searchField.module.css +43 -19
  58. package/components/searchField/searchField.module.css.d.ts +2 -0
  59. package/components/segmentedControl/segmentedControl.module.css +7 -7
  60. package/components/select/select.module.css +22 -63
  61. package/components/select/select.module.css.d.ts +1 -5
  62. package/components/spinner/spinner.module.css +64 -0
  63. package/components/surface/surface.module.css +5 -1
  64. package/components/surface/surface.module.css.d.ts +1 -0
  65. package/components/switch/switch.module.css +44 -44
  66. package/components/switch/switch.module.css.d.ts +1 -0
  67. package/components/table/table.module.css +22 -40
  68. package/components/tabs/tabs.module.css +155 -23
  69. package/components/tabs/tabs.module.css.d.ts +9 -2
  70. package/components/text/text.module.css +207 -0
  71. package/components/textField/textField.module.css +67 -89
  72. package/components/textField/textField.module.css.d.ts +3 -7
  73. package/components/toast/toast.module.css +101 -0
  74. package/components/tooltip/tooltip.module.css +13 -8
  75. package/components/tooltip/tooltip.module.css.d.ts +1 -0
  76. package/package.json +13 -9
  77. package/themes/default-dark.assets.css +1 -0
  78. package/themes/default-dark.d.ts +3 -2
  79. package/themes/default-dark.js +5 -1
  80. package/themes/default-dark.tokens.scss +1 -0
  81. package/themes/default.assets.css +1 -0
  82. package/themes/default.d.ts +3 -2
  83. package/themes/default.js +5 -1
  84. package/themes/default.tokens.scss +1 -0
  85. package/themes/index.d.ts +4 -0
  86. package/themes/june-dark.d.ts +3 -2
  87. package/themes/june-dark.js +5 -1
  88. package/themes/june-dark.scss +3 -0
  89. package/themes/june.d.ts +3 -2
  90. package/themes/june.js +5 -1
  91. package/themes/june.scss +3 -0
@@ -69,9 +69,10 @@
69
69
  text-align: end;
70
70
  }
71
71
 
72
- .sapphire-table .sapphire-table__headCell {
72
+ .sapphire-table__headCell {
73
73
  color: var(--sapphire-table-color-content-cell);
74
74
  box-sizing: border-box;
75
+ font-size: var(--sapphire-table-size-font-head-default);
75
76
  font-family: var(--sapphire-table-font-name);
76
77
  font-weight: var(--sapphire-table-font-weight-head);
77
78
  line-height: var(--sapphire-table-size-line-height-cell-default);
@@ -80,7 +81,7 @@
80
81
  vertical-align: top;
81
82
  }
82
83
 
83
- .sapphire-table__headCell .sapphire-table__headCell_container {
84
+ .sapphire-table__headCell_container {
84
85
  padding: var(--sapphire-table-size-spacing-head-cell-container-vertical)
85
86
  var(--sapphire-table-size-spacing-head-cell-container-horizontal);
86
87
  display: inline-flex;
@@ -122,7 +123,6 @@
122
123
  .sapphire-table__row:not(.js-focus):focus-visible {
123
124
  outline: none;
124
125
  border-radius: var(--sapphire-table-size-radius-focus);
125
- background-color: var(--sapphire-table-color-background-focus);
126
126
  box-shadow: inset 0px 0px 0px var(--sapphire-table-size-width-border-focus)
127
127
  var(--sapphire-table-color-border-focus);
128
128
  }
@@ -147,7 +147,7 @@
147
147
  cursor: pointer;
148
148
  }
149
149
 
150
- .sapphire-table__headCell.sapphire-table__headCell--sortable:not(sapphire-table__headCell--sorted):hover
150
+ .sapphire-table__headCell--sortable:not(sapphire-table__headCell--sorted):hover
151
151
  .sapphire-table-sortableIcon {
152
152
  visibility: visible;
153
153
  }
@@ -192,8 +192,8 @@
192
192
  text-overflow: ellipsis;
193
193
  }
194
194
 
195
- .sapphire-table .sapphire-table__cell,
196
- .sapphire-table .sapphire-table__selectionCell {
195
+ .sapphire-table__cell,
196
+ .sapphire-table__selectionCell {
197
197
  font-size: var(--sapphire-table-size-font-data-default);
198
198
  line-height: var(--sapphire-table-size-line-height-cell-default);
199
199
  padding: var(--sapphire-table-size-spacing-cell-vertical-default)
@@ -201,24 +201,24 @@
201
201
  }
202
202
 
203
203
  /* Selection cells that are suppose to contain only a checkbox */
204
- .sapphire-table .sapphire-table__selectionCell {
204
+ .sapphire-table__selectionCell {
205
205
  line-height: 0;
206
206
  padding-left: var(--sapphire-table-size-spacing-cell-horizontal-end);
207
207
  width: var(--sapphire-table-size-width-selection-cell);
208
208
  }
209
209
 
210
+ .sapphire-table__cell:first-child {
211
+ padding-left: var(--sapphire-table-size-spacing-cell-horizontal-end);
212
+ }
213
+ .sapphire-table__cell:last-child {
214
+ padding-right: var(--sapphire-table-size-spacing-cell-horizontal-end);
215
+ }
210
216
  .sapphire-table__headCell:first-child {
211
217
  padding-left: var(--sapphire-table-size-spacing-head-cell-horizontal-end);
212
218
  }
213
- .sapphire-table__row .sapphire-table__cell:first-child {
214
- padding-left: var(--sapphire-table-size-spacing-cell-horizontal-end);
215
- }
216
219
  .sapphire-table__headCell:last-child {
217
220
  padding-right: var(--sapphire-table-size-spacing-head-cell-horizontal-end);
218
221
  }
219
- .sapphire-table__row .sapphire-table__cell:last-child {
220
- padding-right: var(--sapphire-table-size-spacing-cell-horizontal-end);
221
- }
222
222
 
223
223
  .sapphire-table__row {
224
224
  position: relative;
@@ -236,34 +236,15 @@
236
236
  }
237
237
 
238
238
  /**
239
- * Row divider. Only shown when row is not focused, because of z-index issue with the focus ring
240
- * which didn't seem to be solvable otherwise.
241
- * NOTE: The reason we are using pseudo elements for row separator instead of a simple border is
242
- * the distance of the separator to the edges. There is no such option on border.
243
- * NOTE: If we use ::after on a tr with relative position, positioning won't work relative to tr,
244
- * in Safari. So we are applying the ::after pseudo-element on cells, overriding left/right on
245
- * first/last cell.
239
+ * Row divider. Only shown when row is not focused, because of z-index issue with the focus ring.
246
240
  */
247
- .sapphire-table__row:not(.is-focus, :not(.js-focus):focus-visible) td::after {
248
- content: '';
249
- position: absolute;
250
- height: 1px;
251
- background: var(--sapphire-table-color-border-separator);
252
- bottom: 0;
253
- left: 0;
254
- right: 0;
241
+ .sapphire-table__row:not(.is-focus, :not(.js-focus):focus-visible) {
242
+ box-shadow: inset 0px -1px 0px 0px var(--sapphire-table-color-border-separator);
255
243
  }
256
- .sapphire-table--without-last-divider.sapphire-table__row:not(.is-focus, :not(.js-focus):focus-visible):last-child
257
- td::after {
258
- height: 0px;
259
- }
260
- .sapphire-table__row:not(.is-focus, :not(.js-focus):focus-visible)
261
- td:first-child::after {
262
- left: var(--sapphire-table-size-spacing-cell-horizontal-end);
263
- }
264
- .sapphire-table__row:not(.is-focus, :not(.js-focus):focus-visible)
265
- td:last-child::after {
266
- right: var(--sapphire-table-size-spacing-cell-horizontal-end);
244
+
245
+ .sapphire-table--without-last-divider
246
+ .sapphire-table__row:not(.is-focus, :not(.js-focus):focus-visible):last-child {
247
+ box-shadow: none;
267
248
  }
268
249
 
269
250
  .sapphire-table--interactive .sapphire-table__row {
@@ -273,12 +254,13 @@
273
254
  .sapphire-table--interactive .sapphire-table__row.is-hover,
274
255
  .sapphire-table--interactive .sapphire-table__row:not(.js-hover):hover {
275
256
  background-color: var(--sapphire-table-color-background-hover);
257
+ cursor: pointer;
276
258
  }
277
259
 
278
260
  /**
279
261
  * Selection actions. Optionally shown when a table uses multiple selection.
280
262
  */
281
- .sapphire-table .sapphire-table__selection-action-bar {
263
+ .sapphire-table__selection-action-bar {
282
264
  display: flex;
283
265
  align-items: center;
284
266
  justify-content: space-between;
@@ -1,20 +1,92 @@
1
- .sapphire-tabs {
1
+ .sapphire-tabs-scroll-container {
2
+ -ms-overflow-style: none; /* IE and Edge */
3
+ scrollbar-width: none; /* Firefox */
4
+ overflow-x: scroll;
5
+ overflow-y: hidden;
6
+ white-space: nowrap;
7
+ position: relative;
8
+ scroll-padding: 0
9
+ calc(2 * var(--sapphire-tabs-size-spacing-arrows-horizontal) + 1px);
10
+ min-width: 0;
11
+ flex: 1;
12
+
13
+ /* prevent scroll from navigating browser history on touchpad */
14
+ overscroll-behavior-x: contain;
15
+ }
16
+
17
+ .sapphire-tabs-scroll-container::-webkit-scrollbar {
18
+ display: none;
19
+ }
20
+
21
+ .sapphire-tabs-overflow-arrows {
2
22
  display: flex;
3
- box-sizing: border-box;
4
- height: var(--sapphire-tabs-size-height);
5
- box-shadow: inset 0px calc(-1 * var(--sapphire-tabs-size-border))
6
- var(--sapphire-tabs-color-border-default);
23
+ align-items: center;
24
+ min-width: 0;
25
+ flex: 1;
26
+ position: relative;
7
27
  }
8
28
 
9
- .sapphire-tabs--inline {
29
+ .sapphire-tabs-overflow-arrows--inline {
10
30
  display: inline-flex;
11
31
  }
12
32
 
33
+ .sapphire-tabs-overflow-arrows__arrow {
34
+ position: absolute;
35
+ z-index: 10;
36
+ pointer-events: none;
37
+ }
38
+
39
+ .sapphire-tabs-overflow-arrows__arrow--left {
40
+ left: 0;
41
+ padding-right: var(--sapphire-tabs-size-spacing-arrows-horizontal);
42
+ background: linear-gradient(
43
+ 90deg,
44
+ var(--sapphire-tabs-color-gradient-opaque) 0%,
45
+ var(--sapphire-tabs-color-gradient-opaque) 40%,
46
+ var(--sapphire-tabs-color-gradient-transparent) 100%
47
+ );
48
+ }
49
+
50
+ .sapphire-tabs-overflow-arrows__arrow--right {
51
+ right: 0;
52
+ padding-left: var(--sapphire-tabs-size-spacing-arrows-horizontal);
53
+ background: linear-gradient(
54
+ 90deg,
55
+ var(--sapphire-tabs-color-gradient-transparent) 0%,
56
+ var(--sapphire-tabs-color-gradient-opaque) 60%,
57
+ var(--sapphire-tabs-color-gradient-opaque) 100%
58
+ );
59
+ }
60
+
61
+ .sapphire-tabs {
62
+ display: inline-flex;
63
+ box-sizing: border-box;
64
+ height: var(--sapphire-tabs-size-height-m);
65
+ gap: var(--sapphire-tabs-size-gap-m);
66
+ position: relative;
67
+ overflow: hidden;
68
+ position: relative;
69
+ min-width: 100%;
70
+ flex: 1;
71
+ padding: 0 var(--sapphire-tabs-size-focus-ring-offset);
72
+ }
73
+
74
+ .sapphire-tabs::after {
75
+ content: '';
76
+ display: block;
77
+ position: absolute;
78
+ bottom: 0;
79
+ width: 100%;
80
+ height: var(--sapphire-tabs-size-border);
81
+ background-color: var(--sapphire-tabs-color-border-default);
82
+ border-radius: var(--sapphire-tabs-size-border);
83
+ }
84
+
13
85
  /**
14
86
  * No underline modifier
15
87
  */
16
- .sapphire-tabs--no-border {
17
- box-shadow: none;
88
+ .sapphire-tabs--no-border::after {
89
+ display: none;
18
90
  }
19
91
 
20
92
  /**
@@ -23,21 +95,36 @@
23
95
  .sapphire-tabs__tab {
24
96
  display: flex;
25
97
  align-items: center;
98
+ position: relative;
99
+
100
+ font-family: var(--sapphire-tabs-font-name);
101
+ font-weight: var(--sapphire-tabs-font-weight);
102
+ font-size: var(--sapphire-tabs-size-font-m);
26
103
  text-decoration: none;
104
+
27
105
  background: none;
28
106
  color: var(--sapphire-tabs-color-content-inactive-default);
29
- font-family: var(--sapphire-tabs-font-name);
30
- font-weight: var(--sapphire-tabs-font-weight);
31
- font-size: var(--sapphire-tabs-size-font);
32
107
  box-sizing: border-box;
33
108
  white-space: nowrap;
34
109
  border-width: 0;
35
- padding: var(--sapphire-tabs-size-spacing-vertical)
36
- var(--sapphire-tabs-size-spacing-horizontal);
37
- outline: none;
38
- /* Safari adds 2px padding to buttons (meaning gap between tabs when tab is a button) */
39
- margin: 0;
110
+ padding: 0;
111
+ /**
112
+ * The 0 padding is for Safari which adds 2px padding to buttons (meaning gap
113
+ * between tabs when tab is a button).
114
+ *
115
+ * The focus ring offset as vertical margin is used to make the focus ring
116
+ * offset so it overlaps the grey separator and doesn't overflow the container.
117
+ */
118
+ margin: var(--sapphire-tabs-size-focus-ring-offset) 0
119
+ var(--sapphire-tabs-size-focus-ring-offset) 0;
40
120
  cursor: pointer;
121
+ outline: none;
122
+
123
+ /* Need the border radius to round the focus ring*/
124
+ border-radius: var(--sapphire-tabs-size-focus-ring-radius);
125
+
126
+ /* Just to make sure it's above the grey border */
127
+ z-index: 1;
41
128
  }
42
129
 
43
130
  .sapphire-tabs__tab:not(:disabled):not(.is-disabled):not(:active):not(.is-active):not(.js-hover):hover,
@@ -45,11 +132,10 @@
45
132
  color: var(--sapphire-tabs-color-content-inactive-hover);
46
133
  }
47
134
 
48
- .sapphire-tabs__tab.is-focus,
135
+ .sapphire-tabs__tab.js-focus.is-focus,
49
136
  .sapphire-tabs__tab:not(.js-focus):focus-visible {
50
- outline: var(--sapphire-tabs-size-focus-ring) solid
137
+ outline: var(--sapphire-tabs-size-focus-ring-border) solid
51
138
  var(--sapphire-tabs-color-focus-ring);
52
- outline-offset: calc(-1 * var(--sapphire-tabs-size-focus-ring));
53
139
  }
54
140
 
55
141
  /**
@@ -65,19 +151,65 @@
65
151
  opacity: var(--sapphire-tabs-opacity-disabled);
66
152
  }
67
153
 
154
+ .sapphire-tabs__label {
155
+ /* Visual adjustment of text alignment */
156
+ padding: 0 1px;
157
+ }
158
+
68
159
  /**
69
160
  * Active tab
70
161
  */
71
162
  .sapphire-tabs__tab--active {
72
163
  color: var(--sapphire-tabs-color-content-active-default);
73
- box-shadow: inset 0px calc(-1 * var(--sapphire-tabs-size-border))
74
- var(--sapphire-tabs-color-border-active);
164
+ }
165
+
166
+ .sapphire-tabs__tab--active.js-focus:not(.is-focus)::after,
167
+ .sapphire-tabs__tab--active:not(.js-focus):not(:focus-visible)::after {
168
+ content: '';
169
+ display: block;
170
+ position: absolute;
171
+ /* To offset the space created by the tab's margin */
172
+ bottom: calc(-1 * var(--sapphire-tabs-size-focus-ring-offset));
173
+ width: 100%;
174
+ height: var(--sapphire-tabs-size-border);
175
+ background-color: var(--sapphire-tabs-color-border-active);
176
+ border-radius: var(--sapphire-tabs-size-border);
177
+ }
178
+
179
+ /**
180
+ * Small
181
+ */
182
+ .sapphire-tabs--small {
183
+ height: var(--sapphire-tabs-size-height-s);
184
+ gap: var(--sapphire-tabs-size-gap-s);
185
+ }
186
+ .sapphire-tabs--small .sapphire-tabs__tab {
187
+ font-size: var(--sapphire-tabs-size-font-s);
188
+ }
189
+
190
+ /**
191
+ * Large
192
+ */
193
+ .sapphire-tabs--large {
194
+ height: var(--sapphire-tabs-size-height-l);
195
+ gap: var(--sapphire-tabs-size-gap-l);
196
+ }
197
+ .sapphire-tabs--large .sapphire-tabs__tab {
198
+ font-size: var(--sapphire-tabs-size-font-l);
199
+ }
200
+
201
+ .sapphire-tab-panel {
202
+ /* Allows scrollable overflow inside of a flex layout */
203
+ min-height: 0;
204
+
205
+ /* Fills the remaining space in a flex layout */
206
+ flex-grow: 1;
75
207
  }
76
208
 
77
209
  /* tab panel focus styling */
78
210
  .sapphire-tab-panel.js-focus.is-focus,
79
211
  .sapphire-tab-panel:not(.js-focus):focus-visible {
80
- outline: var(--sapphire-tabs-size-border) solid
212
+ outline: var(--sapphire-tabs-size-focus-ring-border) solid
81
213
  var(--sapphire-tabs-color-focus-ring);
82
- border-radius: var(--sapphire-tabs-size-focus-ring);
214
+ outline-offset: var(--sapphire-tabs-size-focus-ring-offset);
83
215
  }
@@ -1,16 +1,23 @@
1
1
  declare const styles: {
2
+ readonly "sapphire-tabs-scroll-container": string;
3
+ readonly "sapphire-tabs-overflow-arrows": string;
4
+ readonly "sapphire-tabs-overflow-arrows--inline": string;
5
+ readonly "sapphire-tabs-overflow-arrows__arrow": string;
6
+ readonly "sapphire-tabs-overflow-arrows__arrow--left": string;
7
+ readonly "sapphire-tabs-overflow-arrows__arrow--right": string;
2
8
  readonly "sapphire-tabs": string;
3
- readonly "sapphire-tabs--inline": string;
4
9
  readonly "sapphire-tabs--no-border": string;
5
10
  readonly "sapphire-tabs__tab": string;
6
11
  readonly "is-disabled": string;
7
12
  readonly "is-active": string;
8
13
  readonly "js-hover": string;
9
14
  readonly "is-hover": string;
10
- readonly "is-focus": string;
11
15
  readonly "js-focus": string;
16
+ readonly "is-focus": string;
12
17
  readonly "sapphire-tabs__label": string;
13
18
  readonly "sapphire-tabs__tab--active": string;
19
+ readonly "sapphire-tabs--small": string;
20
+ readonly "sapphire-tabs--large": string;
14
21
  readonly "sapphire-tab-panel": string;
15
22
  };
16
23
  export = styles;
@@ -0,0 +1,207 @@
1
+ .sapphire-text {
2
+ font-family: var(--sapphire-text-font-name-default);
3
+
4
+ /* The below is meant to address a font rendering quirk in OSX where the text
5
+ * looks bolder than intended due to subpixel rendering. This quirk generally
6
+ * occurs for bold fonts on dark backgrounds but depending on the font, it
7
+ * can happen in other contexts as well.
8
+ *
9
+ * These do not do anything except in webkit browsers & firefox on OSX.
10
+ *
11
+ * For more details see:
12
+ * - https://azuredevops/Main/WCCJ/_git/sapphire/pullRequest/212710?path=%2Fpackages%2Fcss%2Fcomponents%2Fbutton%2Fbutton.module.css&discussionId=1507702&_a=files
13
+ * - https://usabilitypost.com/2012/11/05/stop-fixing-font-smoothing/
14
+ */
15
+ -webkit-font-smoothing: antialiased;
16
+ -moz-osx-font-smoothing: grayscale;
17
+ }
18
+
19
+ .sapphire-text--strong {
20
+ font-weight: var(--sapphire-text-font-weight-strong);
21
+ }
22
+
23
+ .sapphire-text--underlined {
24
+ text-decoration: underline;
25
+ }
26
+
27
+ /* Heading */
28
+ .sapphire-text--heading-1,
29
+ .sapphire-text--heading-2,
30
+ .sapphire-text--heading-3,
31
+ .sapphire-text--heading-4,
32
+ .sapphire-text--heading-5,
33
+ .sapphire-text--heading-6 {
34
+ margin-top: 0px;
35
+ margin-bottom: 0px;
36
+ color: var(--sapphire-text-color-content-heading);
37
+ line-height: var(--sapphire-text-size-line-height-heading);
38
+ }
39
+
40
+ .sapphire-text--heading-1 {
41
+ font-family: var(--sapphire-text-font-name-heading-default-1);
42
+ font-weight: var(--sapphire-text-font-weight-heading-default-1);
43
+ font-size: var(--sapphire-text-size-font-heading-1);
44
+ text-transform: var(--sapphire-text-font-text-transform-heading-default-1);
45
+ letter-spacing: var(--sapphire-text-font-letter-spacing-heading-default-1);
46
+ }
47
+
48
+ .sapphire-text--heading-2 {
49
+ font-family: var(--sapphire-text-font-name-heading-default-2);
50
+ font-weight: var(--sapphire-text-font-weight-heading-default-2);
51
+ font-size: var(--sapphire-text-size-font-heading-2);
52
+ text-transform: var(--sapphire-text-font-text-transform-heading-default-2);
53
+ letter-spacing: var(--sapphire-text-font-letter-spacing-heading-default-2);
54
+ }
55
+
56
+ .sapphire-text--heading-3 {
57
+ font-family: var(--sapphire-text-font-name-heading-default-3);
58
+ font-weight: var(--sapphire-text-font-weight-heading-default-3);
59
+ font-size: var(--sapphire-text-size-font-heading-3);
60
+ text-transform: var(--sapphire-text-font-text-transform-heading-default-3);
61
+ letter-spacing: var(--sapphire-text-font-letter-spacing-heading-default-3);
62
+ }
63
+
64
+ .sapphire-text--heading-4 {
65
+ font-family: var(--sapphire-text-font-name-heading-default-4);
66
+ font-weight: var(--sapphire-text-font-weight-heading-default-4);
67
+ font-size: var(--sapphire-text-size-font-heading-4);
68
+ text-transform: var(--sapphire-text-font-text-transform-heading-default-4);
69
+ letter-spacing: var(--sapphire-text-font-letter-spacing-heading-default-4);
70
+ }
71
+
72
+ .sapphire-text--heading-5 {
73
+ font-family: var(--sapphire-text-font-name-heading-default-5);
74
+ font-weight: var(--sapphire-text-font-weight-heading-default-5);
75
+ font-size: var(--sapphire-text-size-font-heading-5);
76
+ text-transform: var(--sapphire-text-font-text-transform-heading-default-5);
77
+ letter-spacing: var(--sapphire-text-font-letter-spacing-heading-default-5);
78
+ }
79
+
80
+ .sapphire-text--heading-6 {
81
+ font-family: var(--sapphire-text-font-name-heading-default-6);
82
+ font-weight: var(--sapphire-text-font-weight-heading-default-6);
83
+ font-size: var(--sapphire-text-size-font-heading-6);
84
+ text-transform: var(--sapphire-text-font-text-transform-heading-default-6);
85
+ letter-spacing: var(--sapphire-text-font-letter-spacing-heading-default-6);
86
+ }
87
+
88
+ /* Alternative Heading */
89
+
90
+ .sapphire-text--heading-1.sapphire-text--heading-alternative {
91
+ font-family: var(--sapphire-text-font-name-heading-alternative-1);
92
+ font-weight: var(--sapphire-text-font-weight-heading-alternative-1);
93
+ text-transform: var(
94
+ --sapphire-text-font-text-transform-heading-alternative-1
95
+ );
96
+ letter-spacing: var(
97
+ --sapphire-text-font-letter-spacing-heading-alternative-1
98
+ );
99
+ }
100
+
101
+ .sapphire-text--heading-2.sapphire-text--heading-alternative {
102
+ font-family: var(--sapphire-text-font-name-heading-alternative-2);
103
+ font-weight: var(--sapphire-text-font-weight-heading-alternative-2);
104
+ text-transform: var(
105
+ --sapphire-text-font-text-transform-heading-alternative-2
106
+ );
107
+ letter-spacing: var(
108
+ --sapphire-text-font-letter-spacing-heading-alternative-2
109
+ );
110
+ }
111
+
112
+ .sapphire-text--heading-3.sapphire-text--heading-alternative {
113
+ font-family: var(--sapphire-text-font-name-heading-alternative-3);
114
+ font-weight: var(--sapphire-text-font-weight-heading-alternative-3);
115
+ text-transform: var(
116
+ --sapphire-text-font-text-transform-heading-alternative-3
117
+ );
118
+ letter-spacing: var(
119
+ --sapphire-text-font-letter-spacing-heading-alternative-3
120
+ );
121
+ }
122
+
123
+ .sapphire-text--heading-4.sapphire-text--heading-alternative {
124
+ font-family: var(--sapphire-text-font-name-heading-alternative-4);
125
+ font-weight: var(--sapphire-text-font-weight-heading-alternative-4);
126
+ text-transform: var(
127
+ --sapphire-text-font-text-transform-heading-alternative-4
128
+ );
129
+ letter-spacing: var(
130
+ --sapphire-text-font-letter-spacing-heading-alternative-4
131
+ );
132
+ }
133
+
134
+ .sapphire-text--heading-5.sapphire-text--heading-alternative {
135
+ font-family: var(--sapphire-text-font-name-heading-alternative-5);
136
+ font-weight: var(--sapphire-text-font-weight-heading-alternative-5);
137
+ text-transform: var(
138
+ --sapphire-text-font-text-transform-heading-alternative-5
139
+ );
140
+ letter-spacing: var(
141
+ --sapphire-text-font-letter-spacing-heading-alternative-5
142
+ );
143
+ }
144
+
145
+ .sapphire-text--heading-6.sapphire-text--heading-alternative {
146
+ font-family: var(--sapphire-text-font-name-heading-alternative-6);
147
+ font-weight: var(--sapphire-text-font-weight-heading-alternative-6);
148
+ text-transform: var(
149
+ --sapphire-text-font-text-transform-heading-alternative-6
150
+ );
151
+ letter-spacing: var(
152
+ --sapphire-text-font-letter-spacing-heading-alternative-6
153
+ );
154
+ }
155
+
156
+ /* Subheading */
157
+ .sapphire-text--subheading-1,
158
+ .sapphire-text--subheading-2 {
159
+ color: var(--sapphire-text-color-content-subheading);
160
+ line-height: var(--sapphire-text-size-line-height-subheading);
161
+ }
162
+
163
+ .sapphire-text--subheading-1 {
164
+ font-size: var(--sapphire-text-size-font-subheading-1);
165
+ }
166
+
167
+ .sapphire-text--subheading-2 {
168
+ font-size: var(--sapphire-text-size-font-subheading-2);
169
+ }
170
+
171
+ /* Body text */
172
+ .sapphire-text--body-1,
173
+ .sapphire-text--body-2,
174
+ .sapphire-text--body-3 {
175
+ color: var(--sapphire-text-color-content-body);
176
+ line-height: var(--sapphire-text-size-line-height-body);
177
+ margin-top: 0px;
178
+ margin-bottom: 0px;
179
+ }
180
+
181
+ .sapphire-text--body-1 {
182
+ font-size: var(--sapphire-text-size-font-body-1);
183
+ }
184
+
185
+ .sapphire-text--body-2 {
186
+ font-size: var(--sapphire-text-size-font-body-2);
187
+ }
188
+
189
+ .sapphire-text--body-3 {
190
+ font-size: var(--sapphire-text-size-font-body-3);
191
+ }
192
+
193
+ /* Caption text */
194
+ .sapphire-text--caption-1,
195
+ .sapphire-text--caption-2 {
196
+ color: var(--sapphire-text-color-content-caption);
197
+ font-weight: var(--sapphire-text-font-weight-caption);
198
+ line-height: var(--sapphire-text-size-line-height-caption);
199
+ }
200
+
201
+ .sapphire-text--caption-1 {
202
+ font-size: var(--sapphire-text-size-font-caption-1);
203
+ }
204
+
205
+ .sapphire-text--caption-2 {
206
+ font-size: var(--sapphire-text-size-font-caption-2);
207
+ }