@db-ux/core-components 4.14.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/build/components/accordion-item/accordion-item.css +0 -1
  3. package/build/components/brand/brand.css +0 -1
  4. package/build/components/brand/brand.scss +0 -1
  5. package/build/components/button/button.css +4 -9
  6. package/build/components/checkbox/checkbox.css +0 -3
  7. package/build/components/checkbox/checkbox.scss +0 -2
  8. package/build/components/custom-button/custom-button.css +8 -13
  9. package/build/components/custom-button/custom-button.scss +2 -3
  10. package/build/components/custom-select/custom-select.css +0 -1
  11. package/build/components/custom-select-list-item/custom-select-list-item.css +6 -2
  12. package/build/components/custom-select-list-item/custom-select-list-item.scss +8 -3
  13. package/build/components/drawer/drawer.css +94 -166
  14. package/build/components/drawer/drawer.scss +160 -176
  15. package/build/components/drawer-footer/drawer-footer.css +34 -0
  16. package/build/components/drawer-footer/drawer-footer.scss +11 -0
  17. package/build/components/drawer-header/drawer-header.css +38 -0
  18. package/build/components/drawer-header/drawer-header.scss +17 -0
  19. package/build/components/header/header.css +50 -40
  20. package/build/components/header/header.scss +35 -21
  21. package/build/components/icon/icon.css +0 -6
  22. package/build/components/infotext/infotext.css +0 -4
  23. package/build/components/infotext/infotext.scss +0 -2
  24. package/build/components/input/input.css +0 -5
  25. package/build/components/link/link.css +5 -5
  26. package/build/components/link/link.scss +8 -3
  27. package/build/components/navigation/navigation.css +1 -2
  28. package/build/components/navigation/navigation.scss +2 -2
  29. package/build/components/navigation-item/navigation-item.css +15 -27
  30. package/build/components/navigation-item/navigation-item.scss +17 -21
  31. package/build/components/notification/notification.css +0 -1
  32. package/build/components/notification/notification.scss +0 -2
  33. package/build/components/select/select.css +0 -1
  34. package/build/components/switch/switch.css +0 -3
  35. package/build/components/switch/switch.scss +0 -1
  36. package/build/components/tab-item/tab-item.css +120 -98
  37. package/build/components/tab-item/tab-item.scss +89 -90
  38. package/build/components/tab-list/tab-list.css +38 -36
  39. package/build/components/tab-list/tab-list.scss +11 -9
  40. package/build/components/tab-panel/tab-panel.css +30 -4
  41. package/build/components/tab-panel/tab-panel.scss +60 -2
  42. package/build/components/table/table.css +0 -4
  43. package/build/components/table-row/table-row.css +0 -4
  44. package/build/components/table-row/table-row.scss +0 -5
  45. package/build/components/tabs/tabs.css +152 -263
  46. package/build/components/tabs/tabs.scss +243 -198
  47. package/build/components/tag/tag.css +2 -21
  48. package/build/components/tag/tag.scss +5 -7
  49. package/build/styles/absolute.css +11 -11
  50. package/build/styles/bundle.css +11 -11
  51. package/build/styles/index.css +10 -10
  52. package/build/styles/index.scss +3 -1
  53. package/build/styles/internal/_button-components.scss +7 -4
  54. package/build/styles/internal/_component.scss +4 -0
  55. package/build/styles/internal/_custom-elements.scss +3 -2
  56. package/build/styles/internal/_icon-passing.scss +9 -10
  57. package/build/styles/relative.css +11 -11
  58. package/build/styles/rollup.css +11 -11
  59. package/build/styles/wc-workarounds.css +1 -1
  60. package/build/styles/webpack.css +11 -11
  61. package/package.json +5 -5
@@ -1,131 +1,153 @@
1
1
  /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
2
2
  /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
3
3
  /* Variants for adaptive components like input, select, notification, ... */
4
- .db-visually-hidden,
5
- [data-visually-hidden=true] {
6
- position: absolute !important;
7
- inset-block-start: 0 !important;
8
- inline-size: 1px !important;
9
- block-size: 1px !important;
10
- overflow: hidden !important;
11
- clip: rect(0, 0, 0, 0) !important;
12
- white-space: nowrap !important;
13
- border: 0 !important;
14
- padding: 0 !important;
15
- pointer-events: none !important;
4
+ .db-tab-item .db-tab-item-label[data-icon]:not([data-show-icon=false])::before {
5
+ color: var(--db-icon-color, inherit);
6
+ display: inline-block;
7
+ /*** icon - placeholder ***/
8
+ font-family: var(--db-icon-font-family, var(--db-icon-default-font-family, "db-ux-default", "icon-font-fallback")) !important;
9
+ font-size: var(--db-icon-font-size, 1.5rem);
10
+ -webkit-font-smoothing: antialiased;
11
+ -moz-osx-font-smoothing: grayscale;
12
+ font-style: normal;
13
+ font-variant: normal;
14
+ font-weight: var(--db-icon-font-weight, normal);
15
+ line-height: 1;
16
+ /* stylelint-disable-next-line declaration-property-value-no-unknown */
17
+ speak: none;
18
+ /* stylelint-disable-next-line declaration-property-value-no-unknown */
19
+ speak: never;
20
+ text-transform: none;
21
+ overflow: clip;
22
+ vertical-align: var(--db-icon-vertical-align, middle);
23
+ /* stylelint-disable-next-line db-ux/use-sizing */
24
+ block-size: var(--db-icon-font-size, 1.5rem);
25
+ /* stylelint-disable-next-line db-ux/use-sizing */
26
+ inline-size: var(--db-icon-font-size, 1.5rem);
27
+ aspect-ratio: 1;
28
+ flex-shrink: 0;
29
+ content: var(--db-icon, attr(data-icon));
30
+ }
31
+ @supports (content: ""/"") {
32
+ .db-tab-item .db-tab-item-label[data-icon]:not([data-show-icon=false])::before {
33
+ content: var(--db-icon, attr(data-icon))/"";
34
+ }
35
+ }
36
+ @media aural {
37
+ .db-tab-item .db-tab-item-label[data-icon]:not([data-show-icon=false])::before {
38
+ content: none;
39
+ }
40
+ }
41
+ @media speech {
42
+ .db-tab-item .db-tab-item-label[data-icon]:not([data-show-icon=false])::before {
43
+ content: none;
44
+ }
16
45
  }
17
46
 
18
- .db-tab-item input:not([data-disable-focus=true]):focus-visible::before {
19
- outline: var(--db-border-width-2xs) solid var(--db-focus-outline-color, var(--db-informational-on-bg-basic-emphasis-70-default));
20
- outline-offset: var(--db-border-width-xs);
21
- box-shadow: 0 0 0 var(--db-border-width-xs) var(--db-focus-box-shadow-bg-color, transparent);
22
- }
23
- .db-tab-item input:not([data-disable-focus=true]):not([type=radio], [role=switch]):focus-visible::before {
47
+ .db-tab-item::after {
48
+ content: "";
49
+ position: absolute;
24
50
  border-radius: var(--db-border-radius-xs);
51
+ background: linear-gradient(135deg, var(--db-pride-red, var(--db-brand-on-bg-basic-emphasis-70-default)) 16.7%, var(--db-pride-orange, var(--db-brand-on-bg-basic-emphasis-70-default)) 0, var(--db-pride-orange, var(--db-brand-on-bg-basic-emphasis-70-default)) 33.4%, var(--db-pride-yellow, var(--db-brand-on-bg-basic-emphasis-70-default)) 0, var(--db-pride-yellow, var(--db-brand-on-bg-basic-emphasis-70-default)) 50.1%, var(--db-pride-green, var(--db-brand-on-bg-basic-emphasis-70-default)) 0, var(--db-pride-green, var(--db-brand-on-bg-basic-emphasis-70-default)) 66.8%, var(--db-pride-blue, var(--db-brand-on-bg-basic-emphasis-70-default)) 0, var(--db-pride-blue, var(--db-brand-on-bg-basic-emphasis-70-default)) 83.5%, var(--db-pride-violet, var(--db-brand-on-bg-basic-emphasis-70-default)) 0);
52
+ }
53
+ @media (prefers-reduced-motion: no-preference) {
54
+ .db-tab-item::after {
55
+ transition: block-size var(--db-transition-duration-fast) var(--db-transition-timing-emotional), inline-size var(--db-transition-duration-fast) var(--db-transition-timing-emotional);
56
+ }
25
57
  }
26
58
 
27
59
  .db-tab-item {
28
- position: relative;
29
- }
30
- .db-tab-item:not([hidden]) {
31
- display: inline-flex;
60
+ border: var(--db-border-width-3xs) solid transparent;
32
61
  }
62
+
33
63
  .db-tab-item {
34
- list-style-type: "";
35
- border-radius: var(--db-border-radius-sm);
36
- }
37
- .db-tab-item:has(input:disabled) {
38
- opacity: var(--db-opacity-md);
39
- }
40
- .db-tab-item label {
64
+ position: relative;
41
65
  background-color: var(--db-adaptive-bg-basic-transparent-full-default);
42
66
  padding: var(--db-spacing-fixed-xs);
67
+ margin: 0;
68
+ overflow: visible;
43
69
  align-items: center;
44
- }
45
- .db-tab-item label:not([hidden]) {
46
- display: inline-block;
47
- }
48
- .db-tab-item label {
70
+ justify-content: center;
49
71
  white-space: nowrap;
50
- border: 0;
51
72
  border-radius: var(--db-border-radius-sm);
73
+ font: inherit;
74
+ color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
75
+ flex-shrink: 0;
76
+ max-inline-size: var(--db-sizing-2xl);
77
+ }
78
+ @media screen and (prefers-reduced-motion: no-preference) {
79
+ .db-tab-item {
80
+ transition: background-color var(--db-transition-duration-fast);
81
+ }
82
+ }
83
+ .db-tab-item .db-tab-item-label {
84
+ max-inline-size: 100%;
85
+ }
86
+ .db-tab-item .db-tab-item-label:not([hidden]) {
87
+ display: flex;
88
+ }
89
+ .db-tab-item .db-tab-item-label {
90
+ align-items: center;
91
+ gap: var(--db-spacing-fixed-xs);
92
+ }
93
+ .db-tab-item .db-tab-item-label .db-tab-item-label-text {
52
94
  overflow: hidden;
53
95
  text-overflow: ellipsis;
96
+ white-space: nowrap;
54
97
  }
55
- .db-tab-item label:has(input:disabled) {
56
- --db-overwrite-cursor: initial;
98
+ .db-tab-item .db-tab-item-label .db-tab-item-label-end-slot {
99
+ display: inherit;
100
+ align-items: center;
101
+ gap: var(--db-spacing-fixed-xs);
57
102
  }
58
- .db-tab-item label:not(:disabled, [aria-disabled=true], [tabindex="-1"], :has(:disabled)) {
59
- /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
103
+ .db-tab-item .db-tab-item-label .db-tab-item-label-end-slot:empty {
104
+ display: none;
60
105
  }
61
- .db-tab-item label:not(:disabled, [aria-disabled=true], [tabindex="-1"], :has(:disabled)):hover {
62
- cursor: var(--db-overwrite-cursor, pointer);
63
- background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
106
+ .db-tab-item .db-tab-item-label[data-icon]:not([data-show-icon=false])::before {
107
+ margin-inline-end: 0;
108
+ flex-shrink: 0;
64
109
  }
65
- .db-tab-item label:not(:disabled, [aria-disabled=true], [tabindex="-1"], :has(:disabled)):active {
66
- cursor: var(--db-overwrite-cursor, pointer);
67
- background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
110
+ .db-tab-item .db-tab-item-label[data-icon-trailing]:not([data-show-icon-trailing=false])::after {
111
+ margin-inline-start: 0;
112
+ flex-shrink: 0;
68
113
  }
69
- .db-tab-item label:has(input:checked) {
70
- font-weight: 700;
114
+ [data-orientation=vertical] .db-tab-item .db-tab-item-label {
115
+ overflow: hidden;
71
116
  }
72
- .db-tab-item label[data-icon] {
73
- padding-inline-start: calc(var(--db-spacing-fixed-xs) + var(--db-spacing-fixed-sm) + var(--db-icon-font-size));
117
+ .db-tab-item:not([hidden]) {
118
+ display: flex;
74
119
  }
75
- .db-tab-item label[data-icon]::before {
76
- position: absolute;
77
- transform: translateY(-50%);
78
- inset-block-start: 50%;
79
- inset-inline-start: calc(0% + var(--db-spacing-fixed-xs));
120
+ .db-tab-item::after {
121
+ inline-size: 0;
122
+ block-size: var(--db-border-width-xs);
80
123
  }
81
- .db-tab-item label[data-icon-trailing] {
82
- padding-inline-end: calc(var(--db-spacing-fixed-xs) + var(--db-spacing-fixed-sm) + var(--db-icon-font-size));
124
+ @media screen and (prefers-reduced-motion: no-preference) {
125
+ .db-tab-item::after {
126
+ transition: block-size var(--db-transition-duration-fast) var(--db-transition-timing-emotional), inline-size var(--db-transition-duration-fast) var(--db-transition-timing-emotional);
127
+ }
83
128
  }
84
- .db-tab-item label[data-icon-trailing]::after {
85
- position: absolute;
86
- transform: translateY(-50%);
87
- inset-block-start: 50%;
88
- inset-inline-end: calc(0% + var(--db-spacing-fixed-xs));
129
+ [data-orientation=vertical] .db-tab-item::after {
130
+ inline-size: var(--db-border-width-xs);
131
+ block-size: 0;
89
132
  }
90
- .db-tab-item label:is([data-no-text], [data-no-text=true]) {
91
- font-size: 0 !important;
133
+ [data-orientation=vertical] .db-tab-item {
134
+ max-inline-size: 100%;
135
+ inline-size: 100%;
136
+ flex-shrink: 1;
137
+ justify-content: flex-start;
92
138
  }
93
- .db-tab-item label:is([data-no-text], [data-no-text=true])::before {
94
- --db-icon-margin-end: 0;
139
+ .db-tab-item[aria-selected=true] {
140
+ font-weight: 700;
95
141
  }
96
- .db-tab-item label:is([data-no-text], [data-no-text=true]) {
97
- /* stylelint-disable-next-line at-rule-empty-line-before */
98
- padding: 0;
99
- inline-size: calc(calc(var(--db-spacing-fixed-xs) + var(--db-spacing-fixed-sm) + var(--db-icon-font-size)) - var(--db-spacing-fixed-2xs));
100
- block-size: calc(var(--db-icon-font-size) + var(--db-spacing-fixed-xs));
142
+ .db-tab-item:disabled {
143
+ opacity: var(--db-opacity-md);
144
+ cursor: initial;
101
145
  }
102
- .db-tab-item label:is([data-no-text], [data-no-text=true])::before {
103
- margin-inline-end: 0;
146
+ .db-tab-item:not(:disabled):hover, .db-tab-item:not(:disabled):focus {
147
+ cursor: pointer;
148
+ background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
104
149
  }
105
- .db-tab-item input {
106
- position: absolute;
107
- appearance: none;
108
- inline-size: 100%;
109
- margin-inline-end: initial;
110
- inset: 0;
111
- background-color: var(--db-adaptive-bg-basic-transparent-full-default);
112
- border-radius: var(--db-border-radius-sm);
113
- z-index: -1;
114
- /*
115
- focus must be set on input:
116
- - parent label tag may use before AND after for displaying icons
117
- - placed on li.db-tab-item focus would get cut off partially by by overflow hidden (orientation vertical)
118
- */
119
- }
120
- .db-tab-item input:focus-visible:is(input[type=radio]) {
121
- outline: none;
122
- box-shadow: none;
123
- }
124
- .db-tab-item input:focus-visible::before {
125
- content: "";
126
- position: absolute;
127
- inset: 0;
128
- border-radius: var(--db-border-radius-sm);
129
- z-index: 10;
130
- pointer-events: none;
150
+ .db-tab-item:not(:disabled):active {
151
+ cursor: pointer;
152
+ background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
131
153
  }
@@ -1,126 +1,125 @@
1
1
  @use "@db-ux/core-foundations/build/styles/variables";
2
2
  @use "@db-ux/core-foundations/build/styles/colors";
3
- @use "@db-ux/core-foundations/build/styles/icons";
4
3
  @use "@db-ux/core-foundations/build/styles/helpers";
4
+ @use "@db-ux/core-foundations/build/styles/icons";
5
+ @use "@db-ux/core-foundations/build/styles/fonts";
6
+ @use "../../styles/internal/indicator";
5
7
  @use "../../styles/internal/component";
6
- @use "../../styles/internal/form-components";
7
-
8
- $with-icon-padding-calc: calc(
9
- #{variables.$db-spacing-fixed-xs} + #{variables.$db-spacing-fixed-sm} +
10
- #{form-components.$font-size-height}
11
- );
12
8
 
13
9
  .db-tab-item {
14
10
  position: relative;
15
-
16
- @include helpers.display(inline-flex);
17
-
18
- list-style-type: "";
11
+ background-color: colors.$db-adaptive-bg-basic-transparent-full-default;
12
+ padding: variables.$db-spacing-fixed-xs;
13
+ margin: 0;
14
+ overflow: visible;
15
+ align-items: center;
16
+ justify-content: center;
17
+ white-space: nowrap;
19
18
  border-radius: variables.$db-border-radius-sm;
19
+ font: inherit;
20
+ color: colors.$db-adaptive-on-bg-basic-emphasis-100-default;
21
+ flex-shrink: 0;
22
+ max-inline-size: variables.$db-sizing-2xl;
20
23
 
21
- &:has(input:disabled) {
22
- opacity: variables.$db-opacity-md;
24
+ @extend %transparent-border;
25
+
26
+ @media screen and (prefers-reduced-motion: no-preference) {
27
+ transition: background-color variables.$db-transition-duration-fast;
23
28
  }
24
29
 
25
- label {
26
- background-color: colors.$db-adaptive-bg-basic-transparent-full-default;
27
- padding: variables.$db-spacing-fixed-xs;
28
- align-items: center;
30
+ .db-tab-item-label {
31
+ max-inline-size: 100%;
29
32
 
30
- @include helpers.display(inline-block);
33
+ @include helpers.display(flex);
31
34
 
32
- white-space: nowrap;
33
- border: 0;
34
- border-radius: variables.$db-border-radius-sm;
35
- overflow: hidden;
36
- text-overflow: ellipsis;
35
+ align-items: center;
36
+ gap: variables.$db-spacing-fixed-xs;
37
37
 
38
- &:has(input:disabled) {
39
- --db-overwrite-cursor: initial;
38
+ .db-tab-item-label-text {
39
+ overflow: hidden;
40
+ text-overflow: ellipsis;
41
+ white-space: nowrap;
40
42
  }
41
43
 
42
- @include helpers.interactive-bg(
43
- colors.$db-adaptive-bg-basic-transparent-full-hovered,
44
- colors.$db-adaptive-bg-basic-transparent-full-pressed
45
- );
44
+ .db-tab-item-label-end-slot {
45
+ display: inherit;
46
+ align-items: center;
47
+ gap: variables.$db-spacing-fixed-xs;
46
48
 
47
- &:has(input:checked) {
48
- font-weight: 700;
49
+ &:empty {
50
+ display: none;
51
+ }
49
52
  }
50
53
 
51
- &[data-icon] {
52
- padding-inline-start: $with-icon-padding-calc;
53
-
54
+ &[data-icon]:not([data-show-icon="false"]) {
54
55
  &::before {
55
- position: absolute;
56
- transform: translateY(-50%);
57
- inset-block-start: 50%;
58
- inset-inline-start: calc(
59
- 0% + #{variables.$db-spacing-fixed-xs}
60
- );
56
+ @extend %icon;
57
+
58
+ margin-inline-end: 0;
59
+ flex-shrink: 0;
61
60
  }
62
61
  }
63
62
 
64
- &[data-icon-trailing] {
65
- padding-inline-end: $with-icon-padding-calc;
66
-
63
+ &[data-icon-trailing]:not([data-show-icon-trailing="false"]) {
67
64
  &::after {
68
- position: absolute;
69
- transform: translateY(-50%);
70
- inset-block-start: 50%;
71
- inset-inline-end: calc(0% + #{variables.$db-spacing-fixed-xs});
65
+ margin-inline-start: 0;
66
+ flex-shrink: 0;
72
67
  }
73
68
  }
69
+ }
70
+
71
+ [data-orientation="vertical"] & .db-tab-item-label {
72
+ overflow: hidden;
73
+ }
74
74
 
75
- &:is([data-no-text], [data-no-text="true"]) {
76
- @include icons.is-icon-text-replace;
75
+ @extend %indicator;
76
+ @include helpers.display(flex);
77
77
 
78
- padding: 0;
79
- inline-size: calc(
80
- #{$with-icon-padding-calc} - #{variables.$db-spacing-fixed-2xs}
81
- );
82
- block-size: calc(
83
- #{form-components.$font-size-height} +
84
- #{variables.$db-spacing-fixed-xs}
85
- );
78
+ &::after {
79
+ inline-size: 0;
80
+ block-size: variables.$db-border-width-xs;
86
81
 
87
- &::before {
88
- margin-inline-end: 0;
89
- }
82
+ @media screen and (prefers-reduced-motion: no-preference) {
83
+ transition:
84
+ block-size variables.$db-transition-duration-fast
85
+ variables.$db-transition-timing-emotional,
86
+ inline-size variables.$db-transition-duration-fast
87
+ variables.$db-transition-timing-emotional;
88
+ }
89
+
90
+ [data-orientation="vertical"] & {
91
+ inline-size: variables.$db-border-width-xs;
92
+ block-size: 0;
90
93
  }
91
94
  }
92
95
 
93
- input {
94
- position: absolute;
95
- appearance: none;
96
+ [data-orientation="vertical"] & {
97
+ max-inline-size: 100%;
96
98
  inline-size: 100%;
97
- margin-inline-end: initial;
98
- inset: 0;
99
- background-color: colors.$db-adaptive-bg-basic-transparent-full-default;
100
- border-radius: variables.$db-border-radius-sm;
101
- z-index: -1;
102
-
103
- /*
104
- focus must be set on input:
105
- - parent label tag may use before AND after for displaying icons
106
- - placed on li.db-tab-item focus would get cut off partially by by overflow hidden (orientation vertical)
107
- */
108
- &:focus-visible {
109
- &:is(input[type="radio"]) {
110
- outline: none;
111
- box-shadow: none;
112
- }
99
+ flex-shrink: 1;
100
+ justify-content: flex-start;
101
+ }
113
102
 
114
- &::before {
115
- @extend %focus-placeholder;
116
-
117
- content: "";
118
- position: absolute;
119
- inset: 0;
120
- border-radius: variables.$db-border-radius-sm;
121
- z-index: 10;
122
- pointer-events: none;
123
- }
124
- }
103
+ &[aria-selected="true"] {
104
+ font-weight: 700;
105
+ }
106
+
107
+ &:disabled {
108
+ opacity: variables.$db-opacity-md;
109
+ cursor: initial;
110
+ }
111
+
112
+ // Cannot use @include helpers.hover here because the mixin EXCLUDES
113
+ // [tabindex="-1"] elements. Tab items use roving tabindex where inactive
114
+ // tabs have tabindex="-1" but should still show hover effects.
115
+ &:not(:disabled):hover,
116
+ &:not(:disabled):focus {
117
+ cursor: pointer;
118
+ background-color: colors.$db-adaptive-bg-basic-transparent-full-hovered;
119
+ }
120
+
121
+ &:not(:disabled):active {
122
+ cursor: pointer;
123
+ background-color: colors.$db-adaptive-bg-basic-transparent-full-pressed;
125
124
  }
126
125
  }
@@ -1,6 +1,3 @@
1
- /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
2
- /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
3
- /* Variants for adaptive components like input, select, notification, ... */
4
1
  .db-visually-hidden,
5
2
  [data-visually-hidden=true] {
6
3
  position: absolute !important;
@@ -15,8 +12,18 @@
15
12
  pointer-events: none !important;
16
13
  }
17
14
 
15
+ /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
16
+ /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
17
+ /* Variants for adaptive components like input, select, notification, ... */
18
+ .db-tab-list {
19
+ font: var(--db-type-body-md);
20
+ /* Those variables are only for components to calculate heights and change icons */
21
+ --db-icon-font-weight: var(--db-base-body-icon-weight-md);
22
+ --db-icon-font-size: var(--db-base-body-icon-font-size-md);
23
+ }
24
+
18
25
  @media (prefers-reduced-motion: no-preference) {
19
- .db-tab-list > ul::-webkit-scrollbar, .db-tab-list > ul::-webkit-scrollbar-corner {
26
+ .db-tab-list::-webkit-scrollbar, .db-tab-list::-webkit-scrollbar-corner {
20
27
  transition: outline var(--db-transition-duration-extra-fast), box-shadow var(--db-transition-duration-extra-fast), border-color var(--db-transition-straight-emotional), background-color var(--db-transition-straight-emotional);
21
28
  }
22
29
  }
@@ -38,86 +45,79 @@
38
45
  transform: rotate(1turn);
39
46
  }
40
47
  }
41
- .db-tab-list {
42
- font: var(--db-type-body-md);
43
- /* Those variables are only for components to calculate heights and change icons */
44
- --db-icon-font-weight: var(--db-base-body-icon-weight-md);
45
- --db-icon-font-size: var(--db-base-body-icon-font-size-md);
46
- }
47
-
48
48
  @supports (field-sizing: content) {
49
- .db-tab-list > ul[data-field-sizing=content]:is([data-hide-resizer=true], [data-resize=none]) {
49
+ [data-field-sizing=content].db-tab-list:is([data-hide-resizer=true], [data-resize=none]) {
50
50
  /* We don't show a scrollbar if we use field-sizing: content and no resizer is available */
51
51
  scrollbar-width: none;
52
52
  }
53
53
  }
54
- .db-tab-list > ul::-webkit-scrollbar {
54
+ .db-tab-list::-webkit-scrollbar {
55
55
  z-index: 3;
56
56
  inline-size: 0.5rem;
57
57
  block-size: 0.5rem;
58
58
  background-color: var(--db-adaptive-bg-basic-level-1-default);
59
59
  border-start-end-radius: var(--db-border-radius-xs);
60
60
  }
61
- .db-tab-list > ul:is(:hover, :focus)::-webkit-scrollbar-track, .db-tab-list > ul:is(:hover, :focus)::-webkit-scrollbar-button:single-button {
61
+ .db-tab-list:is(:hover, :focus)::-webkit-scrollbar-track, .db-tab-list:is(:hover, :focus)::-webkit-scrollbar-button:single-button {
62
62
  background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
63
63
  }
64
- .db-tab-list > ul:read-only::-webkit-scrollbar-track, .db-tab-list > ul:read-only::-webkit-scrollbar-button:single-button {
64
+ .db-tab-list:read-only::-webkit-scrollbar-track, .db-tab-list:read-only::-webkit-scrollbar-button:single-button {
65
65
  background-color: var(--db-adaptive-bg-basic-level-1-default);
66
66
  }
67
- .db-tab-list > ul::-webkit-scrollbar-track {
67
+ .db-tab-list::-webkit-scrollbar-track {
68
68
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
69
69
  }
70
- .db-tab-list > ul::-webkit-scrollbar-thumb {
70
+ .db-tab-list::-webkit-scrollbar-thumb {
71
71
  background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
72
72
  }
73
- .db-tab-list > ul {
73
+ .db-tab-list {
74
74
  /* Buttons */
75
75
  }
76
- .db-tab-list > ul::-webkit-scrollbar-button:single-button {
76
+ .db-tab-list::-webkit-scrollbar-button:single-button {
77
77
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
78
78
  background-size: 0.5rem;
79
79
  background-repeat: no-repeat;
80
80
  background-position: center;
81
81
  block-size: calc(var(--db-spacing-fixed-3xs) + var(--db-spacing-fixed-2xs) + var(--db-base-body-icon-font-size-2xs));
82
82
  }
83
- .db-tab-list > ul::-webkit-scrollbar-button:single-button:is(:hover, :focus) {
83
+ .db-tab-list::-webkit-scrollbar-button:single-button:is(:hover, :focus) {
84
84
  background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
85
85
  }
86
- .db-tab-list > ul::-webkit-scrollbar-button:single-button:active {
86
+ .db-tab-list::-webkit-scrollbar-button:single-button:active {
87
87
  background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
88
88
  }
89
- .db-tab-list > ul {
89
+ .db-tab-list {
90
90
  /* Up */
91
91
  }
92
- .db-tab-list > ul::-webkit-scrollbar-button:single-button:vertical:decrement {
92
+ .db-tab-list::-webkit-scrollbar-button:single-button:vertical:decrement {
93
93
  border-start-end-radius: var(--db-border-radius-xs);
94
94
  background-image: var(--db-scrollbar-button-vertical-decrement);
95
95
  }
96
- .db-tab-list > ul {
96
+ .db-tab-list {
97
97
  /* Down */
98
98
  }
99
- .db-tab-list > ul::-webkit-scrollbar-button:single-button:vertical:increment {
99
+ .db-tab-list::-webkit-scrollbar-button:single-button:vertical:increment {
100
100
  background-image: var(--db-scrollbar-button-vertical-increment);
101
101
  }
102
- .db-tab-list > ul {
102
+ .db-tab-list {
103
103
  /* Left */
104
104
  }
105
- .db-tab-list > ul::-webkit-scrollbar-button:single-button:horizontal:decrement {
105
+ .db-tab-list::-webkit-scrollbar-button:single-button:horizontal:decrement {
106
106
  background-image: var(--db-scrollbar-button-horizontal-decrement);
107
107
  }
108
- .db-tab-list > ul {
108
+ .db-tab-list {
109
109
  /* Right */
110
110
  }
111
- .db-tab-list > ul::-webkit-scrollbar-button:single-button:horizontal:increment {
111
+ .db-tab-list::-webkit-scrollbar-button:single-button:horizontal:increment {
112
112
  background-image: var(--db-scrollbar-button-horizontal-increment);
113
113
  }
114
- .db-tab-list > ul[data-variant=floating]::-webkit-resizer {
114
+ [data-variant=floating].db-tab-list::-webkit-resizer {
115
115
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
116
116
  }
117
- .db-tab-list > ul[data-variant=floating]::-webkit-scrollbar-corner {
117
+ [data-variant=floating].db-tab-list::-webkit-scrollbar-corner {
118
118
  background-color: var(--db-adaptive-bg-basic-level-1-default);
119
119
  }
120
- .db-tab-list > ul::-webkit-resizer {
120
+ .db-tab-list::-webkit-resizer {
121
121
  background-color: var(--db-adaptive-bg-basic-transparent-full-default);
122
122
  background-size: 0.5rem;
123
123
  background-repeat: no-repeat;
@@ -125,17 +125,19 @@
125
125
  background-image: var(--db-textarea-resizer-image);
126
126
  border-end-end-radius: var(--db-border-radius-xs);
127
127
  }
128
- .db-tab-list > ul::-webkit-scrollbar-corner {
128
+ .db-tab-list::-webkit-scrollbar-corner {
129
129
  border-end-end-radius: var(--db-border-radius-xs);
130
130
  }
131
131
 
132
132
  .db-tab-list {
133
133
  position: relative;
134
- }
135
- .db-tab-list > ul {
136
134
  display: flex;
137
- gap: var(--db-spacing-fixed-sm);
135
+ gap: var(--db-spacing-fixed-2xs);
138
136
  scroll-behavior: smooth;
139
137
  padding: 0;
140
138
  margin: 0;
141
139
  }
140
+ [data-orientation=vertical] .db-tab-list {
141
+ flex-direction: column;
142
+ align-items: stretch;
143
+ }
@@ -1,18 +1,20 @@
1
1
  @use "@db-ux/core-foundations/build/styles/variables";
2
+ @use "@db-ux/core-foundations/build/styles/fonts";
2
3
  @use "../../styles/internal/scrollbar";
3
4
 
4
5
  .db-tab-list {
5
- @extend %db-overwrite-font-size-md;
6
-
7
6
  position: relative;
7
+ display: flex;
8
+ gap: variables.$db-spacing-fixed-2xs;
9
+ scroll-behavior: smooth;
10
+ padding: 0;
11
+ margin: 0;
8
12
 
9
- > ul {
10
- @extend %scrollbar;
13
+ @extend %db-overwrite-font-size-md;
14
+ @extend %scrollbar;
11
15
 
12
- display: flex;
13
- gap: variables.$db-spacing-fixed-sm;
14
- scroll-behavior: smooth;
15
- padding: 0;
16
- margin: 0;
16
+ [data-orientation="vertical"] & {
17
+ flex-direction: column;
18
+ align-items: stretch;
17
19
  }
18
20
  }