@danske/sapphire-css 16.3.0 → 26.1.3

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 +413 -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 +26 -41
  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
@@ -12,6 +12,10 @@
12
12
  */
13
13
  -webkit-font-smoothing: antialiased;
14
14
  -moz-osx-font-smoothing: grayscale;
15
+
16
+ display: flex;
17
+ flex-direction: column;
18
+ justify-content: space-between;
15
19
  }
16
20
 
17
21
  .sapphire-table--overflow {
@@ -24,7 +28,6 @@
24
28
  .sapphire-table__table {
25
29
  border-collapse: collapse;
26
30
  border-spacing: 0;
27
- height: inherit;
28
31
  background-color: var(--sapphire-table-color-background-table);
29
32
  width: 100%;
30
33
  }
@@ -69,9 +72,10 @@
69
72
  text-align: end;
70
73
  }
71
74
 
72
- .sapphire-table .sapphire-table__headCell {
75
+ .sapphire-table__headCell {
73
76
  color: var(--sapphire-table-color-content-cell);
74
77
  box-sizing: border-box;
78
+ font-size: var(--sapphire-table-size-font-head-default);
75
79
  font-family: var(--sapphire-table-font-name);
76
80
  font-weight: var(--sapphire-table-font-weight-head);
77
81
  line-height: var(--sapphire-table-size-line-height-cell-default);
@@ -80,7 +84,7 @@
80
84
  vertical-align: top;
81
85
  }
82
86
 
83
- .sapphire-table__headCell .sapphire-table__headCell_container {
87
+ .sapphire-table__headCell_container {
84
88
  padding: var(--sapphire-table-size-spacing-head-cell-container-vertical)
85
89
  var(--sapphire-table-size-spacing-head-cell-container-horizontal);
86
90
  display: inline-flex;
@@ -122,7 +126,6 @@
122
126
  .sapphire-table__row:not(.js-focus):focus-visible {
123
127
  outline: none;
124
128
  border-radius: var(--sapphire-table-size-radius-focus);
125
- background-color: var(--sapphire-table-color-background-focus);
126
129
  box-shadow: inset 0px 0px 0px var(--sapphire-table-size-width-border-focus)
127
130
  var(--sapphire-table-color-border-focus);
128
131
  }
@@ -147,7 +150,7 @@
147
150
  cursor: pointer;
148
151
  }
149
152
 
150
- .sapphire-table__headCell.sapphire-table__headCell--sortable:not(sapphire-table__headCell--sorted):hover
153
+ .sapphire-table__headCell--sortable:not(sapphire-table__headCell--sorted):hover
151
154
  .sapphire-table-sortableIcon {
152
155
  visibility: visible;
153
156
  }
@@ -192,8 +195,8 @@
192
195
  text-overflow: ellipsis;
193
196
  }
194
197
 
195
- .sapphire-table .sapphire-table__cell,
196
- .sapphire-table .sapphire-table__selectionCell {
198
+ .sapphire-table__cell,
199
+ .sapphire-table__selectionCell {
197
200
  font-size: var(--sapphire-table-size-font-data-default);
198
201
  line-height: var(--sapphire-table-size-line-height-cell-default);
199
202
  padding: var(--sapphire-table-size-spacing-cell-vertical-default)
@@ -201,24 +204,24 @@
201
204
  }
202
205
 
203
206
  /* Selection cells that are suppose to contain only a checkbox */
204
- .sapphire-table .sapphire-table__selectionCell {
207
+ .sapphire-table__selectionCell {
205
208
  line-height: 0;
206
209
  padding-left: var(--sapphire-table-size-spacing-cell-horizontal-end);
207
210
  width: var(--sapphire-table-size-width-selection-cell);
208
211
  }
209
212
 
213
+ .sapphire-table__cell:first-child {
214
+ padding-left: var(--sapphire-table-size-spacing-cell-horizontal-end);
215
+ }
216
+ .sapphire-table__cell:last-child {
217
+ padding-right: var(--sapphire-table-size-spacing-cell-horizontal-end);
218
+ }
210
219
  .sapphire-table__headCell:first-child {
211
220
  padding-left: var(--sapphire-table-size-spacing-head-cell-horizontal-end);
212
221
  }
213
- .sapphire-table__row .sapphire-table__cell:first-child {
214
- padding-left: var(--sapphire-table-size-spacing-cell-horizontal-end);
215
- }
216
222
  .sapphire-table__headCell:last-child {
217
223
  padding-right: var(--sapphire-table-size-spacing-head-cell-horizontal-end);
218
224
  }
219
- .sapphire-table__row .sapphire-table__cell:last-child {
220
- padding-right: var(--sapphire-table-size-spacing-cell-horizontal-end);
221
- }
222
225
 
223
226
  .sapphire-table__row {
224
227
  position: relative;
@@ -236,34 +239,15 @@
236
239
  }
237
240
 
238
241
  /**
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.
242
+ * Row divider. Only shown when row is not focused, because of z-index issue with the focus ring.
246
243
  */
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;
255
- }
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);
244
+ .sapphire-table__row:not(.is-focus, :not(.js-focus):focus-visible) {
245
+ box-shadow: inset 0px -1px 0px 0px var(--sapphire-table-color-border-separator);
263
246
  }
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);
247
+
248
+ .sapphire-table--without-last-divider
249
+ .sapphire-table__row:not(.is-focus, :not(.js-focus):focus-visible):last-child {
250
+ box-shadow: none;
267
251
  }
268
252
 
269
253
  .sapphire-table--interactive .sapphire-table__row {
@@ -273,12 +257,13 @@
273
257
  .sapphire-table--interactive .sapphire-table__row.is-hover,
274
258
  .sapphire-table--interactive .sapphire-table__row:not(.js-hover):hover {
275
259
  background-color: var(--sapphire-table-color-background-hover);
260
+ cursor: pointer;
276
261
  }
277
262
 
278
263
  /**
279
264
  * Selection actions. Optionally shown when a table uses multiple selection.
280
265
  */
281
- .sapphire-table .sapphire-table__selection-action-bar {
266
+ .sapphire-table__selection-action-bar {
282
267
  display: flex;
283
268
  align-items: center;
284
269
  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
+ }