Skip to content
Swift95

Get started

Install Swift95 and render your first control.

Clone the repository, run make generate, and open Swift95.xcworkspace. Choose Spotify95, Slack95 or Finder95 for a standalone app, or Swift95Catalog to explore individual components. Slack95 focuses on iPhone conversations; Spotify95 and Finder95 show desktop layouts. All three use offline demo data.

  • Swift 6
  • iOS and iPadOS 18 or later
  • macOS 15 or later

In Xcode, choose File → Add Package Dependencies and enter:

https://github.com/dimamishchenko/swift95

Add the Swift95 library to your target. Add Swift95Icons as well if your interface uses the bundled icon set.

If you manage dependencies in Package.swift, add Swift95 to the package and reference its products from your target:

6.0
import PackageDescription
let package = Package(
name: "YourPackage",
platforms: [
.iOS(.v18),
.macOS(.v15)
],
dependencies: [
.package(
url: "https://github.com/dimamishchenko/swift95",
from: "1.0.0"
)
],
targets: [
.target(
name: "YourTarget",
dependencies: [
.product(name: "Swift95", package: "swift95"),
.product(name: "Swift95Icons", package: "swift95")
]
)
]
)

Omit the Swift95Icons product when your target does not use the bundled icons.

Import Swift95 beside SwiftUI, then use its components as ordinary SwiftUI views.

import Swift95
import SwiftUI
struct SaveButton: View {
var body: some View {
Button95("Save") {
saveDocument()
}
}
private func saveDocument() {}
}

Components use Theme95.classic by default. Install a customized theme only when you need to change the shared colors, metrics, or fonts.

import Swift95
import SwiftUI
struct ThemedButton95Example: View {
var body: some View {
Button95("Continue") {}
.theme95(customTheme)
}
private var customTheme: Theme95 {
var colors = Colors95.classic
colors.accent = .purple
return Theme95(
colors: colors,
metrics: .classic,
fonts: .classic
)
}
}

Browse the component directory or read the full Button95 documentation.