The Good, The Bad and The UX

A collection of UX patterns with comparative examples

Back to all examples
Modals

Modal closing interactions

Allow users to close modals with multiple methods: X button, outside click, and Escape key

modalaccessibilitykeyboardux

Bad example

Good example

Modal Closing

Description

A modal should provide multiple ways to close: clicking the X button, clicking outside the modal (on the overlay), and pressing the Escape key. This gives users flexibility and matches their expectations across different contexts and preferences.

⚠️ Exception: This pattern applies to standard modals. For critical confirmations, important notifications, or destructive actions, you should disable click-outside closing to prevent accidental dismissal. See "When not to apply" below.

Why it matters

  • User autonomy: Different users have different preferences for how they interact with modals
  • Accessibility: Keyboard users rely on the Escape key, while mouse users might prefer clicking outside
  • Efficiency: Power users can quickly dismiss modals with Escape without moving their mouse
  • Mobile-friendly: On touch devices, tapping outside is often more natural than hitting a small X button
  • Reduced frustration: Being "trapped" in a modal with only one exit method creates unnecessary friction

The psychology behind it

When a modal appears, users instinctively try multiple methods to close it based on their past experiences. Some users immediately reach for the Escape key, others click outside, and some look for the close button. By supporting all three methods, you respect these learned behaviors and create a frictionless experience.

Restricting closure to only one method (like the X button) breaks user expectations and can make the interface feel rigid and controlling. This is particularly frustrating on mobile devices where the X button can be small and hard to tap accurately.

When to apply

  • Standard modals (forms, dialogs, lightboxes)
  • Informational pop-ups
  • Settings panels
  • Image galleries and previews
  • Quick action sheets
  • Most modal interactions where the user might want to cancel or go back

When not to apply

  • Critical confirmations where accidental closure could be problematic (e.g., "Delete account", "Discard unsaved changes")
  • Important notifications that require user acknowledgment (e.g., security alerts, payment confirmations, error messages that need action)
  • Multi-step wizards where clicking outside might indicate confusion rather than intent to close
  • Loading/processing states that should not be dismissed mid-operation
  • Destructive action confirmations where the user must consciously choose to proceed or cancel

In these cases, disable click-outside closing, but always provide explicit "Cancel" and "Confirm" buttons as clear exit options.

Implementation tips

  1. Default behavior: Most UI libraries (Radix UI, Headless UI, Material UI) support all three closing methods by default
  2. Consistent behavior: If you disable one method, make sure users understand why (e.g., show a message explaining they need to save or cancel)
  3. Visual feedback: When clicking outside, consider adding a subtle shake or highlight to the modal to indicate the interaction was registered
  4. Focus management: When the modal closes, return focus to the element that opened it (important for keyboard navigation)
  5. Animation: Ensure the closing animation is smooth and consistent regardless of how the modal was closed

Common patterns

Standard dialog:

  • X button ✓
  • Click outside ✓
  • Escape key ✓

Confirmation dialog with unsaved changes:

  • X button (shows "are you sure?" prompt)
  • Click outside (shows "are you sure?" prompt)
  • Escape key (shows "are you sure?" prompt)
  • "Cancel" and "Confirm" buttons

Loading modal:

  • X button ✗
  • Click outside ✗
  • Escape key ✗
  • Automatically closes when loading completes

Published on Dec 16, 2025

Explore more examples