@db-ux/core-components 4.4.2 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/build/components/accordion/accordion.css +0 -14
  3. package/build/components/accordion-item/accordion-item.css +38 -29
  4. package/build/components/accordion-item/accordion-item.scss +1 -1
  5. package/build/components/badge/badge.css +75 -33
  6. package/build/components/badge/badge.scss +6 -1
  7. package/build/components/brand/brand.css +2 -18
  8. package/build/components/brand/brand.scss +2 -0
  9. package/build/components/button/button.css +245 -82
  10. package/build/components/button/button.scss +1 -105
  11. package/build/components/card/card.css +88 -30
  12. package/build/components/checkbox/checkbox.css +1 -22
  13. package/build/components/custom-button/custom-button.css +892 -0
  14. package/build/components/custom-button/custom-button.scss +78 -0
  15. package/build/components/custom-select/custom-select.css +19 -25
  16. package/build/components/custom-select-dropdown/custom-select-dropdown.css +1 -22
  17. package/build/components/custom-select-dropdown/custom-select-dropdown.scss +1 -0
  18. package/build/components/custom-select-form-field/custom-select-form-field.css +0 -22
  19. package/build/components/custom-select-list/custom-select-list.css +0 -22
  20. package/build/components/custom-select-list-item/custom-select-list-item.css +36 -28
  21. package/build/components/divider/divider.css +0 -10
  22. package/build/components/drawer/drawer.css +4 -14
  23. package/build/components/drawer/drawer.scss +4 -0
  24. package/build/components/header/header.css +0 -22
  25. package/build/components/icon/icon.css +0 -10
  26. package/build/components/infotext/infotext.css +4 -18
  27. package/build/components/infotext/infotext.scss +4 -0
  28. package/build/components/input/input.css +19 -25
  29. package/build/components/link/link.css +73 -34
  30. package/build/components/navigation/navigation.css +0 -22
  31. package/build/components/navigation-item/navigation-item.css +111 -43
  32. package/build/components/navigation-item/navigation-item.scss +2 -1
  33. package/build/components/notification/notification.css +37 -28
  34. package/build/components/page/page.css +0 -10
  35. package/build/components/popover/popover.css +26 -14
  36. package/build/components/radio/radio.css +0 -22
  37. package/build/components/section/section.css +0 -14
  38. package/build/components/select/select.css +19 -25
  39. package/build/components/stack/stack-web-component.css +0 -10
  40. package/build/components/stack/stack.css +0 -10
  41. package/build/components/switch/switch.css +1 -22
  42. package/build/components/tab-item/tab-item.css +52 -32
  43. package/build/components/tab-list/tab-list.css +0 -22
  44. package/build/components/tab-panel/tab-panel.css +0 -10
  45. package/build/components/tabs/tabs.css +2 -22
  46. package/build/components/tabs/tabs.scss +2 -0
  47. package/build/components/tag/tag.css +859 -150
  48. package/build/components/textarea/textarea.css +18 -25
  49. package/build/components/tooltip/tooltip.css +30 -23
  50. package/build/components/tooltip/tooltip.scss +12 -10
  51. package/build/styles/absolute.css +10 -10
  52. package/build/styles/index.css +9 -9
  53. package/build/styles/index.scss +1 -0
  54. package/build/styles/internal/_button-components.scss +140 -2
  55. package/build/styles/internal/_custom-elements.scss +1 -1
  56. package/build/styles/internal/_icon-passing.scss +23 -3
  57. package/build/styles/internal/_popover-component.scss +19 -9
  58. package/build/styles/internal/_tag-components.scss +1 -0
  59. package/build/styles/relative.css +10 -10
  60. package/build/styles/rollup.css +10 -10
  61. package/build/styles/wc-workarounds.css +1 -1
  62. package/build/styles/webpack.css +10 -10
  63. package/package.json +10 -9
@@ -1,13 +1,3 @@
1
- /* Use sizing's for fixed heights/widths e.g. the db-button has always a fixed height */
2
- /* Use fixed spacings for all kind of distances (margin, padding, ...) */
3
- /* The primary use-case for responsive spacings are
4
- paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
- /* Elevation */
6
- /* Border */
7
- /* Opacity */
8
- /* Transitions */
9
- /* Screen sizes */
10
- /* Container sizes */
11
1
  .db-input[data-hide-label=true] > label, .db-visually-hidden,
12
2
  [data-visually-hidden=true] {
13
3
  clip: rect(0, 0, 0, 0) !important;
@@ -387,6 +377,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
387
377
  text-transform: none;
388
378
  overflow: clip;
389
379
  vertical-align: var(--db-icon-vertical-align, middle);
380
+ /* stylelint-disable-next-line db-ux/use-sizing */
390
381
  block-size: var(--db-icon-font-size, 1.5rem);
391
382
  aspect-ratio: 1;
392
383
  flex-shrink: 0;
@@ -408,12 +399,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
408
399
  }
409
400
  }
410
401
 
411
- /**
412
- Generates 3 types of placeholders, e.g:
413
- - %db-component-variables-md
414
- - %db-font-size-md
415
- - %db-overwrite-font-size-md
416
- */
417
402
  @layer variables {}
418
403
 
419
404
  @layer variables {}
@@ -516,12 +501,6 @@ input[type=radio]:checked) > label {
516
501
 
517
502
  @layer variables {}
518
503
 
519
- /* Use for body tags like <p> */
520
- /* Use for headline tags like <h1> */
521
- /**
522
- * @mixin screen-min-max
523
- * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
524
- */
525
504
  .db-input input, .db-input input::file-selector-button {
526
505
  border: var(--db-border-width-3xs) solid var(--db-adaptive-on-bg-basic-emphasis-100-default);
527
506
  }
@@ -866,14 +845,29 @@ input[type=radio]:checked) input:is([type=date],
866
845
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
867
846
  /* see https://developer.mozilla.org/en-US/docs/Web/CSS/field-sizing */
868
847
  }
869
- .db-input input:hover:not(:disabled, [aria-disabled=true]) {
848
+ .db-input input:hover:not(:disabled,
849
+ [aria-disabled=true],
850
+ [tabindex="-1"],
851
+ :has(:disabled)) {
870
852
  cursor: var(--db-overwrite-cursor, pointer);
871
853
  background-color: var(--db-adaptive-bg-basic-transparent-semi-hovered);
872
854
  }
873
- .db-input input:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-input input:hover:not(:disabled, [aria-disabled=true]):is(input) {
855
+ .db-input input:hover:not(:disabled,
856
+ [aria-disabled=true],
857
+ [tabindex="-1"],
858
+ :has(:disabled)):is(textarea), .db-input input:hover:not(:disabled,
859
+ [aria-disabled=true],
860
+ [tabindex="-1"],
861
+ :has(:disabled)):is(input) {
874
862
  cursor: initial;
875
863
  }
876
- .db-input input:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-input input:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
864
+ .db-input input:hover:not(:disabled,
865
+ [aria-disabled=true],
866
+ [tabindex="-1"],
867
+ :has(:disabled)):is(input[type=checkbox]), .db-input input:hover:not(:disabled,
868
+ [aria-disabled=true],
869
+ [tabindex="-1"],
870
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
877
871
  cursor: pointer;
878
872
  }
879
873
  .db-input input[data-field-sizing=content] {
@@ -1,13 +1,3 @@
1
- /* Use sizing's for fixed heights/widths e.g. the db-button has always a fixed height */
2
- /* Use fixed spacings for all kind of distances (margin, padding, ...) */
3
- /* The primary use-case for responsive spacings are
4
- paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
- /* Elevation */
6
- /* Border */
7
- /* Opacity */
8
- /* Transitions */
9
- /* Screen sizes */
10
- /* Container sizes */
11
1
  /* Variants for adaptive components like input, select, notification, ... */
12
2
  @layer variables {}
13
3
 
@@ -43,12 +33,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
43
33
 
44
34
  @layer variables {}
45
35
 
46
- /**
47
- Generates 3 types of placeholders, e.g:
48
- - %db-component-variables-md
49
- - %db-font-size-md
50
- - %db-overwrite-font-size-md
51
- */
52
36
  @layer variables {}
53
37
 
54
38
  @layer variables {}
@@ -123,8 +107,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
123
107
 
124
108
  @layer variables {}
125
109
 
126
- /* Use for body tags like <p> */
127
- /* Use for headline tags like <h1> */
128
110
  .db-link {
129
111
  transition: outline var(--db-transition-duration-extra-fast), color var(--db-transition-straight-emotional);
130
112
  }
@@ -163,6 +145,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
163
145
  text-transform: none;
164
146
  overflow: clip;
165
147
  vertical-align: var(--db-icon-vertical-align, middle);
148
+ /* stylelint-disable-next-line db-ux/use-sizing */
166
149
  block-size: var(--db-icon-font-size, 1.5rem);
167
150
  aspect-ratio: 1;
168
151
  flex-shrink: 0;
@@ -184,10 +167,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
184
167
  }
185
168
  }
186
169
 
187
- /**
188
- * @mixin screen-min-max
189
- * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
190
- */
191
170
  .db-link a:not([hidden]), .db-link:not([hidden]) {
192
171
  display: inline-block;
193
172
  }
@@ -199,24 +178,54 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
199
178
  color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
200
179
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
201
180
  }
202
- .db-link:hover:not(:disabled, [aria-disabled=true]) {
181
+ .db-link:hover:not(:disabled,
182
+ [aria-disabled=true],
183
+ [tabindex="-1"],
184
+ :has(:disabled)) {
203
185
  cursor: var(--db-overwrite-cursor, pointer);
204
186
  color: color-mix(in srgb, transparent 25%, var(--db-adaptive-on-bg-basic-emphasis-100-default));
205
187
  }
206
- .db-link:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-link:hover:not(:disabled, [aria-disabled=true]):is(input) {
188
+ .db-link:hover:not(:disabled,
189
+ [aria-disabled=true],
190
+ [tabindex="-1"],
191
+ :has(:disabled)):is(textarea), .db-link:hover:not(:disabled,
192
+ [aria-disabled=true],
193
+ [tabindex="-1"],
194
+ :has(:disabled)):is(input) {
207
195
  cursor: initial;
208
196
  }
209
- .db-link:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-link:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
197
+ .db-link:hover:not(:disabled,
198
+ [aria-disabled=true],
199
+ [tabindex="-1"],
200
+ :has(:disabled)):is(input[type=checkbox]), .db-link:hover:not(:disabled,
201
+ [aria-disabled=true],
202
+ [tabindex="-1"],
203
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
210
204
  cursor: pointer;
211
205
  }
212
- .db-link:active:not(:disabled, [aria-disabled=true]) {
206
+ .db-link:active:not(:disabled,
207
+ [aria-disabled=true],
208
+ [tabindex="-1"],
209
+ :has(:disabled)) {
213
210
  cursor: var(--db-overwrite-cursor, pointer);
214
211
  color: color-mix(in srgb, transparent 50%, var(--db-adaptive-on-bg-basic-emphasis-100-default));
215
212
  }
216
- .db-link:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-link:active:not(:disabled, [aria-disabled=true]):is(input) {
213
+ .db-link:active:not(:disabled,
214
+ [aria-disabled=true],
215
+ [tabindex="-1"],
216
+ :has(:disabled)):is(textarea), .db-link:active:not(:disabled,
217
+ [aria-disabled=true],
218
+ [tabindex="-1"],
219
+ :has(:disabled)):is(input) {
217
220
  cursor: initial;
218
221
  }
219
- .db-link:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-link:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
222
+ .db-link:active:not(:disabled,
223
+ [aria-disabled=true],
224
+ [tabindex="-1"],
225
+ :has(:disabled)):is(input[type=checkbox]), .db-link:active:not(:disabled,
226
+ [aria-disabled=true],
227
+ [tabindex="-1"],
228
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
220
229
  cursor: pointer;
221
230
  }
222
231
 
@@ -268,24 +277,54 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
268
277
  color: var(--db-brand-on-bg-basic-emphasis-80-default);
269
278
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
270
279
  }
271
- .db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]) {
280
+ .db-link[data-variant=brand]:hover:not(:disabled,
281
+ [aria-disabled=true],
282
+ [tabindex="-1"],
283
+ :has(:disabled)) {
272
284
  cursor: var(--db-overwrite-cursor, pointer);
273
285
  color: var(--db-brand-on-bg-basic-emphasis-80-hovered);
274
286
  }
275
- .db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(input) {
287
+ .db-link[data-variant=brand]:hover:not(:disabled,
288
+ [aria-disabled=true],
289
+ [tabindex="-1"],
290
+ :has(:disabled)):is(textarea), .db-link[data-variant=brand]:hover:not(:disabled,
291
+ [aria-disabled=true],
292
+ [tabindex="-1"],
293
+ :has(:disabled)):is(input) {
276
294
  cursor: initial;
277
295
  }
278
- .db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
296
+ .db-link[data-variant=brand]:hover:not(:disabled,
297
+ [aria-disabled=true],
298
+ [tabindex="-1"],
299
+ :has(:disabled)):is(input[type=checkbox]), .db-link[data-variant=brand]:hover:not(:disabled,
300
+ [aria-disabled=true],
301
+ [tabindex="-1"],
302
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
279
303
  cursor: pointer;
280
304
  }
281
- .db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]) {
305
+ .db-link[data-variant=brand]:active:not(:disabled,
306
+ [aria-disabled=true],
307
+ [tabindex="-1"],
308
+ :has(:disabled)) {
282
309
  cursor: var(--db-overwrite-cursor, pointer);
283
310
  color: var(--db-brand-on-bg-basic-emphasis-80-pressed);
284
311
  }
285
- .db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(input) {
312
+ .db-link[data-variant=brand]:active:not(:disabled,
313
+ [aria-disabled=true],
314
+ [tabindex="-1"],
315
+ :has(:disabled)):is(textarea), .db-link[data-variant=brand]:active:not(:disabled,
316
+ [aria-disabled=true],
317
+ [tabindex="-1"],
318
+ :has(:disabled)):is(input) {
286
319
  cursor: initial;
287
320
  }
288
- .db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
321
+ .db-link[data-variant=brand]:active:not(:disabled,
322
+ [aria-disabled=true],
323
+ [tabindex="-1"],
324
+ :has(:disabled)):is(input[type=checkbox]), .db-link[data-variant=brand]:active:not(:disabled,
325
+ [aria-disabled=true],
326
+ [tabindex="-1"],
327
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
289
328
  cursor: pointer;
290
329
  }
291
330
  .db-link[data-size=small] {
@@ -1,13 +1,3 @@
1
- /* Use sizing's for fixed heights/widths e.g. the db-button has always a fixed height */
2
- /* Use fixed spacings for all kind of distances (margin, padding, ...) */
3
- /* The primary use-case for responsive spacings are
4
- paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
- /* Elevation */
6
- /* Border */
7
- /* Opacity */
8
- /* Transitions */
9
- /* Screen sizes */
10
- /* Container sizes */
11
1
  .db-visually-hidden,
12
2
  [data-visually-hidden=true] {
13
3
  clip: rect(0, 0, 0, 0) !important;
@@ -62,16 +52,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
62
52
 
63
53
  @layer variables {}
64
54
 
65
- /**
66
- * @mixin screen-min-max
67
- * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
68
- */
69
- /**
70
- Generates 3 types of placeholders, e.g:
71
- - %db-component-variables-md
72
- - %db-font-size-md
73
- - %db-overwrite-font-size-md
74
- */
75
55
  @layer variables {}
76
56
 
77
57
  @layer variables {}
@@ -126,8 +106,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
126
106
 
127
107
  @layer variables {}
128
108
 
129
- /* Use for body tags like <p> */
130
- /* Use for headline tags like <h1> */
131
109
  .db-navigation > menu .db-navigation-item::after {
132
110
  content: "";
133
111
  position: absolute;
@@ -1,13 +1,3 @@
1
- /* Use sizing's for fixed heights/widths e.g. the db-button has always a fixed height */
2
- /* Use fixed spacings for all kind of distances (margin, padding, ...) */
3
- /* The primary use-case for responsive spacings are
4
- paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
- /* Elevation */
6
- /* Border */
7
- /* Opacity */
8
- /* Transitions */
9
- /* Screen sizes */
10
- /* Container sizes */
11
1
  /* Variants for adaptive components like input, select, notification, ... */
12
2
  @layer variables {}
13
3
 
@@ -43,12 +33,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
43
33
 
44
34
  @layer variables {}
45
35
 
46
- /**
47
- Generates 3 types of placeholders, e.g:
48
- - %db-component-variables-md
49
- - %db-font-size-md
50
- - %db-overwrite-font-size-md
51
- */
52
36
  @layer variables {}
53
37
 
54
38
  @layer variables {}
@@ -115,12 +99,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
115
99
 
116
100
  @layer variables {}
117
101
 
118
- /* Use for body tags like <p> */
119
- /* Use for headline tags like <h1> */
120
- /**
121
- * @mixin screen-min-max
122
- * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
123
- */
124
102
  @keyframes popover-animation {
125
103
  0% {
126
104
  opacity: 0;
@@ -156,6 +134,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
156
134
  text-transform: none;
157
135
  overflow: clip;
158
136
  vertical-align: var(--db-icon-vertical-align, middle);
137
+ /* stylelint-disable-next-line db-ux/use-sizing */
159
138
  block-size: var(--db-icon-font-size, 1.5rem);
160
139
  aspect-ratio: 1;
161
140
  flex-shrink: 0;
@@ -229,34 +208,124 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
229
208
  .db-navigation-item .db-navigation-item-expand-button > button:not([hidden]), .db-navigation-item a:not([hidden]) {
230
209
  display: inline-flex;
231
210
  }
232
- .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(button),
233
- .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]) {
211
+ .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled,
212
+ [aria-disabled=true],
213
+ [tabindex="-1"],
214
+ :has(:disabled)):is(button),
215
+ .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled,
216
+ [aria-disabled=true],
217
+ [tabindex="-1"],
218
+ :has(:disabled)), .db-navigation-item a:hover:not(:disabled,
219
+ [aria-disabled=true],
220
+ [tabindex="-1"],
221
+ :has(:disabled)) {
234
222
  cursor: var(--db-overwrite-cursor, pointer);
235
223
  background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
236
224
  }
237
- .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(textarea):is(button),
238
- .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(input):is(button),
239
- .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]):is(input), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(input) {
225
+ .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled,
226
+ [aria-disabled=true],
227
+ [tabindex="-1"],
228
+ :has(:disabled)):is(textarea):is(button),
229
+ .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled,
230
+ [aria-disabled=true],
231
+ [tabindex="-1"],
232
+ :has(:disabled)):is(textarea), .db-navigation-item a:hover:not(:disabled,
233
+ [aria-disabled=true],
234
+ [tabindex="-1"],
235
+ :has(:disabled)):is(textarea), .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled,
236
+ [aria-disabled=true],
237
+ [tabindex="-1"],
238
+ :has(:disabled)):is(input):is(button),
239
+ .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled,
240
+ [aria-disabled=true],
241
+ [tabindex="-1"],
242
+ :has(:disabled)):is(input), .db-navigation-item a:hover:not(:disabled,
243
+ [aria-disabled=true],
244
+ [tabindex="-1"],
245
+ :has(:disabled)):is(input) {
240
246
  cursor: initial;
241
247
  }
242
- .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]):is(button),
243
- .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)):is(button),
244
- .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
248
+ .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled,
249
+ [aria-disabled=true],
250
+ [tabindex="-1"],
251
+ :has(:disabled)):is(input[type=checkbox]):is(button),
252
+ .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled,
253
+ [aria-disabled=true],
254
+ [tabindex="-1"],
255
+ :has(:disabled)):is(input[type=checkbox]), .db-navigation-item a:hover:not(:disabled,
256
+ [aria-disabled=true],
257
+ [tabindex="-1"],
258
+ :has(:disabled)):is(input[type=checkbox]), .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled,
259
+ [aria-disabled=true],
260
+ [tabindex="-1"],
261
+ :has(:disabled)):is(input[type=radio]:not(:checked)):is(button),
262
+ .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled,
263
+ [aria-disabled=true],
264
+ [tabindex="-1"],
265
+ :has(:disabled)):is(input[type=radio]:not(:checked)), .db-navigation-item a:hover:not(:disabled,
266
+ [aria-disabled=true],
267
+ [tabindex="-1"],
268
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
245
269
  cursor: pointer;
246
270
  }
247
- .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(button),
248
- .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled, [aria-disabled=true]), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]) {
271
+ .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled,
272
+ [aria-disabled=true],
273
+ [tabindex="-1"],
274
+ :has(:disabled)):is(button),
275
+ .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled,
276
+ [aria-disabled=true],
277
+ [tabindex="-1"],
278
+ :has(:disabled)), .db-navigation-item a:active:not(:disabled,
279
+ [aria-disabled=true],
280
+ [tabindex="-1"],
281
+ :has(:disabled)) {
249
282
  cursor: var(--db-overwrite-cursor, pointer);
250
283
  background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
251
284
  }
252
- .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(textarea):is(button),
253
- .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(input):is(button),
254
- .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled, [aria-disabled=true]):is(input), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(input) {
285
+ .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled,
286
+ [aria-disabled=true],
287
+ [tabindex="-1"],
288
+ :has(:disabled)):is(textarea):is(button),
289
+ .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled,
290
+ [aria-disabled=true],
291
+ [tabindex="-1"],
292
+ :has(:disabled)):is(textarea), .db-navigation-item a:active:not(:disabled,
293
+ [aria-disabled=true],
294
+ [tabindex="-1"],
295
+ :has(:disabled)):is(textarea), .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled,
296
+ [aria-disabled=true],
297
+ [tabindex="-1"],
298
+ :has(:disabled)):is(input):is(button),
299
+ .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled,
300
+ [aria-disabled=true],
301
+ [tabindex="-1"],
302
+ :has(:disabled)):is(input), .db-navigation-item a:active:not(:disabled,
303
+ [aria-disabled=true],
304
+ [tabindex="-1"],
305
+ :has(:disabled)):is(input) {
255
306
  cursor: initial;
256
307
  }
257
- .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]):is(button),
258
- .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)):is(button),
259
- .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
308
+ .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled,
309
+ [aria-disabled=true],
310
+ [tabindex="-1"],
311
+ :has(:disabled)):is(input[type=checkbox]):is(button),
312
+ .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled,
313
+ [aria-disabled=true],
314
+ [tabindex="-1"],
315
+ :has(:disabled)):is(input[type=checkbox]), .db-navigation-item a:active:not(:disabled,
316
+ [aria-disabled=true],
317
+ [tabindex="-1"],
318
+ :has(:disabled)):is(input[type=checkbox]), .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled,
319
+ [aria-disabled=true],
320
+ [tabindex="-1"],
321
+ :has(:disabled)):is(input[type=radio]:not(:checked)):is(button),
322
+ .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled,
323
+ [aria-disabled=true],
324
+ [tabindex="-1"],
325
+ :has(:disabled)):is(input[type=radio]:not(:checked)), .db-navigation-item a:active:not(:disabled,
326
+ [aria-disabled=true],
327
+ [tabindex="-1"],
328
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
260
329
  cursor: pointer;
261
330
  }
262
331
  .db-navigation-item .db-navigation-item-expand-button:has(~ .db-sub-navigation:is(:hover, :focus)):is(button),
@@ -270,16 +339,14 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
270
339
  inline-size: auto;
271
340
  /* stylelint-disable-next-line media-query-no-invalid */
272
341
  }
273
- .db-navigation-item[data-icon]:not([data-show-icon=false])::before {
342
+ .db-navigation-item[data-icon-leading]:not([data-show-icon-leading=false])::before, .db-navigation-item[data-icon]:not([data-show-icon=false])::before {
274
343
  position: absolute;
275
344
  inset-block-start: calc(50% - 0.5em);
276
345
  inset-inline-start: var(--db-spacing-fixed-sm);
277
346
  pointer-events: none;
278
347
  z-index: 1;
279
348
  }
280
- .db-navigation-item[data-icon]:not([data-show-icon=false]) a,
281
- .db-navigation-item[data-icon]:not([data-show-icon=false]) button,
282
- .db-navigation-item[data-icon]:not([data-show-icon=false]) label {
349
+ .db-navigation-item[data-icon-leading]:not([data-show-icon-leading=false]) label, .db-navigation-item[data-icon-leading]:not([data-show-icon-leading=false]) button, .db-navigation-item[data-icon-leading]:not([data-show-icon-leading=false]) a, .db-navigation-item[data-icon]:not([data-show-icon=false]) label, .db-navigation-item[data-icon]:not([data-show-icon=false]) button, .db-navigation-item[data-icon]:not([data-show-icon=false]) a {
283
350
  --db-padding-inline-start: calc(
284
351
  var(--db-spacing-fixed-sm) + var(--db-icon-margin-end, var(--db-spacing-fixed-xs)) +
285
352
  var(--db-icon-font-size)
@@ -431,7 +498,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
431
498
  box-shadow: var(--db-elevation-md);
432
499
  padding: var(--db-spacing-fixed-sm);
433
500
  position: absolute;
434
- min-inline-size: 328px;
501
+ min-inline-size: var(--db-container-xs);
435
502
  inset-block-start: calc(100% + var(--db-spacing-fixed-md));
436
503
  transition: visibility 1ms linear;
437
504
  }
@@ -478,6 +545,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
478
545
  inset-block-start: 0;
479
546
  inset-inline-start: 0;
480
547
  block-size: 100%;
548
+ /* stylelint-disable-next-line db-ux/use-sizing */
481
549
  inline-size: var(--db-navigation-item-inline-size, 100%);
482
550
  background: transparent;
483
551
  transform: translateX(-100%);
@@ -218,7 +218,7 @@
218
218
  box-shadow: variables.$db-elevation-md;
219
219
  padding: variables.$db-spacing-fixed-sm;
220
220
  position: absolute;
221
- min-inline-size: 328px; // We should get this value from UX
221
+ min-inline-size: variables.$db-container-xs;
222
222
  inset-block-start: calc(100% + #{variables.$db-spacing-fixed-md});
223
223
  transition: visibility 1ms linear; // workaround to enable focus with keyboard
224
224
 
@@ -290,6 +290,7 @@
290
290
  inset-block-start: 0;
291
291
  inset-inline-start: 0;
292
292
  block-size: 100%;
293
+ /* stylelint-disable-next-line db-ux/use-sizing */
293
294
  inline-size: var(--db-navigation-item-inline-size, 100%);
294
295
  background: transparent;
295
296
  transform: translateX(-100%);
@@ -1,13 +1,3 @@
1
- /* Use sizing's for fixed heights/widths e.g. the db-button has always a fixed height */
2
- /* Use fixed spacings for all kind of distances (margin, padding, ...) */
3
- /* The primary use-case for responsive spacings are
4
- paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
- /* Elevation */
6
- /* Border */
7
- /* Opacity */
8
- /* Transitions */
9
- /* Screen sizes */
10
- /* Container sizes */
11
1
  /* Variants for adaptive components like input, select, notification, ... */
12
2
  .db-notification[data-semantic=neutral] {
13
3
  /* stylelint-disable-next-line at-rule-prelude-no-invalid,layer-name-pattern */
@@ -808,12 +798,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
808
798
 
809
799
  @layer variables {}
810
800
 
811
- /**
812
- Generates 3 types of placeholders, e.g:
813
- - %db-component-variables-md
814
- - %db-font-size-md
815
- - %db-overwrite-font-size-md
816
- */
817
801
  @layer variables {}
818
802
 
819
803
  @layer variables {}
@@ -888,12 +872,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
888
872
 
889
873
  @layer variables {}
890
874
 
891
- /* Use for body tags like <p> */
892
- /* Use for headline tags like <h1> */
893
- /**
894
- * @mixin screen-min-max
895
- * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
896
- */
897
875
  @layer variables {}
898
876
 
899
877
  @layer variables {}
@@ -931,6 +909,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
931
909
  text-transform: none;
932
910
  overflow: clip;
933
911
  vertical-align: var(--db-icon-vertical-align, middle);
912
+ /* stylelint-disable-next-line db-ux/use-sizing */
934
913
  block-size: var(--db-icon-font-size, 1.5rem);
935
914
  aspect-ratio: 1;
936
915
  flex-shrink: 0;
@@ -991,24 +970,54 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
991
970
  color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
992
971
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
993
972
  }
994
- .db-notification a:hover:not(:disabled, [aria-disabled=true]) {
973
+ .db-notification a:hover:not(:disabled,
974
+ [aria-disabled=true],
975
+ [tabindex="-1"],
976
+ :has(:disabled)) {
995
977
  cursor: var(--db-overwrite-cursor, pointer);
996
978
  color: color-mix(in srgb, transparent 25%, var(--db-adaptive-on-bg-basic-emphasis-100-default));
997
979
  }
998
- .db-notification a:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-notification a:hover:not(:disabled, [aria-disabled=true]):is(input) {
980
+ .db-notification a:hover:not(:disabled,
981
+ [aria-disabled=true],
982
+ [tabindex="-1"],
983
+ :has(:disabled)):is(textarea), .db-notification a:hover:not(:disabled,
984
+ [aria-disabled=true],
985
+ [tabindex="-1"],
986
+ :has(:disabled)):is(input) {
999
987
  cursor: initial;
1000
988
  }
1001
- .db-notification a:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-notification a:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
989
+ .db-notification a:hover:not(:disabled,
990
+ [aria-disabled=true],
991
+ [tabindex="-1"],
992
+ :has(:disabled)):is(input[type=checkbox]), .db-notification a:hover:not(:disabled,
993
+ [aria-disabled=true],
994
+ [tabindex="-1"],
995
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
1002
996
  cursor: pointer;
1003
997
  }
1004
- .db-notification a:active:not(:disabled, [aria-disabled=true]) {
998
+ .db-notification a:active:not(:disabled,
999
+ [aria-disabled=true],
1000
+ [tabindex="-1"],
1001
+ :has(:disabled)) {
1005
1002
  cursor: var(--db-overwrite-cursor, pointer);
1006
1003
  color: color-mix(in srgb, transparent 50%, var(--db-adaptive-on-bg-basic-emphasis-100-default));
1007
1004
  }
1008
- .db-notification a:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-notification a:active:not(:disabled, [aria-disabled=true]):is(input) {
1005
+ .db-notification a:active:not(:disabled,
1006
+ [aria-disabled=true],
1007
+ [tabindex="-1"],
1008
+ :has(:disabled)):is(textarea), .db-notification a:active:not(:disabled,
1009
+ [aria-disabled=true],
1010
+ [tabindex="-1"],
1011
+ :has(:disabled)):is(input) {
1009
1012
  cursor: initial;
1010
1013
  }
1011
- .db-notification a:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-notification a:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
1014
+ .db-notification a:active:not(:disabled,
1015
+ [aria-disabled=true],
1016
+ [tabindex="-1"],
1017
+ :has(:disabled)):is(input[type=checkbox]), .db-notification a:active:not(:disabled,
1018
+ [aria-disabled=true],
1019
+ [tabindex="-1"],
1020
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
1012
1021
  cursor: pointer;
1013
1022
  }
1014
1023
 
@@ -1,13 +1,3 @@
1
- /* Use sizing's for fixed heights/widths e.g. the db-button has always a fixed height */
2
- /* Use fixed spacings for all kind of distances (margin, padding, ...) */
3
- /* The primary use-case for responsive spacings are
4
- paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
- /* Elevation */
6
- /* Border */
7
- /* Opacity */
8
- /* Transitions */
9
- /* Screen sizes */
10
- /* Container sizes */
11
1
  /* Variants for adaptive components like input, select, notification, ... */
12
2
  @layer variables {}
13
3