Skip to main content
Flutter
Docs
Guides
Learn
AI
Reference
search
routine
light_mode
Light
dark_mode
Dark
night_sight_auto
Automatic
apps
Flutter
Flutter
Docs
Flutter
API
Flutter
Blog
Dart
DartPad
pub.dev
Get started
menu
close
asterisk
Guides
play_lesson
Learn
auto_awesome
AI
api
Reference
Get started
Quick start
Custom setup
Learn Flutter
User interface
palette
Introduction
view_module
Widget catalog
expand_more
Overview
Design systems
expand_more
Cupertino
Material components
Base widgets
expand_more
Accessibility
Animation
Assets
Async
Basics
Input
Interaction
Layout
Painting
Scrolling
Styling
Text
view_quilt
Layout
expand_more
Introduction
Build a layout
Lists & grids
expand_more
Create and use lists
Create a horizontal list
Create a grid view
Create lists with different types of items
Create lists with spaced items
Work with long lists
Scrolling
expand_more
Overview
Use slivers to achieve fancy scrolling
Place a floating app bar above a list
Create a scrolling parallax effect
devices
Adaptive & responsive design
expand_more
Overview
General approach
SafeArea & MediaQuery
Large screens & foldables
User input & accessibility
Capabilities & policies
Automatic platform adaptations
Best practices
Additional resources
palette
Design & theming
expand_more
Share styles with themes
Material design
Migrate to Material 3
Text
expand_more
Fonts & typography
Use a custom font
Export fonts from a package
Google Fonts package
open_in_new
Custom graphics
expand_more
Use custom fragment shaders
touch_app
Interactivity
expand_more
Add interactivity to your app
Gestures
expand_more
Introduction
Handle taps
Drag an object outside an app
Drag a UI element within an app
Add Material touch ripples
Implement swipe to dismiss
Input & forms
expand_more
Create and style a text field
Retrieve the value of a text field
Handle changes to a text field
Manage focus in text fields
Build a form with validation
Display a snackbar
Implement actions & shortcuts
Manage keyboard focus
photo_library
Assets & media
expand_more
Add assets and images
Display images from the internet
Fade in images with a placeholder
Play and pause a video
Transform assets at build time
alt_route
Navigation & routing
expand_more
Overview
Add tabs to your app
Navigate to a new screen and back
Send data to a new screen
Return data from a screen
Add a drawer to a screen
Display a Cupertino sheet
Set up deep linking
Set up app links for Android
Set up universal links for iOS
Configure web URL strategies
animation
Animations & transitions
expand_more
Introduction
Tutorial
Implicit animations
Animate the properties of a container
Fade a widget in and out
Hero animations
Animate a page route transition
Animate using a physics simulation
Staggered animations
Create a staggered menu animation
API overview
accessibility
Accessibility
expand_more
Introduction
UI design & styling
Assistive technologies
Accessibility testing
Web accessibility
translate
Internationalization
Beyond UI
storage
Data & backend
expand_more
State management
expand_more
Introduction
Think declaratively
Ephemeral vs app state
Simple app state management
Options
Networking & http
expand_more
Overview
Fetch data from the internet
Make authenticated requests
Send data to the internet
Update data over the internet
Delete data on the internet
Communicate with WebSockets
Serialization
expand_more
JSON serialization
Parse JSON in the background
Persistence
expand_more
Store key-value data on disk
Read and write files
Persist data with SQLite
Firebase
expand_more
Overview
Add Firebase to your Flutter app
open_in_new
Google APIs
account_tree
App architecture
expand_more