webdevpuneet.com

App Splash Screen — Free Launch Loading UI Snippet

App Splash Screen · Mobile · Plain HTML, CSS & JS · Live preview

Copy & paste

Source Code

<div class="sp-phone">
  <div class="sp-screen" id="spScreen">
    <div class="sp-center">
      <div class="sp-logo">
        <svg viewBox="0 0 64 64" width="72"><circle class="sp-ring" cx="32" cy="32" r="26"/><path class="sp-tick" d="M22 33l7 7 14-16"/></svg>
      </div>
      <h1 class="sp-name">Cobalt</h1>
      <div class="sp-load"><span class="sp-fill" id="spFill"></span></div>
      <p class="sp-status" id="spStatus">Starting up…</p>
    </div>
    <div class="sp-foot">v2.4.0 · © Cobalt Labs</div>
  </div>
  <button type="button" class="sp-replay" id="spReplay">Replay</button>
</div>

Extend with AI

Take This Snippet Further With AI

The AI prompt for this one is for Patreon supporters ($3 a month), along with a site with no ads. Supporters enter the passcode once and it is remembered in this browser.

· Become a supporter

What's included

Features

Self-drawing logo
stroke-dasharray draws the ring and checkmark.
Staged progress
Discrete boot stages with labels, not a fake loop.
Smooth fill
The bar transitions between stage percentages.
Fade-out hand-off
Splash dismisses with a scale-and-fade.
Entrance animation
The content rises and fades in on load.
Branded layout
Logo, name, version line, gradient background.
Replayable
Re-run the whole sequence on demand.
No dependency
Pure HTML/CSS/JS for launch screens.

About this UI Snippet

App Splash Screen — Animated Launch Loading Screen

Screenshot of the App Splash Screen snippet rendered live

A splash screen is the branded launch screen an app shows while it boots — a centered logo, the app name, and often a progress indicator that fills as assets load. This snippet builds a polished one inside a CSS phone frame, with a self-drawing SVG logo, a staged progress bar with changing status text, and a fade-out hand-off, in HTML, CSS, and vanilla JavaScript with no dependency.

A logo that draws itself

The logo animates on with the stroke-dasharray line-drawing technique: the ring's stroke-dasharray equals its circumference and its stroke-dashoffset starts fully offset (invisible), then animates to 0 so the circle draws clockwise; the checkmark follows with its own delayed draw. Layered over a frosted, rounded badge, it gives a premium "assembling" entrance with no images — just two SVG paths and keyframes.

Staged progress, not a fake bar

Rather than a meaningless looping animation, the progress reflects discrete boot stages held in a STEPS array — "Loading assets", "Restoring session", "Syncing data", "Ready" — each with a target percentage and label. An interval advances through them, growing the fill (transitioned for smoothness) and updating the status line, so it reads like a real startup sequence. In production you'd advance a stage as each real task resolves instead of on a timer.

The fade-out hand-off

When loading completes, the splash content fades and scales up slightly before resetting — simulating the transition where a splash dismisses and reveals the app. This dismissal is the defining moment of a splash screen, and animating it (rather than cutting) makes the launch feel smooth.

Entrance and layout

The whole center block rises and fades in with a spRise keyframe on load, the background is a rich gradient, and a version/copyright line is pinned to the bottom — the conventional splash layout. Everything is centered with flexbox inside the device frame.

Reusing it

Swap the logo, name, and gradient for your brand, and drive the progress from real load events by calling the stage advance as each resource finishes. Lift it out of the phone frame to use as a web app's initial loading screen, or keep it framed beside a phone mockup for store assets.

Step by step

How to Use

  1. 1
    Paste HTML, CSS, and JSA splash screen renders inside a phone frame and starts loading.
  2. 2
    Watch the logo drawThe ring and checkmark draw themselves on load.
  3. 3
    Follow the progressThe bar advances through staged status messages.
  4. 4
    See the hand-offAt 100% the splash fades and scales out.
  5. 5
    Replay itClick Replay to run the launch sequence again.
  6. 6
    Drive real loadingAdvance a stage as each real boot task resolves.

Real-world uses

Common Use Cases

App launch screens
Boot an app with a self-drawing ring and checkmark logo using stroke-dasharray, shown inside a phone mockup.
Web app boot screens
Show a branded loader before a dashboard layout appears, with discrete stages and labels instead of a fake looping bar.
Launch to onboarding hand-off
Fade out with a scale and dissolve into mobile onboarding, so the transition feels like one continuous start.
Branding moments
Pair the draw-on logo with an animated success checkmark to share one visual language across loading and completion.
Store asset captures
Capture a launch frame for app store graphics next to a product hero, using the replay button to catch the perfect moment.
Related: Picture-in-Picture Video Card
See the Picture-in-Picture Video Card for a related mobile pattern worth pairing with this one.

Got questions?

Frequently Asked Questions

It uses the stroke-dasharray line-drawing technique. The ring's dash array equals its circumference and its dash offset starts fully offset so nothing shows, then a keyframe animates the offset to zero, drawing the circle. The checkmark has its own delayed draw. Two SVG paths and keyframes produce the assembling entrance with no images.

It models discrete boot stages from a STEPS array — loading assets, restoring session, syncing data, ready — each with a target percentage and status label. An interval advances through them. It's a realistic startup sequence, and in a real app you'd advance a stage as each actual task completes rather than on a timer.

When loading reaches the final stage, the splash content fades its opacity and scales up slightly before resetting, simulating the moment a splash screen dismisses to reveal the app. Animating the hand-off instead of cutting abruptly makes the launch feel smooth and intentional.

Yes. The phone frame is just a wrapper; the splash content is independent. Lift it out and show it as your web app's initial loading screen, then remove it once your app has hydrated. Drive the progress from real readiness events for an accurate bar.

Render it while an isLoading flag is true and unmount it when your data and assets are ready. Replace the timer with stage advances tied to real promises resolving, updating progress in state. Put the fade-out on the unmount transition. In Tailwind, center with flex, build the bar from a track and a width-bound fill, and animate the SVG with a small style block.