Skip to main content

Core Components

PrismUI provides 18+ primitive components that form the building blocks of your UI. Every component reads from the current PrismTheme, supports accessibility, and adapts to all Apple platforms.

PrismButton

A themed button with variant styles, async actions, loading state, haptic feedback, and built-in accessibility.
Button Variants
PrismButton handles loading state automatically — the closure is async, so the button shows a spinner while the work runs:
Async Loading State
Pass a role: .destructive for delete actions. The button automatically uses the .error color token and appropriate haptic feedback.
You can also use custom labels:
Custom Label

PrismCard

A themed container with surface color, border, radius, and optional elevation:
Card

PrismExpandableCard

A card that expands to reveal additional content with a smooth animation:
Expandable Card

PrismAvatar

Circular avatar with image, initials fallback, and online indicator:
Avatar

PrismChip & PrismTag

Chips are interactive (tappable, dismissible), while tags are display-only labels:
Chips and Tags

PrismBadge

Notification badge for counts or status dots:
Badge

PrismTextField

Themed text input with validation support, error state, and icon slots:
Text Field

PrismProgressBar

Determinate or indeterminate progress indicator:
Progress Bar

PrismSkeletonView

Animated loading placeholder that matches your layout:
Skeleton

PrismGauge

Circular or linear gauge for values and progress:
Gauge

PrismTable

Themed table with sortable columns for macOS and iPad:
Table

PrismIcon & PrismIconButton

SF Symbol wrappers with token-based sizing and coloring:
Icons

PrismGradient & PrismMeshGradient

Token-aware gradient backgrounds:
Gradients

Other Primitives

Themed by Default

Every component reads from the current PrismTheme. Switch themes and all components update instantly.

Accessible

Built-in aria-label equivalents, focus management, and keyboard navigation. VoiceOver-ready out of the box.