My learning 0 of 20 lessons complete
Start lesson 1 →
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

Use share dialog for granting or distributing access to one object through people, groups, links, roles, and delivery choices; invite user for bringing someone into a workspace or organization; object picker for selecting existing entities; and modal dialog for the container behavior only.

Learn the decision

Match the interaction to the person's task

Use share dialog for granting or distributing access to one object through people, groups, links, roles, and delivery choices; invite user for bringing someone into a workspace or organization; object picker for selecting existing entities; and modal dialog for the container behavior only.

Share dialog

Use it when: A user needs to share one object or a small set of selected objects with people, groups, domains, links, or device targets.

Make this state clear: Object identity and current access summary state

Observe the result: 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.

Study the full pattern →

Invite user

Use it when: An authorized user needs to bring another person into a workspace, organization, project, channel, repository, team, tenant, or shared object.

Make this state clear: Recipient entry or directory lookup state

Observe the result: 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.

Study the full pattern →

Object picker

Use it when: Users assign, link, reference, invite, route, or attach an existing entity.

Make this state clear: Empty object lookup field with label, helper text, and current search scope.

Observe the result: 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.

Study the full pattern →

Modal dialog

Use it when: A short task must interrupt normal page interaction but should return users to the same context afterward.

Make this state clear: Closed page state with an obvious invoking control.

Observe the result: Opening moves focus to the display-name field, Tab remains inside the layer, Escape cancels, and closing returns focus to Open dialog.

Study the full pattern →

Popover

Use it when: A local control needs brief explanatory content or light editing while page context remains visible.

Make this state clear: Closed trigger state with visible label, icon name, or field relationship.

Observe the result: 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.

Study the full pattern →

Permission denied state

Use it when: A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.

Make this state clear: Whole-object access denied state.

Observe the result: 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.

Study the full pattern →

Review before submit

Use it when: A user has provided multiple answers and should verify them before a consequential submit action.

Make this state clear: Initial review state with grouped captured answers, relevant sections, and explicit submit action.

Observe the result: 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.

Study the full pattern →

Confirmation dialog

Use it when: The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.

Make this state clear: Pre-action state with an explicit consequential trigger.

Observe the result: Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.

Study the full pattern →

Notification center

Use it when: Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.

Make this state clear: Closed entry-point state with zero, new-unseen, and unread-but-seen counts.

Observe the result: Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.

Study the full pattern →

Related links

Use it when: The current page has a few genuinely adjacent pages, services, programs, or resources users often need next.

Make this state clear: Default state with a labelled, curated related-links block and descriptive link text.

Observe the result: A user reads claim renewal guidance, chooses Upload evidence for your claim, and sees why that destination is the next useful service page.

Study the full pattern →

Practice the judgment: Imagine this situation: A broad link change uses the same success toast as a harmless copy-link action. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

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.Show enough fields to distinguish same-named objects before selection, and keep the selected object preview visible after the popup closes so the submitted entity can be inspected.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.Make opening, light dismissal, Escape, outside click, anchor scrolling, focus order, and focus return predictable so the surface feels contextual rather than interruptive.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.Help the person reach a clear task outcome.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 dialog asks for an email address but hides whether the person gets viewer, commenter, or editor access and whether an email will be sent.A user gets admin or organization-wide access because the invite defaulted to the broadest role.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.Escape closes the layer but focus disappears or jumps to the top of the page.A denial page says Something went wrong and shows Retry even though the user lacks a required group.Change links lack context, so assistive technology users hear a list of identical Change links.The red destructive action is enabled immediately and sits where users expect the routine primary button.Users ignore the center because duplicate low-value messages inflate the badge.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 private file becomes publicly editable because copy link implicitly changed scope.A user gets admin or organization-wide access because the invite defaulted to the broadest role.A user picks the first Acme result because every row looks identical, then links the case to the wrong account.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.Every workspace control is disabled after one missing permission, including safe navigation and read-only tasks.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.Users mark all notifications read and lose the only record of an export job they still need to download.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 workflow is long, multi-step, shareable, or needs browser navigation.The content is essential instruction that must remain visible for task completion.The operation failed for network, server, validation, data, or timeout reasons after permission was granted.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.Move focus to the permission message when it replaces page content or blocks a workflow.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.Announce new notification arrival with status semantics when appropriate, but avoid interrupting users repeatedly for low-priority center items.Use descriptive link text that makes sense out of context.
Common misuse Treating native OS share as if it grants product access.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.Labelling the final commit button Continue.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 dialog asks for an email address but hides whether the person gets viewer, commenter, or editor access and whether an email will be sent.
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 private file becomes publicly editable because copy link implicitly changed scope.
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
Treating native OS share as if it grants product access.

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
A user gets admin or organization-wide access because the invite defaulted to the broadest role.
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 user gets admin or organization-wide access because the invite defaulted to the broadest role.
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
Show enough fields to distinguish same-named objects before selection, and keep the selected object preview visible after the popup closes so the submitted entity can be inspected.
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 picks the first Acme result because every row looks identical, then links the case to the wrong account.
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 workflow is long, multi-step, shareable, or needs browser navigation.
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
Make opening, light dismissal, Escape, outside click, anchor scrolling, focus order, and focus return predictable so the surface feels contextual rather than interruptive.
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
Escape closes the layer but focus disappears or jumps to the top of the page.
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
Every workspace control is disabled after one missing permission, including safe navigation and read-only tasks.
Best fit
A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.
Avoid when
The operation failed for network, server, validation, data, or timeout reasons after permission was granted.
Required state
Whole-object access denied state.
Accessibility burden
Move focus to the permission message when it replaces page content or blocks a workflow.
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
Change links lack context, so assistive technology users hear a list of identical 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
Labelling the final commit button Continue.

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
Help the person reach a clear task outcome.
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
The red destructive action is enabled immediately and sits where users expect the routine primary button.
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
Users ignore the center because duplicate low-value messages inflate the badge.
Good UX
Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.
Bad UX
Users mark all notifications read and lose the only record of an export job they still need to download.
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
Announce new notification arrival with status semantics when appropriate, but avoid interrupting users repeatedly for low-priority center items.
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.

Saved items