SweetUI

Search items

Jump to an item

recipe

dialog

`.sheet`: system owns detents, drag-dismissal, focus.

dialogsheetmodalpresentationguidance
dialog, light

On iPad

The same installed source at a regular width. It adapts its layout without a separate design.

dialog on iPad, light

Install

Usage

@State private var isEditing = false

Button("Edit profile") { isEditing = true }
    .sheet(isPresented: $isEditing) {
        NavigationStack {
            ProfileEditor()
                .navigationTitle("Edit profile")
                .toolbar {
                    ToolbarItem(placement: .confirmationAction) {
                        Button("Done") { isEditing = false }
                    }
                }
        }
    }
    .registryItem("dialog")

Why native is enough

.sheet + NavigationStack: edit/detail → chrome gets title, confirmation. Grabber, dismiss, keyboard, Liquid Glass: system. No wrapper.

Accessibility contract

  • Sheets: modal VoiceOver, swipe-escape dismiss.
  • Toolbar: system semantics, Done-Cancel.
  • Sheet content: registry items, any-screen.

Details

Kindrecipe
Version0.1.1
PlatformsiOS 26.0+
Dependenciesnone
Sourcenone (native guidance)