# Get started

Install Swift95 and render your first control.

## Run the example apps

Clone the [repository](https://github.com/DimaMishchenko/swift95), 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.

## Requirements

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

## Add the package

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

```text
https://github.com/dimamishchenko/swift95
```

Add the [`Swift95`](/api/documentation/swift95/) library to your target. Add [`Swift95Icons`](/api/documentation/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:

```swift
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.

## Render a control

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

```swift
import Swift95
import SwiftUI


struct SaveButton: View {
  var body: some View {
    Button95("Save") {
      saveDocument()
    }
  }


  private func saveDocument() {}
}
```

## Customize the theme

Components use [`Theme95.classic`](/components/theme/) by default. Install a customized theme only when you need to change the shared colors, metrics, or fonts.

```swift
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
    )
  }
}
```

## Next steps

Browse the [component directory](/components/) or read the full [Button95 documentation](/components/button/).
