react-native-header-motion
v1.0.1
Published
Smooth, animated collapsible headers with scroll-based motion control in React Native
Readme
React Native Header Motion
Scroll-driven animated headers for React Native.
React Native Header Motion gives you the plumbing for collapsible, progress-driven headers without forcing a prebuilt UI on you. It measures the header, derives a shared progress value, keeps multiple scrollables in sync, and bridges that state into navigation-rendered headers when needed.
Built on top of:
Documentation
Full documentation lives here:
What it helps with
- Scroll-driven animated headers
- Shared header state across tabs, pagers, and multiple scrollables
- Navigation-rendered headers in Expo Router or React Navigation
- Custom scrollables via
createHeaderMotionScrollable()andScrollablePresets - Optional header panning
What it is not
- A fully styled header component
- A page layout framework
- A general-purpose animation abstraction on top of Reanimated
Installation
npm install react-native-header-motionPeer dependencies:
react-native-reanimated@^4.0.0react-native-gesture-handler@^2.0.0react-native-worklets@>=0.4.0
Then complete the standard setup for:
For other package managers and full setup notes, see the installation guide.
Quick example
import HeaderMotion from 'react-native-header-motion';
import { Stack } from 'expo-router';
import { View } from 'react-native';
export default function Screen() {
return (
<HeaderMotion>
<HeaderMotion.Bridge>
{(ctx) => (
<Stack.Screen
options={{
header: () => (
<HeaderMotion.NavigationBridge value={ctx}>
<AppHeader />
</HeaderMotion.NavigationBridge>
),
}}
/>
)}
</HeaderMotion.Bridge>
<HeaderMotion.ScrollView>{/* content */}</HeaderMotion.ScrollView>
</HeaderMotion>
);
}
function AppHeader() {
return (
<HeaderMotion.Header>
<HeaderMotion.Header.Dynamic>
<View>{/* collapsible content */}</View>
</HeaderMotion.Header.Dynamic>
<View>{/* sticky content */}</View>
</HeaderMotion.Header>
);
}In a real header, use useMotionProgress() to drive your Reanimated styles. See the Quick Start for the full walkthrough, animation examples, and styling details.
Version notes
- Upgrading from
v0.3.x? Read MIGRATION-v1.md. - Need the old API docs? See the README on branch
v0.
Example app
The repository includes an Expo Router example app covering simple headers, navigation bridging, shared headers across pages, custom scrollables, overscroll, pull to refresh, and more.
See:
Contributing
License
MIT
Made with create-react-native-library
