saulsharma/netflix-ui

Netflix UI in Expo/React Native

TypeScript

1,717

227 commits

updated Jan 2, 2026

See the code

README

Netflix UI Clone with Expo

A high-fidelity Netflix mobile UI clone built with React Native and Expo, featuring advanced animations and gesture interactions.

Demo

Key Features

Profile Management

  • ๐Ÿ‘ฅ Animated profile selection screen with staggered loading
  • ๐Ÿ”„ Smooth profile switching transitions
  • ๐ŸŽต Sound effects and haptic feedback
  • ๐Ÿ”„ Custom tab navigation with sliding animations
  • ๐Ÿ’ซ Gesture-based content interactions
  • ๐ŸŒŸ Shared element transitions between screens
  • ๐Ÿ“ฑ iOS-style modal presentations
  • ๐ŸŽจ Dynamic blur effects and scaling
  • ๐Ÿ”„ Tilt animations for featured content

Content Screens

  • ๐Ÿ  Animated home screen with featured content
  • ๐Ÿ”ฅ "New & Hot" section with Netflix-style layout
  • ๐ŸŽฎ Mobile games showcase
  • ๐Ÿ” Dynamic search with instant results
  • โฌ‡๏ธ Downloads management
  • ๐Ÿ“บ Teaser Video player
  • ๐Ÿ“‹ Expandable categories list
  • ๐Ÿ”ค Custom font

Performance

  • โšก Optimized animations using Reanimated
  • ๐Ÿ“Š Efficient list rendering [wip]
  • ๐ŸŽฏ Native gesture handling
  • ๐Ÿ”„ Smart transition management

Tech Stack

Implementation Details

Animation System

  • Custom tab screen wrapper for consistent transitions
  • Worklet-based animations for optimal performance
  • Shared element transitions for content previews
  • Gesture-based modal interactions

State Management

  • Context-based profile management
  • Animation state coordination
  • Tab navigation state handling

UI Components

  • Reusable animated components
  • Custom Netflix-style icons and layouts

Project Structure

project-root/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ (tabs)/
โ”‚   โ”‚   โ”œโ”€โ”€ (profile)/        # Profile section
โ”‚   โ”‚   โ”œโ”€โ”€ index.tsx         # Home screen
โ”‚   โ”‚   โ””โ”€โ”€ new.tsx          # New & Hot screen
โ”‚   โ”œโ”€โ”€ movie/
โ”‚   โ”œโ”€โ”€ _layout.tsx          # Root layout
โ”‚   โ””โ”€โ”€ search.tsx           # Search functionality
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ MovieList/           # Movie listings
โ”‚   โ”œโ”€โ”€ GameList/            # Games section
โ”‚   โ”œโ”€โ”€ FeaturedContent/     # Featured content
โ”‚   โ”œโ”€โ”€ BottomSheet/         # Bottom sheets
โ”‚   โ”œโ”€โ”€ navigation/          # Navigation components
โ”‚   โ””โ”€โ”€ WhoIsWatching/       # Profile selection
โ”œโ”€โ”€ hooks/
โ”‚   โ”œโ”€โ”€ useCachedResources.ts
โ”‚   โ”œโ”€โ”€ useColorScheme.ts
โ”‚   โ”œโ”€โ”€ useDeviceMotion.ts
โ”‚   โ””โ”€โ”€ useOverlayView.ts
โ”œโ”€โ”€ data/
โ”‚   โ”œโ”€โ”€ movies.json          # Movie data
โ”‚   โ”œโ”€โ”€ new.json            # New content data
โ”‚   โ””โ”€โ”€ users.json          # User profiles
โ””โ”€โ”€ contexts/               # App-wide state management

TODO

  • Shared transition on modal navigation
  • Bug: Disable shift animation on back (fixed on branch router-4 (React Navigation 7))
  • X-Ray style content details
  • Full screen video player
  • Color extraction from images for dynamic theming

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Submit a pull request

License

MIT License

saulsharma/netflix-ui

Netflix UI in Expo/React Native

TypeScript

1,717

227 commits

updated Jan 2, 2026

See the code

README

Netflix UI Clone with Expo

A high-fidelity Netflix mobile UI clone built with React Native and Expo, featuring advanced animations and gesture interactions.

Demo

Key Features

Profile Management

  • ๐Ÿ‘ฅ Animated profile selection screen with staggered loading
  • ๐Ÿ”„ Smooth profile switching transitions
  • ๐ŸŽต Sound effects and haptic feedback
  • ๐Ÿ”„ Custom tab navigation with sliding animations
  • ๐Ÿ’ซ Gesture-based content interactions
  • ๐ŸŒŸ Shared element transitions between screens
  • ๐Ÿ“ฑ iOS-style modal presentations
  • ๐ŸŽจ Dynamic blur effects and scaling
  • ๐Ÿ”„ Tilt animations for featured content

Content Screens

  • ๐Ÿ  Animated home screen with featured content
  • ๐Ÿ”ฅ "New & Hot" section with Netflix-style layout
  • ๐ŸŽฎ Mobile games showcase
  • ๐Ÿ” Dynamic search with instant results
  • โฌ‡๏ธ Downloads management
  • ๐Ÿ“บ Teaser Video player
  • ๐Ÿ“‹ Expandable categories list
  • ๐Ÿ”ค Custom font

Performance

  • โšก Optimized animations using Reanimated
  • ๐Ÿ“Š Efficient list rendering [wip]
  • ๐ŸŽฏ Native gesture handling
  • ๐Ÿ”„ Smart transition management

Tech Stack

Implementation Details

Animation System

  • Custom tab screen wrapper for consistent transitions
  • Worklet-based animations for optimal performance
  • Shared element transitions for content previews
  • Gesture-based modal interactions

State Management

  • Context-based profile management
  • Animation state coordination
  • Tab navigation state handling

UI Components

  • Reusable animated components
  • Custom Netflix-style icons and layouts

Project Structure

project-root/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ (tabs)/
โ”‚   โ”‚   โ”œโ”€โ”€ (profile)/        # Profile section
โ”‚   โ”‚   โ”œโ”€โ”€ index.tsx         # Home screen
โ”‚   โ”‚   โ””โ”€โ”€ new.tsx          # New & Hot screen
โ”‚   โ”œโ”€โ”€ movie/
โ”‚   โ”œโ”€โ”€ _layout.tsx          # Root layout
โ”‚   โ””โ”€โ”€ search.tsx           # Search functionality
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ MovieList/           # Movie listings
โ”‚   โ”œโ”€โ”€ GameList/            # Games section
โ”‚   โ”œโ”€โ”€ FeaturedContent/     # Featured content
โ”‚   โ”œโ”€โ”€ BottomSheet/         # Bottom sheets
โ”‚   โ”œโ”€โ”€ navigation/          # Navigation components
โ”‚   โ””โ”€โ”€ WhoIsWatching/       # Profile selection
โ”œโ”€โ”€ hooks/
โ”‚   โ”œโ”€โ”€ useCachedResources.ts
โ”‚   โ”œโ”€โ”€ useColorScheme.ts
โ”‚   โ”œโ”€โ”€ useDeviceMotion.ts
โ”‚   โ””โ”€โ”€ useOverlayView.ts
โ”œโ”€โ”€ data/
โ”‚   โ”œโ”€โ”€ movies.json          # Movie data
โ”‚   โ”œโ”€โ”€ new.json            # New content data
โ”‚   โ””โ”€โ”€ users.json          # User profiles
โ””โ”€โ”€ contexts/               # App-wide state management

TODO

  • Shared transition on modal navigation
  • Bug: Disable shift animation on back (fixed on branch router-4 (React Navigation 7))
  • X-Ray style content details
  • Full screen video player
  • Color extraction from images for dynamic theming

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Submit a pull request

License

MIT License

Significant stargazers

Mathieu Acthernoene

901 followers ยท starred Nov 2024

Anton Reshetov

335 followers ยท starred Nov 2024

Bruno Lemos

1,184 followers ยท starred Nov 2024

Aman Mittal

1,459 followers ยท starred Dec 2024