Skip to content

Commit 2d502ea

Browse files
feat(tokens): add motion.easing.settle
1 parent c593d3a commit 2d502ea

5 files changed

Lines changed: 22 additions & 0 deletions

File tree

.changeset/motion-settle-easing.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@razorpay/blade': minor
3+
---
4+
5+
feat(tokens): add `motion.easing.settle` (`cubic-bezier(0.32, 0.72, 0, 1)`) for surfaces that grow, reflow, or settle into place — leaves quickly and decelerates hard into its final position

packages/blade/src/components/BladeProvider/__tests__/bladeLightTheme/bladeLightTheme.native.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const bladeLightTheme: Theme = {
1919
exit: Easing.bezier(0.17, 0, 1, 1),
2020
standard: Easing.bezier(0.3, 0, 0.2, 1),
2121
emphasized: Easing.bezier(0.5, 0, 0, 1),
22+
settle: Easing.bezier(0.32, 0.72, 0, 1),
2223
overshoot: Easing.bezier(0.5, 0, 0.3, 1.5),
2324
shake: Easing.bezier(1, 0.5, 0, 0.5),
2425
},

packages/blade/src/tokens/global/motion.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,17 @@ type Easing = {
9191
*/
9292
emphasized: EasingType<'cubic-bezier(0.5, 0, 0, 1)'>;
9393

94+
/**
95+
* Settle Easing
96+
*
97+
* Use Case: Surfaces that grow, reflow, or settle into place — a composer
98+
* expanding, a bar entering, chips reflowing. Leaves quickly and decelerates
99+
* hard into its final position.
100+
*
101+
* Returns cubic-bezier string in web and EasingFactoryFn of react-native-reanimated in native
102+
*/
103+
settle: EasingType<'cubic-bezier(0.32, 0.72, 0, 1)'>;
104+
94105
/**
95106
* Overshoot Easing
96107
*
@@ -149,6 +160,7 @@ const easing: Easing = {
149160
exit: makeBezier(0.17, 0, 1, 1),
150161
standard: makeBezier(0.3, 0, 0.2, 1),
151162
emphasized: makeBezier(0.5, 0, 0, 1),
163+
settle: makeBezier(0.32, 0.72, 0, 1),
152164
overshoot: makeBezier(0.5, 0, 0.3, 1.5),
153165
shake: makeBezier(1, 0.5, 0, 0.5),
154166
};

packages/blade/src/tokens/theme/__tests__/__snapshots__/createTheme.native.test.tsx.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1531,6 +1531,7 @@ exports[`createTheme should create a theme with the correct brand colors 1`] = `
15311531
"exit": "0.17 0 1 1",
15321532
"linear": "0 0 0 0",
15331533
"overshoot": "0.5 0 0.3 1.5",
1534+
"settle": "0.32 0.72 0 1",
15341535
"shake": "1 0.5 0 0.5",
15351536
"standard": "0.3 0 0.2 1",
15361537
},
@@ -3673,6 +3674,7 @@ exports[`createTheme should create a theme with the correct brand colors 4`] = `
36733674
"exit": "0.17 0 1 1",
36743675
"linear": "0 0 0 0",
36753676
"overshoot": "0.5 0 0.3 1.5",
3677+
"settle": "0.32 0.72 0 1",
36763678
"shake": "1 0.5 0 0.5",
36773679
"standard": "0.3 0 0.2 1",
36783680
},

packages/blade/src/tokens/theme/__tests__/__snapshots__/createTheme.web.test.tsx.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1459,6 +1459,7 @@ exports[`createTheme should create a theme with the correct brand colors 1`] = `
14591459
"exit": "cubic-bezier(0.17, 0, 1, 1)",
14601460
"linear": "cubic-bezier(0, 0, 0, 0)",
14611461
"overshoot": "cubic-bezier(0.5, 0, 0.3, 1.5)",
1462+
"settle": "cubic-bezier(0.32, 0.72, 0, 1)",
14621463
"shake": "cubic-bezier(1, 0.5, 0, 0.5)",
14631464
"standard": "cubic-bezier(0.3, 0, 0.2, 1)",
14641465
},
@@ -3216,6 +3217,7 @@ exports[`createTheme should create a theme with the correct brand colors 4`] = `
32163217
"exit": "cubic-bezier(0.17, 0, 1, 1)",
32173218
"linear": "cubic-bezier(0, 0, 0, 0)",
32183219
"overshoot": "cubic-bezier(0.5, 0, 0.3, 1.5)",
3220+
"settle": "cubic-bezier(0.32, 0.72, 0, 1)",
32193221
"shake": "cubic-bezier(1, 0.5, 0, 0.5)",
32203222
"standard": "cubic-bezier(0.3, 0, 0.2, 1)",
32213223
},

0 commit comments

Comments
 (0)