This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Expo BlurView
A React component that blurs everything underneath the view.
A React component that blurs everything underneath the view. Common usage of this is for navigation bars, tab bars, and modals.
In SDK 55 and later,
expo-bluris stable on Android, but some code changes are required for theBlurViewto work. See the Android support section to learn more.
Known issues
The blur effect does not update when BlurView is rendered before dynamic content is rendered using, for example, FlatList. To fix this, make sure that BlurView is rendered after the dynamic content component. For example:
<View> <FlatList /> <BlurView /> </View>
Installation
If you are installing this in an existing React Native app, make sure to install expo in your project.
Usage
Basic iOS and web-only BlurView usage
This is the legacy way of creating a BlurView, which will result in a blur only on iOS. On Android, this will result in a view with a semi-transparent background.
Basic BlurView usage with Android support
To blur the background of a view on Android, wrap the content to be blurred in a BlurTargetView component and pass its ref to the BlurView.
Note: Notice that, as long as all of the
BlurViewsfit into the bounds of a singleBlurTargetView, you can use the singleBlurTargetViewfor multipleBlurViews. This is more efficient than creating multipleBlurTargetViews.
Android support
The blurring feature is stable on Android. There are a few things to keep in mind when migrating:
API
To blur the background of a view on Android, wrap the content to be blurred in a BlurTargetView component and pass its ref to the BlurView. You can see an example in the Usage section.
Performance
The blur can be achieved efficiently only by using the RenderNode Android API, which was introduced in Android SDK 31 (Android 12.0). Due to this, on older versions of Android expo-blur uses the much less efficient RenderScript API. If you want to avoid the performance penalty on older platforms you can use the dimezisBlurViewSdk31Plus BlurMethod which will only blur on newer versions of Android and fall back to the none on older versions.
API
import { BlurView } from 'expo-blur';
No API data file found, sorry!
Using borderRadius with BlurView
When using BlurView on Android and iOS, the borderRadius property is not applied when provided explicitly. To fix this, you can use the overflow: 'hidden' style since BlurView inherits props from <View>. See Usage for an example.