Skip to content

Installation

ThemeKit ships as a Swift Package. It targets iOS 17+ / macOS 14+ with Swift 6.2 tools, and the core product has zero dependencies — a plain install resolves nothing third-party. Lottie and the Calendar are opt-in add-ons gated behind package traits, so their dependencies (Lottie, Almanac/HorizonCalendar) are only fetched if you ask for them.

File ▸ Add Package Dependencies… and enter the repository URL:

https://github.com/isamercan/ThemeKit.git

You’ll get the dependency-free core. To add an optional add-on, enable its trait in the package’s Traits section (checkbox) — Lottie and/or Calendar — then add the matching library to your target.

dependencies: [
// Core only — zero third-party packages are resolved.
.package(url: "https://github.com/isamercan/ThemeKit.git", from: "0.3.0"),
// …or opt into an add-on's dependency at resolution time via traits:
// .package(url: "https://github.com/isamercan/ThemeKit.git", from: "0.3.0",
// traits: ["Lottie"]), // + lottie-ios
// traits: ["Lottie", "Calendar"]) // + lottie-ios, Almanac (iOS)
],
targets: [
.target(
name: "MyApp",
dependencies: [
.product(name: "ThemeKit", package: "ThemeKit"),
// Only with the matching trait enabled above:
// .product(name: "ThemeKitLottie", package: "ThemeKit"),
// .product(name: "ThemeKitCalendar", package: "ThemeKit"),
]
),
]
ProductTrait to enablePullsUse
ThemeKit— (default)nothingthe full design system (core)
ThemeKitLottieLottielottie-ios 4.4.0+Lottie (After Effects / JSON) animation views
ThemeKitCalendarCalendarAlmanac → HorizonCalendar (iOS-only)token-bound date-range calendar & time wheel

Next: Getting Started.