Guide · mobile
Expo splash screen: complete setup guide
October 23, 2026 · 10 min read
Expo splash is mostly one PNG plus a background color. Get those two right and most devices look fine. Get them wrong and users see a white flash between the native splash and your first React Native frame, especially on slower Android devices.
app.json / app.config keys
Set expo.splash.image to your splash.png path, resizeMode (usually contain), and backgroundColor to the exact brand fill behind the logo. If you use a config function, keep the same keys under the exported expo object.
A mismatch between backgroundColor and the PNG's baked background is the usual cause of a visible seam when the splash dismisses.
Generate splash.png
Use the splash generator with the Expo preset. Prefer a logo-centered composition on a solid color over a full-bleed photo; photos fight resizeMode and safe areas on tablets.
Commit splash.png next to other assets and reference it with a stable relative path. After changing it, rebuild the native binary. OTA updates alone do not always refresh splash bitmaps.
Android 12+ system splash
Newer Android versions show a system splash derived from the adaptive icon while the process starts. Keep the adaptive foreground compatible with the Expo splash logo so the handoff does not swap symbols mid-launch.
If the adaptive icon uses a different monogram than the splash wordmark, users notice. Align the two designs even if the pipelines differ.
Testing checklist
Cold-start on a release build, not Expo Go alone. Rotate once on a tablet. Toggle dark mode if your root view supports it. Splash colors that only work in light mode cause a second flash when the JS theme applies.