@db-ux/core-components 4.3.1 → 4.3.2

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @db-ux/core-components
2
2
 
3
+ ## 4.3.2
4
+
5
+ ### Patch Changes
6
+
7
+ - fix: rendering issue with drawer and sub-navigation when user has `prefers-reduced-motion: reduce` - [see commit cd23ff2](https://github.com/db-ux-design-system/core-web/commit/cd23ff2da5fa8a11121c3195467b4b4c0ab2ebb6)
8
+
3
9
  ## 4.3.1
4
10
 
5
11
  ### Patch Changes
@@ -62,70 +62,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
62
62
 
63
63
  @layer variables {}
64
64
 
65
- @keyframes show-right-to-left {
66
- from {
67
- transform: translateX(110%);
68
- }
69
- to {
70
- transform: translateX(0%);
71
- }
72
- }
73
- @keyframes hide-right-to-left {
74
- from {
75
- transform: translateX(0%);
76
- }
77
- to {
78
- transform: translateX(110%);
79
- }
80
- }
81
- @keyframes show-left-to-right {
82
- from {
83
- transform: translateX(-110%);
84
- }
85
- to {
86
- transform: translateX(0%);
87
- }
88
- }
89
- @keyframes hide-left-to-right {
90
- from {
91
- transform: translateX(0%);
92
- }
93
- to {
94
- transform: translateX(-110%);
95
- }
96
- }
97
- @keyframes show-bottom-to-top {
98
- from {
99
- transform: translateY(110%);
100
- }
101
- to {
102
- transform: translateY(0%);
103
- }
104
- }
105
- @keyframes hide-bottom-to-top {
106
- from {
107
- transform: translateY(0%);
108
- }
109
- to {
110
- transform: translateY(110%);
111
- }
112
- }
113
- @keyframes show-top-to-bottom {
114
- from {
115
- transform: translateY(-110%);
116
- }
117
- to {
118
- transform: translateY(0%);
119
- }
120
- }
121
- @keyframes hide-top-to-bottom {
122
- from {
123
- transform: translateY(0%);
124
- }
125
- to {
126
- transform: translateY(-110%);
127
- }
128
- }
129
65
  @keyframes popover-animation {
130
66
  0% {
131
67
  opacity: 0;
@@ -219,70 +219,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
219
219
  * @mixin screen-min-max
220
220
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
221
221
  */
222
- @keyframes show-right-to-left {
223
- from {
224
- transform: translateX(110%);
225
- }
226
- to {
227
- transform: translateX(0%);
228
- }
229
- }
230
- @keyframes hide-right-to-left {
231
- from {
232
- transform: translateX(0%);
233
- }
234
- to {
235
- transform: translateX(110%);
236
- }
237
- }
238
- @keyframes show-left-to-right {
239
- from {
240
- transform: translateX(-110%);
241
- }
242
- to {
243
- transform: translateX(0%);
244
- }
245
- }
246
- @keyframes hide-left-to-right {
247
- from {
248
- transform: translateX(0%);
249
- }
250
- to {
251
- transform: translateX(-110%);
252
- }
253
- }
254
- @keyframes show-bottom-to-top {
255
- from {
256
- transform: translateY(110%);
257
- }
258
- to {
259
- transform: translateY(0%);
260
- }
261
- }
262
- @keyframes hide-bottom-to-top {
263
- from {
264
- transform: translateY(0%);
265
- }
266
- to {
267
- transform: translateY(110%);
268
- }
269
- }
270
- @keyframes show-top-to-bottom {
271
- from {
272
- transform: translateY(-110%);
273
- }
274
- to {
275
- transform: translateY(0%);
276
- }
277
- }
278
- @keyframes hide-top-to-bottom {
279
- from {
280
- transform: translateY(0%);
281
- }
282
- to {
283
- transform: translateY(-110%);
284
- }
285
- }
286
222
  @keyframes popover-animation {
287
223
  0% {
288
224
  opacity: 0;
@@ -43,70 +43,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
43
43
 
44
44
  @layer variables {}
45
45
 
46
- @keyframes show-right-to-left {
47
- from {
48
- transform: translateX(110%);
49
- }
50
- to {
51
- transform: translateX(0%);
52
- }
53
- }
54
- @keyframes hide-right-to-left {
55
- from {
56
- transform: translateX(0%);
57
- }
58
- to {
59
- transform: translateX(110%);
60
- }
61
- }
62
- @keyframes show-left-to-right {
63
- from {
64
- transform: translateX(-110%);
65
- }
66
- to {
67
- transform: translateX(0%);
68
- }
69
- }
70
- @keyframes hide-left-to-right {
71
- from {
72
- transform: translateX(0%);
73
- }
74
- to {
75
- transform: translateX(-110%);
76
- }
77
- }
78
- @keyframes show-bottom-to-top {
79
- from {
80
- transform: translateY(110%);
81
- }
82
- to {
83
- transform: translateY(0%);
84
- }
85
- }
86
- @keyframes hide-bottom-to-top {
87
- from {
88
- transform: translateY(0%);
89
- }
90
- to {
91
- transform: translateY(110%);
92
- }
93
- }
94
- @keyframes show-top-to-bottom {
95
- from {
96
- transform: translateY(-110%);
97
- }
98
- to {
99
- transform: translateY(0%);
100
- }
101
- }
102
- @keyframes hide-top-to-bottom {
103
- from {
104
- transform: translateY(0%);
105
- }
106
- to {
107
- transform: translateY(-110%);
108
- }
109
- }
110
46
  @keyframes popover-animation {
111
47
  0% {
112
48
  opacity: 0;
@@ -153,15 +89,17 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
153
89
  background-color: color(from var(--db-adaptive-on-bg-basic-emphasis-100-default) srgb r g b/var(--db-opacity-sm));
154
90
  }
155
91
 
156
- .db-drawer .db-drawer-container {
92
+ .db-drawer .db-drawer-container:not([data-direction]), .db-drawer .db-drawer-container[data-direction=right] {
93
+ transform: translateX(110%);
157
94
  inset-inline: auto 0;
158
95
  }
159
- .db-drawer [data-rounded=true].db-drawer-container {
96
+ .db-drawer [data-rounded=true].db-drawer-container:not([data-direction]), .db-drawer [data-rounded=true].db-drawer-container[data-direction=right] {
160
97
  border-start-start-radius: var(--db-border-radius-sm);
161
98
  border-end-start-radius: var(--db-border-radius-sm);
162
99
  }
163
100
 
164
101
  .db-drawer .db-drawer-container[data-direction=left] {
102
+ transform: translateX(-110%);
165
103
  inset-inline: 0 auto;
166
104
  }
167
105
  .db-drawer [data-rounded=true].db-drawer-container[data-direction=left] {
@@ -176,6 +114,7 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
176
114
  }
177
115
 
178
116
  .db-drawer .db-drawer-container[data-direction=up] {
117
+ transform: translateY(110%);
179
118
  inset: auto 0 0;
180
119
  }
181
120
  .db-drawer [data-rounded=true].db-drawer-container[data-direction=up] {
@@ -184,6 +123,7 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
184
123
  }
185
124
 
186
125
  .db-drawer .db-drawer-container[data-direction=down] {
126
+ transform: translateY(-110%);
187
127
  inset: 0 0 auto;
188
128
  }
189
129
  .db-drawer [data-rounded=true].db-drawer-container[data-direction=down] {
@@ -305,6 +245,11 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
305
245
  .db-drawer .db-drawer-container[data-rounded=true] {
306
246
  box-shadow: var(--db-elevation-md);
307
247
  }
248
+ @media screen and (prefers-reduced-motion: no-preference) {
249
+ .db-drawer .db-drawer-container {
250
+ transition: transform var(--db-transition-duration-extra-slow) var(--db-transition-timing-emotional);
251
+ }
252
+ }
308
253
  .db-drawer .db-drawer-container .db-drawer-header {
309
254
  display: none;
310
255
  --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-60-default);
@@ -364,31 +309,14 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
364
309
  .db-drawer[data-position=absolute] .db-drawer-container {
365
310
  position: relative;
366
311
  }
367
- @media screen and (prefers-reduced-motion: no-preference) {
368
- .db-drawer[open] .db-drawer-container:not([data-direction]), .db-drawer[open] .db-drawer-container[data-direction=right] {
369
- animation: show-right-to-left var(--db-transition-straight-show);
370
- }
371
- .db-drawer[open] .db-drawer-container[data-direction=left] {
372
- animation: show-left-to-right var(--db-transition-straight-show);
373
- }
374
- .db-drawer[open] .db-drawer-container[data-direction=up] {
375
- animation: show-bottom-to-top var(--db-transition-straight-show);
376
- }
377
- .db-drawer[open] .db-drawer-container[data-direction=down] {
378
- animation: show-top-to-bottom var(--db-transition-straight-show);
379
- }
312
+ .db-drawer[open] .db-drawer-container[data-transition=open]:not([data-direction]), .db-drawer[open] .db-drawer-container[data-transition=open][data-direction=right], .db-drawer[open] .db-drawer-container[data-transition=open][data-direction=left] {
313
+ transform: translateX(0%);
314
+ }
315
+ .db-drawer[open] .db-drawer-container[data-transition=open][data-direction=up], .db-drawer[open] .db-drawer-container[data-transition=open][data-direction=down] {
316
+ transform: translateY(0%);
380
317
  }
381
318
  @media screen and (prefers-reduced-motion: no-preference) {
382
- .db-drawer[open] .db-drawer-container[hidden]:not([data-direction]), .db-drawer[open] .db-drawer-container[hidden][data-direction=right] {
383
- animation: hide-right-to-left var(--db-transition-straight-hide);
384
- }
385
- .db-drawer[open] .db-drawer-container[hidden][data-direction=left] {
386
- animation: hide-left-to-right var(--db-transition-straight-hide);
387
- }
388
- .db-drawer[open] .db-drawer-container[hidden][data-direction=up] {
389
- animation: hide-bottom-to-top var(--db-transition-straight-hide);
390
- }
391
- .db-drawer[open] .db-drawer-container[hidden][data-direction=down] {
392
- animation: hide-top-to-bottom var(--db-transition-straight-hide);
319
+ .db-drawer[open] .db-drawer-container[data-transition=close] {
320
+ transition: transform var(--db-transition-duration-slow) var(--db-transition-timing-emotional);
393
321
  }
394
322
  }
@@ -7,6 +7,7 @@
7
7
  @use "../../styles/dialog-init";
8
8
 
9
9
  %direction-right {
10
+ transform: translateX(110%);
10
11
  inset-inline: auto 0;
11
12
 
12
13
  &[data-rounded="true"] {
@@ -16,6 +17,7 @@
16
17
  }
17
18
 
18
19
  %direction-left {
20
+ transform: translateX(-110%);
19
21
  inset-inline: 0 auto;
20
22
 
21
23
  &[data-rounded="true"] {
@@ -45,6 +47,7 @@
45
47
  %direction-up {
46
48
  @extend %full-horizontal;
47
49
 
50
+ transform: translateY(110%);
48
51
  inset: auto 0 0;
49
52
 
50
53
  &[data-rounded="true"] {
@@ -56,6 +59,7 @@
56
59
  %direction-down {
57
60
  @extend %full-horizontal;
58
61
 
62
+ transform: translateY(-110%);
59
63
  inset: 0 0 auto;
60
64
 
61
65
  &[data-rounded="true"] {
@@ -135,7 +139,6 @@ $spacings: (
135
139
 
136
140
  .db-drawer {
137
141
  .db-drawer-container {
138
- @extend %direction-right;
139
142
  @extend %spacing-drawer;
140
143
 
141
144
  display: flex;
@@ -191,6 +194,17 @@ $spacings: (
191
194
  box-shadow: variables.$db-elevation-md;
192
195
  }
193
196
 
197
+ @media screen and (prefers-reduced-motion: no-preference) {
198
+ transition: transform
199
+ #{variables.$db-transition-duration-extra-slow}
200
+ #{variables.$db-transition-timing-emotional};
201
+ }
202
+
203
+ &:not([data-direction]),
204
+ &[data-direction="right"] {
205
+ @extend %direction-right;
206
+ }
207
+
194
208
  &[data-direction="left"] {
195
209
  @extend %direction-left;
196
210
  }
@@ -265,51 +279,24 @@ $spacings: (
265
279
 
266
280
  &[open] {
267
281
  .db-drawer-container {
268
- @media screen and (prefers-reduced-motion: no-preference) {
282
+ &[data-transition="open"] {
269
283
  &:not([data-direction]),
270
- &[data-direction="right"] {
271
- animation: show-right-to-left
272
- #{variables.$db-transition-straight-show};
273
- }
274
-
284
+ &[data-direction="right"],
275
285
  &[data-direction="left"] {
276
- animation: show-left-to-right
277
- #{variables.$db-transition-straight-show};
278
- }
279
-
280
- &[data-direction="up"] {
281
- animation: show-bottom-to-top
282
- #{variables.$db-transition-straight-show};
286
+ transform: translateX(0%);
283
287
  }
284
288
 
289
+ &[data-direction="up"],
285
290
  &[data-direction="down"] {
286
- animation: show-top-to-bottom
287
- #{variables.$db-transition-straight-show};
291
+ transform: translateY(0%);
288
292
  }
289
293
  }
290
294
 
291
- &[hidden] {
295
+ &[data-transition="close"] {
292
296
  @media screen and (prefers-reduced-motion: no-preference) {
293
- &:not([data-direction]),
294
- &[data-direction="right"] {
295
- animation: hide-right-to-left
296
- #{variables.$db-transition-straight-hide};
297
- }
298
-
299
- &[data-direction="left"] {
300
- animation: hide-left-to-right
301
- #{variables.$db-transition-straight-hide};
302
- }
303
-
304
- &[data-direction="up"] {
305
- animation: hide-bottom-to-top
306
- #{variables.$db-transition-straight-hide};
307
- }
308
-
309
- &[data-direction="down"] {
310
- animation: hide-top-to-bottom
311
- #{variables.$db-transition-straight-hide};
312
- }
297
+ transition: transform
298
+ #{variables.$db-transition-duration-slow}
299
+ #{variables.$db-transition-timing-emotional};
313
300
  }
314
301
  }
315
302
  }
@@ -129,70 +129,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
129
129
  transition: outline var(--db-transition-duration-extra-fast), color var(--db-transition-straight-emotional);
130
130
  }
131
131
 
132
- @keyframes show-right-to-left {
133
- from {
134
- transform: translateX(110%);
135
- }
136
- to {
137
- transform: translateX(0%);
138
- }
139
- }
140
- @keyframes hide-right-to-left {
141
- from {
142
- transform: translateX(0%);
143
- }
144
- to {
145
- transform: translateX(110%);
146
- }
147
- }
148
- @keyframes show-left-to-right {
149
- from {
150
- transform: translateX(-110%);
151
- }
152
- to {
153
- transform: translateX(0%);
154
- }
155
- }
156
- @keyframes hide-left-to-right {
157
- from {
158
- transform: translateX(0%);
159
- }
160
- to {
161
- transform: translateX(-110%);
162
- }
163
- }
164
- @keyframes show-bottom-to-top {
165
- from {
166
- transform: translateY(110%);
167
- }
168
- to {
169
- transform: translateY(0%);
170
- }
171
- }
172
- @keyframes hide-bottom-to-top {
173
- from {
174
- transform: translateY(0%);
175
- }
176
- to {
177
- transform: translateY(110%);
178
- }
179
- }
180
- @keyframes show-top-to-bottom {
181
- from {
182
- transform: translateY(-110%);
183
- }
184
- to {
185
- transform: translateY(0%);
186
- }
187
- }
188
- @keyframes hide-top-to-bottom {
189
- from {
190
- transform: translateY(0%);
191
- }
192
- to {
193
- transform: translateY(-110%);
194
- }
195
- }
196
132
  @keyframes popover-animation {
197
133
  0% {
198
134
  opacity: 0;
@@ -121,70 +121,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
121
121
  * @mixin screen-min-max
122
122
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
123
123
  */
124
- @keyframes show-right-to-left {
125
- from {
126
- transform: translateX(110%);
127
- }
128
- to {
129
- transform: translateX(0%);
130
- }
131
- }
132
- @keyframes hide-right-to-left {
133
- from {
134
- transform: translateX(0%);
135
- }
136
- to {
137
- transform: translateX(110%);
138
- }
139
- }
140
- @keyframes show-left-to-right {
141
- from {
142
- transform: translateX(-110%);
143
- }
144
- to {
145
- transform: translateX(0%);
146
- }
147
- }
148
- @keyframes hide-left-to-right {
149
- from {
150
- transform: translateX(0%);
151
- }
152
- to {
153
- transform: translateX(-110%);
154
- }
155
- }
156
- @keyframes show-bottom-to-top {
157
- from {
158
- transform: translateY(110%);
159
- }
160
- to {
161
- transform: translateY(0%);
162
- }
163
- }
164
- @keyframes hide-bottom-to-top {
165
- from {
166
- transform: translateY(0%);
167
- }
168
- to {
169
- transform: translateY(110%);
170
- }
171
- }
172
- @keyframes show-top-to-bottom {
173
- from {
174
- transform: translateY(-110%);
175
- }
176
- to {
177
- transform: translateY(0%);
178
- }
179
- }
180
- @keyframes hide-top-to-bottom {
181
- from {
182
- transform: translateY(0%);
183
- }
184
- to {
185
- transform: translateY(-110%);
186
- }
187
- }
188
124
  @keyframes popover-animation {
189
125
  0% {
190
126
  opacity: 0;
@@ -377,42 +313,46 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
377
313
  }
378
314
  .db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true][aria-expanded=true] ~ .db-sub-navigation {
379
315
  visibility: visible;
316
+ transform: translateX(0%);
380
317
  }
381
318
  @media screen and (prefers-reduced-motion: no-preference) {
382
319
  .db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true][aria-expanded=true] ~ .db-sub-navigation {
383
- transition: visibility 0ms linear 0ms;
384
- animation: show-right-to-left var(--db-transition-straight-show);
320
+ transition: visibility 0ms linear 0ms, transform var(--db-transition-duration-extra-slow) var(--db-transition-timing-emotional);
385
321
  }
386
322
  }
387
323
  .db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true][aria-expanded=true] ~ .db-sub-navigation .db-sub-navigation {
388
324
  inset-block: 0;
389
325
  }
326
+ .db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true]:not(.db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true][aria-expanded=true]) ~ .db-sub-navigation {
327
+ transform: translateX(110%);
328
+ }
390
329
  @media screen and (prefers-reduced-motion: no-preference) {
391
330
  .db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true]:not(.db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true][aria-expanded=true]) ~ .db-sub-navigation {
392
- transition: visibility 0ms linear 410ms;
393
- animation: hide-right-to-left var(--db-transition-straight-hide);
331
+ transition: visibility 0ms linear 410ms, transform var(--db-transition-duration-slow) var(--db-transition-timing-emotional);
394
332
  }
395
333
  }
396
334
  @media screen and (max-width: 63.9375em) {
397
335
  .db-navigation-item .db-navigation-item-expand-button[aria-expanded=true] ~ .db-sub-navigation {
398
336
  visibility: visible;
337
+ transform: translateX(0%);
399
338
  }
400
339
  }
401
340
  @media screen and (max-width: 63.9375em) and (prefers-reduced-motion: no-preference) {
402
341
  .db-navigation-item .db-navigation-item-expand-button[aria-expanded=true] ~ .db-sub-navigation {
403
- transition: visibility 0ms linear 0ms;
404
- animation: show-right-to-left var(--db-transition-straight-show);
342
+ transition: visibility 0ms linear 0ms, transform var(--db-transition-duration-extra-slow) var(--db-transition-timing-emotional);
405
343
  }
406
344
  }
407
345
  @media screen and (max-width: 63.9375em) {
408
346
  .db-navigation-item .db-navigation-item-expand-button[aria-expanded=true] ~ .db-sub-navigation .db-sub-navigation {
409
347
  inset-block: 0;
410
348
  }
349
+ .db-navigation-item .db-navigation-item-expand-button:not(.db-navigation-item .db-navigation-item-expand-button[aria-expanded=true]) ~ .db-sub-navigation {
350
+ transform: translateX(110%);
351
+ }
411
352
  }
412
353
  @media screen and (max-width: 63.9375em) and (prefers-reduced-motion: no-preference) {
413
354
  .db-navigation-item .db-navigation-item-expand-button:not(.db-navigation-item .db-navigation-item-expand-button[aria-expanded=true]) ~ .db-sub-navigation {
414
- transition: visibility 0ms linear 410ms;
415
- animation: hide-right-to-left var(--db-transition-straight-hide);
355
+ transition: visibility 0ms linear 410ms, transform var(--db-transition-duration-slow) var(--db-transition-timing-emotional);
416
356
  }
417
357
  }
418
358
  .db-navigation-item .db-navigation-item-expand-button:is(button),
@@ -24,11 +24,13 @@
24
24
  &[aria-expanded="true"] {
25
25
  ~ .db-sub-navigation {
26
26
  visibility: visible;
27
+ transform: translateX(0%);
27
28
 
28
29
  @media screen and (prefers-reduced-motion: no-preference) {
29
- transition: visibility 0ms linear 0ms;
30
- animation: show-right-to-left
31
- #{variables.$db-transition-straight-show};
30
+ transition:
31
+ visibility 0ms linear 0ms,
32
+ transform #{variables.$db-transition-duration-extra-slow}
33
+ #{variables.$db-transition-timing-emotional};
32
34
  }
33
35
 
34
36
  .db-sub-navigation {
@@ -38,11 +40,16 @@
38
40
  }
39
41
 
40
42
  &:not(&[aria-expanded="true"]) {
43
+ ~ .db-sub-navigation {
44
+ transform: translateX(110%);
45
+ }
46
+
41
47
  @media screen and (prefers-reduced-motion: no-preference) {
42
48
  ~ .db-sub-navigation {
43
- transition: visibility 0ms linear 410ms; // hide animation is 0.4s
44
- animation: hide-right-to-left
45
- #{variables.$db-transition-straight-hide};
49
+ transition:
50
+ visibility 0ms linear 410ms,
51
+ transform #{variables.$db-transition-duration-slow}
52
+ #{variables.$db-transition-timing-emotional}; // hide animation is 0.4s
46
53
  }
47
54
  }
48
55
  }