Skip to content

Commit 62ce24e

Browse files
committed
fix: drawer animation (#5593)
1 parent 019e3dd commit 62ce24e

File tree

3 files changed

+26
-14
lines changed

3 files changed

+26
-14
lines changed

.changeset/famous-stars-marry.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@ultraviolet/ui": patch
3+
---
4+
5+
`Drawer`: fix animation on small

packages/ui/src/components/Drawer/__tests__/__snapshots__/index.test.tsx.snap

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -207,10 +207,10 @@ exports[`drawer > renders with disclosure and onClose 1`] = `
207207
208208
@keyframes animation-1 {
209209
from {
210-
-webkit-transform: translateX(22rem);
211-
-moz-transform: translateX(22rem);
212-
-ms-transform: translateX(22rem);
213-
transform: translateX(22rem);
210+
-webkit-transform: translateX(21rem);
211+
-moz-transform: translateX(21rem);
212+
-ms-transform: translateX(21rem);
213+
transform: translateX(21rem);
214214
}
215215
216216
to {
@@ -223,10 +223,10 @@ exports[`drawer > renders with disclosure and onClose 1`] = `
223223
224224
@keyframes animation-1 {
225225
from {
226-
-webkit-transform: translateX(22rem);
227-
-moz-transform: translateX(22rem);
228-
-ms-transform: translateX(22rem);
229-
transform: translateX(22rem);
226+
-webkit-transform: translateX(21rem);
227+
-moz-transform: translateX(21rem);
228+
-ms-transform: translateX(21rem);
229+
transform: translateX(21rem);
230230
}
231231
232232
to {

packages/ui/src/components/Drawer/index.tsx

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export const SIZES = {
1818
// 1 rem = 16 px
1919
small: 22.25,
2020
}
21+
2122
const slideIn = (translation: number) => keyframes`
2223
from {
2324
transform: translateX(${translation}rem);
@@ -28,14 +29,20 @@ const slideIn = (translation: number) => keyframes`
2829
`
2930

3031
const slideAnimation = (size: 'small' | 'medium' | 'large') => {
31-
if (size === 'small') {
32-
return css`animation: ${slideIn(22)} linear 150ms;`
33-
}
34-
if (size === 'medium') {
35-
return css`animation: ${slideIn(48)} linear 250ms;`
32+
const translations = {
33+
large: 70,
34+
medium: 48,
35+
small: 21,
36+
} as const
37+
38+
const animationDuration = {
39+
large: 300,
40+
medium: 250,
41+
small: 150,
3642
}
43+
const animation = slideIn(translations[size])
3744

38-
return css`animation: ${slideIn(70)} linear 300ms;`
45+
return css`animation: ${animation} linear ${animationDuration[size]}ms;`
3946
}
4047

4148
const StyledModal = styled(Modal)`

0 commit comments

Comments
 (0)