Migration from v6
January 23, 2026 · View on GitHub
What's new
- The library is now edge-to-edge by default on Android
- The Expo plugin now generates assets at prebuild (no need to run the CLI first)
isVisible()is now synchronous- A new
--plistCLI option to specify a customInfo.plistfile path
Breaking changes
Requirements
- React Native 0.80+
- Node.js 20+
- Expo SDK 54+
CLI changes
- The
--project-typeoption has been removed - The
npx react-native generate-bootsplashcommand has been removed. Usenpx react-native-bootsplash generateinstead
Expo plugin changes
- The plugin now generates assets at prebuild (no need to run the CLI first)
- The
assetsDiroption has been renamed toassetsOutput - The
android.parentThemeoption has been removed (the default theme is now edge-to-edge)
New plugin options for asset generation:
type PluginOptions = {
android?: {
darkContentBarsStyle?: boolean; // Enforce system bars style (default: undefined)
};
logo: string; // Logo file path (PNG or SVG) - required
background?: string; // Background color (in hexadecimal format) (default: "#fff")
logoWidth?: number; // Logo width at @1x (in dp - we recommend approximately ~100) (default: 100)
assetsOutput?: string; // Assets output directory path (default: "assets/bootsplash")
// Addon options
licenseKey?: string; // License key to enable brand and dark mode assets generation
brand?: string; // Brand file path (PNG or SVG)
brandWidth?: number; // Brand width at @1x (in dp - we recommend approximately ~80) (default: 80)
darkBackground?: string; // [dark mode] Background color (in hexadecimal format)
darkLogo?: string; // [dark mode] Logo file path (PNG or SVG)
darkBrand?: string; // [dark mode] Brand file path (PNG or SVG)
};
// app.json
{
"expo": {
+ "platforms": ["android", "ios", "web"], // must be explicit
"plugins": [
- ["react-native-bootsplash", { "assetsDir": "./assets/bootsplash" }],
+ [
+ "react-native-bootsplash",
+ {
+ "logo": "./assets/logo.png",
+ "background": "#f5fcff",
+ "logoWidth": 100,
+ "assetsOutput": "./assets/bootsplash"
+ // …
+ }
+ ]
]
}
}
Android theme changes
Theme.BootSplashis now edge-to-edge by defaultTheme.BootSplash.EdgeToEdgeandTheme.BootSplash.TransparentStatushave been removed
If you were using Theme.BootSplash.EdgeToEdge or Theme.BootSplash.TransparentStatus, simply switch to Theme.BootSplash:
<!-- values/styles.xml -->
- <style name="BootTheme" parent="Theme.BootSplash.EdgeToEdge">
+ <style name="BootTheme" parent="Theme.BootSplash">
API changes
The isVisible() method is now synchronous:
- BootSplash.isVisible().then((value) => console.log(value));
+ if (BootSplash.isVisible()) {
+ // Do something
+ }
How to update
- If you were using
Theme.BootSplash.TransparentStatusorTheme.BootSplash.EdgeToEdge, switch toTheme.BootSplash - Update any
isVisible()calls to use the new synchronous API - Replace
npx react-native generate-bootsplashwithnpx react-native-bootsplash generatein your scripts - If using Expo, update your plugin config accordingly and create a build