@danske/sapphire-css 50.1.0 → 50.2.1

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.
@@ -11,7 +11,7 @@
11
11
  white-space: nowrap;
12
12
  font-family: var(--sapphire-semantic-font-name-default);
13
13
  font-weight: var(--sapphire-semantic-font-weight-default-medium);
14
- font-size: var(--sapphire-semantic-size-font-body-md);
14
+ font-size: var(--sapphire-semantic-size-font-body-sm);
15
15
  font-style: normal;
16
16
  text-transform: capitalize;
17
17
 
@@ -31,6 +31,7 @@
31
31
 
32
32
  color: var(--sapphire-semantic-color-foreground-on-decorative-neutral);
33
33
  background: var(--sapphire-semantic-color-background-decorative-neutral);
34
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
34
35
  }
35
36
 
36
37
  /* Sizes */
@@ -39,14 +40,14 @@
39
40
  height: var(--sapphire-semantic-size-height-control-sm);
40
41
  width: var(--sapphire-semantic-size-height-control-sm);
41
42
  border-radius: var(--sapphire-semantic-size-height-control-sm);
42
- font-size: var(--sapphire-semantic-size-font-body-sm);
43
+ font-size: var(--sapphire-semantic-size-font-body-xs);
43
44
  }
44
45
 
45
46
  .sapphire-avatar--lg {
46
47
  height: var(--sapphire-semantic-size-height-control-lg);
47
48
  width: var(--sapphire-semantic-size-height-control-lg);
48
49
  border-radius: var(--sapphire-semantic-size-height-control-lg);
49
- font-size: var(--sapphire-global-size-font-125);
50
+ font-size: var(--sapphire-semantic-size-font-body-md);
50
51
  }
51
52
 
52
53
  /* Colors and variants */
@@ -31,6 +31,7 @@
31
31
 
32
32
  color: var(--sapphire-semantic-color-foreground-on-decorative-neutral);
33
33
  background: var(--sapphire-semantic-color-background-decorative-neutral);
34
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
34
35
  }
35
36
 
36
37
  /* Sizes */
@@ -49,6 +50,7 @@
49
50
  .sapphire-badge--secondary-positive {
50
51
  color: var(--sapphire-semantic-color-foreground-on-positive-subtle);
51
52
  background: var(--sapphire-semantic-color-background-positive-subtle);
53
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
52
54
  }
53
55
 
54
56
  .sapphire-badge--primary-negative {
@@ -59,6 +61,7 @@
59
61
  .sapphire-badge--secondary-negative {
60
62
  color: var(--sapphire-semantic-color-foreground-on-negative-subtle);
61
63
  background: var(--sapphire-semantic-color-background-negative-subtle);
64
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
62
65
  }
63
66
 
64
67
  .sapphire-badge--primary-warning {
@@ -69,6 +72,7 @@
69
72
  .sapphire-badge--secondary-warning {
70
73
  color: var(--sapphire-semantic-color-foreground-on-warning-subtle);
71
74
  background: var(--sapphire-semantic-color-background-warning-subtle);
75
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
72
76
  }
73
77
 
74
78
  .sapphire-badge--primary-informative {
@@ -79,6 +83,7 @@
79
83
  .sapphire-badge--secondary-informative {
80
84
  color: var(--sapphire-semantic-color-foreground-on-accent-subtle);
81
85
  background: var(--sapphire-semantic-color-background-accent-subtle);
86
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
82
87
  }
83
88
 
84
89
  /* decorative badges */
@@ -6,10 +6,26 @@
6
6
  justify-content: space-between;
7
7
  padding: var(--sapphire-semantic-size-spacing-md)
8
8
  var(--sapphire-semantic-size-spacing-xl);
9
- /* the bg color here is a hack until the design of this changes */
10
9
  background: var(--sapphire-semantic-color-background-neutral-subtle);
10
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
11
+
11
12
  position: sticky;
12
13
  top: 0;
13
14
  left: 0;
14
15
  z-index: 3;
15
16
  }
17
+
18
+ /* Firefox: backdrop-filter doesn't work on sticky elements inside overflow containers */
19
+ @supports (-moz-appearance: none) {
20
+ .sapphire-bulk-actions-bar {
21
+ background-color: var(--sapphire-semantic-color-background-surface);
22
+ }
23
+
24
+ .sapphire-bulk-actions-bar::before {
25
+ content: '';
26
+ position: absolute;
27
+ inset: 0;
28
+ z-index: -1;
29
+ background: var(--sapphire-semantic-color-background-neutral-subtle);
30
+ }
31
+ }
@@ -158,6 +158,8 @@ a.sapphire-button {
158
158
  --sapphire-semantic-color-background-action-secondary-default
159
159
  );
160
160
  color: var(--sapphire-semantic-color-foreground-action-on-secondary-default);
161
+
162
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
161
163
  }
162
164
 
163
165
  .sapphire-button--secondary:not(:disabled):not(.is-disabled):not(:active):not(
@@ -201,6 +203,7 @@ a.sapphire-button {
201
203
  ).is-hover {
202
204
  background: var(--sapphire-semantic-color-background-action-tertiary-hover);
203
205
  color: var(--sapphire-semantic-color-foreground-action-on-tertiary-hover);
206
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
204
207
  }
205
208
 
206
209
  .sapphire-button--tertiary.is-focus,
@@ -216,6 +219,7 @@ a.sapphire-button {
216
219
  ):focus-visible:active {
217
220
  background: var(--sapphire-semantic-color-background-action-tertiary-active);
218
221
  color: var(--sapphire-semantic-color-foreground-action-on-tertiary-active);
222
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
219
223
  }
220
224
 
221
225
  /* ## text */
@@ -282,6 +286,7 @@ a.sapphire-button {
282
286
  color: var(
283
287
  --sapphire-semantic-color-foreground-action-on-danger-secondary-default
284
288
  );
289
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
285
290
  }
286
291
 
287
292
  .sapphire-button--danger-secondary:not(:disabled):not(.is-disabled):not(
@@ -343,6 +348,7 @@ a.sapphire-button {
343
348
  color: var(
344
349
  --sapphire-semantic-color-foreground-action-on-danger-tertiary-hover
345
350
  );
351
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
346
352
  }
347
353
 
348
354
  .sapphire-button--danger-tertiary.is-focus,
@@ -366,6 +372,7 @@ a.sapphire-button {
366
372
  color: var(
367
373
  --sapphire-semantic-color-foreground-action-on-danger-tertiary-active
368
374
  );
375
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
369
376
  }
370
377
 
371
378
  /* ## Danger text */
@@ -123,6 +123,10 @@
123
123
  margin-left: var(--sapphire-semantic-size-spacing-sm);
124
124
  padding-top: var(--sapphire-semantic-size-spacing-2xs);
125
125
  padding-left: var(--sapphire-semantic-size-spacing-lg);
126
+ padding-right: var(--sapphire-semantic-size-spacing-lg);
127
+ }
128
+
129
+ .sapphire-calendar__table-container--md .sapphire-calendar__custom-ranges {
126
130
  padding-right: var(--sapphire-semantic-size-spacing-4xs);
127
131
  }
128
132
 
@@ -227,6 +231,7 @@
227
231
  .sapphire-calendar__button-text {
228
232
  background: var(--sapphire-semantic-color-background-action-tertiary-hover);
229
233
  transition-duration: var(--sapphire-semantic-time-fade-quick);
234
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
230
235
  }
231
236
 
232
237
  .sapphire-calendar__button:not(:disabled):not(.is-disabled).is-active
@@ -237,6 +242,7 @@
237
242
  .sapphire-calendar__button-text {
238
243
  background: var(--sapphire-semantic-color-background-action-tertiary-active);
239
244
  transition-duration: var(--sapphire-semantic-time-fade-quick);
245
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
240
246
  }
241
247
 
242
248
  .sapphire-calendar__table[aria-readonly='true'] .sapphire-calendar__button {
@@ -255,6 +261,7 @@
255
261
  background: var(
256
262
  --sapphire-semantic-color-background-action-select-secondary-default
257
263
  );
264
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
258
265
  }
259
266
 
260
267
  .sapphire-calendar__button.sapphire-calendar__button--range-selection:not(
@@ -420,7 +427,7 @@
420
427
 
421
428
  .sapphire-calendar__table-container--md
422
429
  .sapphire-calendar__button.sapphire-calendar__button--current::after {
423
- bottom: var(--sapphire-global-size-generic-10);
430
+ bottom: var(--sapphire-semantic-size-spacing-2xs);
424
431
  }
425
432
 
426
433
  .sapphire-calendar__button.sapphire-calendar__button--selected:not(
@@ -46,6 +46,12 @@
46
46
  var(--sapphire-dateField-icon-size);
47
47
  }
48
48
 
49
+ .sapphire-date-field--align-right.sapphire-date-field--no-calendar {
50
+ grid-template-columns:
51
+ var(--sapphire-dateField-icon-size)
52
+ auto;
53
+ }
54
+
49
55
  .sapphire-date-field--no-calendar {
50
56
  padding-left: var(--sapphire-semantic-size-spacing-control-horizontal-lg);
51
57
  }
@@ -56,6 +62,20 @@
56
62
  auto;
57
63
  }
58
64
 
65
+ .sapphire-date-field--align-right.sapphire-date-field--no-clear-button {
66
+ grid-template-columns:
67
+ auto
68
+ var(--sapphire-dateField-icon-size);
69
+ }
70
+
71
+ .sapphire-date-field--align-right .sapphire-date-field__input {
72
+ grid-column: 2;
73
+ }
74
+
75
+ .sapphire-date-field--align-right > .sapphire-date-field__button:last-child {
76
+ grid-column: 3;
77
+ }
78
+
59
79
  .sapphire-date-field--no-clear-button.sapphire-date-field--no-calendar {
60
80
  grid-template-columns: 1fr;
61
81
  }
@@ -66,7 +86,9 @@
66
86
 
67
87
  .sapphire-date-field__input-group {
68
88
  display: grid;
69
- grid-template-columns: min-content var(--sapphire-dateField-icon-size) min-content;
89
+ grid-template-columns:
90
+ min-content var(--sapphire-dateField-icon-size)
91
+ min-content;
70
92
  align-items: center;
71
93
  }
72
94
 
@@ -79,6 +101,10 @@
79
101
  font-weight: var(--sapphire-semantic-font-weight-default-regular);
80
102
  }
81
103
 
104
+ .sapphire-date-field__input--align-right {
105
+ justify-content: flex-end;
106
+ }
107
+
82
108
  .sapphire-date-field__range-separator {
83
109
  color: var(--sapphire-semantic-color-foreground-secondary);
84
110
  text-align: center;
@@ -1,10 +1,13 @@
1
1
  declare const styles: {
2
2
  readonly "sapphire-date-field": string;
3
3
  readonly "sapphire-date-field--no-calendar": string;
4
+ readonly "sapphire-date-field--align-right": string;
4
5
  readonly "sapphire-date-field--no-clear-button": string;
6
+ readonly "sapphire-date-field__input": string;
7
+ readonly "sapphire-date-field__button": string;
5
8
  readonly "sapphire-date-field--range": string;
6
9
  readonly "sapphire-date-field__input-group": string;
7
- readonly "sapphire-date-field__input": string;
10
+ readonly "sapphire-date-field__input--align-right": string;
8
11
  readonly "sapphire-date-field__range-separator": string;
9
12
  readonly "sapphire-date-field--md": string;
10
13
  readonly "is-disabled": string;
@@ -15,7 +18,6 @@ declare const styles: {
15
18
  readonly "sapphire-date-field--error": string;
16
19
  readonly "is-hover": string;
17
20
  readonly "js-hover": string;
18
- readonly "sapphire-date-field__button": string;
19
21
  readonly "sapphire-date-field__button--clear": string;
20
22
  readonly "sapphire-date-field__icon": string;
21
23
  readonly "is-active": string;
@@ -110,6 +110,7 @@
110
110
 
111
111
  .sapphire-dropzone--dropping {
112
112
  background: var(--sapphire-semantic-color-background-accent-subtle);
113
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
113
114
  }
114
115
 
115
116
  .sapphire-dropzone.sapphire-dropzone--dropping::before {
@@ -115,6 +115,7 @@ a.sapphire-icon-button {
115
115
  --sapphire-semantic-color-background-action-secondary-default
116
116
  );
117
117
  color: var(--sapphire-semantic-color-foreground-action-on-secondary-default);
118
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
118
119
  }
119
120
 
120
121
  .sapphire-icon-button--secondary:not(:disabled):not(.is-disabled):not(
@@ -158,6 +159,7 @@ a.sapphire-icon-button {
158
159
  ):not(.is-active).is-hover {
159
160
  background: var(--sapphire-semantic-color-background-action-tertiary-hover);
160
161
  color: var(--sapphire-semantic-color-foreground-action-on-tertiary-hover);
162
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
161
163
  }
162
164
 
163
165
  .sapphire-icon-button--tertiary.is-focus,
@@ -173,6 +175,7 @@ a.sapphire-icon-button {
173
175
  ):focus-visible:active {
174
176
  background: var(--sapphire-semantic-color-background-action-tertiary-active);
175
177
  color: var(--sapphire-semantic-color-foreground-action-on-tertiary-active);
178
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
176
179
  }
177
180
 
178
181
  /* Danger */
@@ -214,6 +217,7 @@ a.sapphire-icon-button {
214
217
  color: var(
215
218
  --sapphire-semantic-color-foreground-action-on-danger-secondary-default
216
219
  );
220
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
217
221
  }
218
222
 
219
223
  .sapphire-icon-button--danger-secondary:not(:disabled):not(.is-disabled):not(
@@ -277,6 +281,7 @@ a.sapphire-icon-button {
277
281
  color: var(
278
282
  --sapphire-semantic-color-foreground-action-on-danger-tertiary-hover
279
283
  );
284
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
280
285
  }
281
286
 
282
287
  .sapphire-icon-button--danger-tertiary.is-focus,
@@ -302,6 +307,7 @@ a.sapphire-icon-button {
302
307
  color: var(
303
308
  --sapphire-semantic-color-foreground-action-on-danger-tertiary-active
304
309
  );
310
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
305
311
  }
306
312
 
307
313
  /**
@@ -91,6 +91,7 @@ instead of being applied on the list item itself */
91
91
  background: var(
92
92
  --sapphire-semantic-color-background-action-select-secondary-default
93
93
  );
94
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
94
95
  }
95
96
 
96
97
  .sapphire-list--negative-margin-self {
@@ -167,6 +168,7 @@ instead of being applied on the list item itself */
167
168
  [aria-disabled='true']
168
169
  ):not(:disabled):not(:active):not(:has(:focus-within)):hover {
169
170
  background: var(--sapphire-semantic-color-background-action-tertiary-hover);
171
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
170
172
  }
171
173
 
172
174
  .sapphire-list__item--selected.is-hover:not(.is-active):not(:has(.is-hover)),
@@ -176,6 +178,7 @@ instead of being applied on the list item itself */
176
178
  background: var(
177
179
  --sapphire-semantic-color-background-action-select-secondary-hover
178
180
  );
181
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
179
182
  }
180
183
 
181
184
  /*
@@ -208,6 +211,7 @@ the contentRight button, when it triggers a menu, does not get the active state.
208
211
  background-color: var(
209
212
  --sapphire-semantic-color-background-action-secondary-hover
210
213
  );
214
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
211
215
  }
212
216
 
213
217
  .sapphire-list__item--selected:not(.is-disabled).is-active:not(
@@ -219,6 +223,7 @@ the contentRight button, when it triggers a menu, does not get the active state.
219
223
  background-color: var(
220
224
  --sapphire-semantic-color-background-action-select-secondary-active
221
225
  );
226
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
222
227
  }
223
228
 
224
229
  .sapphire-list__item[aria-disabled='true']
@@ -232,6 +232,7 @@ Hence a separate class for checkmark icon to be used in the alignment styles */
232
232
  .sapphire-listbox__content {
233
233
  color: var(--sapphire-semantic-color-foreground-action-on-tertiary-hover);
234
234
  background: var(--sapphire-semantic-color-background-action-tertiary-hover);
235
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
235
236
  }
236
237
 
237
238
  .sapphire-listbox__item--danger:not(.is-disabled):not(.is-active).is-hover
@@ -243,6 +244,7 @@ Hence a separate class for checkmark icon to be used in the alignment styles */
243
244
  background: var(
244
245
  --sapphire-semantic-color-background-action-danger-tertiary-hover
245
246
  );
247
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
246
248
  }
247
249
 
248
250
  .sapphire-listbox__item--danger:not(.is-disabled):not(.is-active).is-hover
@@ -267,6 +269,7 @@ Hence a separate class for checkmark icon to be used in the alignment styles */
267
269
  .sapphire-listbox__item:not(.is-disabled).is-active .sapphire-listbox__content {
268
270
  color: var(--sapphire-semantic-color-foreground-action-on-tertiary-active);
269
271
  background: var(--sapphire-semantic-color-background-action-tertiary-active);
272
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
270
273
  }
271
274
 
272
275
  .sapphire-listbox__item--danger:not(.is-disabled).is-active
@@ -274,6 +277,7 @@ Hence a separate class for checkmark icon to be used in the alignment styles */
274
277
  background: var(
275
278
  --sapphire-semantic-color-background-action-danger-tertiary-active
276
279
  );
280
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
277
281
  }
278
282
 
279
283
  .sapphire-listbox__item--danger:not(.is-disabled).is-active
@@ -123,20 +123,25 @@
123
123
  );
124
124
  padding: 0 var(--sapphire-semantic-size-spacing-container-horizontal-md);
125
125
  min-height: var(--sapphire-global-size-generic-100);
126
- background-color: var(--sapphire-semantic-color-background-surface);
126
+ background: var(--sapphire-semantic-color-background-neutral-subtle);
127
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
127
128
  display: flex;
128
129
  align-items: center;
129
130
  position: sticky;
130
131
  top: 0;
131
132
  }
132
133
 
133
- /*
134
- * Fix for section semi-transparent background not looking good when scrolled.
135
- */
136
- .sapphire-modal-layout__section-title::before {
137
- content: '';
138
- background: var(--sapphire-semantic-color-background-neutral-subtle);
139
- position: absolute;
140
- inset: 0;
141
- z-index: -1;
134
+ /* Firefox: backdrop-filter doesn't work on sticky elements inside overflow containers */
135
+ @supports (-moz-appearance: none) {
136
+ .sapphire-modal-layout__section-title {
137
+ background-color: var(--sapphire-semantic-color-background-surface);
138
+ }
139
+
140
+ .sapphire-modal-layout__section-title::before {
141
+ content: '';
142
+ position: absolute;
143
+ inset: 0;
144
+ z-index: -1;
145
+ background: var(--sapphire-semantic-color-background-neutral-subtle);
146
+ }
142
147
  }
@@ -4,6 +4,7 @@
4
4
  width: 100%;
5
5
  overflow: hidden;
6
6
  background: var(--sapphire-semantic-color-background-progress-track);
7
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
7
8
  position: relative;
8
9
  }
9
10
 
@@ -20,6 +20,7 @@
20
20
  position: relative;
21
21
  height: 100%;
22
22
  background: var(--sapphire-semantic-color-background-segmented-control-track);
23
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
23
24
  border-radius: var(--sapphire-semantic-size-height-control-lg);
24
25
  padding: var(--sapphire-global-size-static-5);
25
26
  box-sizing: border-box;
@@ -82,6 +82,7 @@
82
82
  top: 0;
83
83
  left: 100%;
84
84
  height: 100%;
85
+ z-index: 10;
85
86
  border-right: var(--sapphire-semantic-size-border-sm) solid
86
87
  var(--sapphire-semantic-color-border-secondary);
87
88
  }
@@ -19,6 +19,7 @@
19
19
  display: block;
20
20
  position: absolute;
21
21
  background: var(--sapphire-semantic-color-background-progress-track);
22
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
22
23
  height: var(--sapphire-global-size-generic-10);
23
24
  border-radius: var(--sapphire-semantic-size-radius-sm);
24
25
  width: var(--sapphire-semantic-size-width-field);
@@ -80,11 +80,12 @@
80
80
  * knob track
81
81
  */
82
82
  .sapphire-switch-track {
83
- background: var(--sapphire-semantic-color-background-switch-default);
84
83
  box-sizing: border-box;
85
84
  position: relative;
86
85
  width: var(--sapphire-global-size-generic-110);
87
- transition: background var(--sapphire-semantic-time-motion-quick)
86
+ box-shadow: inset 0 0 0 var(--sapphire-semantic-size-border-sm)
87
+ var(--sapphire-semantic-color-border-field-default);
88
+ transition: box-shadow var(--sapphire-semantic-time-motion-quick)
88
89
  var(--sapphire-semantic-transitions-fade);
89
90
  height: var(--sapphire-semantic-size-height-control-xs);
90
91
  border-radius: calc(var(--sapphire-semantic-size-height-control-xs) / 2);
@@ -97,7 +98,8 @@
97
98
  .sapphire-switch-input:not(:disabled)
98
99
  ~ .sapphire-switch-track,
99
100
  .sapphire-switch:not(:active):not(.is-active).is-hover .sapphire-switch-track {
100
- background: var(--sapphire-semantic-color-background-switch-hover);
101
+ box-shadow: inset 0 0 0 var(--sapphire-semantic-size-border-sm)
102
+ var(--sapphire-semantic-color-border-field-hover);
101
103
  }
102
104
 
103
105
  /* active (unchecked) */
@@ -107,12 +109,14 @@
107
109
  .sapphire-switch.is-active
108
110
  .sapphire-switch-input:not(:disabled)
109
111
  ~ .sapphire-switch-track {
110
- background: var(--sapphire-semantic-color-background-switch-active);
112
+ box-shadow: inset 0 0 0 var(--sapphire-semantic-size-border-sm)
113
+ var(--sapphire-semantic-color-border-field-active);
111
114
  }
112
115
 
113
- /* default (unchecked) */
116
+ /* default (checked) */
114
117
  .sapphire-switch-input:checked ~ .sapphire-switch-track {
115
118
  background: var(--sapphire-semantic-color-background-action-select-default);
119
+ box-shadow: none;
116
120
  }
117
121
 
118
122
  /* hover (checked) */
@@ -123,6 +127,7 @@
123
127
  .sapphire-switch-input:checked
124
128
  ~ .sapphire-switch-track {
125
129
  background: var(--sapphire-semantic-color-background-action-select-hover);
130
+ box-shadow: none;
126
131
  }
127
132
 
128
133
  /* active (checked) */
@@ -133,6 +138,7 @@
133
138
  .sapphire-switch-input:not(:disabled):checked
134
139
  ~ .sapphire-switch-track {
135
140
  background: var(--sapphire-semantic-color-background-action-select-active);
141
+ box-shadow: none;
136
142
  }
137
143
 
138
144
  /* disabled */
@@ -158,16 +164,41 @@
158
164
  height: 100%;
159
165
  aspect-ratio: 1/1;
160
166
  border-radius: 50%;
161
- background: var(
162
- --sapphire-semantic-color-foreground-action-on-select-default
163
- );
167
+ background-color: var(--sapphire-semantic-color-border-field-default);
164
168
  background-clip: content-box;
165
169
  left: 0;
166
170
  transition: left var(--sapphire-semantic-time-motion-quick)
167
- var(--sapphire-semantic-transitions-dynamic);
171
+ var(--sapphire-semantic-transitions-dynamic),
172
+ background-color var(--sapphire-semantic-time-motion-quick)
173
+ var(--sapphire-semantic-transitions-fade);
174
+ }
175
+
176
+ /* hover (unchecked) */
177
+ .sapphire-switch:not(:active):not(.is-active):not(.js-hover):hover
178
+ .sapphire-switch-input:not(:disabled)
179
+ ~ .sapphire-switch-track::after,
180
+ .sapphire-switch:not(:active):not(.is-active).is-hover
181
+ .sapphire-switch-track::after {
182
+ background-color: var(--sapphire-semantic-color-border-field-hover);
168
183
  }
184
+
185
+ /* active (unchecked) */
186
+ .sapphire-switch:active
187
+ .sapphire-switch-input:not(:disabled)
188
+ ~ .sapphire-switch-track::after,
189
+ .sapphire-switch.is-active
190
+ .sapphire-switch-input:not(:disabled)
191
+ ~ .sapphire-switch-track::after {
192
+ background-color: var(--sapphire-semantic-color-border-field-active);
193
+ }
194
+
169
195
  .sapphire-switch-input:checked ~ .sapphire-switch-track::after {
170
196
  left: calc(100% - var(--sapphire-semantic-size-height-control-xs));
197
+
198
+ /* override hover and active states from unchecked state style */
199
+ background-color: var(
200
+ --sapphire-semantic-color-foreground-action-on-select-default
201
+ ) !important;
171
202
  }
172
203
 
173
204
  .sapphire-switch--md .sapphire-switch-track {
@@ -330,6 +330,7 @@ th.sapphire-table__selectionCell:first-child {
330
330
  --sapphire-table-row-bg-active: var(
331
331
  --sapphire-semantic-color-background-action-tertiary-active
332
332
  );
333
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
333
334
  }
334
335
 
335
336
  .sapphire-table--interactive
@@ -344,6 +345,7 @@ th.sapphire-table__selectionCell:first-child {
344
345
  --sapphire-table-row-bg: var(
345
346
  --sapphire-semantic-color-background-action-select-secondary-default
346
347
  );
348
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
347
349
  }
348
350
 
349
351
  /**
@@ -400,6 +402,7 @@ th.sapphire-table__selectionCell:first-child {
400
402
  );
401
403
  color: var(--sapphire-semantic-color-foreground-action-on-tertiary-hover);
402
404
  cursor: pointer;
405
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
403
406
  }
404
407
 
405
408
  .sapphire-table--interactive
@@ -419,6 +422,7 @@ th.sapphire-table__selectionCell:first-child {
419
422
  --sapphire-table-row-bg: var(
420
423
  --sapphire-semantic-color-background-action-highlight
421
424
  );
425
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
422
426
  }
423
427
 
424
428
  /* TODO remove tbody in v6 */
@@ -171,6 +171,7 @@
171
171
  .is-active
172
172
  ):not(.sapphire-tabs__tab--active).is-hover {
173
173
  background: var(--sapphire-semantic-color-background-action-tertiary-hover);
174
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
174
175
  }
175
176
 
176
177
  .sapphire-tabs__tab--active:not(:disabled):not(.is-disabled):not(
@@ -178,11 +179,13 @@
178
179
  ):hover,
179
180
  .sapphire-tabs__tab--active:not(:disabled):not(.is-disabled).is-hover {
180
181
  background: var(--sapphire-semantic-color-state-accent-subtle-hover);
182
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
181
183
  }
182
184
 
183
185
  .sapphire-tabs__tab:not(:disabled):not(.is-disabled):active,
184
186
  .sapphire-tabs__tab:not(:disabled):not(.is-disabled):focus-visible:active {
185
187
  background: var(--sapphire-semantic-color-background-action-tertiary-active);
188
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
186
189
  }
187
190
 
188
191
  .sapphire-tabs__tab--active:active:not(:disabled):not(.is-disabled):not(
@@ -190,6 +193,7 @@
190
193
  ):hover,
191
194
  .sapphire-tabs__tab--active:active:not(:disabled):not(.is-disabled).is-hover {
192
195
  background: var(--sapphire-semantic-color-state-accent-subtle-active);
196
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
193
197
  }
194
198
 
195
199
  .sapphire-tabs__tab.js-focus.is-focus,
@@ -81,12 +81,14 @@
81
81
  background: var(--sapphire-semantic-color-background-action-tertiary-hover);
82
82
  color: var(--sapphire-semantic-color-foreground-action-on-tertiary-hover);
83
83
  cursor: pointer;
84
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
84
85
  }
85
86
 
86
87
  .sapphire-tag--actionable.is-active {
87
88
  background: var(--sapphire-semantic-color-background-action-tertiary-active);
88
89
  color: var(--sapphire-semantic-color-foreground-action-on-tertiary-active);
89
90
  cursor: pointer;
91
+ backdrop-filter: var(--sapphire-semantic-backdrop-filter-blur);
90
92
  }
91
93
 
92
94
  .sapphire-tag:disabled,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danske/sapphire-css",
3
- "version": "50.1.0",
3
+ "version": "50.2.1",
4
4
  "description": "CSS implementation of the Sapphire Design System from Danske Bank A/S",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "sideEffects": false,
@@ -38,7 +38,8 @@
38
38
  "build:themes": "yarn build:themes:esm && yarn build:themes:cjs",
39
39
  "build:themes:esm": "tsc -p tsconfig.themes.json --module ES2020 --outDir build/themes/esm && tsc -p tsconfig.themes.json --module ES2020 --outDir themes",
40
40
  "build:themes:cjs": "tsc -p tsconfig.themes.json --module CommonJS --outDir build/themes/cjs && tsc -p tsconfig.themes.json --module CommonJS",
41
- "prepare": "yarn run build"
41
+ "prepare": "yarn run build",
42
+ "postpublish": "node ../../../scripts/append-release-notes.js"
42
43
  },
43
44
  "devDependencies": {
44
45
  "@babel/core": "^7.20.12",
@@ -67,7 +68,7 @@
67
68
  "typescript": "~4.6.4"
68
69
  },
69
70
  "dependencies": {
70
- "@danske/sapphire-design-tokens": "^42.4.0"
71
+ "@danske/sapphire-design-tokens": "^42.5.0"
71
72
  },
72
- "gitHead": "6e7cb3028dc134adc624e161700df8cb3bc3bfb7"
73
+ "gitHead": "468518f32524d0aa811f5d273a5c4d4a6b1dcf62"
73
74
  }