@db-ux/core-components 4.7.0-tabs-34782eb → 4.7.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.
@@ -18,7 +18,85 @@
18
18
  pointer-events: none !important;
19
19
  }
20
20
 
21
- .db-tabs:not([data-orientation=vertical]) .db-tab-list .db-tab-item::after {
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 {
22
100
  block-size: var(--db-border-width-xs);
23
101
  inline-size: 0;
24
102
  transform: translate(-50%, 0);
@@ -26,23 +104,20 @@
26
104
  background-color: var(--db-brand-on-bg-basic-emphasis-70-default);
27
105
  inset-block: auto calc(-1 * var(--db-spacing-fixed-xs));
28
106
  }
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 {
107
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul .db-tab-item:has(input:checked)::after {
33
108
  block-size: var(--db-border-width-xs);
34
109
  inline-size: 100%;
35
110
  }
36
111
  @media (forced-colors: active), print {
37
- .db-tabs:not([data-orientation=vertical]) .db-tab-list .db-tab-item[aria-selected=true]::after {
112
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul .db-tab-item:has(input:checked)::after {
38
113
  border: calc(var(--db-border-width-xs) - 1px) solid var(--db-adaptive-on-bg-basic-emphasis-100-default);
39
114
  }
40
115
  }
41
- .db-tabs:not([data-orientation=vertical]) .db-tab-list .db-tab-item[aria-selected=true]::after {
42
- inline-size: 100%;
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)));
43
118
  }
44
119
 
45
- .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item::after {
120
+ .db-tabs[data-orientation=vertical] .db-tab-list > ul .db-tab-item::after {
46
121
  block-size: 0;
47
122
  inline-size: var(--db-border-width-xs);
48
123
  transform: translate(0, -50%);
@@ -50,24 +125,21 @@
50
125
  background-color: var(--db-brand-on-bg-basic-emphasis-70-default);
51
126
  inset-inline-start: calc(-1 * var(--db-spacing-fixed-xs));
52
127
  }
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;
128
+ .db-tabs[data-orientation=vertical] .db-tab-list > ul .db-tab-item::after {
129
+ inset-inline-start: 0;
130
+ z-index: -2;
56
131
  }
57
- .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item[aria-selected=true]::after {
132
+ .db-tabs[data-orientation=vertical] .db-tab-list > ul .db-tab-item:has(input:checked)::after {
58
133
  block-size: 100%;
59
134
  inline-size: var(--db-border-width-xs);
60
135
  }
61
136
  @media (forced-colors: active), print {
62
- .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item[aria-selected=true]::after {
137
+ .db-tabs[data-orientation=vertical] .db-tab-list > ul .db-tab-item:has(input:checked)::after {
63
138
  border: calc(var(--db-border-width-xs) - 1px) solid var(--db-adaptive-on-bg-basic-emphasis-100-default);
64
139
  }
65
140
  }
66
- .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item[aria-selected=true]::after {
67
- block-size: 100%;
68
- }
69
141
 
70
- .db-tabs[data-orientation=vertical] .db-tab-list::before {
142
+ .db-tabs[data-orientation=vertical] .db-tab-list::before, .db-tabs:not([data-orientation=vertical]) .db-tab-list::before {
71
143
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
72
144
  content: "";
73
145
  border-radius: var(--db-border-radius-xs);
@@ -82,259 +154,202 @@
82
154
  position: relative;
83
155
  }
84
156
  .db-tabs .db-tab-panel {
85
- padding: var(--db-spacing-fixed-xs);
86
- position: relative;
87
- z-index: 1;
157
+ padding: 0 var(--db-spacing-fixed-xs);
88
158
  }
89
159
  .db-tabs .db-tab-list {
90
- position: relative;
160
+ max-inline-size: 100%;
91
161
  z-index: 20;
92
162
  }
93
- .db-tabs .db-tab-list db-tab-item,
94
- .db-tabs .db-tab-list dbtabitem {
95
- display: contents;
163
+ .db-tabs .db-tab-list:has([id$=-tab-0]:checked) ~ [id$=-tab-panel-0]:not([hidden]) {
164
+ display: block;
165
+ }
166
+ .db-tabs .db-tab-list:has([id$=-tab-1]:checked) ~ [id$=-tab-panel-1]:not([hidden]) {
167
+ display: block;
168
+ }
169
+ .db-tabs .db-tab-list:has([id$=-tab-2]:checked) ~ [id$=-tab-panel-2]:not([hidden]) {
170
+ display: block;
171
+ }
172
+ .db-tabs .db-tab-list:has([id$=-tab-3]:checked) ~ [id$=-tab-panel-3]:not([hidden]) {
173
+ display: block;
174
+ }
175
+ .db-tabs .db-tab-list:has([id$=-tab-4]:checked) ~ [id$=-tab-panel-4]:not([hidden]) {
176
+ display: block;
177
+ }
178
+ .db-tabs .db-tab-list:has([id$=-tab-5]:checked) ~ [id$=-tab-panel-5]:not([hidden]) {
179
+ display: block;
180
+ }
181
+ .db-tabs .db-tab-list:has([id$=-tab-6]:checked) ~ [id$=-tab-panel-6]:not([hidden]) {
182
+ display: block;
183
+ }
184
+ .db-tabs .db-tab-list:has([id$=-tab-7]:checked) ~ [id$=-tab-panel-7]:not([hidden]) {
185
+ display: block;
186
+ }
187
+ .db-tabs .db-tab-list:has([id$=-tab-8]:checked) ~ [id$=-tab-panel-8]:not([hidden]) {
188
+ display: block;
189
+ }
190
+ .db-tabs .db-tab-list:has([id$=-tab-9]:checked) ~ [id$=-tab-panel-9]:not([hidden]) {
191
+ display: block;
192
+ }
193
+ .db-tabs .db-tab-list:has([id$=-tab-10]:checked) ~ [id$=-tab-panel-10]:not([hidden]) {
194
+ display: block;
195
+ }
196
+ .db-tabs {
197
+ /*
198
+ Variant Orientation HORIZONTAL
199
+ */
96
200
  }
97
201
  .db-tabs:not([data-orientation=vertical]) {
98
202
  flex-flow: column wrap;
99
203
  }
204
+ .db-tabs:not([data-orientation=vertical]) .db-tab-panel {
205
+ inline-size: 100%;
206
+ }
100
207
  .db-tabs:not([data-orientation=vertical]) .db-tab-list {
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;
208
+ /* horizontal track for pulse */
209
+ }
210
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list::before {
211
+ block-size: var(--db-border-width-xs);
212
+ inset-inline: var(--db-spacing-fixed-xs);
213
+ /* top position equals sum of: margin xs + padding xs + line-height + padding xs + margin 2xs */
214
+ inset-block-start: calc(3 * var(--db-spacing-fixed-xs) + var(--db-spacing-fixed-2xs) + var(--db-icon-font-size));
215
+ }
216
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul {
217
+ overflow: auto hidden;
116
218
  inline-size: 100%;
117
219
  }
220
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul .db-tab-item {
221
+ margin-block: var(--db-spacing-fixed-xs) calc(2 * var(--db-spacing-fixed-2xs) + var(--db-border-width-xs));
222
+ }
223
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul db-tab-item:first-of-type .db-tab-item,
224
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul dbtabitem:first-of-type .db-tab-item {
225
+ margin-inline-start: var(--db-spacing-fixed-xs);
226
+ }
227
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul db-tab-item:last-of-type .db-tab-item,
228
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul dbtabitem:last-of-type .db-tab-item {
229
+ margin-inline-end: var(--db-spacing-fixed-xs);
230
+ }
231
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul:not(:has(db-tab-item, dbtabitem)) .db-tab-item:first-of-type {
232
+ margin-inline-start: var(--db-spacing-fixed-xs);
233
+ }
234
+ .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul:not(:has(db-tab-item, dbtabitem)) .db-tab-item:last-of-type {
235
+ margin-inline-end: var(--db-spacing-fixed-xs);
236
+ }
237
+ .db-tabs {
238
+ /*
239
+ Variant Orientation VERTICAL
240
+ */
241
+ }
118
242
  .db-tabs[data-orientation=vertical] {
119
243
  flex-direction: row;
120
244
  }
245
+ .db-tabs[data-orientation=vertical] .db-tab-panel {
246
+ padding: var(--db-spacing-fixed-xs) 0;
247
+ }
121
248
  .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));
123
249
  /*
124
250
  min and nominal size must both be set to ensure
125
251
  - min-inline-size: tab-list is not displayed narrower than defined
126
252
  - max-inline-size: tab-list is not displayed wider than defined
127
253
  */
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);
254
+ /* stylelint-disable-next-line db-ux/use-sizing */
255
+ min-inline-size: var(--db-tab-list-vertical-width, var(--db-sizing-3xl));
256
+ /* stylelint-disable-next-line db-ux/use-sizing */
257
+ max-inline-size: var(--db-tab-list-vertical-width, var(--db-sizing-3xl));
258
+ /* horizontal space to the tab panels */
259
+ padding-inline-end: var(--db-spacing-fixed-xs);
260
+ /* ensures that tab-list (track) is only as high as all the tab-items together if open tab-panel is higher */
131
261
  margin-block-end: auto;
132
262
  }
263
+ .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item label {
264
+ position: relative;
265
+ }
266
+ .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 {
267
+ inline-size: fit-content;
268
+ }
269
+ .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 {
270
+ overflow: visible;
271
+ }
272
+ .db-tabs[data-orientation=vertical] .db-tab-list {
273
+ /* vertical track for pulse */
274
+ }
133
275
  .db-tabs[data-orientation=vertical] .db-tab-list::before {
134
- display: block;
135
- inset-inline-start: 0;
136
- inset-block: 0;
137
276
  inline-size: var(--db-border-width-xs);
138
- z-index: 1;
277
+ inset-block: var(--db-spacing-fixed-xs);
278
+ inset-inline-start: 0;
139
279
  }
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;
280
+ .db-tabs[data-orientation=vertical] .db-tab-list > ul {
143
281
  flex-direction: column;
144
- align-items: flex-start;
282
+ block-size: 100%;
145
283
  }
146
- .db-tabs[data-tab-item-width=full] .db-tab-list {
147
- inline-size: 100%;
284
+ .db-tabs[data-orientation=vertical] .db-tab-list > ul:not(:has(db-tab-item, dbtabitem)) .db-tab-item:first-of-type {
285
+ margin-block-start: var(--db-spacing-fixed-xs);
148
286
  }
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;
287
+ .db-tabs[data-orientation=vertical] .db-tab-list > ul:not(:has(db-tab-item, dbtabitem)) .db-tab-item:last-of-type {
288
+ margin-block-end: var(--db-spacing-fixed-xs);
154
289
  }
155
- .db-tabs[data-tab-item-width=full][data-tab-item-alignment=center] .db-tab-item {
156
- text-align: center;
157
- justify-content: center;
290
+ .db-tabs[data-orientation=vertical] .db-tab-item {
291
+ padding-inline-start: calc(var(--db-border-width-xs) + var(--db-spacing-fixed-2xs));
158
292
  }
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
+ .db-tabs[data-orientation=vertical] .db-tab-item input {
294
+ padding-inline-start: calc(var(--db-border-width-xs) + var(--db-spacing-fixed-2xs));
162
295
  }
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;
296
+ .db-tabs[data-orientation=vertical] db-tab-item:first-of-type .db-tab-item,
297
+ .db-tabs[data-orientation=vertical] dbtabitem:first-of-type .db-tab-item {
298
+ margin-block-start: var(--db-spacing-fixed-xs);
172
299
  }
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
+ .db-tabs[data-orientation=vertical] db-tab-item:last-of-type .db-tab-item,
301
+ .db-tabs[data-orientation=vertical] dbtabitem:last-of-type .db-tab-item {
302
+ margin-block-end: var(--db-spacing-fixed-xs);
175
303
  }
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
+ .db-tabs[data-width=full] .db-tab-list {
305
+ inline-size: 100%;
178
306
  }
179
- .db-tabs[data-scroll-behavior=scrollbar]:not([data-orientation=vertical]) .db-tab-list {
180
- background-image: none;
307
+ .db-tabs[data-width=full] .db-tab-item,
308
+ .db-tabs[data-width=full] .db-tab-item label {
309
+ inline-size: 100%;
181
310
  }
182
- .db-tabs[data-scroll-behavior=scrollbar]:not([data-orientation=vertical]) .db-tab-list::before {
183
- content: none;
311
+ .db-tabs[data-width=full][data-alignment=center] .db-tab-item label {
312
+ text-align: center;
313
+ justify-content: center;
184
314
  }
185
- .db-tabs[data-scroll-behavior=arrows] .db-tab-list::-webkit-scrollbar {
315
+ .db-tabs[data-scroll-behavior=arrows] .db-tab-list > ul::-webkit-scrollbar {
186
316
  display: none;
187
317
  }
188
- .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical])::before {
318
+ .db-tabs[data-scroll-behavior=arrows]:has(.tabs-scroll-left)::before {
189
319
  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);
196
- }
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
320
  }
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;
321
+ .db-tabs[data-scroll-behavior=arrows]:has(.tabs-scroll-right)::after {
322
+ content: "";
216
323
  }
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
+ .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::before, .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::after {
219
325
  position: absolute;
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
+ z-index: 21;
227
327
  background-color: var(--db-adaptive-bg-basic-level-1-default);
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
- }
328
+ inline-size: var(--db-sizing-md);
329
+ block-size: calc(var(--db-spacing-fixed-sm) + var(--db-sizing-md));
330
+ flex: 0 0 auto;
326
331
  }
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)));
332
+ .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::before {
333
+ inset-inline-start: 0;
330
334
  }
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)));
335
+ .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::after {
336
+ inset-inline-end: 0;
337
+ }
338
+ .db-tabs[data-scroll-behavior=arrows] {
339
+ /*
340
+ * Scroll left / right buttons
341
+ */
334
342
  }
335
- .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-start {
343
+ .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left:is(.db-button) {
336
344
  inset-inline-start: 0;
337
345
  }
338
- .db-tabs[data-scroll-behavior=arrows]:not([data-orientation=vertical]) .tabs-scroll-end {
346
+ .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right:is(.db-button) {
339
347
  inset-inline-end: 0;
340
348
  }
349
+ .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left:is(.db-button),
350
+ .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right > .db-button,
351
+ .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right:is(.db-button) {
352
+ position: absolute;
353
+ z-index: 22;
354
+ inset-block: var(--db-spacing-fixed-xs);
355
+ }