HWS UI

Context menu sheet

Static mock for sign-off (#2526). Translate and the late 'Open in GitHub' entry are illustrative only.

Every popup is drawn with the shipped menu classes. Use the catalog's theme switch to review the sheet in light and dark.

1. Foreign message

MO
Mira Okafor09:12
Did the revenue export finish? I want to sanity-check the LATAM numbers.
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Copy text
Pin for everyone
Translate
  • Right-click on someone else's message opens the message menu: quick reactions first (the most frequent action), then respond, then message actions.
  • No Edit and no Delete: foreign messages never show them.

2. Own message

AR
Alex Rivera09:14
I'll fold these into tomorrow's review deck.
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Edit message
Copy text
Pin for everyone
Translate
Delete
  • As frame 1, plus Edit message in the message section.
  • Delete comes last, alone past a divider, in the danger colour.

3. Own pending message (failed send)

AR
Alex Rivera09:14
I'll fold these into tomorrow's review deck.
Not sent. Retry, edit or cancel.
👍❤️😂🎉😮🙏
Retry
Edit
Copy text
Cancel
  • A failed send offers Retry and Edit first; Cancel is the destructive entry, last.
  • Pending rows keep the quick reactions and Copy text, exactly as today.

4. Own scheduled message (chat)

AR
Alex Rivera09:14
I'll fold these into tomorrow's review deck.
Scheduled for tomorrow, 09:00
Send it now
Edit message
Copy text
Delete
  • No reactions. Send it now leads.
  • Edit message and Copy text, as today's chat toolbar offers them on scheduled rows; no Pin, Forward or Reply.

5. Thread panel, own reply

Thread
MO
Mira Okafor09:12
Did the revenue export finish? I want to sanity-check the LATAM numbers.
AR
Alex Rivera09:14
I'll fold these into tomorrow's review deck.
👍❤️😂🎉😮🙏
Reply
Forward
Edit message
Copy text
Pin for everyone
Translate
Delete
  • "Reply" instead of "Reply with a quote", and no "Reply in thread" inside a thread.
  • Assumes the panel passes the forward, pin, edit-reply and delete-reply handlers and the composer is enabled: Forward and Pin appear only because of those handlers.

6. Link in a message

MO
Mira Okafor09:12
Figma board is here: figma.com/file/q3-crit
Open link
Copy link
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Copy text
Pin for everyone
Translate
  • The thing under the pointer comes first: Open link and Copy link, then the message sections.

7. mailto link

MO
Mira Okafor09:12
Send the deck to crit@acme.example.com
Open email
Copy email address
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Copy text
Pin for everyone
Translate
  • Open email hands the address to the mail client.
  • Copy email address copies the bare address, without "mailto:".

8. Image in a message

MO
Mira Okafor09:12
Final assets for the empty states:
Open
Open in browser
Copy image
Download
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Copy text
Pin for everyone
Translate
  • Open is the in-app viewer, the same as a left click; Copy image shows only where the browser can put an image on the clipboard.
  • "Open in browser" is hidden in the desktop app.

9. File chip

MO
Mira Okafor09:12
Specs attached.
inbox-specs.pdf
PDF, 1.2 MB
Download
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Copy text
Pin for everyone
Translate
  • Download, then the message sections.

10. Video

MO
Mira Okafor09:12
Browser menuSpeed, loop, picture-in-picture
  • The browser's own menu (speed, loop, picture-in-picture); the app adds nothing.

11. Rows without a toolbar

Call ended, 12 min
Kai Muller started a callJoin
Private reply from HOLOH
Scout is working: audit empty-state copy
Browser menuFor all four rows
  • A call record, a call invite, a private-reply pill and an agent-work row have no message toolbar, so right-click gives the browser menu.

12. Composer, text input, selected text, Shift+right-click

Message #design-crit
Search
MO
Mira Okafor09:12
Did the revenue export finish?
Shift+ right-click on a message
Browser menuOne answer for all four
  • Composer: the browser menu, which keeps spellcheck suggestions and paste.
  • Any other text input: the browser menu.
  • Selected text anywhere: the browser menu (copy, search).
  • Shift+right-click anywhere, messages included: always the browser menu.

13. Hover toolbar and an open More options menu

AR
Alex Rivera09:14
I'll fold these into tomorrow's review deck.
👍❤️😂
Reply in thread
Forward
Copy text
Pin for everyone
Delete
NothingNo menu opens over the toolbar or the More options menu
  • Right-click on the hover toolbar or on an open "More options" menu does nothing.

14. Submenu open

MO
Mira Okafor09:12
Did the revenue export finish? I want to sanity-check the LATAM numbers.
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Copy text
Pin for everyone
Translate
Translate
Translation settings
  • Illustrative: there is no translation feature.
  • Hover opens the submenu after about 100ms; click or tap opens it; ArrowRight opens it and ArrowLeft closes it.

15. Progressive entries

(a) instant
Open link
Copy link
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Copy text
Pin for everyone
Translate
(b) after 150ms, probe pending
Open link
Copy link
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Copy text
Pin for everyone
Translate
Looking for more
(c) arrived
Open link
Copy link
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Copy text
Pin for everyone
Translate
Open in GitHub
  • (a) Instant: the link section and the message sections.
  • (b) After 150ms with a probe still pending: a faint trailing row with a spinner.
  • (c) Arrived: a trailing section with "Open in GitHub" (illustrative).
  • Late entries only ever append at the end; nothing already shown moves.

16. Disabled with a reason

MO
Mira Okafor09:12
Did the revenue export finish? I want to sanity-check the LATAM numbers.
Copy text
Pin for everyoneOnly admins can pin here
  • Illustrative: a disabled entry shows why in a tooltip.
  • Message actions are hidden, not disabled, when unavailable; disabled-with-reason is for other areas.

17. Keyboard open

AR
Alex Rivera09:14
I'll fold these into tomorrow's review deck.
👍❤️😂
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Edit message
Copy text
Pin for everyone
Translate
Delete
  • Opened from a focused toolbar button, the menu sits below it and highlights the first list entry, Reply with a quote, not the first emoji.
  • Keyboard opens keep the enter animation; pointer opens skip it.

18. Edge placement

Right edge
MO
Mira Okafor09:12
Did the revenue export finish? I want to sanity-check the LATAM numbers.
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Copy text
Pin for everyone
Translate
Bottom edge
MO
Mira Okafor09:12
Did the revenue export finish? I want to sanity-check the LATAM numbers.
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Copy text
Pin for everyone
Translate
Short window, 420px
MO
Mira Okafor09:12
Final assets:
Open
Open in browser
Copy image
Download
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Edit message
Copy text
Pin for everyone
Translate
Delete
  • Near the right edge: the menu aligns to fit, opening to the left of the pointer.
  • Near the bottom edge: the menu flips above the pointer.
  • A short window (about 420px tall) with a menu longer than the window: the menu is clipped to the window and scrolls on its own.

19. Spatial stage

3D stage
Kai Muller
NothingNo menu on the 3D stage
Call pane with docked chat
Mira Okafor
Chat
AR
Alex Rivera09:14
I'll fold these into tomorrow's review deck.
👍❤️😂🎉😮🙏
Reply with a quote
Reply in thread
Forward
Edit message
Copy text
Pin for everyone
Translate
Delete
  • Right-click on the 3D stage does nothing: no entries in v1.
  • In the main-window call pane, the chat docked beside the 3D view gets the same message menu as frame 2.

20. Touch

  • Touch is unchanged in v1: a long-press on a message still opens "More options".
  • A long-press on an image or a link keeps the OS sheet.