You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+73-58Lines changed: 73 additions & 58 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,6 +24,24 @@ npm install react-native-ease
24
24
yarn add react-native-ease
25
25
```
26
26
27
+
## Migration Skill
28
+
29
+
If you're already using `react-native-reanimated` or React Native's `Animated` API, this project includes an [Agent Skill](https://agentskills.io) that scans your codebase for animations that can be replaced with `react-native-ease` and migrates them automatically.
30
+
31
+
```bash
32
+
npx skills add appandflow/react-native-ease
33
+
```
34
+
35
+
Then invoke the skill in your agent (e.g., `/refactor` in Claude Code).
36
+
37
+
The skill will:
38
+
39
+
1. Scan your project for Reanimated/Animated code
40
+
2. Classify which animations can be migrated (and which can't, with reasons)
41
+
3. Show a migration report with before/after details
42
+
4. Let you select which components to migrate
43
+
5. Apply the changes, preserving all non-animation logic
44
+
27
45
## Quick Start
28
46
29
47
```tsx
@@ -46,13 +64,13 @@ function FadeCard({ visible, children }) {
backgroundColor: 'transparent', // any RN color value
203
221
}}
204
222
/>
@@ -280,11 +298,11 @@ By default, scale and rotation animate from the view's center. Use `transformOri
280
298
/>
281
299
```
282
300
283
-
| Value | Position |
284
-
|---|---|
285
-
|`{ x: 0, y: 0 }`| Top-left |
301
+
| Value | Position|
302
+
|-------------------- |---------------- |
303
+
|`{ x: 0, y: 0 }`| Top-left|
286
304
|`{ x: 0.5, y: 0.5 }`| Center (default) |
287
-
|`{ x: 1, y: 1 }`| Bottom-right |
305
+
|`{ x: 1, y: 1 }`| Bottom-right|
288
306
289
307
### Style Handling
290
308
@@ -318,32 +336,32 @@ By default, scale and rotation animate from the view's center. Use `transformOri
318
336
319
337
A `View` that animates property changes using native platform APIs.
320
338
321
-
| Prop | Type | Description |
322
-
|---|---|---|
323
-
|`animate`|`AnimateProps`| Target values for animated properties |
324
-
|`initialAnimate`|`AnimateProps`| Starting values for enter animations (animates to `animate` on mount) |
325
-
|`transition`|`Transition`| Animation configuration (timing, spring, or none) |
326
-
|`onTransitionEnd`|`(event) => void`| Called when all animations complete with `{ finished: boolean }`|
327
-
|`transformOrigin`|`{ x?: number; y?: number }`| Pivot point for scale/rotation as 0–1 fractions. Default: `{ x: 0.5, y: 0.5 }` (center) |
328
-
|`useHardwareLayer`|`boolean`| Android only — rasterize to GPU texture during animations. See [Hardware Layers](#hardware-layers-android). Default: `false`|
|`animate`|`AnimateProps`| Target values for animated properties|
342
+
|`initialAnimate`|`AnimateProps`| Starting values for enter animations (animates to `animate` on mount)|
343
+
|`transition`|`Transition`| Animation configuration (timing, spring, or none)|
344
+
|`onTransitionEnd`|`(event) => void`| Called when all animations complete with `{ finished: boolean }`|
345
+
|`transformOrigin`|`{ x?: number; y?: number }`| Pivot point for scale/rotation as 0–1 fractions. Default: `{ x: 0.5, y: 0.5 }` (center)|
346
+
|`useHardwareLayer`|`boolean`| Android only — rasterize to GPU texture during animations. See [Hardware Layers](#hardware-layers-android). Default: `false`|
|`translateX`|`number`|`0`| Horizontal translation in pixels|
357
+
|`translateY`|`number`|`0`| Vertical translation in pixels|
358
+
|`scale`|`number`|`1`| Uniform scale factor (shorthand for `scaleX` + `scaleY`)|
359
+
|`scaleX`|`number`|`1`| Horizontal scale factor (overrides `scale` for X axis)|
360
+
|`scaleY`|`number`|`1`| Vertical scale factor (overrides `scale` for Y axis)|
361
+
|`rotate`|`number`|`0`| Z-axis rotation in degrees|
362
+
|`rotateX`|`number`|`0`| X-axis rotation in degrees (3D)|
363
+
|`rotateY`|`number`|`0`| Y-axis rotation in degrees (3D)|
364
+
|`borderRadius`|`number`|`0`| Border radius in pixels (hardware-accelerated, clips children)|
347
365
|`backgroundColor`|`ColorValue`|`'transparent'`| Background color (any RN color value). Timing-only on Android, spring+timing on iOS. |
348
366
349
367
Properties not specified in `animate` default to their identity values.
@@ -385,10 +403,7 @@ Applies values instantly with no animation. `onTransitionEnd` fires immediately
385
403
Setting `useHardwareLayer` rasterizes the view into a GPU texture for the duration of the animation. This means animated property changes (opacity, scale, rotation) are composited on the RenderThread without redrawing the view hierarchy — useful for complex views with many children.
0 commit comments