@db-ux/core-components 4.4.3 → 4.5.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.
Files changed (132) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/build/components/accordion-item/accordion-item.css +40 -7
  3. package/build/components/accordion-item/accordion-item.scss +1 -1
  4. package/build/components/badge/badge.css +75 -11
  5. package/build/components/badge/badge.scss +6 -1
  6. package/build/components/brand/brand.css +2 -0
  7. package/build/components/brand/brand.scss +2 -0
  8. package/build/components/button/button.css +246 -60
  9. package/build/components/button/button.scss +1 -105
  10. package/build/components/card/card.css +88 -16
  11. package/build/components/checkbox/checkbox.css +1 -0
  12. package/build/components/custom-button/custom-button.css +893 -0
  13. package/build/components/custom-button/custom-button.scss +78 -0
  14. package/build/components/custom-select/custom-select.css +19 -3
  15. package/build/components/custom-select-dropdown/custom-select-dropdown.css +3 -0
  16. package/build/components/custom-select-dropdown/custom-select-dropdown.scss +1 -0
  17. package/build/components/custom-select-list-item/custom-select-list-item.css +36 -6
  18. package/build/components/drawer/drawer.css +6 -0
  19. package/build/components/drawer/drawer.scss +4 -0
  20. package/build/components/infotext/infotext.css +4 -0
  21. package/build/components/infotext/infotext.scss +4 -0
  22. package/build/components/input/input.css +31 -3
  23. package/build/components/input/input.scss +11 -0
  24. package/build/components/link/link.css +75 -12
  25. package/build/components/navigation-item/navigation-item.css +113 -21
  26. package/build/components/navigation-item/navigation-item.scss +2 -1
  27. package/build/components/notification/notification.css +39 -6
  28. package/build/components/popover/popover.css +2 -0
  29. package/build/components/select/select.css +19 -3
  30. package/build/components/switch/switch.css +1 -0
  31. package/build/components/tab-item/tab-item.css +52 -10
  32. package/build/components/tab-list/tab-list.css +2 -0
  33. package/build/components/tabs/tabs.css +2 -0
  34. package/build/components/tabs/tabs.scss +2 -0
  35. package/build/components/tag/tag.css +858 -125
  36. package/build/components/textarea/textarea.css +20 -3
  37. package/build/components/tooltip/tooltip.css +6 -1
  38. package/build/components/tooltip/tooltip.scss +12 -10
  39. package/build/styles/absolute.css +9 -9
  40. package/build/styles/component-animations.css +1 -1
  41. package/build/styles/index.css +8 -8
  42. package/build/styles/index.scss +1 -0
  43. package/build/styles/internal/_button-components.scss +141 -2
  44. package/build/styles/internal/_custom-elements.scss +1 -1
  45. package/build/styles/internal/_form-components.scss +5 -1
  46. package/build/styles/internal/_icon-passing.scss +23 -3
  47. package/build/styles/internal/_popover-component.scss +4 -4
  48. package/build/styles/relative.css +9 -9
  49. package/build/styles/rollup.css +9 -9
  50. package/build/styles/wc-workarounds.css +1 -1
  51. package/build/styles/webpack.css +9 -9
  52. package/package.json +9 -7
  53. package/build/assets/fallback-icon.svg +0 -3
  54. package/build/assets/fonts/OFL.txt +0 -93
  55. package/build/assets/fonts/OpenSans-Bold-EU.woff2 +0 -0
  56. package/build/assets/fonts/OpenSans-Bold.ttf +0 -0
  57. package/build/assets/fonts/OpenSans-ExtraBold-EU.woff2 +0 -0
  58. package/build/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
  59. package/build/assets/fonts/OpenSans-Light-EU.woff2 +0 -0
  60. package/build/assets/fonts/OpenSans-Light.ttf +0 -0
  61. package/build/assets/fonts/OpenSans-Medium-EU.woff2 +0 -0
  62. package/build/assets/fonts/OpenSans-Medium.ttf +0 -0
  63. package/build/assets/fonts/OpenSans-Regular-EU.woff2 +0 -0
  64. package/build/assets/fonts/OpenSans-Regular.ttf +0 -0
  65. package/build/assets/fonts/OpenSans-SemiBold-EU.woff2 +0 -0
  66. package/build/assets/fonts/OpenSans-SemiBold.ttf +0 -0
  67. package/build/assets/fonts/README.md +0 -23
  68. package/build/assets/fonts/generate-eu-fonts.ts +0 -59
  69. package/build/assets/fonts/unicode-eu.txt +0 -15
  70. package/build/assets/icons/DB_LICENSE +0 -253
  71. package/build/assets/icons/LICENCES.json +0 -231
  72. package/build/assets/icons/arrow_down.svg +0 -1
  73. package/build/assets/icons/arrow_left.svg +0 -1
  74. package/build/assets/icons/arrow_right.svg +0 -1
  75. package/build/assets/icons/arrow_up.svg +0 -1
  76. package/build/assets/icons/arrow_up_right.svg +0 -1
  77. package/build/assets/icons/brand.svg +0 -1
  78. package/build/assets/icons/calendar.svg +0 -5
  79. package/build/assets/icons/chat.svg +0 -1
  80. package/build/assets/icons/check.svg +0 -1
  81. package/build/assets/icons/check_circle.svg +0 -1
  82. package/build/assets/icons/chevron_down.svg +0 -1
  83. package/build/assets/icons/chevron_left.svg +0 -1
  84. package/build/assets/icons/chevron_right.svg +0 -1
  85. package/build/assets/icons/chevron_up.svg +0 -1
  86. package/build/assets/icons/circle.svg +0 -1
  87. package/build/assets/icons/circle_small.svg +0 -1
  88. package/build/assets/icons/circular_arrows.svg +0 -1
  89. package/build/assets/icons/clock.svg +0 -1
  90. package/build/assets/icons/copy.svg +0 -1
  91. package/build/assets/icons/cross.svg +0 -1
  92. package/build/assets/icons/cross_circle.svg +0 -1
  93. package/build/assets/icons/double_chevron_down.svg +0 -1
  94. package/build/assets/icons/double_chevron_left.svg +0 -1
  95. package/build/assets/icons/double_chevron_right.svg +0 -1
  96. package/build/assets/icons/double_chevron_up.svg +0 -1
  97. package/build/assets/icons/exclamation_mark_circle.svg +0 -1
  98. package/build/assets/icons/exclamation_mark_triangle.svg +0 -1
  99. package/build/assets/icons/eye.svg +0 -1
  100. package/build/assets/icons/eye_disabled.svg +0 -1
  101. package/build/assets/icons/fonts/all/db-ux.woff2 +0 -0
  102. package/build/assets/icons/fonts/default/db-ux.woff2 +0 -0
  103. package/build/assets/icons/fonts/default_12/db-ux.woff2 +0 -0
  104. package/build/assets/icons/fonts/default_14/db-ux.woff2 +0 -0
  105. package/build/assets/icons/fonts/default_16/db-ux.woff2 +0 -0
  106. package/build/assets/icons/fonts/default_20/db-ux.woff2 +0 -0
  107. package/build/assets/icons/fonts/default_24/db-ux.woff2 +0 -0
  108. package/build/assets/icons/fonts/default_28/db-ux.woff2 +0 -0
  109. package/build/assets/icons/fonts/default_32/db-ux.woff2 +0 -0
  110. package/build/assets/icons/fonts/default_48/db-ux.woff2 +0 -0
  111. package/build/assets/icons/fonts/default_64/db-ux.woff2 +0 -0
  112. package/build/assets/icons/fonts/fallback/icon-font-fallback.woff2 +0 -0
  113. package/build/assets/icons/fonts/filled/db-ux.woff2 +0 -0
  114. package/build/assets/icons/fonts/filled_12/db-ux.woff2 +0 -0
  115. package/build/assets/icons/fonts/filled_14/db-ux.woff2 +0 -0
  116. package/build/assets/icons/fonts/filled_16/db-ux.woff2 +0 -0
  117. package/build/assets/icons/fonts/filled_20/db-ux.woff2 +0 -0
  118. package/build/assets/icons/fonts/filled_24/db-ux.woff2 +0 -0
  119. package/build/assets/icons/fonts/filled_28/db-ux.woff2 +0 -0
  120. package/build/assets/icons/fonts/filled_32/db-ux.woff2 +0 -0
  121. package/build/assets/icons/fonts/filled_48/db-ux.woff2 +0 -0
  122. package/build/assets/icons/fonts/filled_64/db-ux.woff2 +0 -0
  123. package/build/assets/icons/house.svg +0 -1
  124. package/build/assets/icons/information_circle.svg +0 -1
  125. package/build/assets/icons/magnifying_glass.svg +0 -1
  126. package/build/assets/icons/menu.svg +0 -1
  127. package/build/assets/icons/minus.svg +0 -1
  128. package/build/assets/icons/moon.svg +0 -1
  129. package/build/assets/icons/plus.svg +0 -1
  130. package/build/assets/icons/resize_handle_corner.svg +0 -1
  131. package/build/assets/icons/sun.svg +0 -1
  132. package/build/assets/icons/x_placeholder.svg +0 -1
@@ -132,118 +132,304 @@
132
132
  display: inline-flex;
133
133
  }
134
134
 
135
- .db-button {
136
- max-inline-size: 100%;
137
- color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
138
- min-block-size: var(--db-sizing-md);
139
- block-size: max-content;
140
- inline-size: fit-content;
141
- padding: var(--db-spacing-fixed-2xs) var(--db-spacing-fixed-md);
142
- text-decoration: none;
143
- }
144
- .db-button[data-no-text=true] {
145
- font-size: 0 !important;
146
- /* stylelint-disable-next-line at-rule-empty-line-before */
147
- padding: 0;
148
- aspect-ratio: 1;
149
- inline-size: var(--db-sizing-md);
150
- }
151
- .db-button[data-no-text=true]::before {
152
- --db-icon-margin-end: 0;
135
+ .db-button[data-variant=outlined], .db-button:not([data-variant]), .db-button[data-variant=""], .db-button[data-variant=ghost] {
136
+ background-color: var(--db-adaptive-bg-basic-transparent-full-default);
137
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
153
138
  }
154
- .db-button[data-no-text=true]::before {
155
- margin: auto;
139
+ .db-button[data-variant=outlined]:hover:not(:disabled,
140
+ [aria-disabled=true],
141
+ [tabindex="-1"],
142
+ :has(:disabled)), .db-button:hover:not(:disabled,
143
+ [aria-disabled=true],
144
+ [tabindex="-1"],
145
+ :has(:disabled)):not([data-variant]), .db-button[data-variant=""]:hover:not(:disabled,
146
+ [aria-disabled=true],
147
+ [tabindex="-1"],
148
+ :has(:disabled)), .db-button[data-variant=ghost]:hover:not(:disabled,
149
+ [aria-disabled=true],
150
+ [tabindex="-1"],
151
+ :has(:disabled)) {
152
+ cursor: var(--db-overwrite-cursor, pointer);
153
+ background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
156
154
  }
157
- .db-button[data-size=small] {
158
- font-weight: 700;
159
- min-block-size: var(--db-sizing-sm);
155
+ .db-button[data-variant=outlined]:hover:not(:disabled,
156
+ [aria-disabled=true],
157
+ [tabindex="-1"],
158
+ :has(:disabled)):is(textarea), .db-button:hover:not(:disabled,
159
+ [aria-disabled=true],
160
+ [tabindex="-1"],
161
+ :has(:disabled)):is(textarea):not([data-variant]), .db-button[data-variant=""]:hover:not(:disabled,
162
+ [aria-disabled=true],
163
+ [tabindex="-1"],
164
+ :has(:disabled)):is(textarea), .db-button[data-variant=ghost]:hover:not(:disabled,
165
+ [aria-disabled=true],
166
+ [tabindex="-1"],
167
+ :has(:disabled)):is(textarea), .db-button[data-variant=outlined]:hover:not(:disabled,
168
+ [aria-disabled=true],
169
+ [tabindex="-1"],
170
+ :has(:disabled)):is(input), .db-button:hover:not(:disabled,
171
+ [aria-disabled=true],
172
+ [tabindex="-1"],
173
+ :has(:disabled)):is(input):not([data-variant]), .db-button[data-variant=""]:hover:not(:disabled,
174
+ [aria-disabled=true],
175
+ [tabindex="-1"],
176
+ :has(:disabled)):is(input), .db-button[data-variant=ghost]:hover:not(:disabled,
177
+ [aria-disabled=true],
178
+ [tabindex="-1"],
179
+ :has(:disabled)):is(input) {
180
+ cursor: initial;
160
181
  }
161
- .db-button[data-size=small]:not([data-no-text=true]) {
162
- padding: 1px var(--db-spacing-fixed-sm);
182
+ .db-button[data-variant=outlined]:hover:not(:disabled,
183
+ [aria-disabled=true],
184
+ [tabindex="-1"],
185
+ :has(:disabled)):is(input[type=checkbox]), .db-button:hover:not(:disabled,
186
+ [aria-disabled=true],
187
+ [tabindex="-1"],
188
+ :has(:disabled)):is(input[type=checkbox]):not([data-variant]), .db-button[data-variant=""]:hover:not(:disabled,
189
+ [aria-disabled=true],
190
+ [tabindex="-1"],
191
+ :has(:disabled)):is(input[type=checkbox]), .db-button[data-variant=ghost]:hover:not(:disabled,
192
+ [aria-disabled=true],
193
+ [tabindex="-1"],
194
+ :has(:disabled)):is(input[type=checkbox]), .db-button[data-variant=outlined]:hover:not(:disabled,
195
+ [aria-disabled=true],
196
+ [tabindex="-1"],
197
+ :has(:disabled)):is(input[type=radio]:not(:checked)), .db-button:hover:not(:disabled,
198
+ [aria-disabled=true],
199
+ [tabindex="-1"],
200
+ :has(:disabled)):is(input[type=radio]:not(:checked)):not([data-variant]), .db-button[data-variant=""]:hover:not(:disabled,
201
+ [aria-disabled=true],
202
+ [tabindex="-1"],
203
+ :has(:disabled)):is(input[type=radio]:not(:checked)), .db-button[data-variant=ghost]:hover:not(:disabled,
204
+ [aria-disabled=true],
205
+ [tabindex="-1"],
206
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
207
+ cursor: pointer;
163
208
  }
164
- .db-button[data-size=small]:not([data-no-text=true])::before {
165
- margin-inline-end: var(--db-spacing-fixed-2xs);
209
+ .db-button[data-variant=outlined]:active:not(:disabled,
210
+ [aria-disabled=true],
211
+ [tabindex="-1"],
212
+ :has(:disabled)), .db-button:active:not(:disabled,
213
+ [aria-disabled=true],
214
+ [tabindex="-1"],
215
+ :has(:disabled)):not([data-variant]), .db-button[data-variant=""]:active:not(:disabled,
216
+ [aria-disabled=true],
217
+ [tabindex="-1"],
218
+ :has(:disabled)), .db-button[data-variant=ghost]:active:not(:disabled,
219
+ [aria-disabled=true],
220
+ [tabindex="-1"],
221
+ :has(:disabled)) {
222
+ cursor: var(--db-overwrite-cursor, pointer);
223
+ background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
166
224
  }
167
- .db-button[data-size=small][data-no-text=true] {
168
- inline-size: var(--db-sizing-sm);
225
+ .db-button[data-variant=outlined]:active:not(:disabled,
226
+ [aria-disabled=true],
227
+ [tabindex="-1"],
228
+ :has(:disabled)):is(textarea), .db-button:active:not(:disabled,
229
+ [aria-disabled=true],
230
+ [tabindex="-1"],
231
+ :has(:disabled)):is(textarea):not([data-variant]), .db-button[data-variant=""]:active:not(:disabled,
232
+ [aria-disabled=true],
233
+ [tabindex="-1"],
234
+ :has(:disabled)):is(textarea), .db-button[data-variant=ghost]:active:not(:disabled,
235
+ [aria-disabled=true],
236
+ [tabindex="-1"],
237
+ :has(:disabled)):is(textarea), .db-button[data-variant=outlined]:active:not(:disabled,
238
+ [aria-disabled=true],
239
+ [tabindex="-1"],
240
+ :has(:disabled)):is(input), .db-button:active:not(:disabled,
241
+ [aria-disabled=true],
242
+ [tabindex="-1"],
243
+ :has(:disabled)):is(input):not([data-variant]), .db-button[data-variant=""]:active:not(:disabled,
244
+ [aria-disabled=true],
245
+ [tabindex="-1"],
246
+ :has(:disabled)):is(input), .db-button[data-variant=ghost]:active:not(:disabled,
247
+ [aria-disabled=true],
248
+ [tabindex="-1"],
249
+ :has(:disabled)):is(input) {
250
+ cursor: initial;
169
251
  }
170
- .db-button[data-width=full] {
171
- inline-size: 100%;
252
+ .db-button[data-variant=outlined]:active:not(:disabled,
253
+ [aria-disabled=true],
254
+ [tabindex="-1"],
255
+ :has(:disabled)):is(input[type=checkbox]), .db-button:active:not(:disabled,
256
+ [aria-disabled=true],
257
+ [tabindex="-1"],
258
+ :has(:disabled)):is(input[type=checkbox]):not([data-variant]), .db-button[data-variant=""]:active:not(:disabled,
259
+ [aria-disabled=true],
260
+ [tabindex="-1"],
261
+ :has(:disabled)):is(input[type=checkbox]), .db-button[data-variant=ghost]:active:not(:disabled,
262
+ [aria-disabled=true],
263
+ [tabindex="-1"],
264
+ :has(:disabled)):is(input[type=checkbox]), .db-button[data-variant=outlined]:active:not(:disabled,
265
+ [aria-disabled=true],
266
+ [tabindex="-1"],
267
+ :has(:disabled)):is(input[type=radio]:not(:checked)), .db-button:active:not(:disabled,
268
+ [aria-disabled=true],
269
+ [tabindex="-1"],
270
+ :has(:disabled)):is(input[type=radio]:not(:checked)):not([data-variant]), .db-button[data-variant=""]:active:not(:disabled,
271
+ [aria-disabled=true],
272
+ [tabindex="-1"],
273
+ :has(:disabled)):is(input[type=radio]:not(:checked)), .db-button[data-variant=ghost]:active:not(:disabled,
274
+ [aria-disabled=true],
275
+ [tabindex="-1"],
276
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
277
+ cursor: pointer;
172
278
  }
279
+
173
280
  .db-button[data-variant=brand] {
174
281
  background-color: var(--db-brand-origin-default);
175
282
  color: var(--db-brand-on-origin-default);
176
283
  border-color: var(--db-brand-on-bg-basic-emphasis-70-default);
177
284
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
178
285
  }
179
- .db-button[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]) {
286
+ .db-button[data-variant=brand]:hover:not(:disabled,
287
+ [aria-disabled=true],
288
+ [tabindex="-1"],
289
+ :has(:disabled)) {
180
290
  cursor: var(--db-overwrite-cursor, pointer);
181
291
  background-color: var(--db-brand-origin-hovered);
182
292
  border-color: var(--db-brand-on-bg-basic-emphasis-70-default);
183
293
  }
184
- .db-button[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-button[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(input) {
294
+ .db-button[data-variant=brand]:hover:not(:disabled,
295
+ [aria-disabled=true],
296
+ [tabindex="-1"],
297
+ :has(:disabled)):is(textarea), .db-button[data-variant=brand]:hover:not(:disabled,
298
+ [aria-disabled=true],
299
+ [tabindex="-1"],
300
+ :has(:disabled)):is(input) {
185
301
  cursor: initial;
186
302
  }
187
- .db-button[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
303
+ .db-button[data-variant=brand]:hover:not(:disabled,
304
+ [aria-disabled=true],
305
+ [tabindex="-1"],
306
+ :has(:disabled)):is(input[type=checkbox]), .db-button[data-variant=brand]:hover:not(:disabled,
307
+ [aria-disabled=true],
308
+ [tabindex="-1"],
309
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
188
310
  cursor: pointer;
189
311
  }
190
- .db-button[data-variant=brand]:active:not(:disabled, [aria-disabled=true]) {
312
+ .db-button[data-variant=brand]:active:not(:disabled,
313
+ [aria-disabled=true],
314
+ [tabindex="-1"],
315
+ :has(:disabled)) {
191
316
  cursor: var(--db-overwrite-cursor, pointer);
192
317
  background-color: var(--db-brand-origin-pressed);
193
318
  border-color: var(--db-brand-on-bg-basic-emphasis-70-default);
194
319
  }
195
- .db-button[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-button[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(input) {
320
+ .db-button[data-variant=brand]:active:not(:disabled,
321
+ [aria-disabled=true],
322
+ [tabindex="-1"],
323
+ :has(:disabled)):is(textarea), .db-button[data-variant=brand]:active:not(:disabled,
324
+ [aria-disabled=true],
325
+ [tabindex="-1"],
326
+ :has(:disabled)):is(input) {
196
327
  cursor: initial;
197
328
  }
198
- .db-button[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
329
+ .db-button[data-variant=brand]:active:not(:disabled,
330
+ [aria-disabled=true],
331
+ [tabindex="-1"],
332
+ :has(:disabled)):is(input[type=checkbox]), .db-button[data-variant=brand]:active:not(:disabled,
333
+ [aria-disabled=true],
334
+ [tabindex="-1"],
335
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
199
336
  cursor: pointer;
200
337
  }
201
- .db-button[data-variant=outlined], .db-button:not([data-variant]), .db-button[data-variant=""], .db-button[data-variant=ghost] {
202
- background-color: var(--db-adaptive-bg-basic-transparent-full-default);
203
- /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
338
+
339
+ .db-button {
340
+ max-inline-size: 100%;
341
+ color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
342
+ min-block-size: var(--db-sizing-md);
343
+ block-size: max-content;
344
+ inline-size: fit-content;
345
+ padding: var(--db-spacing-fixed-2xs) var(--db-spacing-fixed-md);
346
+ text-decoration: none;
204
347
  }
205
- .db-button[data-variant=outlined]:hover:not(:disabled, [aria-disabled=true]), .db-button:not([data-variant]):hover:not(:disabled, [aria-disabled=true]), .db-button[data-variant=""]:hover:not(:disabled, [aria-disabled=true]), .db-button[data-variant=ghost]:hover:not(:disabled, [aria-disabled=true]) {
206
- cursor: var(--db-overwrite-cursor, pointer);
207
- background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
348
+ .db-button[data-no-text=true] {
349
+ padding: 0;
350
+ inline-size: var(--db-sizing-md);
351
+ block-size: var(--db-sizing-md);
352
+ font-size: 0 !important;
353
+ /* stylelint-disable-next-line at-rule-empty-line-before */
208
354
  }
209
- .db-button[data-variant=outlined]:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-button[data-variant=outlined]:hover:not(:disabled, [aria-disabled=true]):is(input), .db-button:not([data-variant]):hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-button:not([data-variant]):hover:not(:disabled, [aria-disabled=true]):is(input), .db-button[data-variant=""]:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-button[data-variant=""]:hover:not(:disabled, [aria-disabled=true]):is(input), .db-button[data-variant=ghost]:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-button[data-variant=ghost]:hover:not(:disabled, [aria-disabled=true]):is(input) {
210
- cursor: initial;
355
+ .db-button[data-no-text=true]::before {
356
+ --db-icon-margin-end: 0;
211
357
  }
212
- .db-button[data-variant=outlined]:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button[data-variant=outlined]:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)), .db-button:not([data-variant]):hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button:not([data-variant]):hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)), .db-button[data-variant=""]:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button[data-variant=""]:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)), .db-button[data-variant=ghost]:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button[data-variant=ghost]:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
213
- cursor: pointer;
358
+ .db-button[data-no-text=true]::before {
359
+ margin: auto;
214
360
  }
215
- .db-button[data-variant=outlined]:active:not(:disabled, [aria-disabled=true]), .db-button:not([data-variant]):active:not(:disabled, [aria-disabled=true]), .db-button[data-variant=""]:active:not(:disabled, [aria-disabled=true]), .db-button[data-variant=ghost]:active:not(:disabled, [aria-disabled=true]) {
216
- cursor: var(--db-overwrite-cursor, pointer);
217
- background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
361
+ .db-button[data-wrap=false] {
362
+ white-space: nowrap;
218
363
  }
219
- .db-button[data-variant=outlined]:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-button[data-variant=outlined]:active:not(:disabled, [aria-disabled=true]):is(input), .db-button:not([data-variant]):active:not(:disabled, [aria-disabled=true]):is(textarea), .db-button:not([data-variant]):active:not(:disabled, [aria-disabled=true]):is(input), .db-button[data-variant=""]:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-button[data-variant=""]:active:not(:disabled, [aria-disabled=true]):is(input), .db-button[data-variant=ghost]:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-button[data-variant=ghost]:active:not(:disabled, [aria-disabled=true]):is(input) {
220
- cursor: initial;
364
+ .db-button[data-size=small] {
365
+ font-weight: 700;
366
+ min-block-size: var(--db-sizing-sm);
221
367
  }
222
- .db-button[data-variant=outlined]:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button[data-variant=outlined]:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)), .db-button:not([data-variant]):active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button:not([data-variant]):active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)), .db-button[data-variant=""]:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button[data-variant=""]:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)), .db-button[data-variant=ghost]:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button[data-variant=ghost]:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
223
- cursor: pointer;
368
+ .db-button[data-size=small]:not([data-no-text=true]) {
369
+ padding: 1px var(--db-spacing-fixed-sm);
370
+ }
371
+ .db-button[data-size=small]:not([data-no-text=true])::before {
372
+ margin-inline-end: var(--db-spacing-fixed-2xs);
373
+ }
374
+ .db-button[data-size=small][data-no-text=true] {
375
+ inline-size: var(--db-sizing-sm);
376
+ block-size: var(--db-sizing-sm);
377
+ }
378
+ .db-button[data-width=full]:not([data-no-text=true]) {
379
+ inline-size: 100%;
224
380
  }
225
381
  .db-button[data-variant=filled] {
226
382
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
227
383
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
228
384
  }
229
- .db-button[data-variant=filled]:hover:not(:disabled, [aria-disabled=true]) {
385
+ .db-button[data-variant=filled]:hover:not(:disabled,
386
+ [aria-disabled=true],
387
+ [tabindex="-1"],
388
+ :has(:disabled)) {
230
389
  cursor: var(--db-overwrite-cursor, pointer);
231
390
  background-color: var(--db-adaptive-bg-basic-transparent-semi-hovered);
232
391
  }
233
- .db-button[data-variant=filled]:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-button[data-variant=filled]:hover:not(:disabled, [aria-disabled=true]):is(input) {
392
+ .db-button[data-variant=filled]:hover:not(:disabled,
393
+ [aria-disabled=true],
394
+ [tabindex="-1"],
395
+ :has(:disabled)):is(textarea), .db-button[data-variant=filled]:hover:not(:disabled,
396
+ [aria-disabled=true],
397
+ [tabindex="-1"],
398
+ :has(:disabled)):is(input) {
234
399
  cursor: initial;
235
400
  }
236
- .db-button[data-variant=filled]:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button[data-variant=filled]:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
401
+ .db-button[data-variant=filled]:hover:not(:disabled,
402
+ [aria-disabled=true],
403
+ [tabindex="-1"],
404
+ :has(:disabled)):is(input[type=checkbox]), .db-button[data-variant=filled]:hover:not(:disabled,
405
+ [aria-disabled=true],
406
+ [tabindex="-1"],
407
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
237
408
  cursor: pointer;
238
409
  }
239
- .db-button[data-variant=filled]:active:not(:disabled, [aria-disabled=true]) {
410
+ .db-button[data-variant=filled]:active:not(:disabled,
411
+ [aria-disabled=true],
412
+ [tabindex="-1"],
413
+ :has(:disabled)) {
240
414
  cursor: var(--db-overwrite-cursor, pointer);
241
415
  background-color: var(--db-adaptive-bg-basic-transparent-semi-pressed);
242
416
  }
243
- .db-button[data-variant=filled]:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-button[data-variant=filled]:active:not(:disabled, [aria-disabled=true]):is(input) {
417
+ .db-button[data-variant=filled]:active:not(:disabled,
418
+ [aria-disabled=true],
419
+ [tabindex="-1"],
420
+ :has(:disabled)):is(textarea), .db-button[data-variant=filled]:active:not(:disabled,
421
+ [aria-disabled=true],
422
+ [tabindex="-1"],
423
+ :has(:disabled)):is(input) {
244
424
  cursor: initial;
245
425
  }
246
- .db-button[data-variant=filled]:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-button[data-variant=filled]:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
426
+ .db-button[data-variant=filled]:active:not(:disabled,
427
+ [aria-disabled=true],
428
+ [tabindex="-1"],
429
+ :has(:disabled)):is(input[type=checkbox]), .db-button[data-variant=filled]:active:not(:disabled,
430
+ [aria-disabled=true],
431
+ [tabindex="-1"],
432
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
247
433
  cursor: pointer;
248
434
  }
249
435
  .db-button:is(:disabled, [aria-disabled=true]) {
@@ -1,113 +1,9 @@
1
- @charset "utf-8";
2
- @use "@db-ux/core-foundations/build/styles/fonts";
3
1
  @use "@db-ux/core-foundations/build/styles/variables";
4
- @use "@db-ux/core-foundations/build/styles/colors";
5
- @use "@db-ux/core-foundations/build/styles/icons";
6
- @use "@db-ux/core-foundations/build/styles/helpers";
7
- @use "../../styles/internal/component";
8
2
  @use "../../styles/internal/button-components";
9
3
 
10
4
  // generic styles can be found in _button-components.scss
11
5
  .db-button {
12
- @extend %default-interactive-component;
13
- @extend %default-button;
14
- @extend %db-overwrite-font-size-md;
15
-
16
- max-inline-size: 100%;
17
- color: colors.$db-adaptive-on-bg-basic-emphasis-100-default;
18
- min-block-size: variables.$db-sizing-md;
19
- block-size: max-content;
20
- inline-size: fit-content;
21
- padding: variables.$db-spacing-fixed-2xs variables.$db-spacing-fixed-md;
22
-
23
- // disable text-decoration if someone wants to use the button for an <a> tag
24
- text-decoration: none;
25
-
26
- // Square icon only buttons
27
- &[data-no-text="true"] {
28
- @include icons.is-icon-text-replace;
29
-
30
- padding: 0;
31
- aspect-ratio: 1;
32
- inline-size: variables.$db-sizing-md;
33
-
34
- &::before {
35
- margin: auto;
36
- }
37
- }
38
-
39
- &[data-size="small"] {
40
- @extend %db-overwrite-font-size-sm;
41
-
42
- font-weight: 700;
43
- min-block-size: variables.$db-sizing-sm;
44
-
45
- &:not([data-no-text="true"]) {
46
- // stylelint-disable-next-line db-ux/use-spacings
47
- padding: 1px variables.$db-spacing-fixed-sm;
48
-
49
- &::before {
50
- margin-inline-end: variables.$db-spacing-fixed-2xs;
51
- }
52
- }
53
-
54
- // Square icon only buttons
55
- &[data-no-text="true"] {
56
- inline-size: variables.$db-sizing-sm;
57
- }
58
- }
59
-
60
- &[data-width="full"] {
61
- inline-size: 100%;
62
- }
63
-
64
- &[data-variant="brand"] {
65
- background-color: colors.$db-brand-origin-default;
66
- color: colors.$db-brand-on-origin-default;
67
- border-color: colors.$db-brand-on-bg-basic-emphasis-70-default;
68
-
69
- @include helpers.hover {
70
- background-color: colors.$db-brand-origin-hovered;
71
- border-color: colors.$db-brand-on-bg-basic-emphasis-70-default;
72
- }
73
-
74
- @include helpers.active {
75
- background-color: colors.$db-brand-origin-pressed;
76
- border-color: colors.$db-brand-on-bg-basic-emphasis-70-default;
77
- }
78
- }
79
-
80
- &[data-variant="filled"],
81
- &[data-variant="ghost"] {
82
- @extend %transparent-border;
83
- }
84
-
85
- &[data-variant="outlined"],
86
- &:not([data-variant]),
87
- &[data-variant=""],
88
- &[data-variant="ghost"] {
89
- background-color: colors.$db-adaptive-bg-basic-transparent-full-default;
90
-
91
- @include helpers.hover {
92
- background-color: colors.$db-adaptive-bg-basic-transparent-full-hovered;
93
- }
94
-
95
- @include helpers.active {
96
- background-color: colors.$db-adaptive-bg-basic-transparent-full-pressed;
97
- }
98
- }
99
-
100
- &[data-variant="filled"] {
101
- background-color: colors.$db-adaptive-bg-basic-transparent-semi-default;
102
-
103
- @include helpers.hover {
104
- background-color: colors.$db-adaptive-bg-basic-transparent-semi-hovered;
105
- }
106
-
107
- @include helpers.active {
108
- background-color: colors.$db-adaptive-bg-basic-transparent-semi-pressed;
109
- }
110
- }
6
+ @include button-components.set-basic-button;
111
7
 
112
8
  &:is(:disabled, [aria-disabled="true"]) {
113
9
  opacity: variables.$db-opacity-md;
@@ -53,30 +53,72 @@
53
53
  padding: unset;
54
54
  font: inherit;
55
55
  }
56
- :is(a[href], button):hover:not(:disabled, [aria-disabled=true]) {
56
+ :is(a[href], button):hover:not(:disabled,
57
+ [aria-disabled=true],
58
+ [tabindex="-1"],
59
+ :has(:disabled)) {
57
60
  cursor: var(--db-overwrite-cursor, pointer);
58
61
  }
59
- :is(a[href], button):hover:not(:disabled, [aria-disabled=true]) > .db-card,
60
- :is(a[href], button):hover:not(:disabled, [aria-disabled=true]) > db-card > .db-card {
62
+ :is(a[href], button):hover:not(:disabled,
63
+ [aria-disabled=true],
64
+ [tabindex="-1"],
65
+ :has(:disabled)) > .db-card,
66
+ :is(a[href], button):hover:not(:disabled,
67
+ [aria-disabled=true],
68
+ [tabindex="-1"],
69
+ :has(:disabled)) > db-card > .db-card {
61
70
  background-color: var(--db-card-background-color-hovered);
62
71
  }
63
- :is(a[href], button):hover:not(:disabled, [aria-disabled=true]):is(textarea), :is(a[href], button):hover:not(:disabled, [aria-disabled=true]):is(input) {
72
+ :is(a[href], button):hover:not(:disabled,
73
+ [aria-disabled=true],
74
+ [tabindex="-1"],
75
+ :has(:disabled)):is(textarea), :is(a[href], button):hover:not(:disabled,
76
+ [aria-disabled=true],
77
+ [tabindex="-1"],
78
+ :has(:disabled)):is(input) {
64
79
  cursor: initial;
65
80
  }
66
- :is(a[href], button):hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), :is(a[href], button):hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
81
+ :is(a[href], button):hover:not(:disabled,
82
+ [aria-disabled=true],
83
+ [tabindex="-1"],
84
+ :has(:disabled)):is(input[type=checkbox]), :is(a[href], button):hover:not(:disabled,
85
+ [aria-disabled=true],
86
+ [tabindex="-1"],
87
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
67
88
  cursor: pointer;
68
89
  }
69
- :is(a[href], button):active:not(:disabled, [aria-disabled=true]) {
90
+ :is(a[href], button):active:not(:disabled,
91
+ [aria-disabled=true],
92
+ [tabindex="-1"],
93
+ :has(:disabled)) {
70
94
  cursor: var(--db-overwrite-cursor, pointer);
71
95
  }
72
- :is(a[href], button):active:not(:disabled, [aria-disabled=true]) > .db-card,
73
- :is(a[href], button):active:not(:disabled, [aria-disabled=true]) > db-card > .db-card {
96
+ :is(a[href], button):active:not(:disabled,
97
+ [aria-disabled=true],
98
+ [tabindex="-1"],
99
+ :has(:disabled)) > .db-card,
100
+ :is(a[href], button):active:not(:disabled,
101
+ [aria-disabled=true],
102
+ [tabindex="-1"],
103
+ :has(:disabled)) > db-card > .db-card {
74
104
  background-color: var(--db-card-background-color-pressed);
75
105
  }
76
- :is(a[href], button):active:not(:disabled, [aria-disabled=true]):is(textarea), :is(a[href], button):active:not(:disabled, [aria-disabled=true]):is(input) {
106
+ :is(a[href], button):active:not(:disabled,
107
+ [aria-disabled=true],
108
+ [tabindex="-1"],
109
+ :has(:disabled)):is(textarea), :is(a[href], button):active:not(:disabled,
110
+ [aria-disabled=true],
111
+ [tabindex="-1"],
112
+ :has(:disabled)):is(input) {
77
113
  cursor: initial;
78
114
  }
79
- :is(a[href], button):active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), :is(a[href], button):active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
115
+ :is(a[href], button):active:not(:disabled,
116
+ [aria-disabled=true],
117
+ [tabindex="-1"],
118
+ :has(:disabled)):is(input[type=checkbox]), :is(a[href], button):active:not(:disabled,
119
+ [aria-disabled=true],
120
+ [tabindex="-1"],
121
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
80
122
  cursor: pointer;
81
123
  }
82
124
 
@@ -109,24 +151,54 @@
109
151
  .db-card[data-behavior=interactive] {
110
152
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
111
153
  }
112
- .db-card[data-behavior=interactive]:hover:not(:disabled, [aria-disabled=true]) {
154
+ .db-card[data-behavior=interactive]:hover:not(:disabled,
155
+ [aria-disabled=true],
156
+ [tabindex="-1"],
157
+ :has(:disabled)) {
113
158
  cursor: var(--db-overwrite-cursor, pointer);
114
159
  background-color: var(--db-card-background-color-hovered);
115
160
  }
116
- .db-card[data-behavior=interactive]:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-card[data-behavior=interactive]:hover:not(:disabled, [aria-disabled=true]):is(input) {
161
+ .db-card[data-behavior=interactive]:hover:not(:disabled,
162
+ [aria-disabled=true],
163
+ [tabindex="-1"],
164
+ :has(:disabled)):is(textarea), .db-card[data-behavior=interactive]:hover:not(:disabled,
165
+ [aria-disabled=true],
166
+ [tabindex="-1"],
167
+ :has(:disabled)):is(input) {
117
168
  cursor: initial;
118
169
  }
119
- .db-card[data-behavior=interactive]:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-card[data-behavior=interactive]:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
170
+ .db-card[data-behavior=interactive]:hover:not(:disabled,
171
+ [aria-disabled=true],
172
+ [tabindex="-1"],
173
+ :has(:disabled)):is(input[type=checkbox]), .db-card[data-behavior=interactive]:hover:not(:disabled,
174
+ [aria-disabled=true],
175
+ [tabindex="-1"],
176
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
120
177
  cursor: pointer;
121
178
  }
122
- .db-card[data-behavior=interactive]:active:not(:disabled, [aria-disabled=true]) {
179
+ .db-card[data-behavior=interactive]:active:not(:disabled,
180
+ [aria-disabled=true],
181
+ [tabindex="-1"],
182
+ :has(:disabled)) {
123
183
  cursor: var(--db-overwrite-cursor, pointer);
124
184
  background-color: var(--db-card-background-color-pressed);
125
185
  }
126
- .db-card[data-behavior=interactive]:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-card[data-behavior=interactive]:active:not(:disabled, [aria-disabled=true]):is(input) {
186
+ .db-card[data-behavior=interactive]:active:not(:disabled,
187
+ [aria-disabled=true],
188
+ [tabindex="-1"],
189
+ :has(:disabled)):is(textarea), .db-card[data-behavior=interactive]:active:not(:disabled,
190
+ [aria-disabled=true],
191
+ [tabindex="-1"],
192
+ :has(:disabled)):is(input) {
127
193
  cursor: initial;
128
194
  }
129
- .db-card[data-behavior=interactive]:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-card[data-behavior=interactive]:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
195
+ .db-card[data-behavior=interactive]:active:not(:disabled,
196
+ [aria-disabled=true],
197
+ [tabindex="-1"],
198
+ :has(:disabled)):is(input[type=checkbox]), .db-card[data-behavior=interactive]:active:not(:disabled,
199
+ [aria-disabled=true],
200
+ [tabindex="-1"],
201
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
130
202
  cursor: pointer;
131
203
  }
132
204
  .db-card[data-elevation-level="2"] {
@@ -71,6 +71,7 @@
71
71
  text-transform: none;
72
72
  overflow: clip;
73
73
  vertical-align: var(--db-icon-vertical-align, middle);
74
+ /* stylelint-disable-next-line db-ux/use-sizing */
74
75
  block-size: var(--db-icon-font-size, 1.5rem);
75
76
  aspect-ratio: 1;
76
77
  flex-shrink: 0;