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.

Related tools

More in this cluster