Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
cap-go avatar

Capacitor Splash Screen

  • 636 installs
  • 57 repo stars
  • Updated July 13, 2026
  • cap-go/capgo-skills

capacitor-splash-screen is a Claude Code skill that configures, generates assets for, and programmatically controls splash screens in Capacitor mobile apps so developers who ship iOS and Android apps can customize the la

About

capacitor-splash-screen is a cap-go Capacitor skill guiding installation of @capacitor/splash-screen via npm install and npx cap sync, with capacitor.config.ts configuration for iOS and Android launch screens. The skill covers asset generation, animated splash options, and programmatic control APIs for customizing app startup appearance and debugging splash screen issues. Mobile developers reach for it when launching a new Capacitor app, replacing default splash images, adding animated launch sequences, or troubleshooting splash display on native platforms. The output is a configured splash screen setup synced to both iOS and Android native projects.

  • Installs and configures the official @capacitor/splash-screen plugin
  • Generates platform-specific splash screen assets for iOS and Android
  • Supports animated splash screens and custom launch behaviors
  • Provides both config-based and programmatic API control
  • Handles common splash screen display and hiding issues

Capacitor Splash Screen by the numbers

  • 636 all-time installs (skills.sh)
  • Ranked #272 of 1,039 Mobile Development skills by installs in the Skillselion catalog
  • Data as of Aug 1, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cap-go/capgo-skills --skill capacitor-splash-screen

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs636
repo stars57
Last updatedJuly 13, 2026
Repositorycap-go/capgo-skills

How do you configure splash screens in Capacitor apps?

Quickly configure, generate assets for, and programmatically control splash screens in Capacitor mobile apps for iOS and Android.

Who is it for?

Mobile developers building Capacitor hybrid apps who need customized iOS and Android splash screens with asset generation and programmatic control.

Skip if: Pure native Swift/Kotlin apps without Capacitor, React Native projects, or web-only applications with no native shell.

When should I use this skill?

A developer customizes Capacitor splash screens, needs splash assets, wants animated launch screens, or debugs splash display issues.

What you get

Configured @capacitor/splash-screen plugin, capacitor.config.ts settings, generated splash assets, and synced iOS/Android native projects.

  • capacitor.config.ts splash settings
  • Generated splash assets
  • Synced native iOS and Android projects

By the numbers

  • Targets 2 platforms: iOS and Android
  • Uses @capacitor/splash-screen npm package with npx cap sync

Files

SKILL.mdMarkdownGitHub ↗

Splash Screen in Capacitor

Configure and customize splash screens for iOS and Android.

When to Use This Skill

  • User wants to customize splash screen
  • User needs splash screen assets
  • User wants animated splash
  • User has splash screen issues

Quick Start

Install Plugin

npm install @capacitor/splash-screen
npx cap sync

Basic Configuration

// capacitor.config.ts
import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  plugins: {
    SplashScreen: {
      launchShowDuration: 2000,
      launchAutoHide: true,
      backgroundColor: '#ffffff',
      androidSplashResourceName: 'splash',
      androidScaleType: 'CENTER_CROP',
      showSpinner: false,
      splashFullScreen: true,
      splashImmersive: true,
    },
  },
};

Programmatic Control

import { SplashScreen } from '@capacitor/splash-screen';

// Hide after app is ready
async function initApp() {
  // Initialize your app
  await loadUserData();
  await setupServices();

  // Hide splash screen
  await SplashScreen.hide();
}

// Show splash (useful for app refresh)
await SplashScreen.show({
  autoHide: false,
});

// Hide with animation
await SplashScreen.hide({
  fadeOutDuration: 500,
});

Generate Assets

Using Capacitor Assets

npm install -D @capacitor/assets

# Place source images in resources/
# resources/splash.png (2732x2732 recommended)
# resources/splash-dark.png (optional)

npx capacitor-assets generate

iOS Sizes

SizeUsage
2732x2732iPad Pro 12.9"
2048x2732iPad Pro portrait
2732x2048iPad Pro landscape
1668x2388iPad Pro 11"
1536x2048iPad
1242x2688iPhone XS Max
828x1792iPhone XR
1125x2436iPhone X/XS
1242x2208iPhone Plus
750x1334iPhone 8
640x1136iPhone SE

Android Sizes

DensitySize
mdpi320x480
hdpi480x800
xhdpi720x1280
xxhdpi960x1600
xxxhdpi1280x1920

iOS Storyboard

<!-- ios/App/App/Base.lproj/LaunchScreen.storyboard -->
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0">
    <scenes>
        <scene sceneID="1">
            <objects>
                <viewController id="2" sceneMemberID="viewController">
                    <view key="view" contentMode="scaleToFill" id="3">
                        <rect key="frame" x="0" y="0" width="414" height="896"/>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <subviews>
                            <imageView
                                contentMode="scaleAspectFit"
                                image="splash"
                                translatesAutoresizingMaskIntoConstraints="NO"
                                id="4">
                            </imageView>
                        </subviews>
                        <constraints>
                            <constraint firstItem="4" firstAttribute="centerX" secondItem="3" secondAttribute="centerX" id="5"/>
                            <constraint firstItem="4" firstAttribute="centerY" secondItem="3" secondAttribute="centerY" id="6"/>
                        </constraints>
                    </view>
                </viewController>
            </objects>
        </scene>
    </scenes>
</document>

Android Configuration

XML Splash Screen (Android 11+)

<!-- android/app/src/main/res/values/styles.xml -->
<resources>
    <style name="AppTheme.NoActionBarLaunch" parent="Theme.SplashScreen">
        <item name="windowSplashScreenBackground">@color/splash_background</item>
        <item name="windowSplashScreenAnimatedIcon">@drawable/splash</item>
        <item name="windowSplashScreenAnimationDuration">1000</item>
        <item name="postSplashScreenTheme">@style/AppTheme.NoActionBar</item>
    </style>
</resources>

Colors

<!-- android/app/src/main/res/values/colors.xml -->
<resources>
    <color name="splash_background">#FFFFFF</color>
</resources>

<!-- android/app/src/main/res/values-night/colors.xml -->
<resources>
    <color name="splash_background">#121212</color>
</resources>

Dark Mode Support

// capacitor.config.ts
plugins: {
  SplashScreen: {
    launchAutoHide: false, // Control manually
    backgroundColor: '#ffffff',
    // iOS will use LaunchScreen.storyboard variations
    // Android uses values-night/colors.xml
  },
},
// Detect dark mode and configure
import { SplashScreen } from '@capacitor/splash-screen';

const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;

// Show appropriate themed content
await SplashScreen.hide({
  fadeOutDuration: 300,
});

Animated Splash

Lottie Animation

import { SplashScreen } from '@capacitor/splash-screen';

async function showAnimatedSplash() {
  // Keep native splash while loading
  await SplashScreen.show({ autoHide: false });

  // Load Lottie animation in web
  const lottie = await import('lottie-web');

  // Show web-based animated splash
  document.getElementById('splash-animation').style.display = 'block';

  const animation = lottie.loadAnimation({
    container: document.getElementById('splash-animation'),
    path: '/animations/splash.json',
    loop: false,
  });

  animation.addEventListener('complete', async () => {
    // Hide native splash
    await SplashScreen.hide({ fadeOutDuration: 0 });
    // Hide web splash
    document.getElementById('splash-animation').style.display = 'none';
  });
}

Best Practices

1. Keep it fast - Under 2 seconds total 2. Match branding - Use consistent colors/logo 3. Support dark mode - Provide dark variants 4. Don't block - Load essentials only 5. Progressive reveal - Fade out smoothly

Troubleshooting

IssueSolution
White flashMatch splash background to app
StretchingUse correct asset sizes
Not hidingCall hide() manually
Dark mode wrongAdd values-night resources

Resources

  • Capacitor Splash Screen: https://capacitorjs.com/docs/apis/splash-screen
  • Capacitor Assets: https://github.com/ionic-team/capacitor-assets
  • Android Splash Screens: https://developer.android.com/develop/ui/views/launch/splash-screen

Related skills

How it compares

Pick capacitor-splash-screen over generic mobile UI skills when configuring launch screens specifically in Capacitor hybrid apps.

FAQ

How do you install capacitor-splash-screen plugin?

capacitor-splash-screen guides running npm install @capacitor/splash-screen followed by npx cap sync to register the plugin in iOS and Android native projects. Configuration lives in capacitor.config.ts.

Which platforms does capacitor-splash-screen support?

capacitor-splash-screen covers splash screen configuration, asset generation, animation, and programmatic control for both iOS and Android in Capacitor hybrid apps.

Mobile Developmentfrontendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.