@db-ux/core-components 4.14.0-shell-52d18db → 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.
- package/CHANGELOG.md +28 -0
- package/agent/Best-Practise_Common-AI-Mistakes.md +3 -3
- package/build/components/accordion-item/accordion-item.css +0 -1
- package/build/components/brand/brand.css +0 -1
- package/build/components/brand/brand.scss +0 -1
- package/build/components/button/button.css +4 -9
- package/build/components/checkbox/checkbox.css +0 -3
- package/build/components/checkbox/checkbox.scss +0 -2
- package/build/components/custom-button/custom-button.css +8 -13
- package/build/components/custom-button/custom-button.scss +2 -3
- package/build/components/custom-select/custom-select.css +0 -1
- package/build/components/custom-select-list-item/custom-select-list-item.css +6 -2
- package/build/components/custom-select-list-item/custom-select-list-item.scss +8 -3
- package/build/components/drawer/drawer.css +32 -21
- package/build/components/drawer/drawer.scss +50 -26
- package/build/components/header/header.css +3 -10
- package/build/components/header/header.scss +7 -6
- package/build/components/icon/icon.css +0 -6
- package/build/components/infotext/infotext.css +0 -4
- package/build/components/infotext/infotext.scss +0 -2
- package/build/components/input/input.css +0 -5
- package/build/components/link/link.css +6 -9
- package/build/components/link/link.scss +8 -3
- package/build/components/navigation/navigation.css +1 -2
- package/build/components/navigation/navigation.scss +2 -2
- package/build/components/navigation-item/navigation-item.css +5 -28
- package/build/components/navigation-item/navigation-item.scss +5 -24
- package/build/components/notification/notification.css +1 -5
- package/build/components/notification/notification.scss +0 -2
- package/build/components/page/page.css +0 -8
- package/build/components/page/page.scss +0 -8
- package/build/components/select/select.css +0 -1
- package/build/components/stack/stack-web-component.css +0 -1
- package/build/components/stack/stack.css +0 -1
- package/build/components/switch/switch.css +0 -3
- package/build/components/switch/switch.scss +0 -1
- package/build/components/tab-item/tab-item.css +120 -98
- package/build/components/tab-item/tab-item.scss +89 -90
- package/build/components/tab-list/tab-list.css +38 -36
- package/build/components/tab-list/tab-list.scss +11 -9
- package/build/components/tab-panel/tab-panel.css +30 -4
- package/build/components/tab-panel/tab-panel.scss +60 -2
- package/build/components/table/table.css +0 -4
- package/build/components/table-row/table-row.css +0 -4
- package/build/components/table-row/table-row.scss +0 -5
- package/build/components/tabs/tabs.css +152 -263
- package/build/components/tabs/tabs.scss +243 -198
- package/build/components/tag/tag.css +2 -21
- package/build/components/tag/tag.scss +5 -7
- package/build/styles/absolute.css +12 -12
- package/build/styles/bundle.css +12 -12
- package/build/styles/index.css +11 -11
- package/build/styles/index.scss +3 -17
- package/build/styles/internal/_button-components.scss +7 -4
- package/build/styles/internal/_custom-elements.scss +8 -32
- package/build/styles/internal/_icon-passing.scss +9 -10
- package/build/styles/internal/_link-components.scss +1 -3
- package/build/styles/relative.css +12 -12
- package/build/styles/rollup.css +12 -12
- package/build/styles/wc-workarounds.css +1 -1
- package/build/styles/wc-workarounds.scss +0 -11
- package/build/styles/webpack.css +12 -12
- package/package.json +4 -4
- package/build/components/control-panel-brand/control-panel-brand.css +0 -53
- package/build/components/control-panel-brand/control-panel-brand.scss +0 -48
- package/build/components/control-panel-desktop/control-panel-desktop.css +0 -579
- package/build/components/control-panel-desktop/control-panel-desktop.scss +0 -30
- package/build/components/control-panel-flat-icon/control-panel-flat-icon.css +0 -258
- package/build/components/control-panel-flat-icon/control-panel-flat-icon.scss +0 -239
- package/build/components/control-panel-meta/control-panel-meta.css +0 -14
- package/build/components/control-panel-meta/control-panel-meta.scss +0 -15
- package/build/components/control-panel-mobile/control-panel-mobile.css +0 -442
- package/build/components/control-panel-mobile/control-panel-mobile.scss +0 -119
- package/build/components/control-panel-navigation/control-panel-navigation.css +0 -402
- package/build/components/control-panel-navigation/control-panel-navigation.scss +0 -186
- package/build/components/control-panel-navigation-item/control-panel-navigation-item.css +0 -87
- package/build/components/control-panel-navigation-item/control-panel-navigation-item.scss +0 -39
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-popover.css +0 -21
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-popover.scss +0 -129
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-tree.css +0 -35
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-tree.scss +0 -36
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group.css +0 -158
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group.scss +0 -80
- package/build/components/control-panel-primary-actions/control-panel-primary-actions.css +0 -12
- package/build/components/control-panel-primary-actions/control-panel-primary-actions.scss +0 -7
- package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.css +0 -12
- package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.scss +0 -7
- package/build/components/control-panel-skip-navigation/control-panel-skip-navigation.css +0 -23
- package/build/components/control-panel-skip-navigation/control-panel-skip-navigation.scss +0 -25
- package/build/components/shell/shell-desktop.css +0 -475
- package/build/components/shell/shell-desktop.scss +0 -105
- package/build/components/shell/shell-mobile.css +0 -441
- package/build/components/shell/shell-mobile.scss +0 -148
- package/build/components/shell/shell.css +0 -1670
- package/build/components/shell/shell.scss +0 -70
- package/build/components/shell-content/shell-content.css +0 -34
- package/build/components/shell-content/shell-content.scss +0 -53
- package/build/components/shell-sub-navigation/shell-sub-navigation.css +0 -51
- package/build/components/shell-sub-navigation/shell-sub-navigation.scss +0 -184
- package/build/styles/internal/_control-panel-actions.scss +0 -11
- package/build/styles/internal/_control-panel-desktop.scss +0 -412
- package/build/styles/internal/_control-panel-mobile.scss +0 -107
- package/build/styles/internal/_navigation-item.scss +0 -122
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @db-ux/core-components
|
|
2
2
|
|
|
3
|
+
## 5.0.0
|
|
4
|
+
|
|
5
|
+
We're providing a [migration guide for all 4.x to 5.0.0](https://github.com/db-ux-design-system/core-web/blob/main/docs/migration/v4.x.x-to-v5.0.0.md) changes.
|
|
6
|
+
|
|
7
|
+
### Major Changes
|
|
8
|
+
|
|
9
|
+
- refactor: DBDrawer with breaking changes - [see commit 9189f6c](https://github.com/db-ux-design-system/core-web/commit/9189f6c24cd3a64f072c2f60f8c8127d1ed68c55):
|
|
10
|
+
|
|
11
|
+
- The `DBDrawer` component now requires a `DBDrawerHeader` component to be passed in the `header` slot.
|
|
12
|
+
- The `spacing` property has been removed from `DBDrawer`.
|
|
13
|
+
- The default `direction` has changed from `right` to `to-left`.
|
|
14
|
+
- The `width` property has been renamed to `containerSize`.
|
|
15
|
+
- The `direction` values have been renamed from `right`/`left` to `to-left`/`to-right`.
|
|
16
|
+
|
|
17
|
+
- refactor: remove default `margin-inline` from `[data-icon]` pseudo-elements in favor of `gap` - [see commit 635f4b7](https://github.com/db-ux-design-system/core-web/commit/635f4b7ff6ce2aa9341932cb0b8a9c8657ed1ade)
|
|
18
|
+
|
|
19
|
+
- refactor: rework DBTabs and DBTabItem - [see commit c50e522](https://github.com/db-ux-design-system/core-web/commit/c50e5221a4c6f3357ff52451291bdc5772267178):
|
|
20
|
+
|
|
21
|
+
- **Breaking:** DBTabItem now renders a native `button` (`role="tab"`) instead of a radio `input`.
|
|
22
|
+
- **Breaking:** Removed `checked`, `noText` and `name` from DBTabItem.
|
|
23
|
+
- **Breaking:** Renamed DBTabs props `onTabSelect` → `onIndexChange`, `alignment` → `tabItemAlignment`, `width` → `tabItemWidth`.
|
|
24
|
+
- **Breaking:** Deep linking derives the tab id from the `id` prop instead of `label`.
|
|
25
|
+
- Added truncation tooltip for overflowing tab labels and fixed vertical layout, trailing icon and tooltip placement.
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- fix: remove dead `z-index` and `position: relative` from table-row interactive children - [see commit 7edb77b](https://github.com/db-ux-design-system/core-web/commit/7edb77bb9f90d4a79f238ebab362074d12f02f0f)
|
|
30
|
+
|
|
3
31
|
## 4.14.0
|
|
4
32
|
|
|
5
33
|
### Minor Changes
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
|
|
70
70
|
- always provide `burgerMenuLabel` attribute for accessibility
|
|
71
71
|
|
|
72
|
-
## `
|
|
72
|
+
## `DBNavigationItem` or `db-navigation-item`
|
|
73
73
|
|
|
74
74
|
- always provide `backButtonText` attribute for accessibility
|
|
75
75
|
- must have children content (text or child elements)
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
## `DBTooltip` or `db-tooltip`
|
|
82
82
|
|
|
83
83
|
- must not contain interactive elements (buttons, links, inputs, etc.) — use `DBPopover` for interactive content
|
|
84
|
-
- must be a child of an interactive element (`button`, `a`, `DBButton`, `DBLink`, `
|
|
84
|
+
- must be a child of an interactive element (`button`, `a`, `DBButton`, `DBLink`, `DBNavigationItem`, `DBTabItem`, `input`, `select`, `textarea`, etc.) for accessibility
|
|
85
85
|
|
|
86
86
|
## `DBIcon` or `db-icon`
|
|
87
87
|
|
|
@@ -92,6 +92,6 @@
|
|
|
92
92
|
- always provide a `label` attribute for accessibility (for `DBCheckbox`, `DBRadio`, `DBSwitch` children text content also counts as label)
|
|
93
93
|
- when using validation attributes (`required`, `minLength`, `maxLength`, `min`, `max`, `pattern`), always provide an `invalidMessage` attribute for better UX (exception: `DBRadio` with `required` does not need `invalidMessage`)
|
|
94
94
|
|
|
95
|
-
## Content components (`DBButton`, `DBLink`, `DBBadge`, `DBIcon`, `DBInfotext`, `
|
|
95
|
+
## Content components (`DBButton`, `DBLink`, `DBBadge`, `DBIcon`, `DBInfotext`, `DBNavigationItem`, `DBNotification`, `DBAccordionItem`)
|
|
96
96
|
|
|
97
97
|
- must have either a `text` property or children content — never leave them empty
|
|
@@ -84,7 +84,6 @@
|
|
|
84
84
|
|
|
85
85
|
.db-accordion-item > details > summary:not([data-show-icon-trailing=false])::after {
|
|
86
86
|
--db-icon-trailing: "chevron_down";
|
|
87
|
-
margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
|
|
88
87
|
content: var(--db-icon-trailing, attr(data-icon-trailing));
|
|
89
88
|
}
|
|
90
89
|
@supports (content: ""/"") {
|
|
@@ -89,15 +89,12 @@
|
|
|
89
89
|
block-size: var(--db-sizing-md);
|
|
90
90
|
font-size: 0 !important;
|
|
91
91
|
}
|
|
92
|
-
.db-button[data-no-text=true]::before {
|
|
93
|
-
--db-icon-margin-end: 0;
|
|
94
|
-
}
|
|
95
|
-
.db-button[data-no-text=true] {
|
|
96
|
-
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
97
|
-
}
|
|
98
92
|
.db-button[data-no-text=true]::before {
|
|
99
93
|
margin: auto;
|
|
100
94
|
}
|
|
95
|
+
.db-button:not([data-no-text=true]) {
|
|
96
|
+
gap: var(--db-spacing-fixed-xs);
|
|
97
|
+
}
|
|
101
98
|
.db-button[data-wrap=false] {
|
|
102
99
|
white-space: nowrap;
|
|
103
100
|
}
|
|
@@ -107,9 +104,7 @@
|
|
|
107
104
|
}
|
|
108
105
|
.db-button[data-size=small]:not([data-no-text=true]) {
|
|
109
106
|
padding: 1px var(--db-spacing-fixed-sm);
|
|
110
|
-
|
|
111
|
-
.db-button[data-size=small]:not([data-no-text=true])::before {
|
|
112
|
-
margin-inline-end: var(--db-spacing-fixed-2xs);
|
|
107
|
+
gap: var(--db-spacing-fixed-2xs);
|
|
113
108
|
}
|
|
114
109
|
.db-button[data-size=small][data-no-text=true] {
|
|
115
110
|
inline-size: var(--db-sizing-sm);
|
|
@@ -82,7 +82,6 @@
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
.db-checkbox input:not([data-show-icon-leading=false]):indeterminate::before, .db-checkbox input:not([data-show-icon-leading=false]):checked::before {
|
|
85
|
-
--db-icon-margin-end: 0;
|
|
86
85
|
display: inline-flex;
|
|
87
86
|
align-items: center;
|
|
88
87
|
justify-content: center;
|
|
@@ -394,14 +393,12 @@
|
|
|
394
393
|
}
|
|
395
394
|
.db-checkbox input:checked:not([data-show-icon-leading=false])::before {
|
|
396
395
|
--db-icon: "check";
|
|
397
|
-
margin-inline-end: var(--db-icon-margin-end, var(--db-spacing-fixed-xs));
|
|
398
396
|
}
|
|
399
397
|
.db-checkbox input:checked {
|
|
400
398
|
border-width: 0;
|
|
401
399
|
}
|
|
402
400
|
.db-checkbox input:indeterminate:not([data-show-icon-leading=false])::before {
|
|
403
401
|
--db-icon: "minus";
|
|
404
|
-
margin-inline-end: var(--db-icon-margin-end, var(--db-spacing-fixed-xs));
|
|
405
402
|
}
|
|
406
403
|
@media (forced-colors: active) {
|
|
407
404
|
.db-checkbox input:indeterminate, .db-checkbox input:checked {
|
|
@@ -116,15 +116,12 @@
|
|
|
116
116
|
block-size: var(--db-sizing-md);
|
|
117
117
|
font-size: 0 !important;
|
|
118
118
|
}
|
|
119
|
-
.db-custom-button[data-no-text=true] label::before, .db-custom-button[data-no-text=true] button::before, .db-custom-button[data-no-text=true] a::before {
|
|
120
|
-
--db-icon-margin-end: 0;
|
|
121
|
-
}
|
|
122
|
-
.db-custom-button[data-no-text=true] label, .db-custom-button[data-no-text=true] button, .db-custom-button[data-no-text=true] a {
|
|
123
|
-
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
124
|
-
}
|
|
125
119
|
.db-custom-button[data-no-text=true] label::before, .db-custom-button[data-no-text=true] button::before, .db-custom-button[data-no-text=true] a::before {
|
|
126
120
|
margin: auto;
|
|
127
121
|
}
|
|
122
|
+
.db-custom-button:not([data-no-text=true]) label, .db-custom-button:not([data-no-text=true]) button, .db-custom-button:not([data-no-text=true]) a {
|
|
123
|
+
gap: var(--db-spacing-fixed-xs);
|
|
124
|
+
}
|
|
128
125
|
.db-custom-button[data-wrap=false] label, .db-custom-button[data-wrap=false] button, .db-custom-button[data-wrap=false] a {
|
|
129
126
|
white-space: nowrap;
|
|
130
127
|
}
|
|
@@ -134,9 +131,7 @@
|
|
|
134
131
|
}
|
|
135
132
|
.db-custom-button[data-size=small] label:not([data-no-text=true]), .db-custom-button[data-size=small] button:not([data-no-text=true]), .db-custom-button[data-size=small] a:not([data-no-text=true]) {
|
|
136
133
|
padding: 1px var(--db-spacing-fixed-sm);
|
|
137
|
-
|
|
138
|
-
.db-custom-button[data-size=small] label:not([data-no-text=true])::before, .db-custom-button[data-size=small] button:not([data-no-text=true])::before, .db-custom-button[data-size=small] a:not([data-no-text=true])::before {
|
|
139
|
-
margin-inline-end: var(--db-spacing-fixed-2xs);
|
|
134
|
+
gap: var(--db-spacing-fixed-2xs);
|
|
140
135
|
}
|
|
141
136
|
.db-custom-button[data-size=small] label[data-no-text=true], .db-custom-button[data-size=small] button[data-no-text=true], .db-custom-button[data-size=small] a[data-no-text=true] {
|
|
142
137
|
inline-size: var(--db-sizing-sm);
|
|
@@ -170,26 +165,26 @@
|
|
|
170
165
|
.db-custom-button[data-icon-leading]:not([data-show-icon-leading=false]) > * > :is(label, button, a), .db-custom-button[data-icon]:not([data-show-icon=false]) > :is(label, button, a),
|
|
171
166
|
.db-custom-button[data-icon]:not([data-show-icon=false]) > * > :is(label, button, a) {
|
|
172
167
|
/* stylelint-disable-next-line db-ux/use-spacings */
|
|
173
|
-
padding-inline-start: var(--db-icon-passing-padding-inline-start, calc(var(--db-spacing-fixed-sm) + var(--db-
|
|
168
|
+
padding-inline-start: var(--db-icon-passing-padding-inline-start, calc(var(--db-spacing-fixed-sm) + var(--db-spacing-fixed-xs) + var(--db-icon-font-size, 1lh)));
|
|
174
169
|
}
|
|
175
170
|
.db-custom-button[data-icon-trailing]:not([data-show-icon-trailing=false])::after {
|
|
176
171
|
position: absolute;
|
|
177
|
-
inset-block-start: calc(50% - 0.5em);
|
|
172
|
+
inset-block-start: var(--db-icon-passing-inset-block-start, calc(50% - 0.5em));
|
|
178
173
|
inset-inline-end: var(--db-spacing-fixed-sm);
|
|
179
174
|
pointer-events: none;
|
|
180
175
|
z-index: 1;
|
|
181
176
|
}
|
|
182
177
|
.db-custom-button[data-icon-trailing]:not([data-show-icon-trailing=false]) > :is(label, button, a),
|
|
183
178
|
.db-custom-button[data-icon-trailing]:not([data-show-icon-trailing=false]) > * > :is(label, button, a) {
|
|
184
|
-
padding-inline-end: calc(var(--db-spacing-fixed-sm) + var(--db-
|
|
179
|
+
padding-inline-end: calc(var(--db-spacing-fixed-sm) + var(--db-spacing-fixed-xs) + var(--db-icon-font-size, 1lh));
|
|
185
180
|
}
|
|
186
181
|
.db-custom-button:has(:is(input, button):disabled,
|
|
187
182
|
:is(input, button, a)[aria-disabled=true]) {
|
|
188
183
|
opacity: var(--db-opacity-md);
|
|
189
184
|
}
|
|
190
185
|
.db-custom-button[data-no-text=true] {
|
|
191
|
-
--db-icon-margin-end: 0;
|
|
192
186
|
--db-icon-passing-inset-inline-start: calc(50% - 0.5em);
|
|
187
|
+
--db-icon-passing-padding-inline-start: 0;
|
|
193
188
|
}
|
|
194
189
|
.db-custom-button label:has(input:checked) {
|
|
195
190
|
color: var(--db-adaptive-on-bg-inverted-default);
|
|
@@ -1,6 +1,5 @@
|
|
|
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";
|
|
5
4
|
@use "../../styles/internal/button-components";
|
|
6
5
|
@use "../../styles/internal/icon-passing";
|
|
@@ -14,7 +13,7 @@
|
|
|
14
13
|
}
|
|
15
14
|
|
|
16
15
|
$icon-padding-custom-button: calc(
|
|
17
|
-
#{variables.$db-spacing-fixed-sm} + #{
|
|
16
|
+
#{variables.$db-spacing-fixed-sm} + #{variables.$db-spacing-fixed-xs} +
|
|
18
17
|
var(--db-icon-font-size)
|
|
19
18
|
);
|
|
20
19
|
|
|
@@ -48,8 +47,8 @@ $icon-padding-custom-button: calc(
|
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
&[data-no-text="true"] {
|
|
51
|
-
--db-icon-margin-end: 0;
|
|
52
50
|
--db-icon-passing-inset-inline-start: calc(50% - 0.5em);
|
|
51
|
+
--db-icon-passing-padding-inline-start: 0;
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
label:has(input:checked) {
|
|
@@ -554,7 +554,6 @@ input[type=radio]:checked) > label {
|
|
|
554
554
|
|
|
555
555
|
.db-custom-select:not([data-show-icon-trailing=false])::after {
|
|
556
556
|
--db-icon-trailing: "chevron_down";
|
|
557
|
-
margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
|
|
558
557
|
content: var(--db-icon-trailing, attr(data-icon-trailing));
|
|
559
558
|
}
|
|
560
559
|
@supports (content: ""/"") {
|
|
@@ -112,10 +112,15 @@ db-custom-select-list-item:not(:last-of-type) .db-custom-select-list-item[data-d
|
|
|
112
112
|
/* jscpd:ignore-end */
|
|
113
113
|
}
|
|
114
114
|
.db-custom-select-list-item > label {
|
|
115
|
-
--db-icon-margin-start: auto;
|
|
116
115
|
--db-check-element-label-color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
|
|
117
116
|
inline-size: 100%;
|
|
118
117
|
}
|
|
118
|
+
.db-custom-select-list-item > label::before {
|
|
119
|
+
margin-inline-end: var(--db-spacing-fixed-xs);
|
|
120
|
+
}
|
|
121
|
+
.db-custom-select-list-item > label::after {
|
|
122
|
+
margin-inline-start: auto;
|
|
123
|
+
}
|
|
119
124
|
.db-custom-select-list-item > label .db-custom-select-list-item-label {
|
|
120
125
|
min-inline-size: 0;
|
|
121
126
|
overflow-wrap: anywhere;
|
|
@@ -126,7 +131,6 @@ db-custom-select-list-item:not(:last-of-type) .db-custom-select-list-item[data-d
|
|
|
126
131
|
}
|
|
127
132
|
.db-custom-select-list-item > label:has(input[type=radio]) {
|
|
128
133
|
--db-icon-trailing: "none";
|
|
129
|
-
gap: 0;
|
|
130
134
|
}
|
|
131
135
|
.db-custom-select-list-item > label:has(input[type=radio]:checked) {
|
|
132
136
|
--db-overwrite-cursor: default;
|
|
@@ -47,11 +47,18 @@ db-custom-select-list-item:not(:last-of-type) {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
> label {
|
|
50
|
-
--db-icon-margin-start: auto;
|
|
51
50
|
--db-check-element-label-color: #{colors.$db-adaptive-on-bg-basic-emphasis-100-default};
|
|
52
51
|
|
|
53
52
|
inline-size: 100%;
|
|
54
53
|
|
|
54
|
+
&::before {
|
|
55
|
+
margin-inline-end: variables.$db-spacing-fixed-xs;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&::after {
|
|
59
|
+
margin-inline-start: auto;
|
|
60
|
+
}
|
|
61
|
+
|
|
55
62
|
.db-custom-select-list-item-label {
|
|
56
63
|
// Long labels wrap onto new lines by default (fixed/full dropdowns).
|
|
57
64
|
// The auto-width dropdown overrides this to stay single-line
|
|
@@ -69,8 +76,6 @@ db-custom-select-list-item:not(:last-of-type) {
|
|
|
69
76
|
|
|
70
77
|
&:has(input[type="radio"]) {
|
|
71
78
|
--db-icon-trailing: "none";
|
|
72
|
-
|
|
73
|
-
gap: 0;
|
|
74
79
|
}
|
|
75
80
|
|
|
76
81
|
&:has(input[type="radio"]:checked) {
|
|
@@ -46,7 +46,7 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
.db-drawer .db-drawer-container:not([data-direction]), .db-drawer .db-drawer-container[data-direction=to-left], .db-drawer .db-drawer-container[data-direction=to-right] {
|
|
49
|
-
inline-size: calc(
|
|
49
|
+
inline-size: calc(var(--db-drawer-inline-size) - var(--db-drawer-container-backdrop-spacing, 0px));
|
|
50
50
|
min-inline-size: var(--db-drawer-min-width, auto);
|
|
51
51
|
max-inline-size: var(--db-drawer-max-width, var(--db-drawer-max-width-horizontal));
|
|
52
52
|
}
|
|
@@ -61,18 +61,20 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
.db-drawer .db-drawer-container[data-direction=down], .db-drawer .db-drawer-container[data-direction=up] {
|
|
64
|
-
block-size: calc(
|
|
64
|
+
block-size: calc(var(--db-drawer-block-size) - var(--db-drawer-container-backdrop-spacing, 0px));
|
|
65
65
|
min-block-size: var(--db-drawer-min-height, auto);
|
|
66
66
|
max-block-size: var(--db-drawer-max-height, var(--db-drawer-max-height-vertical));
|
|
67
67
|
}
|
|
68
68
|
.db-drawer [data-container-size=small].db-drawer-container[data-direction=down], .db-drawer [data-container-size=small].db-drawer-container[data-direction=up] {
|
|
69
|
-
--db-drawer-max-height-vertical:
|
|
69
|
+
--db-drawer-max-height-vertical: calc(var(--db-drawer-block-size) / 3);
|
|
70
70
|
}
|
|
71
71
|
.db-drawer [data-container-size=medium].db-drawer-container[data-direction=down], .db-drawer [data-container-size=medium].db-drawer-container[data-direction=up] {
|
|
72
|
-
--db-drawer-max-height-vertical:
|
|
72
|
+
--db-drawer-max-height-vertical: calc(var(--db-drawer-block-size) / 2);
|
|
73
73
|
}
|
|
74
74
|
.db-drawer .db-drawer-container[data-direction=down]:not([data-container-size]), .db-drawer .db-drawer-container[data-direction=up]:not([data-container-size]), .db-drawer [data-container-size=large].db-drawer-container[data-direction=down], .db-drawer [data-container-size=large].db-drawer-container[data-direction=up] {
|
|
75
|
-
--db-drawer-max-height-vertical:
|
|
75
|
+
--db-drawer-max-height-vertical: calc(
|
|
76
|
+
(var(--db-drawer-block-size) / 3) * 2
|
|
77
|
+
);
|
|
76
78
|
}
|
|
77
79
|
|
|
78
80
|
.db-drawer .db-drawer-container[data-direction=to-right]:not([data-transition=open]) {
|
|
@@ -131,15 +133,15 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
|
|
|
131
133
|
}
|
|
132
134
|
@media (prefers-reduced-motion: no-preference) {
|
|
133
135
|
.db-drawer .db-drawer-container {
|
|
134
|
-
--db-drawer-close-delay: var(--db-transition-duration-slow);
|
|
136
|
+
--db-drawer-close-delay: var(--db-transition-duration-extra-slow);
|
|
135
137
|
}
|
|
136
138
|
}
|
|
137
139
|
.db-drawer .db-drawer-container {
|
|
138
140
|
display: grid;
|
|
139
141
|
grid-template-rows: [header] auto [main] 1fr [footer] auto;
|
|
140
142
|
background-color: var(--db-adaptive-bg-basic-level-1-default);
|
|
141
|
-
inline-size:
|
|
142
|
-
block-size:
|
|
143
|
+
inline-size: var(--db-drawer-inline-size);
|
|
144
|
+
block-size: var(--db-drawer-block-size);
|
|
143
145
|
position: fixed;
|
|
144
146
|
box-shadow: var(--db-elevation-md);
|
|
145
147
|
}
|
|
@@ -152,10 +154,10 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
|
|
|
152
154
|
--db-drawer-container-backdrop-spacing: var(--db-sizing-md);
|
|
153
155
|
}
|
|
154
156
|
.db-drawer .db-drawer-container[data-show-spacing=true]:not([data-direction]), .db-drawer .db-drawer-container[data-show-spacing=true][data-direction=to-left] {
|
|
155
|
-
border-inline-
|
|
157
|
+
border-inline-start: var(--db-border-width-3xs) solid var(--db-adaptive-on-bg-basic-emphasis-60-default);
|
|
156
158
|
}
|
|
157
159
|
.db-drawer .db-drawer-container[data-show-spacing=true][data-direction=to-right] {
|
|
158
|
-
border-inline-
|
|
160
|
+
border-inline-end: var(--db-border-width-3xs) solid var(--db-adaptive-on-bg-basic-emphasis-60-default);
|
|
159
161
|
}
|
|
160
162
|
.db-drawer .db-drawer-container[data-show-spacing=true][data-direction=up] {
|
|
161
163
|
border-block-start: var(--db-border-width-3xs) solid var(--db-adaptive-on-bg-basic-emphasis-60-default);
|
|
@@ -171,17 +173,34 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
|
|
|
171
173
|
transition: transform var(--db-transition-duration-extra-slow) var(--db-transition-timing-emotional);
|
|
172
174
|
}
|
|
173
175
|
}
|
|
176
|
+
.db-drawer:not([data-position=absolute]) {
|
|
177
|
+
--db-drawer-inline-size: 100lvw;
|
|
178
|
+
--db-drawer-block-size: 100lvh;
|
|
179
|
+
}
|
|
180
|
+
.db-drawer:not([data-position=absolute])[open] .db-drawer-container[data-transition=open] {
|
|
181
|
+
transform: none;
|
|
182
|
+
}
|
|
183
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
184
|
+
.db-drawer:not([data-position=absolute])[open] .db-drawer-container[data-transition=close] {
|
|
185
|
+
transition: transform var(--db-drawer-close-delay) var(--db-transition-timing-emotional);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
174
188
|
.db-drawer[data-position=absolute] {
|
|
189
|
+
--db-drawer-inline-size: 100%;
|
|
190
|
+
--db-drawer-block-size: 100%;
|
|
175
191
|
position: absolute;
|
|
176
192
|
z-index: 3;
|
|
177
193
|
inset: 0;
|
|
178
|
-
block-size: 100%;
|
|
179
|
-
inline-size: 100%;
|
|
180
194
|
background-color: transparent;
|
|
195
|
+
inline-size: var(--db-drawer-inline-size);
|
|
196
|
+
block-size: var(--db-drawer-block-size);
|
|
181
197
|
}
|
|
182
198
|
.db-drawer[data-position=absolute][open] {
|
|
183
199
|
display: flex;
|
|
184
200
|
}
|
|
201
|
+
.db-drawer[data-position=absolute][open] .db-drawer-container[data-transition=close] {
|
|
202
|
+
position: relative;
|
|
203
|
+
}
|
|
185
204
|
.db-drawer[data-position=absolute]:not([data-direction]), .db-drawer[data-position=absolute][data-direction=to-right], .db-drawer[data-position=absolute][data-direction=to-left] {
|
|
186
205
|
flex-direction: column;
|
|
187
206
|
}
|
|
@@ -191,14 +210,6 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
|
|
|
191
210
|
.db-drawer[data-position=absolute]:not([data-direction]), .db-drawer[data-position=absolute][data-direction=to-left], .db-drawer[data-position=absolute][data-direction=up] {
|
|
192
211
|
align-items: flex-end;
|
|
193
212
|
}
|
|
194
|
-
.db-drawer[data-position=absolute] .db-drawer-container {
|
|
213
|
+
.db-drawer[data-position=absolute] .db-drawer-container[data-transition=open] {
|
|
195
214
|
position: relative;
|
|
196
215
|
}
|
|
197
|
-
.db-drawer[open] .db-drawer-container[data-transition=open] {
|
|
198
|
-
transform: none;
|
|
199
|
-
}
|
|
200
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
201
|
-
.db-drawer[open] .db-drawer-container[data-transition=close] {
|
|
202
|
-
transition: transform var(--db-drawer-close-delay) var(--db-transition-timing-emotional);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
%container-size-horizontal {
|
|
10
10
|
inline-size: calc(
|
|
11
|
-
|
|
11
|
+
var(--db-drawer-inline-size) - var(
|
|
12
|
+
--db-drawer-container-backdrop-spacing,
|
|
13
|
+
0px
|
|
14
|
+
)
|
|
12
15
|
);
|
|
13
16
|
min-inline-size: var(--db-drawer-min-width, auto);
|
|
14
17
|
max-inline-size: var(
|
|
@@ -31,7 +34,12 @@
|
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
%container-size-vertical {
|
|
34
|
-
block-size: calc(
|
|
37
|
+
block-size: calc(
|
|
38
|
+
var(--db-drawer-block-size) - var(
|
|
39
|
+
--db-drawer-container-backdrop-spacing,
|
|
40
|
+
0px
|
|
41
|
+
)
|
|
42
|
+
);
|
|
35
43
|
min-block-size: var(--db-drawer-min-height, auto);
|
|
36
44
|
max-block-size: var(
|
|
37
45
|
--db-drawer-max-height,
|
|
@@ -39,16 +47,18 @@
|
|
|
39
47
|
);
|
|
40
48
|
|
|
41
49
|
&[data-container-size="small"] {
|
|
42
|
-
--db-drawer-max-height-vertical:
|
|
50
|
+
--db-drawer-max-height-vertical: calc(var(--db-drawer-block-size) / 3);
|
|
43
51
|
}
|
|
44
52
|
|
|
45
53
|
&[data-container-size="medium"] {
|
|
46
|
-
--db-drawer-max-height-vertical:
|
|
54
|
+
--db-drawer-max-height-vertical: calc(var(--db-drawer-block-size) / 2);
|
|
47
55
|
}
|
|
48
56
|
|
|
49
57
|
&:not([data-container-size]),
|
|
50
58
|
&[data-container-size="large"] {
|
|
51
|
-
--db-drawer-max-height-vertical:
|
|
59
|
+
--db-drawer-max-height-vertical: calc(
|
|
60
|
+
(var(--db-drawer-block-size) / 3) * 2
|
|
61
|
+
);
|
|
52
62
|
}
|
|
53
63
|
}
|
|
54
64
|
|
|
@@ -137,7 +147,7 @@
|
|
|
137
147
|
--db-drawer-close-delay: 0;
|
|
138
148
|
|
|
139
149
|
@media (prefers-reduced-motion: no-preference) {
|
|
140
|
-
--db-drawer-close-delay: #{variables.$db-transition-duration-slow};
|
|
150
|
+
--db-drawer-close-delay: #{variables.$db-transition-duration-extra-slow};
|
|
141
151
|
}
|
|
142
152
|
|
|
143
153
|
display: grid;
|
|
@@ -146,8 +156,8 @@
|
|
|
146
156
|
[main] 1fr
|
|
147
157
|
[footer] auto;
|
|
148
158
|
background-color: colors.$db-adaptive-bg-basic-level-1-default;
|
|
149
|
-
inline-size:
|
|
150
|
-
block-size:
|
|
159
|
+
inline-size: var(--db-drawer-inline-size);
|
|
160
|
+
block-size: var(--db-drawer-block-size);
|
|
151
161
|
position: fixed;
|
|
152
162
|
box-shadow: variables.$db-elevation-md;
|
|
153
163
|
|
|
@@ -167,11 +177,11 @@
|
|
|
167
177
|
|
|
168
178
|
&:not([data-direction]),
|
|
169
179
|
&[data-direction="to-left"] {
|
|
170
|
-
border-inline-
|
|
180
|
+
border-inline-start: component.$component-border;
|
|
171
181
|
}
|
|
172
182
|
|
|
173
183
|
&[data-direction="to-right"] {
|
|
174
|
-
border-inline-
|
|
184
|
+
border-inline-end: component.$component-border;
|
|
175
185
|
}
|
|
176
186
|
|
|
177
187
|
&[data-direction="up"] {
|
|
@@ -211,16 +221,43 @@
|
|
|
211
221
|
}
|
|
212
222
|
}
|
|
213
223
|
|
|
224
|
+
&:not([data-position="absolute"]) {
|
|
225
|
+
--db-drawer-inline-size: 100lvw;
|
|
226
|
+
--db-drawer-block-size: 100lvh;
|
|
227
|
+
|
|
228
|
+
&[open] {
|
|
229
|
+
.db-drawer-container {
|
|
230
|
+
&[data-transition="open"] {
|
|
231
|
+
transform: none;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
&[data-transition="close"] {
|
|
235
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
236
|
+
transition: transform var(--db-drawer-close-delay)
|
|
237
|
+
#{variables.$db-transition-timing-emotional};
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
214
244
|
&[data-position="absolute"] {
|
|
245
|
+
--db-drawer-inline-size: 100%;
|
|
246
|
+
--db-drawer-block-size: 100%;
|
|
247
|
+
|
|
215
248
|
position: absolute;
|
|
216
249
|
z-index: 3;
|
|
217
250
|
inset: 0;
|
|
218
|
-
block-size: 100%;
|
|
219
|
-
inline-size: 100%;
|
|
220
251
|
background-color: transparent;
|
|
252
|
+
inline-size: var(--db-drawer-inline-size);
|
|
253
|
+
block-size: var(--db-drawer-block-size);
|
|
221
254
|
|
|
222
255
|
&[open] {
|
|
223
256
|
display: flex;
|
|
257
|
+
|
|
258
|
+
.db-drawer-container[data-transition="close"] {
|
|
259
|
+
position: relative;
|
|
260
|
+
}
|
|
224
261
|
}
|
|
225
262
|
|
|
226
263
|
&:not([data-direction]),
|
|
@@ -240,22 +277,9 @@
|
|
|
240
277
|
align-items: flex-end;
|
|
241
278
|
}
|
|
242
279
|
|
|
243
|
-
.db-drawer-container {
|
|
244
|
-
position: relative;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
&[open] {
|
|
249
280
|
.db-drawer-container {
|
|
250
281
|
&[data-transition="open"] {
|
|
251
|
-
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
&[data-transition="close"] {
|
|
255
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
256
|
-
transition: transform var(--db-drawer-close-delay)
|
|
257
|
-
#{variables.$db-transition-timing-emotional};
|
|
258
|
-
}
|
|
282
|
+
position: relative;
|
|
259
283
|
}
|
|
260
284
|
}
|
|
261
285
|
}
|
|
@@ -320,7 +320,6 @@
|
|
|
320
320
|
}
|
|
321
321
|
.db-header {
|
|
322
322
|
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
323
|
-
/* jscpd:ignore-start */
|
|
324
323
|
}
|
|
325
324
|
.db-header[data-width=small] {
|
|
326
325
|
margin-inline: auto;
|
|
@@ -334,9 +333,6 @@
|
|
|
334
333
|
margin-inline: auto;
|
|
335
334
|
max-inline-size: 90em;
|
|
336
335
|
}
|
|
337
|
-
.db-header {
|
|
338
|
-
/* jscpd:ignore-end */
|
|
339
|
-
}
|
|
340
336
|
.db-header .db-link:not([hidden]) {
|
|
341
337
|
display: inline-block;
|
|
342
338
|
}
|
|
@@ -646,9 +642,6 @@
|
|
|
646
642
|
overflow-x: hidden;
|
|
647
643
|
padding: var(--db-spacing-fixed-xs) max(var(--db-spacing-fixed-sm), max(env(safe-area-inset-left), env(safe-area-inset-right)));
|
|
648
644
|
}
|
|
649
|
-
.db-header-drawer .db-drawer-content {
|
|
650
|
-
/* jscpd:ignore-start */
|
|
651
|
-
}
|
|
652
645
|
.db-header-drawer .db-drawer-content .db-header-meta-navigation {
|
|
653
646
|
/* stylelint-disable-next-line db-ux/use-spacings */
|
|
654
647
|
padding: var(--db-spacing-fixed-xs) max(var(--db-spacing-fixed-sm), max(env(safe-area-inset-left), env(safe-area-inset-right)));
|
|
@@ -680,12 +673,12 @@
|
|
|
680
673
|
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
681
674
|
/* jscpd:ignore-end */
|
|
682
675
|
}
|
|
683
|
-
.db-header-drawer .db-drawer-content {
|
|
684
|
-
/* jscpd:ignore-end */
|
|
685
|
-
}
|
|
686
676
|
.db-header-drawer .db-drawer-footer:has(.db-header-secondary-action:empty) {
|
|
687
677
|
display: none;
|
|
688
678
|
}
|
|
679
|
+
.db-header-drawer:has(.db-drawer-footer:has(.db-header-secondary-action:empty)) .db-drawer-content {
|
|
680
|
+
margin-block-end: env(safe-area-inset-bottom);
|
|
681
|
+
}
|
|
689
682
|
|
|
690
683
|
/* Only for Desktop */
|
|
691
684
|
.db-header-meta-navigation:not([hidden]),
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
--db-drawer-max-width: #{screen-sizes.$db-breakpoint-sm};
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
/* jscpd:ignore-start */
|
|
24
23
|
&[data-width="small"] {
|
|
25
24
|
margin-inline: auto;
|
|
26
25
|
max-inline-size: screen-sizes.$db-breakpoint-sm;
|
|
@@ -36,8 +35,6 @@
|
|
|
36
35
|
max-inline-size: screen-sizes.$db-breakpoint-lg;
|
|
37
36
|
}
|
|
38
37
|
|
|
39
|
-
/* jscpd:ignore-end */
|
|
40
|
-
|
|
41
38
|
.db-link {
|
|
42
39
|
@include helpers.display(inline-block);
|
|
43
40
|
}
|
|
@@ -244,7 +241,6 @@
|
|
|
244
241
|
component.$drawer-content-padding-inline;
|
|
245
242
|
}
|
|
246
243
|
|
|
247
|
-
/* jscpd:ignore-start */
|
|
248
244
|
.db-header-meta-navigation {
|
|
249
245
|
/* stylelint-disable-next-line db-ux/use-spacings */
|
|
250
246
|
padding: variables.$db-spacing-fixed-xs
|
|
@@ -254,13 +250,18 @@
|
|
|
254
250
|
|
|
255
251
|
@include helpers.divider("top");
|
|
256
252
|
}
|
|
257
|
-
|
|
258
|
-
/* jscpd:ignore-end */
|
|
259
253
|
}
|
|
260
254
|
|
|
261
255
|
.db-drawer-footer:has(.db-header-secondary-action:empty) {
|
|
262
256
|
display: none;
|
|
263
257
|
}
|
|
258
|
+
|
|
259
|
+
// When footer is hidden (empty secondaryAction), content needs safe-area spacing
|
|
260
|
+
&:has(.db-drawer-footer:has(.db-header-secondary-action:empty)) {
|
|
261
|
+
.db-drawer-content {
|
|
262
|
+
margin-block-end: env(safe-area-inset-bottom);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
264
265
|
}
|
|
265
266
|
|
|
266
267
|
/* Only for Desktop */
|
|
@@ -3,12 +3,6 @@
|
|
|
3
3
|
/* Variants for adaptive components like input, select, notification, ... */
|
|
4
4
|
.db-icon {
|
|
5
5
|
font-size: 0 !important;
|
|
6
|
-
}
|
|
7
|
-
.db-icon::before {
|
|
8
|
-
--db-icon-margin-end: 0;
|
|
9
|
-
}
|
|
10
|
-
.db-icon {
|
|
11
|
-
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
12
6
|
/* Safari hack */
|
|
13
7
|
}
|
|
14
8
|
@supports (-webkit-hyphens: none) {
|