EaseView is a native Fabric component that brings declarative, CSS-transition-style animations to React Native using Core Animation on iOS and ObjectAnimator/SpringAnimation on Android. Animations run entirely off the JS thread — no worklets, no shared values, no JS animation loop.
It works like a standard View — accepts children, styles, and all ViewProps. When values in animate change, the view smoothly transitions to the new values using native platform APIs.
EaseView requires React Native 0.76+ (Fabric / new architecture). It does not support the old architecture.Usage
Props
AnimateProps
Target values for animated properties. When these values change, the view animates from its current state to the new values. See AnimateProps for the full list of animatable properties.
AnimateProps
Starting values for enter animations. On mount, the view starts at these values and animates to
animate. Without initialAnimate, the view renders at the animate values immediately with no mount animation.initialAnimate is also required when using loop on a timing transition — it defines the start value the loop returns to.Transition
Animation configuration. Controls whether the animation uses a fixed-duration timing curve, a physics-based spring, or no animation at all. Can be a single config applied to all properties, or a per-property map.Defaults to
{ type: 'timing', duration: 300, easing: 'easeInOut' } when omitted.See Transition for all configuration options.(event: TransitionEndEvent) => void
Called when all running animations complete. Receives a
TransitionEndEvent object.TransformOrigin
Pivot point for scale and rotation animations, expressed as 0–1 fractions of the view’s dimensions. Defaults to
{ x: 0.5, y: 0.5 } (center).boolean
default:"false"
Android only. When
true, rasterizes the view to a GPU texture for the duration of the animation. Animated property changes (opacity, scale, rotation) are then composited on the RenderThread without redrawing the view hierarchy.This is a no-op on iOS, where Core Animation already composites off the main thread.ViewStyle
Non-animated styles — layout, colors, borders, shadows, and any other
ViewStyle properties.If a property appears in both style and animate, the animated value takes priority and the style value is stripped. A dev warning is logged when this happens.string
NativeWind / Tailwind CSS class string. Requires NativeWind to be installed and configured in your project.
ReactNode
Child elements rendered inside the animated view.
ViewProps
All other standard React Native
View props are forwarded to the underlying view (accessible, testID, pointerEvents, etc.).Related
- AnimateProps — all animatable properties
- Transition — timing, spring, and none configuration
- Types — full TypeScript type reference