Repository navigation
PaperConfetti 0.1.0
PaperConfetti's first release brings lifelike paper celebrations to SwiftUI and UIKit with a simple method-based API.
Highlights
- Call
confetti.pop()to celebrate andconfetti.cancel()to stop. No event counter required. - Thirteen festive silhouettes: four stars, four streamers, a hollow ring, and four paper cuts. Three classic shapes are also available.
- Matching shapes share a randomized descent speed within each burst. Individual pieces spin and tumble independently.
- Customize colors, shapes, particle counts, dimensions, flight distance, spread, motion, seeds, and independently delayed cannons.
- Core Animation playback with bounded texture caching, explicit cleanup, Reduce Motion support, scene cancellation, and touch-transparent overlays.
- Interactive example app, DocC guides, tests, and repeatable simulator captures.
- No runtime dependencies, networking, analytics, or stored identifiers. MIT licensed, with the original ConfettiSwiftUI attribution included.
Installation
.package(url: "https://github.com/twhitt14/PaperConfetti.git", from: "0.1.0")Add .product(name: "PaperConfetti", package: "paperconfetti") to your target dependencies, then import PaperConfetti.
The repository is currently private, so GitHub access is required. Rendering supports iOS/iPadOS 16+; the package uses Swift tools 5.9+. macOS 13+ exposes the physics model, without an AppKit renderer.
Validation
Both hosted toolchains, Xcode 16.4 and 26.6, pass 8 macOS physics tests, 14 iOS package tests, 2 example interaction tests, Release builds, and DocC generation. Interaction tests exercise taps, toggles, scrolling, navigation, cancellation, and the Reduce Motion preview.
Physical-device FPS/energy profiling and a minimum-iOS runtime run remain follow-up work. Simulator results are not a device-performance guarantee; the 2,000-particle safety limit is not a recommended particle count.
Release verification: main CI and 0.1.0 tag CI both passed. A fresh consumer resolved exact version 0.1.0, built and imported the product, exercised its physics model, and verified the bundled attribution.