@db-ux/core-components 4.6.1 → 4.7.0-tabs-34782eb

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 (49) hide show
  1. package/CHANGELOG.md +28 -16
  2. package/build/components/accordion-item/accordion-item.css +5 -3
  3. package/build/components/badge/badge.css +13 -7
  4. package/build/components/brand/brand.css +3 -3
  5. package/build/components/button/button.css +3 -1
  6. package/build/components/card/card.css +10 -6
  7. package/build/components/checkbox/checkbox.css +25 -21
  8. package/build/components/custom-button/custom-button.css +3 -1
  9. package/build/components/custom-select/custom-select.css +19 -15
  10. package/build/components/custom-select-dropdown/custom-select-dropdown.css +11 -3
  11. package/build/components/custom-select-form-field/custom-select-form-field.css +8 -6
  12. package/build/components/custom-select-list/custom-select-list.css +4 -2
  13. package/build/components/custom-select-list-item/custom-select-list-item.css +7 -5
  14. package/build/components/drawer/drawer.css +3 -3
  15. package/build/components/header/header.css +115 -60
  16. package/build/components/icon/icon.css +4 -2
  17. package/build/components/infotext/infotext.css +15 -15
  18. package/build/components/input/input.css +12 -10
  19. package/build/components/navigation/navigation.css +28 -12
  20. package/build/components/navigation-item/navigation-item.css +39 -19
  21. package/build/components/notification/notification.css +5 -5
  22. package/build/components/notification/notification.scss +1 -1
  23. package/build/components/page/page.css +13 -11
  24. package/build/components/popover/popover.css +25 -13
  25. package/build/components/radio/radio.css +10 -8
  26. package/build/components/section/section.css +3 -3
  27. package/build/components/select/select.css +11 -11
  28. package/build/components/select/select.scss +4 -4
  29. package/build/components/stack/stack-web-component.css +3 -3
  30. package/build/components/stack/stack.css +3 -3
  31. package/build/components/switch/switch.css +30 -20
  32. package/build/components/tab-item/tab-item.css +133 -157
  33. package/build/components/tab-item/tab-item.scss +105 -103
  34. package/build/components/tab-list/tab-list.css +46 -36
  35. package/build/components/tab-list/tab-list.scss +11 -9
  36. package/build/components/tab-panel/tab-panel.css +1 -2
  37. package/build/components/tab-panel/tab-panel.scss +2 -5
  38. package/build/components/tabs/tabs.css +227 -236
  39. package/build/components/tabs/tabs.scss +214 -234
  40. package/build/components/tag/tag.css +32 -11
  41. package/build/components/textarea/textarea.css +27 -17
  42. package/build/components/tooltip/tooltip.css +19 -9
  43. package/build/styles/absolute.css +32 -18
  44. package/build/styles/bundle.css +32 -18
  45. package/build/styles/index.css +31 -17
  46. package/build/styles/relative.css +32 -18
  47. package/build/styles/rollup.css +32 -18
  48. package/build/styles/webpack.css +32 -18
  49. package/package.json +6 -6
@@ -18,85 +18,7 @@
18
18
  pointer-events: none !important;
19
19
  }
20
20
 
21
- .db-tabs .db-tab-item::after {
22
- content: "";
23
- position: absolute;
24
- border-radius: var(--db-border-radius-xs);
25
- }
26
- @media (prefers-reduced-motion: no-preference) {
27
- .db-tabs .db-tab-item::after {
28
- transition: height var(--db-transition-duration-fast) var(--db-transition-timing-emotional), width var(--db-transition-duration-fast) var(--db-transition-timing-emotional);
29
- }
30
- }
31
-
32
- .db-tabs db-tab-list:has([id$=-tab-0]:checked) ~ dbtabpanel > [id$=-tab-panel-0]:not([hidden]),
33
- .db-tabs db-tab-list:has([id$=-tab-0]:checked) ~ db-tab-panel > [id$=-tab-panel-0]:not([hidden]),
34
- .db-tabs dbtablist:has([id$=-tab-0]:checked) ~ dbtabpanel > [id$=-tab-panel-0]:not([hidden]),
35
- .db-tabs dbtablist:has([id$=-tab-0]:checked) ~ db-tab-panel > [id$=-tab-panel-0]:not([hidden]) {
36
- display: block;
37
- }
38
- .db-tabs db-tab-list:has([id$=-tab-1]:checked) ~ dbtabpanel > [id$=-tab-panel-1]:not([hidden]),
39
- .db-tabs db-tab-list:has([id$=-tab-1]:checked) ~ db-tab-panel > [id$=-tab-panel-1]:not([hidden]),
40
- .db-tabs dbtablist:has([id$=-tab-1]:checked) ~ dbtabpanel > [id$=-tab-panel-1]:not([hidden]),
41
- .db-tabs dbtablist:has([id$=-tab-1]:checked) ~ db-tab-panel > [id$=-tab-panel-1]:not([hidden]) {
42
- display: block;
43
- }
44
- .db-tabs db-tab-list:has([id$=-tab-2]:checked) ~ dbtabpanel > [id$=-tab-panel-2]:not([hidden]),
45
- .db-tabs db-tab-list:has([id$=-tab-2]:checked) ~ db-tab-panel > [id$=-tab-panel-2]:not([hidden]),
46
- .db-tabs dbtablist:has([id$=-tab-2]:checked) ~ dbtabpanel > [id$=-tab-panel-2]:not([hidden]),
47
- .db-tabs dbtablist:has([id$=-tab-2]:checked) ~ db-tab-panel > [id$=-tab-panel-2]:not([hidden]) {
48
- display: block;
49
- }
50
- .db-tabs db-tab-list:has([id$=-tab-3]:checked) ~ dbtabpanel > [id$=-tab-panel-3]:not([hidden]),
51
- .db-tabs db-tab-list:has([id$=-tab-3]:checked) ~ db-tab-panel > [id$=-tab-panel-3]:not([hidden]),
52
- .db-tabs dbtablist:has([id$=-tab-3]:checked) ~ dbtabpanel > [id$=-tab-panel-3]:not([hidden]),
53
- .db-tabs dbtablist:has([id$=-tab-3]:checked) ~ db-tab-panel > [id$=-tab-panel-3]:not([hidden]) {
54
- display: block;
55
- }
56
- .db-tabs db-tab-list:has([id$=-tab-4]:checked) ~ dbtabpanel > [id$=-tab-panel-4]:not([hidden]),
57
- .db-tabs db-tab-list:has([id$=-tab-4]:checked) ~ db-tab-panel > [id$=-tab-panel-4]:not([hidden]),
58
- .db-tabs dbtablist:has([id$=-tab-4]:checked) ~ dbtabpanel > [id$=-tab-panel-4]:not([hidden]),
59
- .db-tabs dbtablist:has([id$=-tab-4]:checked) ~ db-tab-panel > [id$=-tab-panel-4]:not([hidden]) {
60
- display: block;
61
- }
62
- .db-tabs db-tab-list:has([id$=-tab-5]:checked) ~ dbtabpanel > [id$=-tab-panel-5]:not([hidden]),
63
- .db-tabs db-tab-list:has([id$=-tab-5]:checked) ~ db-tab-panel > [id$=-tab-panel-5]:not([hidden]),
64
- .db-tabs dbtablist:has([id$=-tab-5]:checked) ~ dbtabpanel > [id$=-tab-panel-5]:not([hidden]),
65
- .db-tabs dbtablist:has([id$=-tab-5]:checked) ~ db-tab-panel > [id$=-tab-panel-5]:not([hidden]) {
66
- display: block;
67
- }
68
- .db-tabs db-tab-list:has([id$=-tab-6]:checked) ~ dbtabpanel > [id$=-tab-panel-6]:not([hidden]),
69
- .db-tabs db-tab-list:has([id$=-tab-6]:checked) ~ db-tab-panel > [id$=-tab-panel-6]:not([hidden]),
70
- .db-tabs dbtablist:has([id$=-tab-6]:checked) ~ dbtabpanel > [id$=-tab-panel-6]:not([hidden]),
71
- .db-tabs dbtablist:has([id$=-tab-6]:checked) ~ db-tab-panel > [id$=-tab-panel-6]:not([hidden]) {
72
- display: block;
73
- }
74
- .db-tabs db-tab-list:has([id$=-tab-7]:checked) ~ dbtabpanel > [id$=-tab-panel-7]:not([hidden]),
75
- .db-tabs db-tab-list:has([id$=-tab-7]:checked) ~ db-tab-panel > [id$=-tab-panel-7]:not([hidden]),
76
- .db-tabs dbtablist:has([id$=-tab-7]:checked) ~ dbtabpanel > [id$=-tab-panel-7]:not([hidden]),
77
- .db-tabs dbtablist:has([id$=-tab-7]:checked) ~ db-tab-panel > [id$=-tab-panel-7]:not([hidden]) {
78
- display: block;
79
- }
80
- .db-tabs db-tab-list:has([id$=-tab-8]:checked) ~ dbtabpanel > [id$=-tab-panel-8]:not([hidden]),
81
- .db-tabs db-tab-list:has([id$=-tab-8]:checked) ~ db-tab-panel > [id$=-tab-panel-8]:not([hidden]),
82
- .db-tabs dbtablist:has([id$=-tab-8]:checked) ~ dbtabpanel > [id$=-tab-panel-8]:not([hidden]),
83
- .db-tabs dbtablist:has([id$=-tab-8]:checked) ~ db-tab-panel > [id$=-tab-panel-8]:not([hidden]) {
84
- display: block;
85
- }
86
- .db-tabs db-tab-list:has([id$=-tab-9]:checked) ~ dbtabpanel > [id$=-tab-panel-9]:not([hidden]),
87
- .db-tabs db-tab-list:has([id$=-tab-9]:checked) ~ db-tab-panel > [id$=-tab-panel-9]:not([hidden]),
88
- .db-tabs dbtablist:has([id$=-tab-9]:checked) ~ dbtabpanel > [id$=-tab-panel-9]:not([hidden]),
89
- .db-tabs dbtablist:has([id$=-tab-9]:checked) ~ db-tab-panel > [id$=-tab-panel-9]:not([hidden]) {
90
- display: block;
91
- }
92
- .db-tabs db-tab-list:has([id$=-tab-10]:checked) ~ dbtabpanel > [id$=-tab-panel-10]:not([hidden]),
93
- .db-tabs db-tab-list:has([id$=-tab-10]:checked) ~ db-tab-panel > [id$=-tab-panel-10]:not([hidden]),
94
- .db-tabs dbtablist:has([id$=-tab-10]:checked) ~ dbtabpanel > [id$=-tab-panel-10]:not([hidden]),
95
- .db-tabs dbtablist:has([id$=-tab-10]:checked) ~ db-tab-panel > [id$=-tab-panel-10]:not([hidden]) {
96
- display: block;
97
- }
98
-
99
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul .db-tab-item::after {
21
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list .db-tab-item::after {
100
22
  block-size: var(--db-border-width-xs);
101
23
  inline-size: 0;
102
24
  transform: translate(-50%, 0);
@@ -104,20 +26,23 @@
104
26
  background-color: var(--db-brand-on-bg-basic-emphasis-70-default);
105
27
  inset-block: auto calc(-1 * var(--db-spacing-fixed-xs));
106
28
  }
107
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul .db-tab-item:has(input:checked)::after {
29
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list .db-tab-item::after {
30
+ inset-block-end: calc(-1 * calc(var(--db-border-width-xs) + var(--db-spacing-fixed-2xs))) !important;
31
+ }
32
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list .db-tab-item[aria-selected=true]::after {
108
33
  block-size: var(--db-border-width-xs);
109
34
  inline-size: 100%;
110
35
  }
111
36
  @media (forced-colors: active), print {
112
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul .db-tab-item:has(input:checked)::after {
37
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list .db-tab-item[aria-selected=true]::after {
113
38
  border: calc(var(--db-border-width-xs) - 1px) solid var(--db-adaptive-on-bg-basic-emphasis-100-default);
114
39
  }
115
40
  }
116
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul .db-tab-item:has(input:checked)::after {
117
- inset-block-end: calc(-1 * (var(--db-spacing-fixed-2xs) + var(--db-border-width-xs)));
41
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list .db-tab-item[aria-selected=true]::after {
42
+ inline-size: 100%;
118
43
  }
119
44
 
120
- .db-tabs[data-orientation=vertical] .db-tab-list > ul .db-tab-item::after {
45
+ .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item::after {
121
46
  block-size: 0;
122
47
  inline-size: var(--db-border-width-xs);
123
48
  transform: translate(0, -50%);
@@ -125,225 +50,291 @@
125
50
  background-color: var(--db-brand-on-bg-basic-emphasis-70-default);
126
51
  inset-inline-start: calc(-1 * var(--db-spacing-fixed-xs));
127
52
  }
128
- .db-tabs[data-orientation=vertical] .db-tab-list > ul .db-tab-item::after {
129
- inset-inline-start: 0;
130
- z-index: -2;
53
+ .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item::after {
54
+ inset-inline: calc(-1 * var(--db-tabs-line-gap-vertical, 0px)) auto;
55
+ z-index: 5;
131
56
  }
132
- .db-tabs[data-orientation=vertical] .db-tab-list > ul .db-tab-item:has(input:checked)::after {
57
+ .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item[aria-selected=true]::after {
133
58
  block-size: 100%;
134
59
  inline-size: var(--db-border-width-xs);
135
60
  }
136
61
  @media (forced-colors: active), print {
137
- .db-tabs[data-orientation=vertical] .db-tab-list > ul .db-tab-item:has(input:checked)::after {
62
+ .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item[aria-selected=true]::after {
138
63
  border: calc(var(--db-border-width-xs) - 1px) solid var(--db-adaptive-on-bg-basic-emphasis-100-default);
139
64
  }
140
65
  }
66
+ .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item[aria-selected=true]::after {
67
+ block-size: 100%;
68
+ }
141
69
 
142
- .db-tabs[data-orientation=vertical] .db-tab-list::before, .db-tabs:not([data-orientation=vertical]) .db-tab-list::before {
70
+ .db-tabs[data-orientation=vertical] .db-tab-list::before {
143
71
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
144
72
  content: "";
145
73
  border-radius: var(--db-border-radius-xs);
146
74
  position: absolute;
147
75
  }
148
76
 
77
+ .db-tabs:not([hidden]) {
78
+ display: flex;
79
+ }
149
80
  .db-tabs {
150
81
  inline-size: 100%;
151
82
  position: relative;
152
- /*
153
- Variant Orientation HORIZONTAL
154
- */
155
- /*
156
- Variant Orientation VERTICAL
157
- */
158
- }
159
- .db-tabs:not([hidden]) {
160
- display: flex;
161
83
  }
162
84
  .db-tabs .db-tab-panel {
163
- padding: 0 var(--db-spacing-fixed-xs);
85
+ padding: var(--db-spacing-fixed-xs);
86
+ position: relative;
87
+ z-index: 1;
164
88
  }
165
89
  .db-tabs .db-tab-list {
166
- max-inline-size: 100%;
90
+ position: relative;
167
91
  z-index: 20;
168
92
  }
169
- .db-tabs .db-tab-list:has([id$=-tab-0]:checked) ~ [id$=-tab-panel-0]:not([hidden]) {
170
- display: block;
171
- }
172
- .db-tabs .db-tab-list:has([id$=-tab-1]:checked) ~ [id$=-tab-panel-1]:not([hidden]) {
173
- display: block;
174
- }
175
- .db-tabs .db-tab-list:has([id$=-tab-2]:checked) ~ [id$=-tab-panel-2]:not([hidden]) {
176
- display: block;
177
- }
178
- .db-tabs .db-tab-list:has([id$=-tab-3]:checked) ~ [id$=-tab-panel-3]:not([hidden]) {
179
- display: block;
180
- }
181
- .db-tabs .db-tab-list:has([id$=-tab-4]:checked) ~ [id$=-tab-panel-4]:not([hidden]) {
182
- display: block;
183
- }
184
- .db-tabs .db-tab-list:has([id$=-tab-5]:checked) ~ [id$=-tab-panel-5]:not([hidden]) {
185
- display: block;
186
- }
187
- .db-tabs .db-tab-list:has([id$=-tab-6]:checked) ~ [id$=-tab-panel-6]:not([hidden]) {
188
- display: block;
189
- }
190
- .db-tabs .db-tab-list:has([id$=-tab-7]:checked) ~ [id$=-tab-panel-7]:not([hidden]) {
191
- display: block;
192
- }
193
- .db-tabs .db-tab-list:has([id$=-tab-8]:checked) ~ [id$=-tab-panel-8]:not([hidden]) {
194
- display: block;
195
- }
196
- .db-tabs .db-tab-list:has([id$=-tab-9]:checked) ~ [id$=-tab-panel-9]:not([hidden]) {
197
- display: block;
198
- }
199
- .db-tabs .db-tab-list:has([id$=-tab-10]:checked) ~ [id$=-tab-panel-10]:not([hidden]) {
200
- display: block;
93
+ .db-tabs .db-tab-list db-tab-item,
94
+ .db-tabs .db-tab-list dbtabitem {
95
+ display: contents;
201
96
  }
202
97
  .db-tabs:not([data-orientation=vertical]) {
203
98
  flex-flow: column wrap;
204
99
  }
205
- .db-tabs:not([data-orientation=vertical]) .db-tab-panel {
206
- inline-size: 100%;
207
- }
208
100
  .db-tabs:not([data-orientation=vertical]) .db-tab-list {
209
- /* horizontal track for pulse */
210
- }
211
- .db-tabs:not([data-orientation=vertical]) .db-tab-list::before {
212
- block-size: var(--db-border-width-xs);
213
- inset-inline: var(--db-spacing-fixed-xs);
214
- /* top position equals sum of: margin xs + padding xs + line-height + padding xs + margin 2xs */
215
- inset-block-start: calc(3 * var(--db-spacing-fixed-xs) + var(--db-spacing-fixed-2xs) + var(--db-icon-font-size));
216
- }
217
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul {
218
- overflow: auto hidden;
101
+ padding: var(--db-spacing-fixed-xs) var(--db-spacing-fixed-xs) 0 var(--db-spacing-fixed-xs);
102
+ background-image: linear-gradient(var(--db-adaptive-bg-basic-transparent-semi-default), var(--db-adaptive-bg-basic-transparent-semi-default));
103
+ background-position: left bottom;
104
+ background-repeat: no-repeat;
105
+ background-origin: content-box;
106
+ background-size: 100% var(--db-border-width-xs);
107
+ }
108
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list .db-tab-item {
109
+ margin-block-end: calc(var(--db-border-width-xs) + var(--db-spacing-fixed-2xs));
110
+ }
111
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list[role=tablist],
112
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list .db-tab-list {
113
+ display: flex;
114
+ align-items: stretch;
115
+ overflow: auto;
219
116
  inline-size: 100%;
220
117
  }
221
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul .db-tab-item {
222
- margin-block: var(--db-spacing-fixed-xs) calc(2 * var(--db-spacing-fixed-2xs) + var(--db-border-width-xs));
223
- }
224
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul db-tab-item:first-of-type .db-tab-item,
225
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul dbtabitem:first-of-type .db-tab-item {
226
- margin-inline-start: var(--db-spacing-fixed-xs);
227
- }
228
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul db-tab-item:last-of-type .db-tab-item,
229
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul dbtabitem:last-of-type .db-tab-item {
230
- margin-inline-end: var(--db-spacing-fixed-xs);
231
- }
232
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul:not(:has(db-tab-item, dbtabitem)) .db-tab-item:first-of-type {
233
- margin-inline-start: var(--db-spacing-fixed-xs);
234
- }
235
- .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul:not(:has(db-tab-item, dbtabitem)) .db-tab-item:last-of-type {
236
- margin-inline-end: var(--db-spacing-fixed-xs);
237
- }
238
118
  .db-tabs[data-orientation=vertical] {
239
119
  flex-direction: row;
240
120
  }
241
- .db-tabs[data-orientation=vertical] .db-tab-panel {
242
- padding: var(--db-spacing-fixed-xs) 0;
243
- }
244
121
  .db-tabs[data-orientation=vertical] .db-tab-list {
122
+ --db-tabs-line-gap-vertical: calc(var(--db-border-width-xs) + var(--db-spacing-fixed-2xs));
245
123
  /*
246
124
  min and nominal size must both be set to ensure
247
125
  - min-inline-size: tab-list is not displayed narrower than defined
248
126
  - max-inline-size: tab-list is not displayed wider than defined
249
127
  */
250
- /* stylelint-disable-next-line db-ux/use-sizing */
251
- min-inline-size: var(--db-tab-list-vertical-width, var(--db-sizing-3xl));
252
- /* stylelint-disable-next-line db-ux/use-sizing */
253
- max-inline-size: var(--db-tab-list-vertical-width, var(--db-sizing-3xl));
254
- /* horizontal space to the tab panels */
255
- padding-inline-end: var(--db-spacing-fixed-xs);
256
- /* ensures that tab-list (track) is only as high as all the tab-items together if open tab-panel is higher */
128
+ min-inline-size: var(--db-sizing-3xl);
129
+ max-inline-size: var(--db-sizing-3xl);
130
+ padding-inline: var(--db-spacing-fixed-xs) var(--db-tabs-line-gap-vertical);
257
131
  margin-block-end: auto;
258
- /* vertical track for pulse */
259
- }
260
- .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item label {
261
- position: relative;
262
- }
263
- .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item:has(input:focus-visible), .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item:hover {
264
- inline-size: fit-content;
265
- }
266
- .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item:has(input:focus-visible) label, .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item:hover label {
267
- overflow: visible;
268
132
  }
269
133
  .db-tabs[data-orientation=vertical] .db-tab-list::before {
270
- inline-size: var(--db-border-width-xs);
271
- inset-block: var(--db-spacing-fixed-xs);
134
+ display: block;
272
135
  inset-inline-start: 0;
136
+ inset-block: 0;
137
+ inline-size: var(--db-border-width-xs);
138
+ z-index: 1;
273
139
  }
274
- .db-tabs[data-orientation=vertical] .db-tab-list > ul {
140
+ .db-tabs[data-orientation=vertical] .db-tab-list[role=tablist],
141
+ .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-list {
142
+ display: flex;
275
143
  flex-direction: column;
276
- block-size: 100%;
277
- }
278
- .db-tabs[data-orientation=vertical] .db-tab-list > ul:not(:has(db-tab-item, dbtabitem)) .db-tab-item:first-of-type {
279
- margin-block-start: var(--db-spacing-fixed-xs);
144
+ align-items: flex-start;
280
145
  }
281
- .db-tabs[data-orientation=vertical] .db-tab-list > ul:not(:has(db-tab-item, dbtabitem)) .db-tab-item:last-of-type {
282
- margin-block-end: var(--db-spacing-fixed-xs);
146
+ .db-tabs[data-tab-item-width=full] .db-tab-list {
147
+ inline-size: 100%;
283
148
  }
284
- .db-tabs[data-orientation=vertical] .db-tab-item {
285
- padding-inline-start: calc(var(--db-border-width-xs) + var(--db-spacing-fixed-2xs));
149
+ .db-tabs[data-tab-item-width=full] .db-tab-item {
150
+ flex: 1 0 0;
151
+ inline-size: 0;
152
+ max-inline-size: none;
153
+ justify-content: flex-start;
286
154
  }
287
- .db-tabs[data-orientation=vertical] .db-tab-item input {
288
- padding-inline-start: calc(var(--db-border-width-xs) + var(--db-spacing-fixed-2xs));
155
+ .db-tabs[data-tab-item-width=full][data-tab-item-alignment=center] .db-tab-item {
156
+ text-align: center;
157
+ justify-content: center;
289
158
  }
290
- .db-tabs[data-orientation=vertical] db-tab-item:first-of-type .db-tab-item,
291
- .db-tabs[data-orientation=vertical] dbtabitem:first-of-type .db-tab-item {
292
- margin-block-start: var(--db-spacing-fixed-xs);
159
+ .db-tabs[data-tab-item-width=full][data-tab-item-alignment=end] .db-tab-item {
160
+ text-align: end;
161
+ justify-content: end;
293
162
  }
294
- .db-tabs[data-orientation=vertical] db-tab-item:last-of-type .db-tab-item,
295
- .db-tabs[data-orientation=vertical] dbtabitem:last-of-type .db-tab-item {
296
- margin-block-end: var(--db-spacing-fixed-xs);
163
+ .db-tabs[data-scroll-behavior=scrollbar]:not([data-orientation=vertical])::before {
164
+ content: "";
165
+ position: absolute;
166
+ z-index: 19;
167
+ inset-block-start: calc(var(--db-sizing-md) + var(--db-spacing-fixed-xs) + var(--db-border-width-xs));
168
+ inset-inline: var(--db-spacing-fixed-xs);
169
+ block-size: var(--db-border-width-xs);
170
+ background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
171
+ pointer-events: none;
297
172
  }
298
- .db-tabs[data-width=full] .db-tab-list {
299
- inline-size: 100%;
173
+ [data-density=functional] .db-tabs[data-scroll-behavior=scrollbar]:not([data-orientation=vertical])::before {
174
+ inset-block-start: calc(var(--db-sizing-sm) + var(--db-spacing-fixed-xs) + var(--db-border-width-xs));
300
175
  }
301
- .db-tabs[data-width=full] .db-tab-item,
302
- .db-tabs[data-width=full] .db-tab-item label {
303
- inline-size: 100%;
176
+ [data-density=expressive] .db-tabs[data-scroll-behavior=scrollbar]:not([data-orientation=vertical])::before {
177
+ inset-block-start: calc(var(--db-sizing-lg) + var(--db-spacing-fixed-xs) + var(--db-border-width-xs));
304
178
  }
305
- .db-tabs[data-width=full][data-alignment=center] .db-tab-item label {
306
- text-align: center;
307
- justify-content: center;
179
+ .db-tabs[data-scroll-behavior=scrollbar]:not([data-orientation=vertical]) .db-tab-list {
180
+ background-image: none;
308
181
  }
309
- .db-tabs[data-scroll-behavior=arrows] {
310
- /*
311
- * Scroll left / right buttons
312
- */
182
+ .db-tabs[data-scroll-behavior=scrollbar]:not([data-orientation=vertical]) .db-tab-list::before {
183
+ content: none;
313
184
  }
314
- .db-tabs[data-scroll-behavior=arrows] .db-tab-list > ul::-webkit-scrollbar {
185
+ .db-tabs[data-scroll-behavior=arrows] .db-tab-list::-webkit-scrollbar {
315
186
  display: none;
316
187
  }
317
- .db-tabs[data-scroll-behavior=arrows]:has(.tabs-scroll-left)::before {
188
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical])::before {
318
189
  content: "";
190
+ position: absolute;
191
+ z-index: 19;
192
+ inset-block-start: calc(var(--db-sizing-md) + var(--db-border-width-2xs));
193
+ inset-inline: 0;
194
+ block-size: var(--db-border-width-xs);
195
+ background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
319
196
  }
320
- .db-tabs[data-scroll-behavior=arrows]:has(.tabs-scroll-right)::after {
321
- content: "";
197
+ [data-density=functional] .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical])::before {
198
+ inset-block-start: calc(var(--db-sizing-sm) + var(--db-border-width-2xs));
199
+ }
200
+ [data-density=expressive] .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical])::before {
201
+ inset-block-start: calc(var(--db-sizing-lg) + var(--db-border-width-2xs));
202
+ }
203
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .db-tab-list {
204
+ padding: 0 0 calc(var(--db-border-width-xs) + var(--db-spacing-fixed-2xs));
205
+ margin-block-start: 0;
206
+ background-image: none;
207
+ }
208
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .db-tab-list::before {
209
+ content: none;
210
+ }
211
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .db-tab-list .db-tab-item {
212
+ margin-block-end: 0;
213
+ }
214
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .db-tab-list .db-tab-item::after {
215
+ inset-block-end: calc(-1 * (var(--db-spacing-fixed-xs) - var(--db-border-width-2xs))) !important;
322
216
  }
323
- .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::before, .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::after {
217
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start,
218
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end {
324
219
  position: absolute;
325
- z-index: 21;
220
+ z-index: 22;
221
+ inset-block-start: 0;
222
+ aspect-ratio: unset;
223
+ min-block-size: unset;
224
+ border-block-width: 0;
225
+ padding-block: var(--db-spacing-fixed-xs) calc(var(--db-spacing-fixed-xs) + calc(var(--db-border-width-xs) + var(--db-spacing-fixed-2xs)));
226
+ align-items: flex-start;
326
227
  background-color: var(--db-adaptive-bg-basic-level-1-default);
327
- inline-size: var(--db-sizing-md);
328
- block-size: calc(var(--db-spacing-fixed-sm) + var(--db-sizing-md));
329
- flex: 0 0 auto;
228
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
229
+ }
230
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start:hover:not(:disabled,
231
+ [aria-disabled=true],
232
+ [tabindex="-1"],
233
+ :has(:disabled)),
234
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end:hover:not(:disabled,
235
+ [aria-disabled=true],
236
+ [tabindex="-1"],
237
+ :has(:disabled)) {
238
+ cursor: var(--db-overwrite-cursor, pointer);
239
+ background-color: var(--db-adaptive-bg-basic-level-1-hovered);
240
+ }
241
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start:hover:not(:disabled,
242
+ [aria-disabled=true],
243
+ [tabindex="-1"],
244
+ :has(:disabled)):is(textarea), .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start:hover:not(:disabled,
245
+ [aria-disabled=true],
246
+ [tabindex="-1"],
247
+ :has(:disabled)):is(input),
248
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end:hover:not(:disabled,
249
+ [aria-disabled=true],
250
+ [tabindex="-1"],
251
+ :has(:disabled)):is(textarea),
252
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end:hover:not(:disabled,
253
+ [aria-disabled=true],
254
+ [tabindex="-1"],
255
+ :has(:disabled)):is(input) {
256
+ cursor: initial;
257
+ }
258
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start:hover:not(:disabled,
259
+ [aria-disabled=true],
260
+ [tabindex="-1"],
261
+ :has(:disabled)):is(input[type=checkbox]), .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start:hover:not(:disabled,
262
+ [aria-disabled=true],
263
+ [tabindex="-1"],
264
+ :has(:disabled)):is(input[type=radio]:not(:checked)),
265
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end:hover:not(:disabled,
266
+ [aria-disabled=true],
267
+ [tabindex="-1"],
268
+ :has(:disabled)):is(input[type=checkbox]),
269
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end:hover:not(:disabled,
270
+ [aria-disabled=true],
271
+ [tabindex="-1"],
272
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
273
+ cursor: pointer;
274
+ }
275
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start:active:not(:disabled,
276
+ [aria-disabled=true],
277
+ [tabindex="-1"],
278
+ :has(:disabled)),
279
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end:active:not(:disabled,
280
+ [aria-disabled=true],
281
+ [tabindex="-1"],
282
+ :has(:disabled)) {
283
+ cursor: var(--db-overwrite-cursor, pointer);
284
+ background-color: var(--db-adaptive-bg-basic-level-1-pressed);
285
+ }
286
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start:active:not(:disabled,
287
+ [aria-disabled=true],
288
+ [tabindex="-1"],
289
+ :has(:disabled)):is(textarea), .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start:active:not(:disabled,
290
+ [aria-disabled=true],
291
+ [tabindex="-1"],
292
+ :has(:disabled)):is(input),
293
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end:active:not(:disabled,
294
+ [aria-disabled=true],
295
+ [tabindex="-1"],
296
+ :has(:disabled)):is(textarea),
297
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end:active:not(:disabled,
298
+ [aria-disabled=true],
299
+ [tabindex="-1"],
300
+ :has(:disabled)):is(input) {
301
+ cursor: initial;
302
+ }
303
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start:active:not(:disabled,
304
+ [aria-disabled=true],
305
+ [tabindex="-1"],
306
+ :has(:disabled)):is(input[type=checkbox]), .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start:active:not(:disabled,
307
+ [aria-disabled=true],
308
+ [tabindex="-1"],
309
+ :has(:disabled)):is(input[type=radio]:not(:checked)),
310
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end:active:not(:disabled,
311
+ [aria-disabled=true],
312
+ [tabindex="-1"],
313
+ :has(:disabled)):is(input[type=checkbox]),
314
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end:active:not(:disabled,
315
+ [aria-disabled=true],
316
+ [tabindex="-1"],
317
+ :has(:disabled)):is(input[type=radio]:not(:checked)) {
318
+ cursor: pointer;
319
+ }
320
+ @media screen and (forced-colors: active) {
321
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start,
322
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end {
323
+ border-block: var(--db-border-width-xs) solid transparent;
324
+ inset-block-start: calc(-1 * var(--db-border-width-xs));
325
+ }
330
326
  }
331
- .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::before {
332
- inset-inline-start: 0;
327
+ [data-density=functional] .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start,
328
+ [data-density=functional] .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end {
329
+ padding-block: var(--db-spacing-fixed-2xs) calc(var(--db-spacing-fixed-2xs) + calc(var(--db-border-width-xs) + var(--db-spacing-fixed-2xs)));
333
330
  }
334
- .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::after {
335
- inset-inline-end: 0;
331
+ [data-density=expressive] .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start,
332
+ [data-density=expressive] .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end {
333
+ padding-block: var(--db-spacing-fixed-sm) calc(var(--db-spacing-fixed-sm) + calc(var(--db-border-width-xs) + var(--db-spacing-fixed-2xs)));
336
334
  }
337
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left:is(.db-button) {
335
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start {
338
336
  inset-inline-start: 0;
339
337
  }
340
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right:is(.db-button) {
338
+ .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end {
341
339
  inset-inline-end: 0;
342
340
  }
343
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left:is(.db-button),
344
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right > .db-button,
345
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right:is(.db-button) {
346
- position: absolute;
347
- z-index: 22;
348
- inset-block: var(--db-spacing-fixed-xs);
349
- }