@danske/sapphire-css 41.0.0 → 42.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 (28) hide show
  1. package/components/accordion/accordion.module.css +15 -36
  2. package/components/accordion/accordion.module.css.d.ts +1 -4
  3. package/components/alert/alert.module.css +68 -0
  4. package/components/alert/alert.module.css.d.ts +11 -0
  5. package/components/button/button.module.css +5 -1
  6. package/components/calendar/calendar.module.css +13 -7
  7. package/components/dateField/dateField.module.css +22 -14
  8. package/components/dateField/dateField.module.css.d.ts +1 -1
  9. package/components/dialog/dialog.module.css +8 -1
  10. package/components/dialog/dialog.module.css.d.ts +1 -0
  11. package/components/feedbackMessage/feedbackMessage.module.css +14 -4
  12. package/components/feedbackMessage/feedbackMessage.module.css.d.ts +2 -0
  13. package/components/label/label.module.css +1 -1
  14. package/components/link/link.module.css +3 -2
  15. package/components/list/list.module.css +6 -7
  16. package/components/modalLayout/modalLayout.module.css +33 -0
  17. package/components/modalLayout/modalLayout.module.css.d.ts +2 -0
  18. package/components/progressIndicator/progressIndicator.module.css +45 -0
  19. package/components/progressIndicator/progressIndicator.module.css.d.ts +7 -0
  20. package/components/select/select.module.css +9 -2
  21. package/components/slider/slider.module.css +64 -0
  22. package/components/slider/slider.module.css.d.ts +10 -0
  23. package/components/table/table.module.css +0 -3
  24. package/components/tag/tag.module.css +16 -10
  25. package/components/text/text.module.css +5 -1
  26. package/components/text/text.module.css.d.ts +1 -0
  27. package/components/textField/textField.module.css +7 -4
  28. package/package.json +3 -3
@@ -61,8 +61,10 @@
61
61
  display: flex;
62
62
  justify-content: space-between;
63
63
  align-items: center;
64
- padding: var(--sapphire-semantic-size-spacing-sm)
65
- var(--sapphire-semantic-size-spacing-md);
64
+ padding: var(--sapphire-semantic-size-spacing-md)
65
+ var(--sapphire-semantic-size-spacing-md)
66
+ var(--sapphire-semantic-size-spacing-md)
67
+ var(--sapphire-semantic-size-spacing-lg);
66
68
  border: none;
67
69
  background: inherit;
68
70
  font-family: inherit;
@@ -72,28 +74,6 @@
72
74
  background: var(--sapphire-semantic-color-background-action-tertiary-default);
73
75
  }
74
76
 
75
- /* Hover header */
76
-
77
- .sapphire-accordion__item:not(.is-disabled)
78
- .sapphire-accordion__item-header:not(:active):not(.is-active):not(
79
- .js-hover
80
- ):hover,
81
- .sapphire-accordion__item:not(.is-disabled)
82
- .sapphire-accordion__item-header:not(:active):not(.is-active).is-hover {
83
- background: var(--sapphire-semantic-color-background-action-tertiary-hover);
84
- }
85
-
86
- /* Active header */
87
-
88
- .sapphire-accordion__item:not(.is-disabled)
89
- .sapphire-accordion__item-header.is-active,
90
- .sapphire-accordion__item:not(.is-disabled)
91
- .sapphire-accordion__item-header:active,
92
- .sapphire-accordion__item:not(.is-disabled)
93
- .sapphire-accordion__item-header:not(.js-focus):focus-visible:active {
94
- background: var(--sapphire-semantic-color-background-action-tertiary-active);
95
- }
96
-
97
77
  /* Focus header */
98
78
 
99
79
  .sapphire-accordion__item-header:focus {
@@ -141,8 +121,6 @@
141
121
  }
142
122
 
143
123
  .sapphire-accordion__item-heading {
144
- font-size: var(--sapphire-semantic-size-font-body-md);
145
- font-weight: var(--sapphire-semantic-font-weight-default-medium);
146
124
  text-align: left;
147
125
  flex: 1;
148
126
  /* Wrap if title is long */
@@ -154,8 +132,8 @@
154
132
  display: flex;
155
133
  justify-content: center;
156
134
  align-items: center;
157
- width: var(--sapphire-semantic-size-height-control-md);
158
- height: var(--sapphire-semantic-size-height-control-md);
135
+ width: var(--sapphire-semantic-size-height-control-xs);
136
+ height: var(--sapphire-semantic-size-height-control-xs);
159
137
  transition: transform var(--sapphire-semantic-time-motion-quick)
160
138
  var(--sapphire-semantic-transitions-dynamic);
161
139
  }
@@ -177,12 +155,13 @@
177
155
  font-weight: var(--sapphire-semantic-font-weight-default-regular);
178
156
  overflow: hidden;
179
157
  visibility: hidden;
180
- transition: padding-top var(--sapphire-semantic-time-motion-quick)
181
- var(--sapphire-semantic-transitions-dynamic),
158
+ opacity: 0;
159
+ transition: opacity var(--sapphire-semantic-time-fade-default)
160
+ var(--sapphire-semantic-transitions-fade),
182
161
  padding-bottom var(--sapphire-semantic-time-motion-quick)
183
162
  var(--sapphire-semantic-transitions-fade);
184
- padding-right: var(--sapphire-semantic-size-spacing-md);
185
- padding-left: var(--sapphire-semantic-size-spacing-md);
163
+ padding-right: var(--sapphire-semantic-size-spacing-lg);
164
+ padding-left: var(--sapphire-semantic-size-spacing-lg);
186
165
  }
187
166
 
188
167
  .sapphire-accordion__item--open > .sapphire-accordion__item-content-wrapper {
@@ -192,12 +171,12 @@
192
171
  .sapphire-accordion__item--open
193
172
  > .sapphire-accordion__item-content-wrapper
194
173
  > .sapphire-accordion__item-content {
195
- padding-top: var(--sapphire-semantic-size-spacing-md);
196
- padding-bottom: var(--sapphire-semantic-size-spacing-4xl);
174
+ opacity: 1;
175
+ padding-bottom: var(--sapphire-semantic-size-spacing-lg);
197
176
  visibility: visible;
198
177
  }
199
178
 
200
179
  .sapphire-accordion--negative-margin-self {
201
- margin-left: calc(var(--sapphire-semantic-size-spacing-md) * -1);
202
- width: calc(100% + (var(--sapphire-semantic-size-spacing-md) * 2));
180
+ margin-left: calc(var(--sapphire-semantic-size-spacing-lg) * -1);
181
+ width: calc(100% + (var(--sapphire-semantic-size-spacing-lg) * 2));
203
182
  }
@@ -5,11 +5,8 @@ declare const styles: {
5
5
  readonly "is-disabled": string;
6
6
  readonly "sapphire-accordion__item-header": string;
7
7
  readonly "sapphire-accordion__item-content-wrapper": string;
8
- readonly "is-active": string;
9
- readonly "js-hover": string;
10
- readonly "is-hover": string;
11
- readonly "js-focus": string;
12
8
  readonly "is-focus": string;
9
+ readonly "js-focus": string;
13
10
  readonly "sapphire-accordion__item--open": string;
14
11
  readonly "sapphire-accordion__item-heading": string;
15
12
  readonly "sapphire-accordion__item-arrow": string;
@@ -0,0 +1,68 @@
1
+ .sapphire-alert {
2
+ box-sizing: border-box;
3
+ margin: 0;
4
+ display: grid;
5
+ column-gap: var(--sapphire-semantic-size-spacing-2xs);
6
+ row-gap: var(--sapphire-semantic-size-spacing-sm);
7
+ grid-template-columns: var(--sapphire-semantic-size-icon-sm) 1fr;
8
+ padding: var(--sapphire-semantic-size-spacing-md);
9
+ border-radius: var(--sapphire-semantic-size-radius-lg);
10
+
11
+ color: var(--sapphire-semantic-color-foreground-primary);
12
+
13
+ /* Default variant "info" */
14
+ background-color: var(--sapphire-semantic-color-background-accent-subtle);
15
+
16
+ /* The below is meant to address a font rendering quirk in OSX where the text
17
+ * looks bolder than intended due to subpixel rendering. This quirk generally
18
+ * occurs for bold fonts on dark backgrounds but depending on the font, it
19
+ * can happen in other contexts as well.
20
+ *
21
+ * These do not do anything except in webkit browsers & firefox on OSX.
22
+ *
23
+ * For more details see:
24
+ * - https://azuredevops/Main/WCCJ/_git/sapphire/pullRequest/212710?path=%2Fpackages%2Fcss%2Fcomponents%2Fbutton%2Fbutton.module.css&discussionId=1507702&_a=files
25
+ * - https://usabilitypost.com/2012/11/05/stop-fixing-font-smoothing/
26
+ */
27
+ -webkit-font-smoothing: antialiased;
28
+ -moz-osx-font-smoothing: grayscale;
29
+ }
30
+
31
+ .sapphire-alert__icon {
32
+ grid-row: 1;
33
+ grid-column: 1;
34
+ color: var(--sapphire-semantic-color-foreground-on-accent-subtle);
35
+ line-height: 0;
36
+ padding-top: var(--sapphire-semantic-size-spacing-4xs);
37
+ }
38
+
39
+ .sapphire-alert .sapphire-alert__title {
40
+ grid-row: 1 / 2;
41
+ grid-column: 2 / 3;
42
+ }
43
+
44
+ .sapphire-alert__content {
45
+ grid-row: 2 / 3;
46
+ grid-column: 1 / 3;
47
+ }
48
+
49
+ .sapphire-alert--warning {
50
+ background-color: var(--sapphire-semantic-color-background-warning-subtle);
51
+ }
52
+ .sapphire-alert--warning .sapphire-alert__icon {
53
+ color: var(--sapphire-semantic-color-foreground-on-warning-subtle);
54
+ }
55
+
56
+ .sapphire-alert--negative {
57
+ background-color: var(--sapphire-semantic-color-background-negative-subtle);
58
+ }
59
+ .sapphire-alert--negative .sapphire-alert__icon {
60
+ color: var(--sapphire-semantic-color-foreground-on-negative-subtle);
61
+ }
62
+
63
+ .sapphire-alert--positive {
64
+ background-color: var(--sapphire-semantic-color-background-positive-subtle);
65
+ }
66
+ .sapphire-alert--positive .sapphire-alert__icon {
67
+ color: var(--sapphire-semantic-color-foreground-on-positive-subtle);
68
+ }
@@ -0,0 +1,11 @@
1
+ declare const styles: {
2
+ readonly "sapphire-alert": string;
3
+ readonly "sapphire-alert__icon": string;
4
+ readonly "sapphire-alert__title": string;
5
+ readonly "sapphire-alert__content": string;
6
+ readonly "sapphire-alert--warning": string;
7
+ readonly "sapphire-alert--negative": string;
8
+ readonly "sapphire-alert--positive": string;
9
+ };
10
+ export = styles;
11
+
@@ -170,7 +170,7 @@ a.sapphire-button {
170
170
  color: var(--sapphire-semantic-color-foreground-action-on-secondary-active);
171
171
  }
172
172
 
173
- /* ## Tertiary (undocumented) */
173
+ /* ## Tertiary */
174
174
  .sapphire-button--tertiary {
175
175
  background: var(--sapphire-semantic-color-background-action-tertiary-default);
176
176
  color: var(--sapphire-semantic-color-foreground-action-on-tertiary-default);
@@ -215,12 +215,16 @@ a.sapphire-button {
215
215
  .sapphire-button--text:not(:disabled):not(.is-disabled):not(:active):not(
216
216
  .is-active
217
217
  ).is-hover {
218
+ text-decoration: underline;
219
+ text-decoration-thickness: var(--sapphire-semantic-size-border-sm);
218
220
  color: var(--sapphire-semantic-color-foreground-action-link-hover);
219
221
  }
220
222
 
221
223
  .sapphire-button--text:not(:disabled):not(.is-disabled).is-active,
222
224
  .sapphire-button--text:not(:disabled):not(.is-disabled):active,
223
225
  .sapphire-button--text:not(:disabled):not(.is-disabled):focus-visible:active {
226
+ text-decoration: underline;
227
+ text-decoration-thickness: var(--sapphire-semantic-size-border-sm);
224
228
  color: var(--sapphire-semantic-color-foreground-action-link-active);
225
229
  }
226
230
 
@@ -92,17 +92,17 @@
92
92
  }
93
93
 
94
94
  .sapphire-calendar__table--with-week-numbers th:first-child {
95
- padding-right: var(--sapphire-semantic-size-spacing-2xs);
95
+ padding-right: var(--sapphire-semantic-size-spacing-xs);
96
96
  border-right: var(--sapphire-semantic-size-border-sm) solid
97
97
  var(--sapphire-semantic-color-border-secondary);
98
98
  }
99
99
 
100
100
  .sapphire-calendar__table--with-week-numbers th:first-child + td {
101
- padding-left: var(--sapphire-semantic-size-spacing-2xs);
101
+ padding-left: var(--sapphire-semantic-size-spacing-xs);
102
102
  }
103
103
 
104
104
  .sapphire-calendar__table-head-cell {
105
- height: var(--sapphire-semantic-size-height-control-sm);
105
+ height: var(--sapphire-semantic-size-height-control-md);
106
106
  text-align: center;
107
107
  padding: 0;
108
108
  }
@@ -117,12 +117,12 @@
117
117
  position: relative;
118
118
  display: flex;
119
119
  flex-direction: column;
120
- gap: var(--sapphire-semantic-size-spacing-md);
120
+ gap: var(--sapphire-semantic-size-spacing-sm);
121
121
  border-left: var(--sapphire-semantic-size-border-sm) solid
122
122
  var(--sapphire-semantic-color-border-secondary);
123
- margin-left: var(--sapphire-semantic-size-spacing-md);
123
+ margin-left: var(--sapphire-semantic-size-spacing-sm);
124
124
  padding-top: var(--sapphire-semantic-size-spacing-2xs);
125
- padding-left: var(--sapphire-semantic-size-spacing-xl);
125
+ padding-left: var(--sapphire-semantic-size-spacing-lg);
126
126
  padding-right: var(--sapphire-semantic-size-spacing-4xs);
127
127
  }
128
128
 
@@ -160,7 +160,7 @@
160
160
  }
161
161
 
162
162
  .sapphire-calendar__button .sapphire-calendar__button-text {
163
- font-size: var(--sapphire-semantic-size-font-body-sm);
163
+ font-size: var(--sapphire-semantic-size-font-body-md);
164
164
  color: var(--sapphire-semantic-color-foreground-primary);
165
165
  font-weight: var(--sapphire-semantic-font-weight-default-regular);
166
166
  background: var(--sapphire-semantic-color-background-action-tertiary-default);
@@ -176,6 +176,12 @@
176
176
  padding: 0 var(--sapphire-semantic-size-spacing-lg);
177
177
  }
178
178
 
179
+ .sapphire-calendar__table-container--md
180
+ .sapphire-calendar__button
181
+ .sapphire-calendar__button-text {
182
+ font-size: var(--sapphire-semantic-size-font-body-sm);
183
+ }
184
+
179
185
  .sapphire-calendar__header-title {
180
186
  font-weight: var(--sapphire-semantic-font-weight-default-medium);
181
187
  font-size: var(--sapphire-semantic-size-font-body-md);
@@ -33,8 +33,8 @@
33
33
  var(--sapphire-dateField-icon-size);
34
34
 
35
35
  height: var(--sapphire-semantic-size-height-control-lg);
36
- border-radius: var(--sapphire-semantic-size-radius-sm);
37
- padding: 0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);
36
+ border-radius: var(--sapphire-semantic-size-radius-md);
37
+ padding: 0 var(--sapphire-semantic-size-spacing-control-horizontal-md);
38
38
  border: var(--sapphire-semantic-size-border-sm) solid
39
39
  var(--sapphire-semantic-color-border-field-default);
40
40
  background: var(--sapphire-semantic-color-background-field);
@@ -46,6 +46,10 @@
46
46
  var(--sapphire-dateField-icon-size);
47
47
  }
48
48
 
49
+ .sapphire-date-field--no-calendar {
50
+ padding-left: var(--sapphire-semantic-size-spacing-control-horizontal-lg);
51
+ }
52
+
49
53
  .sapphire-date-field--no-clear-button {
50
54
  grid-template-columns:
51
55
  var(--sapphire-dateField-icon-size)
@@ -56,14 +60,6 @@
56
60
  grid-template-columns: 1fr;
57
61
  }
58
62
 
59
- .sapphire-date-field--md {
60
- --sapphire-dateField-icon-size: var(--sapphire-semantic-size-icon-sm);
61
-
62
- height: var(--sapphire-semantic-size-height-control-md);
63
- padding: 0 var(--sapphire-semantic-size-spacing-control-horizontal-md);
64
- gap: var(--sapphire-semantic-size-spacing-xs);
65
- }
66
-
67
63
  .sapphire-date-field--range {
68
64
  width: var(--sapphire-global-size-generic-960);
69
65
  }
@@ -74,10 +70,6 @@
74
70
  align-items: center;
75
71
  }
76
72
 
77
- .sapphire-date-field--md .sapphire-date-field__input-group {
78
- gap: var(--sapphire-semantic-size-spacing-4xs);
79
- }
80
-
81
73
  .sapphire-date-field__input {
82
74
  display: flex;
83
75
  align-items: center;
@@ -95,6 +87,22 @@
95
87
  content: '—';
96
88
  }
97
89
 
90
+ /**
91
+ * Medium size
92
+ */
93
+ .sapphire-date-field--md {
94
+ --sapphire-dateField-icon-size: var(--sapphire-semantic-size-icon-sm);
95
+
96
+ height: var(--sapphire-semantic-size-height-control-md);
97
+ padding: 0 var(--sapphire-semantic-size-spacing-control-horizontal-md);
98
+ gap: var(--sapphire-semantic-size-spacing-xs);
99
+ border-radius: var(--sapphire-semantic-size-radius-sm);
100
+ }
101
+
102
+ .sapphire-date-field--md .sapphire-date-field__input-group {
103
+ gap: var(--sapphire-semantic-size-spacing-4xs);
104
+ }
105
+
98
106
  .sapphire-date-field--md .sapphire-date-field__input {
99
107
  font-size: var(--sapphire-semantic-size-font-control-md);
100
108
  }
@@ -2,11 +2,11 @@ declare const styles: {
2
2
  readonly "sapphire-date-field": string;
3
3
  readonly "sapphire-date-field--no-calendar": string;
4
4
  readonly "sapphire-date-field--no-clear-button": string;
5
- readonly "sapphire-date-field--md": string;
6
5
  readonly "sapphire-date-field--range": string;
7
6
  readonly "sapphire-date-field__input-group": string;
8
7
  readonly "sapphire-date-field__input": string;
9
8
  readonly "sapphire-date-field__range-separator": string;
9
+ readonly "sapphire-date-field--md": string;
10
10
  readonly "sapphire-date-field__segment": string;
11
11
  readonly "is-disabled": string;
12
12
  readonly "is-focus": string;
@@ -39,12 +39,19 @@
39
39
  animation-fill-mode: forwards;
40
40
  }
41
41
 
42
+ .sapphire-dialog--padded {
43
+ padding: var(--sapphire-semantic-size-spacing-3xl)
44
+ var(--sapphire-semantic-size-spacing-3xl)
45
+ var(--sapphire-semantic-size-spacing-2xl)
46
+ var(--sapphire-semantic-size-spacing-3xl);
47
+ }
48
+
42
49
  .sapphire-dialog--exiting {
43
50
  animation-name: fade-out;
44
51
  }
45
52
 
46
53
  .sapphire-dialog--xs {
47
- width: var(--sapphire-global-size-generic-800);
54
+ width: var(--sapphire-global-size-generic-900);
48
55
  }
49
56
 
50
57
  .sapphire-dialog--sm {
@@ -1,6 +1,7 @@
1
1
  declare const styles: {
2
2
  readonly "sapphire-dialog": string;
3
3
  readonly "fade-in": string;
4
+ readonly "sapphire-dialog--padded": string;
4
5
  readonly "sapphire-dialog--exiting": string;
5
6
  readonly "fade-out": string;
6
7
  readonly "sapphire-dialog--xs": string;
@@ -1,11 +1,15 @@
1
1
  .sapphire-feedback-message {
2
2
  display: flex;
3
3
  flex-direction: column;
4
- align-items: center;
5
- justify-content: center;
4
+ align-items: stretch;
6
5
  margin: auto;
7
6
  max-width: var(--sapphire-global-size-generic-1000);
8
- gap: var(--sapphire-semantic-size-spacing-xl);
7
+ }
8
+
9
+ .sapphire-feedback-message__header {
10
+ display: flex;
11
+ justify-content: center;
12
+ margin-bottom: var(--sapphire-semantic-size-spacing-xl);
9
13
  }
10
14
 
11
15
  .sapphire-feedback-message__content {
@@ -13,5 +17,11 @@
13
17
  flex-direction: column;
14
18
  align-items: center;
15
19
  text-align: center;
16
- gap: var(--sapphire-semantic-size-spacing-md);
20
+ gap: var(--sapphire-semantic-size-spacing-sm);
21
+ }
22
+
23
+ .sapphire-feedback-message__footer {
24
+ display: flex;
25
+ justify-content: center;
26
+ margin-top: var(--sapphire-semantic-size-spacing-2xl);
17
27
  }
@@ -1,6 +1,8 @@
1
1
  declare const styles: {
2
2
  readonly "sapphire-feedback-message": string;
3
+ readonly "sapphire-feedback-message__header": string;
3
4
  readonly "sapphire-feedback-message__content": string;
5
+ readonly "sapphire-feedback-message__footer": string;
4
6
  };
5
7
  export = styles;
6
8
 
@@ -1,5 +1,5 @@
1
1
  .sapphire-label {
2
- display: inline-flex;
2
+ display: flex;
3
3
  align-items: center;
4
4
  min-height: var(--sapphire-semantic-size-height-control-xs);
5
5
  line-height: var(--sapphire-semantic-size-line-height-md);
@@ -19,10 +19,11 @@
19
19
  cursor: pointer;
20
20
  border-radius: var(--sapphire-semantic-size-radius-xs);
21
21
 
22
- text-decoration-skip-ink: none;
23
-
24
22
  outline: none;
25
23
  color: var(--sapphire-semantic-color-foreground-action-link-default);
24
+
25
+ text-decoration: underline;
26
+ text-decoration-thickness: var(--sapphire-semantic-size-border-sm);
26
27
  }
27
28
 
28
29
  /* Disabled state for all variants */
@@ -156,10 +156,10 @@ instead of being applied on the list item itself */
156
156
  /*
157
157
  * Hover
158
158
  */
159
- .sapphire-list__item--interactive.is-hover:not(.is-active),
159
+ .sapphire-list__item--interactive.is-hover:not(.is-active):not(:has(.is-hover)),
160
160
  .sapphire-list__item--interactive:not(.js-hover):not(
161
161
  [aria-disabled='true']
162
- ):not(:disabled):not(:active):hover {
162
+ ):not(:disabled):not(:active):not(:has(:hover)):hover {
163
163
  background: var(--sapphire-semantic-color-background-action-tertiary-hover);
164
164
  }
165
165
 
@@ -182,13 +182,12 @@ instead of being applied on the list item itself */
182
182
 
183
183
  /* Active */
184
184
 
185
- .sapphire-list__item--interactive:not(.is-disabled).is-active,
185
+ .sapphire-list__item--interactive:not(.is-disabled).is-active:not(
186
+ :has(.is-active)
187
+ ),
186
188
  .sapphire-list__item--interactive:not([aria-disabled='true']):not(
187
189
  :disabled
188
- ):active,
189
- .sapphire-list__item--interactive:not([aria-disabled='true']):not(
190
- :disabled
191
- ):focus-visible:active {
190
+ ):not(:has(:active)):active {
192
191
  background-color: var(
193
192
  --sapphire-semantic-color-background-action-secondary-hover
194
193
  );
@@ -81,3 +81,36 @@
81
81
  border-top: var(--sapphire-semantic-size-border-sm) solid
82
82
  var(--sapphire-semantic-color-border-secondary);
83
83
  }
84
+
85
+ .sapphire-modal-layout__section {
86
+ margin: 0;
87
+ padding: 0;
88
+ border: none;
89
+ }
90
+
91
+ .sapphire-modal-layout__section-title {
92
+ margin-left: calc(
93
+ var(--sapphire-semantic-size-spacing-container-horizontal-md) * -1
94
+ );
95
+ width: calc(
96
+ 100% + (var(--sapphire-semantic-size-spacing-container-horizontal-md) * 2)
97
+ );
98
+ padding: 0 var(--sapphire-semantic-size-spacing-container-horizontal-md);
99
+ min-height: var(--sapphire-global-size-generic-100);
100
+ background-color: var(--sapphire-semantic-color-background-surface);
101
+ display: flex;
102
+ align-items: center;
103
+ position: sticky;
104
+ top: 0;
105
+ }
106
+
107
+ /*
108
+ * Fix for section semi-transparent background not looking good when scrolled.
109
+ */
110
+ .sapphire-modal-layout__section-title::before {
111
+ content: '';
112
+ background: var(--sapphire-semantic-color-background-neutral-subtle);
113
+ position: absolute;
114
+ inset: 0;
115
+ z-index: -1;
116
+ }
@@ -10,6 +10,8 @@ declare const styles: {
10
10
  readonly "sapphire-modal-layout__subheading": string;
11
11
  readonly "sapphire-modal-layout__body--scrolled": string;
12
12
  readonly "sapphire-modal-layout__body--scrollable": string;
13
+ readonly "sapphire-modal-layout__section": string;
14
+ readonly "sapphire-modal-layout__section-title": string;
13
15
  };
14
16
  export = styles;
15
17
 
@@ -0,0 +1,45 @@
1
+ /* Progress bar Track styles */
2
+ .sapphire-progress {
3
+ height: 3px;
4
+ width: 100%;
5
+ overflow: hidden;
6
+ background: var(--sapphire-semantic-color-background-progress-track);
7
+ position: relative;
8
+ }
9
+
10
+ .sapphire-progress:has(.sapphire-progress--segments) {
11
+ display: flex;
12
+ }
13
+
14
+ /* Progress bar Progress styles */
15
+ .sapphire-progress--indicator {
16
+ height: 100%;
17
+ background: var(--sapphire-semantic-color-background-progress-fill);
18
+ transition: width var(--sapphire-semantic-time-motion-default)
19
+ var(--sapphire-semantic-transitions-dynamic);
20
+ }
21
+
22
+ /* Progress bar Segmented styles */
23
+ .sapphire-progress--segments {
24
+ position: absolute;
25
+ width: 100%;
26
+ height: 100%;
27
+ margin: 0;
28
+ padding: 0;
29
+ display: flex;
30
+ pointer-events: none;
31
+ z-index: 1;
32
+ }
33
+
34
+ .sapphire-progress--segments span {
35
+ flex: 1;
36
+ position: relative;
37
+ }
38
+
39
+ .sapphire-progress--segments span:not(:first-child)::before {
40
+ background: var(--sapphire-semantic-color-background-surface);
41
+ content: '';
42
+ display: block;
43
+ height: 100%;
44
+ width: 4px;
45
+ }
@@ -0,0 +1,7 @@
1
+ declare const styles: {
2
+ readonly "sapphire-progress": string;
3
+ readonly "sapphire-progress--segments": string;
4
+ readonly "sapphire-progress--indicator": string;
5
+ };
6
+ export = styles;
7
+
@@ -24,7 +24,8 @@
24
24
  height: var(--sapphire-semantic-size-height-control-lg);
25
25
  box-sizing: border-box;
26
26
  cursor: pointer;
27
- padding: 0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);
27
+ padding: 0 var(--sapphire-semantic-size-spacing-control-horizontal-md) 0
28
+ var(--sapphire-semantic-size-spacing-control-horizontal-lg);
28
29
  border: none;
29
30
  background: var(--sapphire-semantic-color-background-field);
30
31
  width: 100%;
@@ -34,11 +35,12 @@
34
35
  font-family: inherit;
35
36
  box-shadow: inset 0px 0px 0px var(--sapphire-semantic-size-border-sm)
36
37
  var(--sapphire-semantic-color-border-field-default);
37
- border-radius: var(--sapphire-semantic-size-radius-sm);
38
+ border-radius: var(--sapphire-semantic-size-radius-md);
38
39
  gap: var(--sapphire-semantic-size-spacing-sm);
39
40
  }
40
41
 
41
42
  .sapphire-select--md .sapphire-select__button {
43
+ border-radius: var(--sapphire-semantic-size-radius-sm);
42
44
  height: var(--sapphire-semantic-size-height-control-md);
43
45
  padding: 0 var(--sapphire-semantic-size-spacing-control-horizontal-md);
44
46
  gap: var(--sapphire-semantic-size-spacing-xs);
@@ -88,6 +90,11 @@
88
90
  color: var(--sapphire-semantic-color-foreground-secondary);
89
91
  }
90
92
 
93
+ .sapphire-select:not(.sapphire-select--md)
94
+ .sapphire-select__button:has(.sapphire-select__prefix) {
95
+ padding-left: var(--sapphire-semantic-size-spacing-control-horizontal-md);
96
+ }
97
+
91
98
  .sapphire-select--md .sapphire-select__prefix {
92
99
  font-size: var(--sapphire-semantic-size-font-control-md);
93
100
  }
@@ -0,0 +1,64 @@
1
+ .sapphire-slider {
2
+ height: 100%;
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: var(--sapphire-semantic-size-spacing-xs);
6
+ justify-content: center;
7
+ width: fit-content;
8
+ }
9
+
10
+ .sapphire-slider__track {
11
+ position: relative;
12
+ width: var(--sapphire-semantic-size-width-field);
13
+ height: var(--sapphire-semantic-size-height-control-2xs);
14
+ touch-action: none;
15
+ }
16
+
17
+ .sapphire-slider__track-remaining {
18
+ content: '';
19
+ display: block;
20
+ position: absolute;
21
+ background: var(--sapphire-semantic-color-background-progress-track);
22
+ height: var(--sapphire-global-size-generic-10);
23
+ border-radius: var(--sapphire-semantic-size-radius-sm);
24
+ width: var(--sapphire-semantic-size-width-field);
25
+ top: 50%;
26
+ transform: translateY(-50%);
27
+ }
28
+
29
+ .sapphire-slider__track-fill {
30
+ position: absolute;
31
+ content: '';
32
+ display: block;
33
+ background: var(--sapphire-semantic-color-background-progress-fill);
34
+ height: var(--sapphire-global-size-generic-10);
35
+ border-radius: var(--sapphire-semantic-size-radius-sm);
36
+ width: 100%;
37
+ top: 50%;
38
+ transform: translateY(-50%);
39
+ }
40
+
41
+ .sapphire-slider__thumb {
42
+ position: absolute;
43
+ transform: translate(-50%, -50%);
44
+ top: 50%;
45
+ cursor: grab;
46
+ width: var(--sapphire-semantic-size-height-control-2xs);
47
+ height: var(--sapphire-semantic-size-height-control-2xs);
48
+ border-radius: var(--sapphire-semantic-size-radius-xl);
49
+ background: var(--sapphire-semantic-color-background-progress-fill);
50
+ forced-color-adjust: none;
51
+ }
52
+
53
+ /* focused */
54
+ .sapphire-slider__thumb.is-focus {
55
+ outline: var(--sapphire-semantic-size-focus-ring) solid
56
+ var(--sapphire-semantic-color-focus-ring);
57
+ outline-offset: var(--sapphire-semantic-size-focus-ring);
58
+ }
59
+
60
+ /* disabled */
61
+ .sapphire-slider__track[data-disabled='true'] {
62
+ opacity: var(--sapphire-semantic-opacity-disabled);
63
+ cursor: not-allowed;
64
+ }
@@ -0,0 +1,10 @@
1
+ declare const styles: {
2
+ readonly "sapphire-slider": string;
3
+ readonly "sapphire-slider__track": string;
4
+ readonly "sapphire-slider__track-remaining": string;
5
+ readonly "sapphire-slider__track-fill": string;
6
+ readonly "sapphire-slider__thumb": string;
7
+ readonly "is-focus": string;
8
+ };
9
+ export = styles;
10
+
@@ -167,9 +167,6 @@
167
167
  .js-hover
168
168
  ):hover
169
169
  .sapphire-table__headCell_container {
170
- --sapphire-table-row-bg: var(
171
- --sapphire-semantic-color-background-action-tertiary-hover
172
- );
173
170
  color: var(--sapphire-semantic-color-foreground-action-on-tertiary-hover);
174
171
  border-radius: var(--sapphire-semantic-size-radius-sm);
175
172
  }
@@ -8,9 +8,11 @@
8
8
  .sapphire-tag {
9
9
  display: inline-flex;
10
10
  height: var(--sapphire-semantic-size-height-control-sm);
11
- padding: 0 var(--sapphire-semantic-size-spacing-sm);
11
+ padding: 0 var(--sapphire-semantic-size-spacing-md);
12
12
  align-items: center;
13
13
  border-radius: var(--sapphire-semantic-size-height-control-sm);
14
+ border: var(--sapphire-semantic-size-border-sm) solid
15
+ var(--sapphire-semantic-color-border-primary);
14
16
 
15
17
  /* typography */
16
18
  font-size: var(--sapphire-semantic-size-font-control-md);
@@ -19,11 +21,8 @@
19
21
  font-style: normal;
20
22
  text-decoration: none;
21
23
 
22
- /* color default */
23
- background: var(
24
- --sapphire-semantic-color-background-action-secondary-default
25
- );
26
- color: var(--sapphire-semantic-color-foreground-primary);
24
+ background: var(--sapphire-semantic-color-background-action-tertiary-default);
25
+ color: var(--sapphire-semantic-color-foreground-action-on-tertiary-default);
27
26
  outline: none;
28
27
 
29
28
  /* transition */
@@ -69,12 +68,14 @@
69
68
  .sapphire-tag--actionable:not(:disabled):not(.is-disabled):not(:active):not(
70
69
  .is-active
71
70
  ).is-hover {
72
- background: var(--sapphire-semantic-color-background-action-secondary-hover);
71
+ background: var(--sapphire-semantic-color-background-action-tertiary-hover);
72
+ color: var(--sapphire-semantic-color-foreground-action-on-tertiary-hover);
73
73
  cursor: pointer;
74
74
  }
75
75
 
76
76
  .sapphire-tag--actionable.is-active {
77
- background: var(--sapphire-semantic-color-background-action-secondary-active);
77
+ background: var(--sapphire-semantic-color-background-action-tertiary-active);
78
+ color: var(--sapphire-semantic-color-foreground-action-on-tertiary-active);
78
79
  cursor: pointer;
79
80
  }
80
81
 
@@ -95,12 +96,17 @@
95
96
  .sapphire-tag__error-icon {
96
97
  display: flex;
97
98
  align-items: center;
98
- color: var(--sapphire-semantic-color-foreground-on-negative-subtle);
99
+ color: var(--sapphire-semantic-color-foreground-negative);
99
100
  }
100
101
 
101
102
  /**
102
103
  * Button
103
104
  */
105
+
106
+ .sapphire-tag:has(.sapphire-tag__button) {
107
+ padding-right: var(--sapphire-semantic-size-spacing-sm);
108
+ }
109
+
104
110
  .sapphire-tag__button {
105
111
  box-sizing: border-box;
106
112
  display: inline-flex;
@@ -120,7 +126,7 @@
120
126
 
121
127
  /* style */
122
128
  background: transparent;
123
- color: var(--sapphire-semantic-color-foreground-on-neutral-subtle);
129
+ color: var(--sapphire-semantic-color-foreground-action-on-tertiary-default);
124
130
  }
125
131
 
126
132
  .sapphire-tag__button:focus {
@@ -22,6 +22,10 @@
22
22
  font-weight: var(--sapphire-semantic-font-weight-default-bold);
23
23
  }
24
24
 
25
+ .sapphire-text--semibold {
26
+ font-weight: var(--sapphire-semantic-font-weight-default-medium);
27
+ }
28
+
25
29
  .sapphire-text--underlined {
26
30
  text-decoration: underline;
27
31
  }
@@ -57,7 +61,7 @@
57
61
  margin-top: 0px;
58
62
  margin-bottom: 0px;
59
63
  line-height: var(--sapphire-global-size-line-height-sm);
60
- letter-spacing: -1%;
64
+ letter-spacing: -0.01em;
61
65
  }
62
66
 
63
67
  .sapphire-text--heading-2xl {
@@ -1,6 +1,7 @@
1
1
  declare const styles: {
2
2
  readonly "sapphire-text": string;
3
3
  readonly "sapphire-text--strong": string;
4
+ readonly "sapphire-text--semibold": string;
4
5
  readonly "sapphire-text--underlined": string;
5
6
  readonly "sapphire-text--secondary": string;
6
7
  readonly "sapphire-text--informative": string;
@@ -6,7 +6,7 @@
6
6
  overflow-x: hidden;
7
7
  display: flex;
8
8
  align-items: center;
9
- border-radius: var(--sapphire-semantic-size-radius-sm);
9
+ border-radius: var(--sapphire-semantic-size-radius-md);
10
10
  cursor: text;
11
11
  color: var(--sapphire-semantic-color-foreground-primary);
12
12
  background: var(--sapphire-semantic-color-background-field);
@@ -29,6 +29,7 @@
29
29
  }
30
30
 
31
31
  .sapphire-text-field--md {
32
+ border-radius: var(--sapphire-semantic-size-radius-sm);
32
33
  height: var(--sapphire-semantic-size-height-control-md);
33
34
  font-size: var(--sapphire-semantic-size-font-control-md);
34
35
  }
@@ -95,7 +96,8 @@
95
96
  color: var(--sapphire-semantic-color-foreground-secondary);
96
97
  flex-shrink: 0;
97
98
  z-index: 1;
98
- margin-left: var(--sapphire-semantic-size-spacing-control-horizontal-lg);
99
+ /* the margin below is "md" on purpose - only when there's a prefix/postfix */
100
+ margin-left: var(--sapphire-semantic-size-spacing-control-horizontal-md);
99
101
  }
100
102
 
101
103
  .sapphire-text-field--md .sapphire-text-field__prefix {
@@ -115,7 +117,8 @@
115
117
  color: var(--sapphire-semantic-color-foreground-secondary);
116
118
  flex-shrink: 0;
117
119
  z-index: 1;
118
- margin-right: var(--sapphire-semantic-size-spacing-control-horizontal-lg);
120
+ /* the margin below is "md" on purpose - only when there's a prefix/postfix */
121
+ margin-right: var(--sapphire-semantic-size-spacing-control-horizontal-md);
119
122
  }
120
123
 
121
124
  .sapphire-text-field--md .sapphire-text-field__postfix {
@@ -224,7 +227,7 @@
224
227
  * or focusing on the list of browser autofilling suggestions.
225
228
  */
226
229
  box-shadow: 0 0 0 var(--sapphire-semantic-size-height-control-lg) inset
227
- var(--sapphire-semantic-color-background-surface) !important;
230
+ var(--sapphire-semantic-color-background-field) !important;
228
231
  }
229
232
 
230
233
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danske/sapphire-css",
3
- "version": "41.0.0",
3
+ "version": "42.1.0",
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,
@@ -67,7 +67,7 @@
67
67
  "typescript": "~4.6.4"
68
68
  },
69
69
  "dependencies": {
70
- "@danske/sapphire-design-tokens": "^42.1.1"
70
+ "@danske/sapphire-design-tokens": "^42.2.0"
71
71
  },
72
- "gitHead": "4cb9fa793fcb43b74fe8b925c7810d9cd76ba1f9"
72
+ "gitHead": "1eefb683b16687ab3fc99c15fffb03a3eca522c5"
73
73
  }