v1.0 is now available

Beautiful, customizable UI for SwiftUI apps.

Build friendly and delightful iOS, macOS, tvOS, and watchOS apps with our modern design system and 20+ ready-to-use components.

20+

Components

4

Platforms

100%

SwiftUI

Why PrettyUI

Everything you need to build beautiful SwiftUI apps.

20+ Components

From buttons to modals, we've got all the building blocks you need to create beautiful interfaces.

Customizable Theming

Easily customize colors, typography, and spacing with our flexible theming system.

SwiftPM Support

Simple installation via Swift Package Manager. Just add the package and start building.

Cross-Platform

Build for iOS, macOS, tvOS, and watchOS with a single, unified component library.

Component Library

18+ beautifully crafted components

Every component is thoughtfully designed with accessibility, customization, and native SwiftUI patterns in mind.

PButton

PCard

PTextField

PToast

PModal

PAccordion

PAvatar

PAlert

PSpinner

PSkeleton

PTooltip

PPopover

PList

PTab

PMorphingFAB

PIconButton

PText

PTapGesture

See It In Action

Experience the components in real apps.

Watch how PrettyUI components work in real-world applications. Every interaction is smooth, every animation is delightful.

  • Native SwiftUI animations
  • Haptic feedback support
  • Dark mode ready
  • Accessibility built-in
  • Fully customizable themes

View on GitHub

Browse the code

PrettyUI Demo
PrettyUI
swiftTheme.swift
extension PrettyTheme {
    static let sky = PrettyTheme(
        name: "Sky",
        colors: .init(
            primary: Color(hex: "#1DA1F2"),
            background: Color(hex: "#F8F9FA"),
            card: Color(hex: "#FFFFFF"),
            foreground: Color(hex: "#1D1D1F")
        ),
        typography: .init(
            fontFamily: .system
        )
    )
}

Theming System

Make it yours with custom themes.

PrettyUI comes with a flexible theming system. Choose from pre-built themes or create your own by customizing colors, typography, and spacing tokens.

PrettyUI
swiftContentView.swift
import SwiftUI
import PrettyUI

struct ContentView: View {
    @State private var showModal = false
    @State private var showPopover = false
    
    var body: some View {
        VStack(spacing: 20) {
            PButton("Show Modal") {
                showModal = true
            }
            .variant(.primary)
            
            PButton("Show Info") {
                showPopover = true
            }
            .variant(.secondary)
            .pPopover(isPresented: $showPopover, position: .top) {
                VStack(alignment: .leading, spacing: 8) {
                    Text("Quick Tip").font(.headline)
                    Text("Tap anywhere to dismiss")
                        .foregroundStyle(.secondary)
                }
            }
        }
        .pModal(isPresented: $showModal) {
            PModalContent("Welcome!")
                .description("Get started with PrettyUI")
                .icon("sparkles")
                .actions {
                    PButton("Continue") { showModal = false }
                        .variant(.primary)
                        .fullWidth()
                }
        }
    }
}

Developer Experience

Clean, intuitive API that feels native.

PrettyUI components are designed to feel like natural extensions of SwiftUI. No complex configurations, no boilerplate, just clean, declarative code.

SwiftUI-native patterns

Familiar modifiers and view builders that fit right in.

Type-safe styling

Compiler-checked theme tokens prevent design system drift.

Declarative animations

Built-in motion primitives for delightful interactions.

Loved by Developers

What developers are saying

Early feedback from developers building with PrettyUI.

SC

Sarah Chen

@sarahchen_dev

PrettyUI has completely transformed how I build SwiftUI apps. The components are beautiful and the theming system is incredibly flexible.

MJ

Marcus Johnson

@marcusj

Finally, a component library that feels native to SwiftUI. No more fighting with UIKit bridges or hacky workarounds.

ER

Emily Rodriguez

@emily_codes

The attention to detail in PrettyUI is remarkable. Every animation, every interaction feels polished and intentional.

SC

Sarah Chen

@sarahchen_dev

PrettyUI has completely transformed how I build SwiftUI apps. The components are beautiful and the theming system is incredibly flexible.

MJ

Marcus Johnson

@marcusj

Finally, a component library that feels native to SwiftUI. No more fighting with UIKit bridges or hacky workarounds.

ER

Emily Rodriguez

@emily_codes

The attention to detail in PrettyUI is remarkable. Every animation, every interaction feels polished and intentional.

SC

Sarah Chen

@sarahchen_dev

PrettyUI has completely transformed how I build SwiftUI apps. The components are beautiful and the theming system is incredibly flexible.

MJ

Marcus Johnson

@marcusj

Finally, a component library that feels native to SwiftUI. No more fighting with UIKit bridges or hacky workarounds.

ER

Emily Rodriguez

@emily_codes

The attention to detail in PrettyUI is remarkable. Every animation, every interaction feels polished and intentional.

DP

David Park

@dpark_ios

Shipped my app 2 weeks faster thanks to PrettyUI. The components just work, and they look fantastic out of the box.

LT

Lisa Thompson

@lisaT_swift

As someone who struggles with design, PrettyUI is a lifesaver. My apps finally look professional without hiring a designer.

AK

Alex Kim

@alexkim_dev

The best SwiftUI component library I've used. Clean API, great documentation, and excellent TypeScript... I mean Swift support!

DP

David Park

@dpark_ios

Shipped my app 2 weeks faster thanks to PrettyUI. The components just work, and they look fantastic out of the box.

LT

Lisa Thompson

@lisaT_swift

As someone who struggles with design, PrettyUI is a lifesaver. My apps finally look professional without hiring a designer.

AK

Alex Kim

@alexkim_dev

The best SwiftUI component library I've used. Clean API, great documentation, and excellent TypeScript... I mean Swift support!

DP

David Park

@dpark_ios

Shipped my app 2 weeks faster thanks to PrettyUI. The components just work, and they look fantastic out of the box.

LT

Lisa Thompson

@lisaT_swift

As someone who struggles with design, PrettyUI is a lifesaver. My apps finally look professional without hiring a designer.

AK

Alex Kim

@alexkim_dev

The best SwiftUI component library I've used. Clean API, great documentation, and excellent TypeScript... I mean Swift support!

FAQ

Frequently asked questions

Got questions? We've got answers.

Still have questions? Reach out on Twitter

PrettyUI

Ready to build something beautiful?

Join developers building delightful SwiftUI apps with PrettyUI. Get started in minutes with Swift Package Manager.

MIT LicenseFree foreverCommunity supported