Back to compare picker

Live cursors vs Presence vs Comments vs Mentions vs Threaded discussion vs Notification center vs Activity log vs Sync state vs Offline state vs Tooltip

Choose live cursors when collaborators need to see where other people are pointing, selecting, hovering, typing, or focused in the same document, canvas, slide, diagram, whiteboard, code editor, or design file right now.

Decision dimensions

Dimension Live cursorsPresenceCommentsMentionsThreaded discussionNotification centerActivity logSync stateOffline stateTooltip
UI or UX UI + UX - Ephemeral collaborator pointer and selection awareness with identity, color, recency, privacy, visibility controls, and stale-state handlingUI + UX - Person or group availability signal with status label, recency, source, privacy boundary, and action-aware affordancesUI + UX - Object-attached comment composer and comment list with authorship, replies, state, permissions, and moderationUI + UX - Inline recipient reference with autocomplete, stable recipient identity, notification routing, access checks, and broad-audience safeguardsUI + UX - Topic-centered conversation with parent post, reply branches, unread participation state, and thread-level controlsUI + UX - Durable user-opened notification history and action drawerUI + UX - Searchable and exportable record of system, user, or administrative eventsUI + UX - Local-and-remote reconciliation statusUI + UX - Connectivity-mode and local-work continuity stateUI + UX - Short noninteractive description tied to a trigger
UI guidance Render live cursors as lightweight overlays tied to the shared coordinate system, with person label, color, shape, current object or selection, recency, and stale or hidden state that does not obscure primary content.Render presence as a labelled availability signal near the person, team, object, or conversation it describes; pair color, shape, text, timestamp, and source so users can distinguish active, away, busy, do not disturb, offline, unknown, viewing, and recently active states.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.Render mentions as inline tokens or highlighted text that preserve a stable recipient identity, display name, avatar or team marker, recipient type, and selected state without breaking surrounding editable text.Render a threaded discussion around a visible parent topic or parent message, with reply rows that preserve author, timestamp, reply target, branch depth, unread or new state, and thread-scoped actions.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 activity logs as evidence-oriented records with event time, actor, action, object, source system, scope, result, and technical context such as IP address or location when available.Show sync state close to the object or queue it describes, using labels such as Local saved, Queued, Syncing, Synced, Partially synced, Failed, Paused, and Conflict needs review.Show offline status where it changes the current task, naming what remains available such as cached reports, local draft editing, queued saves, or read-only history.Render a tooltip as a small text-only bubble visually tied to a focusable trigger, with concise copy, readable contrast, stable placement, and an optional arrow that points to the target.
UX guidance Use live cursors when collaborators need immediate spatial awareness of where other people are pointing, selecting, hovering, typing, or presenting in the same shared surface.Use presence when users need to decide whether to interrupt, wait, route work, join a session, assign follow-up, or understand who is currently viewing or recently active in a shared space.Use comments when users need to discuss, question, annotate, review, or leave follow-up notes on a specific object, selection, file line, record, document, or task without changing the primary content directly.Use mentions when a user needs to call attention to a person, team, channel, role, or group from inside a message, comment, task, document, issue, or thread while keeping the reference embedded in the authored content.Use threaded discussion when users need to follow, contribute to, or resolve a conversation that branches from one topic, question, channel message, or post and must keep replies understandable over time.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 activity log when users need to investigate, audit, verify, or troubleshoot actions across accounts, objects, systems, settings, or security boundaries.Use sync state to keep users confident while local changes, remote copies, attachments, messages, or records reconcile across devices, services, or background workers.Use offline state to preserve trust and task continuity when connection loss changes what users can read, edit, submit, sync, refresh, or share.Use tooltips to add a brief description on focus or hover without asking users to open a separate layer or change task mode.
Good UI A whiteboard shows Priya's pointer with a labelled color chip, Dana's text selection range, a stale cursor fading after reconnect loss, and a toggle to hide your pointer.A reviewer row shows Priya as Busy in a meeting until 14:30, disables Call, keeps Message available, and offers Notify when available.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.A comment composer opens a suggestion list after @, shows people and teams with avatars, handles, access labels, and keyboard focus, then inserts a mention chip for Priya Rao.A support topic shows the original question, three top-level replies, one expanded reply branch, an accepted answer badge, unread branch marker, and thread-level Follow and Mute controls.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.An organization audit log table shows timestamp, actor, action, target object, app, IP address, result, and a Details drawer with before and after fields.A field report queue shows 5 local changes: notes synced, two photos uploading, meter reading queued, signature failed with Retry, and supervisor comment needs review.A field report says Offline: 3 edits saved on this device, cached customer history shown from 10:42, Submit disabled until connection returns, and Retry connection.A labelled Archive icon button receives focus and shows a short tooltip that says Moves this report to archived reports.
Bad UI Remote cursors are unlabeled colored arrows that overlap form controls and stay frozen after users leave.A green dot appears next to every name with no label, timestamp, or meaning.A Notes textarea sits under a record and calls itself comments even though every user overwrites the same field.The editor highlights every @word as a mention even when it is plain text and has no recipient identity.All replies are rendered as identical flat messages with no indication of which parent or branch they answer.A red badge says 42 forever because opening the drawer, reading items, and viewing related work never update the count.A page titled Activity shows vague entries such as Changed settings with no actor, target, timestamp, or source.A single green Saved badge appears while several attachments are still queued.A blank page says You are offline even though the app has cached drafts and help content.A mystery icon has no label and the only explanation is a hover-only tooltip that never appears for touch users.
Good UX A presenter enables live pointers during a design review, follows Dana's cursor to a problem area, then hides extra cursors while editing text.A user sees that Dana is in Do not disturb, sends a message without a banner interruption, and schedules a reminder to follow up when Dana is available.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.A user mentions @Dana in a private incident note, sees that Dana lacks access, chooses Invite and mention, and the resulting notification opens the exact note.A user opens a notification to a specific unread reply, sees the parent post and branch context, replies, marks the answer, and mutes future replies after resolution.Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.An admin filters to failed SSO events, expands one entry, copies the event ID, exports the filtered range, and sees that records older than 180 days require a different archive.A user reconnects after editing offline and sees the queue move from local saved to syncing, then to one failed photo with retry while the accepted notes remain synced.A user loses connection while editing an inspection note, sees it saved on this device, attaches photos to a queue, and later watches the queue sync after reconnect.Tabbing to Archive keeps focus on the button, shows a short description, Escape hides it, and focus remains on Archive.
Bad UX A user is trying to edit a small control while five cursor labels cover the target and there is no reduce-cursors mode.A manager treats Away as an attendance record even though it came from device inactivity and privacy-limited activity data.A user writes a long comment, loses network connection, and the draft disappears when the page reloads.A user mentions someone in a private channel, the person is not notified, and the sender receives no warning or recovery path.A user clicks New reply and lands at the top of a long topic with no highlight, branch context, or last-read position.A payment failure that blocks the current checkout is only stored in the notification center and never appears in the task.A user marks a notification read and the corresponding activity evidence disappears from the only log.The offline banner disappears after reconnect, but hidden queued changes keep failing in the background.The app keeps a spinner on Save during airplane mode and never explains that no network request can start.A user presses Escape to hide the tooltip and focus jumps to the top of the page.
Best fit Collaborators need real-time spatial awareness in a shared visual or text surface.Users need to understand current or recent availability before messaging, calling, assigning, routing, or joining.Users need object-attached discussion without changing the primary object content directly.Composed content needs to target people or groups inline.A topic or parent message can generate multiple reply branches that users need to follow over time.Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.Users need to inspect recorded user, admin, system, security, or integration events.Local changes, files, messages, uploads, or records need to reconcile with a remote service or another device.Connection loss or server reachability changes the user's current task.A compact control needs a brief supplemental explanation.
Avoid when The collaboration is asynchronous and durable comments or annotations would be more useful.The product needs a durable audit trail or compliance record.The user is simply entering a long answer into a form field.The user is selecting a structured owner, assignee, approver, or recipient field outside written content.The feedback is a simple object-attached comment with no navigable topic discussion.The product has only occasional current-action feedback that a toast or inline status can handle.The goal is only to show a readable milestone history for one case or process.The product has no local copy or queued work and a simple loading, success, or error state is enough.A single request failed while the rest of the app is reachable and an error state is clearer.The text is the only label or action name.
Required state Local pointer visible, local pointer hidden, remote pointer visible, remote pointer hidden, and reduced-cursor mode.Available, active, away, busy, in a meeting, in a call, presenting, focusing, do not disturb, out of office, offline, unknown, and hidden states where supported.Empty comment list and first-comment composer.Empty composer, @ trigger, loading suggestions, no results, and filtered suggestions.Parent topic or parent message with author, timestamp, title or body, category, and reply count.Closed entry-point state with zero, new-unseen, and unread-but-seen counts.Default log state with event records, result count, visible timezone, retention window, and permission scope.Local saved state for data persisted on the device but not yet sent.Online normal state with no offline warning.Resting trigger state with a visible or accessible name that works without the tooltip.
Accessibility burden Provide text labels for cursor owner, role, and state rather than color-only cursor identity.Expose presence state as text, such as Dana Lee, Busy in a meeting until 14:30, not just a colored dot.Label the comments region with the object or selection being discussed.Expose the suggestion list as a labelled popup tied to the editor and announce the number of available mention targets.Label the thread region with the parent topic or message title.Give the entry-point control an accessible name that includes new or unread count without relying only on a red dot.Use table or structured list semantics so actor, action, object, timestamp, result, and scope are perceivable together.Use visible text and accessible names for statuses; do not rely on spinning arrows, checkmarks, color, or icon overlays alone.Announce significant connectivity changes with status messaging when they affect the current task.Use tooltip text as a description with aria-describedby when it supplements the trigger.
Common misuse Using live cursors as durable comments, decision records, or audit history.Using only color dots without text labels, source, or recency.Using one shared Notes field as a comment system and overwriting prior contributors.Parsing @words after submit without requiring the sender to choose a real recipient.Flattening every reply into a chronological stream and losing who replied to whom.Treating the badge count, unread count, and total notification count as one number.Calling a social feed or notification drawer an activity log without event evidence.Calling local persistence Synced before remote acceptance.Showing only a browser-style offline page when useful cached or local content exists.Using hover-only tooltip text as the only label for an icon button.

Live cursors

UI or UX
UI + UX - Ephemeral collaborator pointer and selection awareness with identity, color, recency, privacy, visibility controls, and stale-state handling
UI guidance
Render live cursors as lightweight overlays tied to the shared coordinate system, with person label, color, shape, current object or selection, recency, and stale or hidden state that does not obscure primary content.
UX guidance
Use live cursors when collaborators need immediate spatial awareness of where other people are pointing, selecting, hovering, typing, or presenting in the same shared surface.
Good UI
A whiteboard shows Priya's pointer with a labelled color chip, Dana's text selection range, a stale cursor fading after reconnect loss, and a toggle to hide your pointer.
Bad UI
Remote cursors are unlabeled colored arrows that overlap form controls and stay frozen after users leave.
Good UX
A presenter enables live pointers during a design review, follows Dana's cursor to a problem area, then hides extra cursors while editing text.
Bad UX
A user is trying to edit a small control while five cursor labels cover the target and there is no reduce-cursors mode.
Best fit
Collaborators need real-time spatial awareness in a shared visual or text surface.
Avoid when
The collaboration is asynchronous and durable comments or annotations would be more useful.
Required state
Local pointer visible, local pointer hidden, remote pointer visible, remote pointer hidden, and reduced-cursor mode.
Accessibility burden
Provide text labels for cursor owner, role, and state rather than color-only cursor identity.
Common misuse
Using live cursors as durable comments, decision records, or audit history.

Presence

UI or UX
UI + UX - Person or group availability signal with status label, recency, source, privacy boundary, and action-aware affordances
UI guidance
Render presence as a labelled availability signal near the person, team, object, or conversation it describes; pair color, shape, text, timestamp, and source so users can distinguish active, away, busy, do not disturb, offline, unknown, viewing, and recently active states.
UX guidance
Use presence when users need to decide whether to interrupt, wait, route work, join a session, assign follow-up, or understand who is currently viewing or recently active in a shared space.
Good UI
A reviewer row shows Priya as Busy in a meeting until 14:30, disables Call, keeps Message available, and offers Notify when available.
Bad UI
A green dot appears next to every name with no label, timestamp, or meaning.
Good UX
A user sees that Dana is in Do not disturb, sends a message without a banner interruption, and schedules a reminder to follow up when Dana is available.
Bad UX
A manager treats Away as an attendance record even though it came from device inactivity and privacy-limited activity data.
Best fit
Users need to understand current or recent availability before messaging, calling, assigning, routing, or joining.
Avoid when
The product needs a durable audit trail or compliance record.
Required state
Available, active, away, busy, in a meeting, in a call, presenting, focusing, do not disturb, out of office, offline, unknown, and hidden states where supported.
Accessibility burden
Expose presence state as text, such as Dana Lee, Busy in a meeting until 14:30, not just a colored dot.
Common misuse
Using only color dots without text labels, source, or recency.

Comments

UI or UX
UI + UX - Object-attached comment composer and comment list with authorship, replies, state, permissions, and moderation
UI guidance
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
Use comments when users need to discuss, question, annotate, review, or leave follow-up notes on a specific object, selection, file line, record, document, or task without changing the primary content directly.
Good UI
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 Notes textarea sits under a record and calls itself comments even though every user overwrites the same field.
Good UX
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 writes a long comment, loses network connection, and the draft disappears when the page reloads.
Best fit
Users need object-attached discussion without changing the primary object content directly.
Avoid when
The user is simply entering a long answer into a form field.
Required state
Empty comment list and first-comment composer.
Accessibility burden
Label the comments region with the object or selection being discussed.
Common misuse
Using one shared Notes field as a comment system and overwriting prior contributors.

Mentions

UI or UX
UI + UX - Inline recipient reference with autocomplete, stable recipient identity, notification routing, access checks, and broad-audience safeguards
UI guidance
Render mentions as inline tokens or highlighted text that preserve a stable recipient identity, display name, avatar or team marker, recipient type, and selected state without breaking surrounding editable text.
UX guidance
Use mentions when a user needs to call attention to a person, team, channel, role, or group from inside a message, comment, task, document, issue, or thread while keeping the reference embedded in the authored content.
Good UI
A comment composer opens a suggestion list after @, shows people and teams with avatars, handles, access labels, and keyboard focus, then inserts a mention chip for Priya Rao.
Bad UI
The editor highlights every @word as a mention even when it is plain text and has no recipient identity.
Good UX
A user mentions @Dana in a private incident note, sees that Dana lacks access, chooses Invite and mention, and the resulting notification opens the exact note.
Bad UX
A user mentions someone in a private channel, the person is not notified, and the sender receives no warning or recovery path.
Best fit
Composed content needs to target people or groups inline.
Avoid when
The user is selecting a structured owner, assignee, approver, or recipient field outside written content.
Required state
Empty composer, @ trigger, loading suggestions, no results, and filtered suggestions.
Accessibility burden
Expose the suggestion list as a labelled popup tied to the editor and announce the number of available mention targets.
Common misuse
Parsing @words after submit without requiring the sender to choose a real recipient.

Threaded discussion

UI or UX
UI + UX - Topic-centered conversation with parent post, reply branches, unread participation state, and thread-level controls
UI guidance
Render a threaded discussion around a visible parent topic or parent message, with reply rows that preserve author, timestamp, reply target, branch depth, unread or new state, and thread-scoped actions.
UX guidance
Use threaded discussion when users need to follow, contribute to, or resolve a conversation that branches from one topic, question, channel message, or post and must keep replies understandable over time.
Good UI
A support topic shows the original question, three top-level replies, one expanded reply branch, an accepted answer badge, unread branch marker, and thread-level Follow and Mute controls.
Bad UI
All replies are rendered as identical flat messages with no indication of which parent or branch they answer.
Good UX
A user opens a notification to a specific unread reply, sees the parent post and branch context, replies, marks the answer, and mutes future replies after resolution.
Bad UX
A user clicks New reply and lands at the top of a long topic with no highlight, branch context, or last-read position.
Best fit
A topic or parent message can generate multiple reply branches that users need to follow over time.
Avoid when
The feedback is a simple object-attached comment with no navigable topic discussion.
Required state
Parent topic or parent message with author, timestamp, title or body, category, and reply count.
Accessibility burden
Label the thread region with the parent topic or message title.
Common misuse
Flattening every reply into a chronological stream and losing who replied to whom.

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.

Activity log

UI or UX
UI + UX - Searchable and exportable record of system, user, or administrative events
UI guidance
Render activity logs as evidence-oriented records with event time, actor, action, object, source system, scope, result, and technical context such as IP address or location when available.
UX guidance
Use activity log when users need to investigate, audit, verify, or troubleshoot actions across accounts, objects, systems, settings, or security boundaries.
Good UI
An organization audit log table shows timestamp, actor, action, target object, app, IP address, result, and a Details drawer with before and after fields.
Bad UI
A page titled Activity shows vague entries such as Changed settings with no actor, target, timestamp, or source.
Good UX
An admin filters to failed SSO events, expands one entry, copies the event ID, exports the filtered range, and sees that records older than 180 days require a different archive.
Bad UX
A user marks a notification read and the corresponding activity evidence disappears from the only log.
Best fit
Users need to inspect recorded user, admin, system, security, or integration events.
Avoid when
The goal is only to show a readable milestone history for one case or process.
Required state
Default log state with event records, result count, visible timezone, retention window, and permission scope.
Accessibility burden
Use table or structured list semantics so actor, action, object, timestamp, result, and scope are perceivable together.
Common misuse
Calling a social feed or notification drawer an activity log without event evidence.

Sync state

UI or UX
UI + UX - Local-and-remote reconciliation status
UI guidance
Show sync state close to the object or queue it describes, using labels such as Local saved, Queued, Syncing, Synced, Partially synced, Failed, Paused, and Conflict needs review.
UX guidance
Use sync state to keep users confident while local changes, remote copies, attachments, messages, or records reconcile across devices, services, or background workers.
Good UI
A field report queue shows 5 local changes: notes synced, two photos uploading, meter reading queued, signature failed with Retry, and supervisor comment needs review.
Bad UI
A single green Saved badge appears while several attachments are still queued.
Good UX
A user reconnects after editing offline and sees the queue move from local saved to syncing, then to one failed photo with retry while the accepted notes remain synced.
Bad UX
The offline banner disappears after reconnect, but hidden queued changes keep failing in the background.
Best fit
Local changes, files, messages, uploads, or records need to reconcile with a remote service or another device.
Avoid when
The product has no local copy or queued work and a simple loading, success, or error state is enough.
Required state
Local saved state for data persisted on the device but not yet sent.
Accessibility burden
Use visible text and accessible names for statuses; do not rely on spinning arrows, checkmarks, color, or icon overlays alone.
Common misuse
Calling local persistence Synced before remote acceptance.

Offline state

UI or UX
UI + UX - Connectivity-mode and local-work continuity state
UI guidance
Show offline status where it changes the current task, naming what remains available such as cached reports, local draft editing, queued saves, or read-only history.
UX guidance
Use offline state to preserve trust and task continuity when connection loss changes what users can read, edit, submit, sync, refresh, or share.
Good UI
A field report says Offline: 3 edits saved on this device, cached customer history shown from 10:42, Submit disabled until connection returns, and Retry connection.
Bad UI
A blank page says You are offline even though the app has cached drafts and help content.
Good UX
A user loses connection while editing an inspection note, sees it saved on this device, attaches photos to a queue, and later watches the queue sync after reconnect.
Bad UX
The app keeps a spinner on Save during airplane mode and never explains that no network request can start.
Best fit
Connection loss or server reachability changes the user's current task.
Avoid when
A single request failed while the rest of the app is reachable and an error state is clearer.
Required state
Online normal state with no offline warning.
Accessibility burden
Announce significant connectivity changes with status messaging when they affect the current task.
Common misuse
Showing only a browser-style offline page when useful cached or local content exists.

Tooltip

UI or UX
UI + UX - Short noninteractive description tied to a trigger
UI guidance
Render a tooltip as a small text-only bubble visually tied to a focusable trigger, with concise copy, readable contrast, stable placement, and an optional arrow that points to the target.
UX guidance
Use tooltips to add a brief description on focus or hover without asking users to open a separate layer or change task mode.
Good UI
A labelled Archive icon button receives focus and shows a short tooltip that says Moves this report to archived reports.
Bad UI
A mystery icon has no label and the only explanation is a hover-only tooltip that never appears for touch users.
Good UX
Tabbing to Archive keeps focus on the button, shows a short description, Escape hides it, and focus remains on Archive.
Bad UX
A user presses Escape to hide the tooltip and focus jumps to the top of the page.
Best fit
A compact control needs a brief supplemental explanation.
Avoid when
The text is the only label or action name.
Required state
Resting trigger state with a visible or accessible name that works without the tooltip.
Accessibility burden
Use tooltip text as a description with aria-describedby when it supplements the trigger.
Common misuse
Using hover-only tooltip text as the only label for an icon button.
Decision rules
  • Choose live cursors when collaborators need to see where other people are pointing, selecting, hovering, typing, or focused in the same document, canvas, slide, diagram, whiteboard, code editor, or design file right now.
  • Choose presence when the question is whether a person is available, away, busy, offline, unknown, viewing, or recently active; presence can feed live cursors, but it does not show exact pointer or selection location.
  • Choose comments when feedback must persist on a specific object, region, line, or selection with author, timestamp, reply, resolve, edit, and moderation state; live cursors disappear when the collaboration session ends.
  • Choose mentions when a user needs to call someone's attention inside a message, comment, task, or document; mentions may bring someone into a shared surface, but they are not a pointer stream.
  • Choose threaded discussion when the work is a topic conversation with branches, unread state, answer marking, follow, or mute behavior; live cursors may show who is reading the topic but should not carry discussion state.
  • Use notification center when cursor-related activity needs retained inbox behavior such as someone requesting attention or following a pointer session; raw cursor movement should not become notification history.
  • Use activity log when the product must record a durable event such as a shared session start, annotation creation, or handoff; cursor coordinates and hover paths are ephemeral awareness data unless explicitly captured.
  • Use sync state when cursor positions are delayed, disconnected, stale, or reconnecting; show cursor freshness separately from document-save state so users do not mistake lag for content loss.
  • Use offline state when the current user cannot send or receive live cursor updates; hide or mark remote cursors stale instead of freezing them as if live.
  • Use tooltip for static contextual help; cursor labels, pointer names, and cursor chat are transient collaborator signals and need identity, color, recency, and privacy behavior.
Inspect live examples
Failure modes
  • Remote cursors stay visible after collaborators disconnect and the UI gives no stale or last-seen state.
  • Every pointer movement triggers layout, notification, or history updates, turning ephemeral awareness into noise.
  • Cursor labels rely only on color, so users cannot identify people with low vision or many collaborators.
  • A user cannot hide their own pointer or reduce other users' cursors during focused work or presenting.
  • Cursor chat is treated as durable feedback even though the message is temporary and not attached to an object or timeline.
  • A live cursor on a private object reveals hidden position, selection, or viewing behavior across a permission boundary.