Skip to main content

Notification Modal

A modal variant used to surface system-level notifications that require user acknowledgement. Use for high-priority messages that must interrupt the user's current flow. Don't use for routine feedback — use Alert instead.

OverviewStyleAccessibility

Description

Notification Modal vs Modal

Notification Modal Modal
Trigger System-initiated — the system decides when to show it, not a user action User-initiated — triggered by a user action (clicking Delete, Edit, etc.)
Icon Always present — reinforces the type and urgency of the message Optional — the status variants (Danger, Warning, Success, Info) add one
Actions Typically one action (OK / Acknowledge) or a choice (Accept / Decline) Two actions (primary + cancel/secondary)
Dismissal Often non-dismissible — the message must be acknowledged Always has a close button and backdrop dismiss
Content System message — neutral tone, describes a state or change Task-focused — directly related to what the user was doing

Notification Modal vs Alert

Notification Modal Alert
Interrupts flow Yes — page interaction is blocked until acknowledged No — appears inline, user can continue
Requires action Yes — must be dismissed explicitly No — may be informational only
Urgency High — used when the message cannot be missed Variable — success to critical error

Anatomy

PartRequired?Notes
Backdrop Required Semi-transparent overlay. Unlike Modal, clicking it does not dismiss the Notification Modal.
Icon Required Sits in the header to the left of the title and reinforces the type of notification — info, warning, success or error. Never decorative-only; always meaningful.
Title Required A clear, direct headline in the header, beside the icon. Referenced by aria-labelledby.
Close button Conditional The Figma variants include the × in the header. Remove it when the message must be acknowledged with the action button.
Message Required Plain language explanation. State what happened, what it means, and what (if anything) the user needs to do.
Primary action Required "OK", "Got it", "Accept", or similar. This is the only required action. Add a secondary action only when a genuine choice exists.

Variants

Usage guidelines

Do / Don't

Do

Write messages in plain language. "Your session will expire in 5 minutes. Save your work to avoid losing changes." Not "Session timeout warning".

Don't

Don't use Notification Modal for anything that can be shown inline. The interruption cost is high — only use it when missing the message would have real consequences.

Do

Give the user agency where possible. "Renew session" and "Log out now" is better than a single "OK" when a meaningful choice exists.

Don't

Don't stack Notification Modals. If multiple system events fire simultaneously, queue them or consolidate into a single notification.

Layout & Spacing

Notification Modal is the Modal with a status variant (Danger, Warning, Success or Info; Brand and Neutral also exist). A status icon sits to the left of the title, and the confirm button takes the status colour. It is centred in the viewport like any modal and shares the Modal's sizes, spacing and type.

Element Spec
Width 480 / 640 / 800px (S / M / L), 90vw on small screens. --orbit-modal-size-*-width
Status icon Left of the title, 8px gap, colour per variant. --orbit-modal-{variant}-icon, -status-icon-size
Header, body and footer padding As Modal: 24px, with 12px at the top of the header
Confirm button Button accent in the variant colour (Danger, Warning, Success, Info or Brand)
Title 20px heading font (Lora), medium weight
Border radius 12px. --orbit-modal-radius

Component tokens

Notification Modal uses the shared --orbit-modal-* tokens: surface, radius, shadow, spacing and type, plus a status icon colour per variant (--orbit-modal-danger-icon, -warning-icon, -success-icon, -info-icon) and --orbit-modal-status-icon-size. See the Modal page for the full list.

Element Token
Background --orbit-modal-background
Backdrop --orbit-modal-scrim
Title text --orbit-modal-title-color
Body text --orbit-modal-body-color
Info icon --orbit-modal-info-icon
Success icon --orbit-modal-success-icon
Warning icon --orbit-modal-warning-icon
Error icon --orbit-modal-danger-icon
Brand icon --orbit-modal-brand-icon

Engineering notes

  • Use role="alertdialog" when the notification describes a critical error — this causes screen readers to announce the message more urgently than role="dialog".
  • When acknowledgement is mandatory, do not add backdrop click dismissal. The user must engage with the action button.
  • Always move focus into the modal on open — system-initiated modals can appear while the user is anywhere on the page.

Keyboard interaction

KeyAction
Tab Moves focus between action buttons. Focus is trapped within the modal.
Enter or Space Activates the focused button.
Escape Closes the modal only if a close path is available. When acknowledgement is mandatory, Escape does nothing.

Why it matters

Notification Modals are system-initiated — the user didn't ask for them. This makes focus management especially important: when the modal opens, focus must move immediately into it, and the first thing announced must clearly explain what has happened. A screen reader user who opens a page and suddenly hears nothing — because the modal appeared but focus stayed on the page — receives no information about a potentially critical system event.

ARIA — dialog vs alertdialog

Role When to use Announcement behaviour
role="dialog" Standard notifications: session expiry, terms updates, feature announcements Polite — announces after the current reading context finishes
role="alertdialog" Critical errors that require immediate action: data loss risk, authentication failure, sync errors Assertive — interrupts reading immediately

Watch out

Don't use role="alertdialog" for routine notifications. Assertive interruption is disruptive for screen reader users — reserve it for situations where the user genuinely needs to act immediately to prevent harm or data loss.

Things to avoid

  • Don't auto-open Notification Modals on page load unless the event is genuinely critical. Let the page settle before interrupting.
  • Don't allow the backdrop to be clicked when acknowledgement is mandatory. The user must engage with the content.
  • Don't omit the icon's colour and shape variation just to keep design clean — these signals are critical for users with visual impairments who can distinguish shapes but not colours.
  • Don't use role="alertdialog" without also ensuring focus moves into the modal on open — an assertive live region that doesn't receive focus still loses context on some screen readers.

Was this page helpful?

Updated 2 October 2026