Skip to content

Match chat list, held-message menu, emoji picker and replies to the references - #53

Merged
fireplacechat-com merged 5 commits into
mainfrom
feat/messaging-ui-fidelity
Nov 10, 2026
Merged

fireplacechat-com merged 5 commits into
mainfrom
feat/messaging-ui-fidelity

Conversation

@xss3cut10n3r

Copy link
Copy Markdown
Member

Why

The chat list, held-message menu, emoji picker and reply bubbles should match the owner's reference screenshots (a Telegram chat list; Signal's menu, picker and quoted replies) while keeping Fireplace's colours, protocol and privacy rules.

What changed

  • Chat list: 104-point rows with a 60-point orange initials avatar (no photos), name and short date, a two-line preview and a filled unread count from local history. Mute moves from a menu button to a long press, right click, context-menu key and a screen-reader action.
  • Held-message menu: measured reaction bar, message and action list. A message with room for its menu does not move; one too low slides up only as far as needed and slides back on dismissal. The conversation underneath never scrolls.
  • Emoji picker: opens inside the same overlay with a search field, recents from the conversation, eight categories and a category bar. Search is local, over a table generated from Unicode data and filtered by the existing reaction validation.
  • Replies: a reply bubble is as wide as the wider of its quote and its own text; the quote is a tinted panel with a stripe.

No wire format, key handling, Firestore rule, server field or package changed. The emoji table adds a Unicode data notice to docs/legal/THIRD_PARTY_NOTICES.md.

Based on main after #51.

How it was checked

See the review report for measured values, the differences that remain and results: format and analyze clean, 883 tests passed (1 existing skip), 17 timing tests, 180 renders, layer check. No physical-device testing.

Side-by-side and overlay comparisons with the references were made locally with scripts/render/compare_reference.py. They are not attached because the reference screenshots show other people's names, photos and messages.

Chat list
Held message
Emoji picker
Replies

AI assistance

Claude Code (Anthropic) wrote the implementation, tests and review material. Human review and physical-device acceptance are pending. No merge or deployment.

🤖 Generated with Claude Code

Generate names and English keywords from Unicode emoji-test 15.0 and CLDR 42, keep only what the existing reaction format accepts, and search it on the device with a capped query.
Use the measured bar, list and sheet geometry. A message with room for its menu stays where it was held; one too low rises and returns on dismissal without scrolling the conversation. The full emoji picker opens inside the same overlay with local search, recents from the conversation and category jumps.
A reply is as wide as the wider of its quote and its own text, so short replies stay small. The quote becomes a tinted panel with a stripe, eight points inside the bubble.
Rows use the measured avatar, type and spacing, with a short date and a filled count from local history beside the second preview line. Muting moves from a menu button to a long press, right click, context-menu key and a screen-reader action.
Add renders at the reference screenshots' size, a side-by-side and overlay comparison script, and the review report with measured values, remaining differences and AI assistance disclosure.
@fireplacechat-com
fireplacechat-com marked this pull request as ready for review November 10, 2026 06:39
@fireplacechat-com
fireplacechat-com requested a review from a team as a code owner November 10, 2026 06:39
@fireplacechat-com
fireplacechat-com merged commit 281a4a1 into main Nov 10, 2026
9 checks passed
@fireplacechat-com
fireplacechat-com deleted the feat/messaging-ui-fidelity branch November 10, 2026 06:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants