Sheet vs. Alert (macOS)
A sheet belongs to one window and holds a short task. An alert shows a short message or choice that needs attention now.
Use a sheet for settings, saving, or a short form tied to one document. Use an alert for a warning, failure, or one-step check.
See what each pattern does
Try each example. Then read about the job it is made to do.
macOS Sheet
A macOS Sheet is a dialog tied to one document window. It blocks only that window until the person finishes the choice.
Saving an untitled document opens a sheet on that window. Other document windows still work.
- Use it when
- Use it when one document cannot safely continue until a clear choice or short setup is done.
- Do not use it when
- Do not let a sheet block unrelated windows. Do not show routine facts in a modal sheet. Use another surface for app-wide tasks.
- Name used in code
NSWindow beginSheet / SwiftUI sheet
macOS Alert
A macOS Alert is a system dialog for an important choice, failure, or condition. A person must notice it and answer.
Closing an unsaved document asks whether to Save, Cancel, or discard changes. The safest default is clear.
- Use it when
- Use it only when an important condition needs an answer or choice before the current task can safely go on.
- Do not use it when
- Avoid routine success messages, recoverable inline validation, and confirmations for reversible actions. Repeated alerts train people to dismiss them unread.
- Name used in code
AppKit NSAlert / SwiftUI alert
Quick comparison
| UI pattern | Best for | Not for | Name used in code |
|---|---|---|---|
| macOS Sheet | Use it when one document cannot safely continue until a clear choice or short setup is done. | Do not let a sheet block unrelated windows. Do not show routine facts in a modal sheet. Use another surface for app-wide tasks. | NSWindow beginSheet / SwiftUI sheet |
| macOS Alert | Use it only when an important condition needs an answer or choice before the current task can safely go on. | Avoid routine success messages, recoverable inline validation, and confirmations for reversible actions. Repeated alerts train people to dismiss them unread. | AppKit NSAlert / SwiftUI alert |
Before you ship
- 01
Write down what the person needs to do.
- 02
Test the keyboard, focus, touch, zoom, loading, empty, and error states.
- 03
Make sure people can get the same information without hover or motion.
- 04
Test with real content on both small and large screens.
Comparison request you can copy
Copy this when your team needs help choosing between the patterns.
Choose the best pattern from macOS Sheet, macOS Alert for our real user flow. Use this rule: A sheet belongs to one window and holds a short task. An alert shows a short message or choice that needs attention now. Write down the task, amount of content, and cost of stopping the flow. Check keyboard, touch, loading, error, and reduced-motion behavior. Explain your choice, then build the smallest accessible version with the project's design system.