Jiaxu-Li / GlassIntroKit
git clone https://github.com/Jiaxu-Li/GlassIntroKit.git
0.1.0 · 3d ago
A first-launch intro for SwiftUI apps, made with Liquid Glass and Metal.
—
stars, 24h
+35
stars, 7 days · #1,181
+35
stars, 30 days · #8,022
35
★ total · +35% this week
1
forks · 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageSwift
LicenseApache-2.0
Created2026-10-17 (3d ago)
Last push3d ago
Watchers2
OwnerUser
GitHub topics
Links
- GitHub: github.com/Jiaxu-Li/GlassIntroKit
- Homepage: https://jiaxuli.com
- Releases · Issues · Hacker News mentions
README excerpt
GlassIntroKit A first-launch intro for SwiftUI apps, made with Liquid Glass and Metal. --- The launch opens on your mark on frosted glass. On the first launch a welcome follows: the mark writes "hello" in glass, then turns, page by page, into the pictures your app's story needs. At the end a few words turn in, the mark fills with colour, and it dissolves over your app. The same intro runs on macOS and iOS. Watch the full recording. ## Contents - Features - Requirements - Installation - Quick start - How an intro plays - Pages - The ending and the mark - Playing the intro - All options - Accessibility, localization, and privacy - Demo app - Documentation - Building and testing - FAQ - Contributing - Author - License ## Features - **One modifier.** `.glassIntro(appName:pages:)` on your root view, and the intro plays over it. - **Eight pictures, any order.** A greeting, the mark, scattered symbols, a live Metal scene, a graph, falling nodes, an app icon, and cards with your own views. Every pair joins without a jump. - **Yours to shape.** Graphs of your own nodes and wires, scenes in your shape, colour, and motion, a RealityKit or SwiftUI view through the lens, backgrounds, buttons, and the words of the ending. - **Tested frame by frame.** The tests play every page after every other page and fail on any frame that jumps. - **Accessible.** Reduce Motion, keyboard, and VoiceOver support. - **No dependencies, no network.** It stores one Boolean to remember that the welcome was shown. ## Requirements | | | |---|---| | Version | 0.1.0 | | Platforms | iOS 26 or later, macOS 26 or later | | Swift | 6.3 or later, Swift 6 language mode | | Tested with | Xcode 27, Swift 6.4 | | Built-in text | English | | Dependencies | None | | License | Apache 2.0 | ## Installation ### Xcode Choose **File › Add Package Dependencies…**, enter `https://github.com/Jiaxu-Li/GlassIntroKit.git`, and add **GlassIntroKit** to your app target. ### Swift Package Manager [code] ## Quick start [code] Run the app. The launch plays once per process, in the first window that shows it, and the welcome plays on the first launch. While you work on it, set `welcome: .everyLaunch` to see it at every launch (see Playing the intro). ## How an intro plays 1. **Launch.** Your mark comes up on frosted glass over the app. 2. **Welcome.** Your pages, one at a time. Each has a picture, a title, a message, and **Continue**. 3. **Last page.** "Let's Begin" and **Get Started**, in your words if you like. 4. **Ending.** Up to three lines of glass words, then the mark fills with colour. 5. **Your app.** The mark dissolves where it is, and the app is yours. ## Pages ### The eight pictures | Page | Picture | Options | |---|---|---| | `.greeting(_:message:)` | The mark gathers into a pen and writes "hello" in glass. | | | `.mark(_:message:)` | The mark in glass, its detail opening. | | | `.symbols(_:message:symbols:center:)` | The mark melts into a symbol, and glass symbols scatter out of it. | the sym