| UI or UX | UI + UX - Personal boundary control for reducing or stopping visibility, interaction, contact, and notification exposure from people, accounts, conversations, channels, apps, bots, words, or threads | UI + UX - Reporter-facing safety submission flow for harmful, abusive, illegal, spam, impersonation, or policy-violating content and behavior | UI + UX - User-controlled rules for notification type, channel, frequency, timing, privacy, and exceptions | UI + UX - Per-object opt-in control for future updates from a thread, page, channel, space, repository, saved view, or topic | UI + UX - Authorization and access-boundary state | UI + UX - Object-attached comment composer and comment list with authorship, replies, state, permissions, and moderation |
| UI guidance | Render block and mute controls as scoped personal-boundary actions that name the target, effect, scope, exceptions, confirmation need, reversal path, and related report or safety action. | Render report abuse as a scoped safety flow that identifies the reported object, selected reason, affected person, evidence or context, privacy handling, submit action, confirmation ID, review expectation, and immediate safety actions. | Render notification preferences as a structured matrix or grouped settings surface that shows notification type, source, delivery channel, device, frequency, quiet-time rule, preview privacy, override, and current saved state. | Render follow or subscribe as a stateful control attached to the specific object being watched, with current state, target scope, delivery destination, event types, auto-follow reason when present, and an unfollow path. | Show the blocked object or action, current account, permission level, required role, owner, and request path when revealing that information is allowed. | Render comments as anchored contributions with author identity, timestamp, body, optional attachment or selection context, edited state, reply target, and state labels such as open, resolved, hidden, deleted, or assigned. |
| UX guidance | Help users choose the least surprising boundary by explaining whether the target is notified, whether contact is blocked, whether content is hidden, what notifications remain, and how to unblock, unmute, unhide, or manage the list later. | Help the person reach a clear task outcome. | Make consequences explicit: what stops, what still arrives, which devices and channels are affected, when changes apply, and which admin, OS, or workspace policies override the user's choice. | Make subscriptions reversible, scoped, and explainable so users understand why updates arrive, where they arrive, which events are included, and how to stop or narrow noisy delivery. | 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. | Preserve comment drafts, anchors, authorship, notifications, edit history, deletion outcomes, and resolved or hidden states so conversation context remains trustworthy across reloads, permissions, moderation, and return visits. |
| Good UI | A profile menu offers Mute posts, Block account, Report abuse, and Hide mentions as separate actions, each with a short consequence summary before confirmation. | A comment menu opens Report abuse with the comment snapshot, author, timestamp, reason choices, affected-person choice, optional context, submit, and confirmation with Block user and View report history actions. | A notification preferences page groups Mentions, Assigned work, Followed threads, Security, Digest, and Marketing, with columns for In-app, Email, Push, Banner, and Digest frequency. | A thread header shows Following, explains replies will appear in the followed-threads list and Activity feed, and offers Unfollow replies from the same menu. | 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 document margin comment shows the selected paragraph, author, timestamp, body text, Reply, Resolve, Assign, and Copy link actions with the composer focused on that selection. |
| Bad UI | A user mutes an account but still receives unexplained mention notifications. | A harassment report requires users to copy the abusive content into a public comment thread before moderators can see it. | A preference changes email only but the label implies all notifications stopped. | A repository is watched automatically after one comment, but the user only finds the unsubscribe action three screens deep in global settings. | A denial page says Something went wrong and shows Retry even though the user lacks a required group. | A Notes textarea sits under a record and calls itself comments even though every user overwrites the same field. |
| Good UX | A user blocks a harassing collaborator, adds a private note, sees repository interaction effects, and can still report abuse from a linked safety route. | A user reports a threatening message, selects violent threat, includes two related messages for context, receives a report receipt, gets guidance to contact local emergency services if in immediate danger, and can save a copy for authorities. | A user keeps mentions and assigned-work banners on, moves repository watch updates to daily digest, mutes marketing email, and sees a preview of what will still notify them during quiet hours. | A user follows a support thread before leaving for a meeting, receives only new replies in the promised destination, then unfollows when the incident closes. | 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 reviewer comments on a selected line, adds an action item for Dana, receives a reply, resolves the comment, and can reopen it from the resolved filter. |
| Bad UX | A user mutes an account but still receives unexplained mention notifications. | A user reports spam and sees the reported account instantly marked banned even though the item has only entered review. | A user disables email for a noisy project and still receives duplicate push and desktop banners because those channels live in separate hidden settings. | A followed saved view keeps sending links after the user loses access to the underlying project. | Every workspace control is disabled after one missing permission, including safe navigation and read-only tasks. | A user writes a long comment, loses network connection, and the draft disappears when the page reloads. |
| Best fit | Users need to reduce exposure to a person, account, conversation, channel, app, bot, word, topic, or thread. | Users need to flag content, behavior, an account, conversation, listing, repository, ad, or message for policy, abuse, spam, privacy, legal, or safety review. | Users receive enough notifications that they need control over type, channel, device, frequency, timing, or source. | Users need future updates from a specific object, thread, channel, space, repository, topic, saved view, or query. | A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource. | Feedback must preserve author, timestamp, reply, resolution, assignment, or moderation context. |
| Avoid when | The user is submitting harmful content for policy review; use report abuse. | The user only wants to stop seeing a person or thread; use block, mute, hide, or notification controls instead. | The product has only a few low-volume notifications that can be handled by defaults and inline controls. | Another person needs to notify the user immediately inside authored content. | The operation failed for network, server, validation, data, or timeout reasons after permission was granted. | The user is simply entering a long answer into a form field. |
| Required state | Block entry point from profile, post, comment, message, repository, or account settings. | Report entry point near a post, comment, profile, message, conversation, repository, ad, live chat item, or listing. | Default notification preferences state. | Following state. | Whole-object access denied state. | Empty comment list and first-comment composer. |
| Accessibility burden | Give controls target-specific names such as Block @maya, Mute #incidents, Hide messages from Dana, or Unmute app DM. | Give Report controls object-specific labels such as Report comment by Maya, Report profile, or Report message in conversation. | Group preferences with headings and fieldsets for event type, delivery channel, device, and frequency. | Give the control an accessible name that includes target type, target name, current follow state, and destination when space allows. | Move focus to the permission message when it replaces page content or blocks a workflow. | Label the comments region with the object or selection being discussed. |
| Common misuse | Using one command for block, mute, hide, report, and unfollow. | Treating Report as an instant takedown or ban action. | Offering one master notification switch for a complex collaboration product. | Hiding Unfollow in global notification settings only. | Treating authorization denial as a generic retryable error. | Using one shared Notes field as a comment system and overwriting prior contributors. |