Swift PiecesPro
  • Library
    Screens48Finished, designed screens for real apps.Templates10Complete apps built from the screens.Build Kit24Styles, briefs and recipes for your coding agentEverything58The whole library, with search
  • Docs
  • Pro

Library

  • Screens48
  • Templates10
  • Build Kit24
  • Everything58
  • Docs
  • Pro
  • Account
Get Swift Pieces ProFree library ↗
Swift PiecesPro

Production-ready SwiftUI screens and app templates for iOS. The pieces to build the whole app.

Library

  • Screens
  • Templates
  • Build Kit
  • Everything

Product

  • Pro
  • Your account
  • Sign in

Resources

  • Docs
  • CLI
  • MCP and agents
  • Free library

Social

  • X / Twitter
  • GitHub

SWIFTPIECES PRO

© 2026 Swift Pieces. One payment, lifetime access, per-developer commercial license.

Curated withby Saivion

LibraryScreensSettings

Screen · Account

Settings

A settings home with a collapsing profile header, grouped rows, toggles and sign out.

A settings home: a parallax profile header that collapses into an inline title, grouped rows with colored icon blocks, haptic toggles, pushed pages, a sign-out row with a confirmation sheet and a version footer, all from a declarative model.

SwiftUIiOS 17.0+settings-screen

Get Swift Pieces Pro

$199 once, every piece included. See how installing works · Sign in

01

What's included

SwiftUI source you own, built on Apple frameworks only.

  • A parallax profile header that collapses into an inline title
  • Grouped rows with colored icon blocks, haptic toggles and pushed pages
  • Sign out with a confirmation sheet, and a version footer
  • Described by one declarative SettingsModel

In the Build Kit

Swift Pieces Skill (setup), Native (style), Candy (style), Subscription Utility (brief), Onboarding to Paywall (recipe). Your agent builds around this screen in the same design.

Used in

Subscription App (template), Finance App (template), AI Assistant (template), Meditation App (template), Travel App (template), Sleep App (template), Smart Home App (template), Weather App (template), Meal Planner (template)

02

Implementation notes

How it behaves, what it handles, and the decisions behind it.

Describe the page as a SettingsModel (profile, sections, rows with stable ids) and the screen does the rest. The profile header moves at half scroll speed, stretches on over-scroll and collapses into an inline avatar-and-name title. Rows sit in grouped surfaces with tinted icon tiles and a press highlight. Toggles tick with a soft haptic; navigation rows push nested pages and picker rows push a single-choice list, both entering with their groups sliding in along the push axis. Sign-out is a red row that confirms in a compact sheet whose button turns into progress while your async signOut runs, and a version footer closes the page.

Notes

  • Inside a tab or another NavigationStack, pass wrapsInNavigationStack: false: the screen skips its own stack and pages push onto the enclosing one. The templates embed it this way.
  • Row kinds: toggle(Binding<Bool>), navigation(SettingsPage, value:), picker(options:selection:), action(() -> Void) and info(String). Pages nest freely; routes are resolved by id against the model, so bindings stay live on pushed pages.
  • The header height is measured, so the collapse point adapts to Dynamic Type and to a hidden plan badge.
  • The sheet uses presentationDetents([.height(340)]), a visible drag indicator and a 32 pt corner radius; dismissal is disabled while signing out. A .warning haptic plays when it appears.
  • Reduce Motion drops the slide-in offsets and springs; the collapse still tracks the scroll.
  • The navigation title you pass becomes the back-button label on pushed pages; the inline principal title shows the person.
  • SettingsScreenExample at the end of SettingsScreen.swift is the screen shown in the preview; copy it as a starting point.

Theming

  • Reads SPTheme tokens from @Environment(\.spTheme) and requires the design-system item. Set .environment(\.spTheme, YourTheme()) above the screen to re-skin it.
  • Pages sit on color.bg, groups on spSurface(.e1) with radius.lg, and text, dividers, the plan badge and the sign-out row use textPrimary, textSecondary, separator, fill and danger. Navigation chrome and the picker checkmark use accent; switches use success.
  • SettingsRow.tint is optional. Pass a color to give a row its own icon tile, or leave it nil for an accent tile with an accentOn glyph.
  • Presses use motion.standard and motion.bouncy, and pushed groups slide in with motion.hero, which becomes a short fade under Reduce Motion. The parallax header and collapse stay scroll-linked.

03

Keep building

Pieces that work well next to this one.

Screen · Productivity

Dashboard

A home dashboard with a collapsing greeting, live metrics, a scrubbable chart and activity.

Screen · Navigation

App Shell

The root of a tabbed app: a floating tab bar, a stack per tab and real reselect behaviour.

Screen · Onboarding

Onboarding

First run end to end: welcome pages, a permission step and a trial offer, then into the app.