Back to compare picker

Share dialog vs Invite user vs Object picker vs Modal dialog vs Popover vs Permission denied state vs Review before submit vs Confirmation dialog vs Notification center vs Related links

Choose share dialog when the user is sharing a concrete file, folder, report, board, document, dashboard, link, or media object and must choose recipients, link scope, role, notification, message, copy-link, expiration, download, or revoke behavior.

Decision dimensions

Dimension Share dialogInvite userObject pickerModal dialogPopoverPermission denied stateReview before submitConfirmation dialogNotification centerRelated links
UI or UX UI + UX - Object-level sharing control for recipients, link scope, roles, delivery, copy-link, native share, and access managementUI + UX - Invitation lifecycle for granting another person accessUI + UX - Existing-entity lookup and selected-object confirmationUI + UX - Focused modal task layerUI + UX - Small anchored contextual overlayUI + UX - Authorization and access-boundary stateUI + UX - Final editable answer summary before committing a transactionUI + UX - Consequential alert decisionUI + UX - Durable user-opened notification history and action drawerUI + UX - Curated onward links connected to the current content
UI guidance Render share dialog as an object-specific access panel that names the shared object, current access, recipient entry, link scope, role, notification and message choices, copy-link state, external-domain warnings, expiration, download controls, and revoke or manage-access actions.Render invite user as an access-granting workflow with recipient identity, role or permission, team or channel scope, optional message, delivery method, expiry, pending status, resend, edit, cancel, and acceptance outcome.Render a labelled lookup field with search text, scoped result list, active result, selected object chip or preview, object type, stable ID or equivalent key, secondary metadata, clear action, no-result state, loading state, and validation text.Render a titled layer above a dimmed or otherwise unavailable page, with clear task content, named actions, visible close or cancel affordance, and stable scroll boundaries.Render a popover as a compact surface visually tied to the trigger, field, selection, or object that opened it, with a clear title or labelled content when the body is more than a short sentence.Show the blocked object or action, current account, permission level, required role, owner, and request path when revealing that information is allowed.Render a single review page immediately before commit with a clear title, grouped answer sections, readable key/value rows, per-answer or per-section Change actions, skipped optional answers when meaningful, and a primary button whose label names the committed action.Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.Provide a persistent notification entry point, usually a bell or inbox control, with a count that represents new unseen notifications rather than every unread item forever.Render a short, labelled collection of links whose destinations are closely related to the current content, using destination-specific link text and optional relation labels such as service, guidance, external, or PDF.
UX guidance Use share dialog when a user is granting, narrowing, distributing, or reviewing access to a concrete object such as a file, folder, document, dashboard, board, recording, report, calendar item, or media asset.Use invite user when an authorized person needs to bring another person into a workspace, organization, project, channel, repository, team, tenant, or shared object.Use an object picker when the user must choose an existing entity whose identity matters beyond the displayed label, such as a record, person, group, account, file, team, project, or workspace.Use the modal interruption only for compact tasks that genuinely need temporary focus before the user returns to the page.Use a popover when users need local context, clarification, or a small edit without losing their place in the page.Use permission denied state when the system knows the user is authenticated but their role, group, share, license, policy, or approval status blocks a specific object or action.Use review before submit to give users one final chance to verify and correct captured answers before a transaction is sent, paid, published, applied, or otherwise committed.Interrupt users only when the action has a meaningful consequence that cannot be safely recovered afterward.Use a notification center when users receive enough asynchronous system or collaboration updates that they need a durable place to review, triage, and act later.Use related links to support users who have finished or understood the current content and need a relevant next page, adjacent service, reference, or follow-up resource.
Good UI A report share dialog shows the report title, current viewers and editors, a recipient field, role dropdown, Notify people checkbox, message field, link set to Restricted, Copy link, and Manage access.A workspace invite form accepts maya@example.com, labels the invite as Workspace member, shows default channels, explains billing impact, lets the inviter add a message, and shows the pending invite with resend and cancel actions.A Related account field shows two Acme Retail records with account ID, region, status, and owner, then displays a selected-object preview card before saving.Account settings opens in a titled dialog with one display-name field, Save, Cancel, close control, and dimmed inactive page context.A Due date button in a task row opens a small popover beside the field with Today, Tomorrow, Friday, a custom date field, and a visible close control.A report page says Quarterly revenue report requires Finance viewer access, shows the current account, names the report owner, and offers Request access and Switch account.A claim review page has Applicant, Contact details, Evidence, and Declaration sections; each row shows the captured answer and a Change link with hidden context such as Change email address.Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.A bell opens a drawer with Unread and All filters, showing comment mentions, approval requests, export results, and background-job failures in newest-first order.A benefits guidance page ends with Related links: Check eligibility for support, Upload evidence for your claim, and Appeal a support decision, each with a concise relation label.
Bad UI A Share button instantly copies an Anyone with the link can edit URL without showing the current access level or role.An Invite button immediately emails every typed address with Admin access and no review of workspace, channel, or billing scope.A text field accepts Acme Retail as free text even though the backend needs a record ID.A vague popup titled Popup floats over active page controls and offers only OK.A large floating panel appears in the middle of the screen with no arrow, no title, no trigger relationship, and hidden controls below the fold.A denial page says Something went wrong and shows Retry even though the user lacks a required group.A final page says Check your answers but shows only a paragraph and a Continue button with no answers, section headings, or change links.A popup says Are you sure? with OK and Cancel but does not name the project, notes, or irreversible outcome.A red badge says 42 forever because opening the drawer, reading items, and viewing related work never update the count.A page ends with More information containing Home, Contact us, Apply now, Old 2018 guidance, Help, and an unrelated account settings link.
Good UX A manager adds finance@example.com as Viewer, keeps the link restricted, writes a notification note, copies the link, and sees that the file can be unshared from Manage access.An admin invites an external contractor as a single-channel guest, sees the one-channel limit, adds a note, sends the invite, then extends it when it is still pending after 30 days.A user searches Acme, compares two same-named records by region and status, selects the active EMEA account, and reviews the selected account ID before saving.Opening moves focus to the display-name field, Tab remains inside the layer, Escape cancels, and closing returns focus to Open dialog.Opening the due-date popover moves focus to the first date option, choosing Tomorrow updates the field, closes the layer, and returns focus to the Due date trigger.A user opens a restricted report, sees which account is signed in, requests viewer access with a reason, then sees that the request is pending with the owner.A user changes their phone number from review, lands on the phone page with the old value pre-filled, saves, and returns directly to review with other answers preserved.Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.A user reads claim renewal guidance, chooses Upload evidence for your claim, and sees why that destination is the next useful service page.
Bad UX A native share sheet sends a private file URL to a chat app, but the recipient cannot open it because the product never granted access.A member tries to invite a contractor but learns after send that guests require admin approval and no request status is shown.A user types a person name and presses Save, but no actual user account was selected.Users can click background Delete or Navigate controls while the modal is still open.The user scrolls and the popover stays in the old position, so it appears to describe the wrong field.The app returns a blank screen for a restricted file, so the user cannot tell whether the file is gone, private, or opened with the wrong account.A user selects Change address, edits one field, then has to repeat every later page before finding the review page again.Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.A payment failure that blocks the current checkout is only stored in the notification center and never appears in the task.Users follow a generic More information link and land on an unrelated policy collection.
Best fit A user needs to share one object or a small set of selected objects with people, groups, domains, links, or device targets.An authorized user needs to bring another person into a workspace, organization, project, channel, repository, team, tenant, or shared object.Users assign, link, reference, invite, route, or attach an existing entity.A short task must interrupt normal page interaction but should return users to the same context afterward.A local control needs brief explanatory content or light editing while page context remains visible.A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.A user has provided multiple answers and should verify them before a consequential submit action.The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.The current page has a few genuinely adjacent pages, services, programs, or resources users often need next.
Avoid when The task is inviting a person to become a workspace, organization, or team member rather than sharing a specific object.The current user is creating their own account or profile.Any arbitrary text is valid.The content is only informational and does not require blocking the page.The content is essential instruction that must remain visible for task completion.The user is not signed in and the next step is authentication rather than authorization.The task is a single low-risk field with clear inline validation and an obvious submit action.The action is routine and easily reversible.The product has only occasional current-action feedback that a toast or inline status can handle.Links are only loosely associated by topic tags or organizational ownership.
Required state Object identity and current access summary stateRecipient entry or directory lookup stateEmpty object lookup field with label, helper text, and current search scope.Closed page state with an obvious invoking control.Closed trigger state with visible label, icon name, or field relationship.Whole-object access denied state.Initial review state with grouped captured answers, relevant sections, and explicit submit action.Pre-action state with an explicit consequential trigger.Closed entry-point state with zero, new-unseen, and unread-but-seen counts.Default state with a labelled, curated related-links block and descriptive link text.
Accessibility burden Use labelled fields for recipient entry, role, link scope, notification toggle, message, expiration, password, download controls, copy-link, send, revoke, and stop-sharing actions.Use labelled fields for recipient, role, scope, team, channel, message, and expiry.Give the lookup field a persistent label and helper text that explains the expected object type.Use dialog semantics with an accessible name from the visible title.Use a real button or equivalent control as the trigger whenever possible.Use a heading that identifies the access boundary and a text description that does not rely on lock icons or red color alone.Use headings that make the review task explicit, such as Check your answers before sending your application.Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.Give the entry-point control an accessible name that includes new or unread count without relying only on a red dot.Use descriptive link text that makes sense out of context.
Common misuse Using Share as a one-click public-link generator without showing the link scope.Treating invitation sent as if the user is already a member.Treating the picker as a free text field when the system requires an existing object ID.Using a modal as a generic container for routine information that could stay inline.Using a popover as a hidden modal, drawer, sheet, command menu, or full workflow.Treating authorization denial as a generic retryable error.Using a review page that contains no captured answers.Asking users to confirm every routine action until they stop reading.Treating the badge count, unread count, and total notification count as one number.Using related links as a catch-all further-reading dump.

Share dialog

UI or UX
UI + UX - Object-level sharing control for recipients, link scope, roles, delivery, copy-link, native share, and access management
UI guidance
Render share dialog as an object-specific access panel that names the shared object, current access, recipient entry, link scope, role, notification and message choices, copy-link state, external-domain warnings, expiration, download controls, and revoke or manage-access actions.
UX guidance
Use share dialog when a user is granting, narrowing, distributing, or reviewing access to a concrete object such as a file, folder, document, dashboard, board, recording, report, calendar item, or media asset.
Good UI
A report share dialog shows the report title, current viewers and editors, a recipient field, role dropdown, Notify people checkbox, message field, link set to Restricted, Copy link, and Manage access.
Bad UI
A Share button instantly copies an Anyone with the link can edit URL without showing the current access level or role.
Good UX
A manager adds finance@example.com as Viewer, keeps the link restricted, writes a notification note, copies the link, and sees that the file can be unshared from Manage access.
Bad UX
A native share sheet sends a private file URL to a chat app, but the recipient cannot open it because the product never granted access.
Best fit
A user needs to share one object or a small set of selected objects with people, groups, domains, links, or device targets.
Avoid when
The task is inviting a person to become a workspace, organization, or team member rather than sharing a specific object.
Required state
Object identity and current access summary state
Accessibility burden
Use labelled fields for recipient entry, role, link scope, notification toggle, message, expiration, password, download controls, copy-link, send, revoke, and stop-sharing actions.
Common misuse
Using Share as a one-click public-link generator without showing the link scope.

Invite user

UI or UX
UI + UX - Invitation lifecycle for granting another person access
UI guidance
Render invite user as an access-granting workflow with recipient identity, role or permission, team or channel scope, optional message, delivery method, expiry, pending status, resend, edit, cancel, and acceptance outcome.
UX guidance
Use invite user when an authorized person needs to bring another person into a workspace, organization, project, channel, repository, team, tenant, or shared object.
Good UI
A workspace invite form accepts maya@example.com, labels the invite as Workspace member, shows default channels, explains billing impact, lets the inviter add a message, and shows the pending invite with resend and cancel actions.
Bad UI
An Invite button immediately emails every typed address with Admin access and no review of workspace, channel, or billing scope.
Good UX
An admin invites an external contractor as a single-channel guest, sees the one-channel limit, adds a note, sends the invite, then extends it when it is still pending after 30 days.
Bad UX
A member tries to invite a contractor but learns after send that guests require admin approval and no request status is shown.
Best fit
An authorized user needs to bring another person into a workspace, organization, project, channel, repository, team, tenant, or shared object.
Avoid when
The current user is creating their own account or profile.
Required state
Recipient entry or directory lookup state
Accessibility burden
Use labelled fields for recipient, role, scope, team, channel, message, and expiry.
Common misuse
Treating invitation sent as if the user is already a member.

Object picker

UI or UX
UI + UX - Existing-entity lookup and selected-object confirmation
UI guidance
Render a labelled lookup field with search text, scoped result list, active result, selected object chip or preview, object type, stable ID or equivalent key, secondary metadata, clear action, no-result state, loading state, and validation text.
UX guidance
Use an object picker when the user must choose an existing entity whose identity matters beyond the displayed label, such as a record, person, group, account, file, team, project, or workspace.
Good UI
A Related account field shows two Acme Retail records with account ID, region, status, and owner, then displays a selected-object preview card before saving.
Bad UI
A text field accepts Acme Retail as free text even though the backend needs a record ID.
Good UX
A user searches Acme, compares two same-named records by region and status, selects the active EMEA account, and reviews the selected account ID before saving.
Bad UX
A user types a person name and presses Save, but no actual user account was selected.
Best fit
Users assign, link, reference, invite, route, or attach an existing entity.
Avoid when
Any arbitrary text is valid.
Required state
Empty object lookup field with label, helper text, and current search scope.
Accessibility burden
Give the lookup field a persistent label and helper text that explains the expected object type.
Common misuse
Treating the picker as a free text field when the system requires an existing object ID.

Modal dialog

UI or UX
UI + UX - Focused modal task layer
UI guidance
Render a titled layer above a dimmed or otherwise unavailable page, with clear task content, named actions, visible close or cancel affordance, and stable scroll boundaries.
UX guidance
Use the modal interruption only for compact tasks that genuinely need temporary focus before the user returns to the page.
Good UI
Account settings opens in a titled dialog with one display-name field, Save, Cancel, close control, and dimmed inactive page context.
Bad UI
A vague popup titled Popup floats over active page controls and offers only OK.
Good UX
Opening moves focus to the display-name field, Tab remains inside the layer, Escape cancels, and closing returns focus to Open dialog.
Bad UX
Users can click background Delete or Navigate controls while the modal is still open.
Best fit
A short task must interrupt normal page interaction but should return users to the same context afterward.
Avoid when
The content is only informational and does not require blocking the page.
Required state
Closed page state with an obvious invoking control.
Accessibility burden
Use dialog semantics with an accessible name from the visible title.
Common misuse
Using a modal as a generic container for routine information that could stay inline.

Popover

UI or UX
UI + UX - Small anchored contextual overlay
UI guidance
Render a popover as a compact surface visually tied to the trigger, field, selection, or object that opened it, with a clear title or labelled content when the body is more than a short sentence.
UX guidance
Use a popover when users need local context, clarification, or a small edit without losing their place in the page.
Good UI
A Due date button in a task row opens a small popover beside the field with Today, Tomorrow, Friday, a custom date field, and a visible close control.
Bad UI
A large floating panel appears in the middle of the screen with no arrow, no title, no trigger relationship, and hidden controls below the fold.
Good UX
Opening the due-date popover moves focus to the first date option, choosing Tomorrow updates the field, closes the layer, and returns focus to the Due date trigger.
Bad UX
The user scrolls and the popover stays in the old position, so it appears to describe the wrong field.
Best fit
A local control needs brief explanatory content or light editing while page context remains visible.
Avoid when
The content is essential instruction that must remain visible for task completion.
Required state
Closed trigger state with visible label, icon name, or field relationship.
Accessibility burden
Use a real button or equivalent control as the trigger whenever possible.
Common misuse
Using a popover as a hidden modal, drawer, sheet, command menu, or full workflow.

Permission denied state

UI or UX
UI + UX - Authorization and access-boundary state
UI guidance
Show the blocked object or action, current account, permission level, required role, owner, and request path when revealing that information is allowed.
UX guidance
Use permission denied state when the system knows the user is authenticated but their role, group, share, license, policy, or approval status blocks a specific object or action.
Good UI
A report page says Quarterly revenue report requires Finance viewer access, shows the current account, names the report owner, and offers Request access and Switch account.
Bad UI
A denial page says Something went wrong and shows Retry even though the user lacks a required group.
Good UX
A user opens a restricted report, sees which account is signed in, requests viewer access with a reason, then sees that the request is pending with the owner.
Bad UX
The app returns a blank screen for a restricted file, so the user cannot tell whether the file is gone, private, or opened with the wrong account.
Best fit
A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.
Avoid when
The user is not signed in and the next step is authentication rather than authorization.
Required state
Whole-object access denied state.
Accessibility burden
Use a heading that identifies the access boundary and a text description that does not rely on lock icons or red color alone.
Common misuse
Treating authorization denial as a generic retryable error.

Review before submit

UI or UX
UI + UX - Final editable answer summary before committing a transaction
UI guidance
Render a single review page immediately before commit with a clear title, grouped answer sections, readable key/value rows, per-answer or per-section Change actions, skipped optional answers when meaningful, and a primary button whose label names the committed action.
UX guidance
Use review before submit to give users one final chance to verify and correct captured answers before a transaction is sent, paid, published, applied, or otherwise committed.
Good UI
A claim review page has Applicant, Contact details, Evidence, and Declaration sections; each row shows the captured answer and a Change link with hidden context such as Change email address.
Bad UI
A final page says Check your answers but shows only a paragraph and a Continue button with no answers, section headings, or change links.
Good UX
A user changes their phone number from review, lands on the phone page with the old value pre-filled, saves, and returns directly to review with other answers preserved.
Bad UX
A user selects Change address, edits one field, then has to repeat every later page before finding the review page again.
Best fit
A user has provided multiple answers and should verify them before a consequential submit action.
Avoid when
The task is a single low-risk field with clear inline validation and an obvious submit action.
Required state
Initial review state with grouped captured answers, relevant sections, and explicit submit action.
Accessibility burden
Use headings that make the review task explicit, such as Check your answers before sending your application.
Common misuse
Using a review page that contains no captured answers.

Confirmation dialog

UI or UX
UI + UX - Consequential alert decision
UI guidance
Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.
UX guidance
Interrupt users only when the action has a meaningful consequence that cannot be safely recovered afterward.
Good UI
Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.
Bad UI
A popup says Are you sure? with OK and Cancel but does not name the project, notes, or irreversible outcome.
Good UX
Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.
Bad UX
Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.
Best fit
The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.
Avoid when
The action is routine and easily reversible.
Required state
Pre-action state with an explicit consequential trigger.
Accessibility burden
Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.
Common misuse
Asking users to confirm every routine action until they stop reading.

Notification center

UI or UX
UI + UX - Durable user-opened notification history and action drawer
UI guidance
Provide a persistent notification entry point, usually a bell or inbox control, with a count that represents new unseen notifications rather than every unread item forever.
UX guidance
Use a notification center when users receive enough asynchronous system or collaboration updates that they need a durable place to review, triage, and act later.
Good UI
A bell opens a drawer with Unread and All filters, showing comment mentions, approval requests, export results, and background-job failures in newest-first order.
Bad UI
A red badge says 42 forever because opening the drawer, reading items, and viewing related work never update the count.
Good UX
Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.
Bad UX
A payment failure that blocks the current checkout is only stored in the notification center and never appears in the task.
Best fit
Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.
Avoid when
The product has only occasional current-action feedback that a toast or inline status can handle.
Required state
Closed entry-point state with zero, new-unseen, and unread-but-seen counts.
Accessibility burden
Give the entry-point control an accessible name that includes new or unread count without relying only on a red dot.
Common misuse
Treating the badge count, unread count, and total notification count as one number.

Related links

UI or UX
UI + UX - Curated onward links connected to the current content
UI guidance
Render a short, labelled collection of links whose destinations are closely related to the current content, using destination-specific link text and optional relation labels such as service, guidance, external, or PDF.
UX guidance
Use related links to support users who have finished or understood the current content and need a relevant next page, adjacent service, reference, or follow-up resource.
Good UI
A benefits guidance page ends with Related links: Check eligibility for support, Upload evidence for your claim, and Appeal a support decision, each with a concise relation label.
Bad UI
A page ends with More information containing Home, Contact us, Apply now, Old 2018 guidance, Help, and an unrelated account settings link.
Good UX
A user reads claim renewal guidance, chooses Upload evidence for your claim, and sees why that destination is the next useful service page.
Bad UX
Users follow a generic More information link and land on an unrelated policy collection.
Best fit
The current page has a few genuinely adjacent pages, services, programs, or resources users often need next.
Avoid when
Links are only loosely associated by topic tags or organizational ownership.
Required state
Default state with a labelled, curated related-links block and descriptive link text.
Accessibility burden
Use descriptive link text that makes sense out of context.
Common misuse
Using related links as a catch-all further-reading dump.
Decision rules
  • Choose share dialog when the user is sharing a concrete file, folder, report, board, document, dashboard, link, or media object and must choose recipients, link scope, role, notification, message, copy-link, expiration, download, or revoke behavior.
  • Choose invite user when the primary action is adding a person to a workspace, organization, channel, team, repository, or tenant with an invitation lifecycle and pending acceptance.
  • Choose object picker when the task is only selecting an existing person, group, file, account, or record; selecting an object does not by itself send access or create a link.
  • Choose modal dialog, popover, drawer, or sheet based on containment and interruption level only after the sharing semantics are known; the container is not the access model.
  • Use permission denied state when the current user cannot access an object and needs an explanation, account switch, or request-access path rather than a control for sharing it onward.
  • Use review before submit or confirmation behavior when the share action makes a private object public, grants editor access, crosses an external-domain boundary, disables download protection, or removes access for many people.
  • Use notification center for retained inbox events after a share, access request, or mention is sent; it should not replace the share dialog's immediate permission and delivery controls.
  • Use related links when the UI only points to nearby resources without changing access, link visibility, recipients, or delivery state.
  • A share dialog should show current access and pending changes together so the user can tell whether they are copying an existing link, widening access, inviting people, or revoking someone.
  • A native Web Share action can complement copy-link or send controls for device share targets, but it cannot substitute for product-specific permission review when access scope changes.
Inspect live examples
Failure modes
  • A Share button copies a public editor link without showing that the object was private before the click.
  • A recipient picker looks complete but never shows the role, object, access scope, or whether recipients receive a notification.
  • The UI treats native operating-system share as if it grants file access, so recipients receive a link they cannot open.
  • A share flow is implemented as an ordinary modal with no current-access list, revoke path, link settings, or external-domain warning.
  • A broad link change uses the same success toast as a harmless copy-link action.
  • Removing a collaborator is hidden behind the same Send button used for adding new recipients, so users cannot review the destructive side effect.