Showcase rebuilt from the original handoff package. The animation frames below are rendered live from the original
splash-light.json / splash-dark.json Lottie files; specs are quoted from the package README.Motion, frame by frame — light
Motion, frame by frame — dark
Play it
Motion spec
| Phase | Time | Layer | Change | Easing |
|---|---|---|---|---|
| Hold | 0–150 ms | — | background only | — |
| Entrance | 150–750 ms | mark | opacity 0→1, scale 0.80→1.06, rotation −40°→0° | ease-out |
| Settle | 750–1000 ms | mark | scale 1.06→1.00 | ease-out |
| Hold | 1000–1050 ms | — | — | — |
| Wordmark | 1050–1400 ms | wordmark | opacity 0→1 | ease-in-out |
Hand-off to app content ≈200 ms after the wordmark lands. On Android 12+ the entrance is compressed to 600 ms to fit the OS's hard 1,000 ms system-splash budget — intentional, documented for QA.
Tokens
| Role | Token | Light | Dark |
|---|---|---|---|
| Background | color/surface/default | #F5F5F5 | #1F2126 |
| Mark + wordmark tint | color/surface/on-surface-var | #666666 | #E5E5E5 |
Contrast 5.7:1 (light) and 10.4:1 (dark): both pass WCAG AA for graphical objects. Assets are template images, tinted by token rather than baked-in fills.
What engineering received
splash-screen-handoff/
├── README.md spec + rationale
├── assets/ logo-mark.svg, logo-wordmark.svg
├── ios/
│ ├── SplashView.swift SwiftUI animated splash
│ ├── LaunchScreen.storyboard static first frame
│ └── Assets.xcassets/ light/dark colorsets
├── android/
│ ├── MainActivity.kt splash install + wordmark fade
│ └── res/ themes (API 21+, 31+), colors (+night),
│ ic_splash_logo.xml, avd_splash_logo.xml
└── lottie/ alternative route
├── LOTTIE-HANDOFF.md
├── splash-light.json / splash-dark.json
└── preview.html
Platform parity, written for QA
- iOS: static launch screen, then the app animates from the first frame.
- Android 12+: the mark animates inside the system splash itself (circle-masked by the OS; mark sits in the safe zone).
- Android <12: static mark, no crash.
- Reduce Motion shows the static final state on both platforms.
- Light/dark follows the OS appearance only — no in-app theme logic.