Product
Secure messaging chat
Chat UX contract — scrollable thread, Sent/Seen, typing, emoji picker.
Owner: ProductLast reviewed:
Staff↔patient secure messaging UI and delivery semantics for the patient portal and clinic-web apps.
UX contract
| Concern | Behaviour |
|---|---|
| Layout | Single ChatPanel: scrollable transcript + composer inside the same container |
| Bubbles | Content-sized, max ~75% / 22rem — not full-width wells |
| Scroll | Transcript auto-scrolls as messages grow; overscroll-contain |
| Sent / Seen | Own messages show Sent until readAt is set, then Seen · timestamp |
| Typing | Peer typing indicator (Redis TTL ~5s), polled while a thread is open |
| Emoji | Composer bottom-left opens EmojiPicker: search, category tabs, recently used |
Design system
Storybook → Components/Chat documents ChatPanel, ChatBubble,
ChatComposer, TypingIndicator, and EmojiPicker.
Privacy
Never put PHI in toast copy, Storybook fixtures, or emoji search analytics.