Skip to content

feat(fuselage): quieter message header metadata - #2138

Open
ivans-netto wants to merge 4 commits into
RocketChat:mainfrom
ivans-netto:feat/quieter-message-header-metadata
Open

feat(fuselage): quieter message header metadata#2138
ivans-netto wants to merge 4 commits into
RocketChat:mainfrom
ivans-netto:feat/quieter-message-header-metadata

Conversation

@ivans-netto

@ivans-netto ivans-netto commented Jul 31, 2026

Copy link
Copy Markdown

Summary

Part of the user information redesign in RocketChat/Rocket.Chat#41650 (Figma spec), where these styles are currently applied as .rcx-* overrides inside the app — this PR moves them into the design system so the app can drop the overrides and consume them from fuselage.

  • Author names (rcx-message-header__name, rcx-message-system__name and their shared name container) use the titles-labels font color token. When the name container acts as a button ([role='button']) it shows a pointer cursor and underlines on hover — in the app it is the hover/click trigger for the user card and full profile. Non-interactive name containers are unaffected.
  • Timestamps (rcx-message-header__time, rcx-message-system__time) are quieter through color alone: they stay on the c1 scale they already declared and use the secondary-info font color token. No explicit font sizes — the type ramp has no 10px regular step (micro is bold), so the size stays on the scale and the color does the work.
  • Contrast on hover: secondary-info meets WCAG AA on the room surface (4.80:1) but not on the hover surface (4.33:1), so the regular-message timestamp steps up to the default token while the message is hovered (11.26:1). System messages don't change surface on hover, so no rule is needed there.

Impact

This intentionally changes the header metadata of every Message/MessageSystem consumer — it is the design-system side of the approved redesign, and the app PR above stops overriding these styles once this ships.

Screenshots

Message header — before / after (timestamp in secondary-info; name uses titles-labels):

Before After
before after

Hover underline on a clickable author name (new WithClickableAuthorName story):

Testing

  • WithClickableAuthorName story added — hover the author name to see the pointer cursor and underline (only when role='button' is set).
  • 28 visual-regression goldens regenerated; 506 tests passing.
  • Jest specs and DOM snapshots unaffected (style-only change); lint/stylelint green.

🤖 Generated with Claude Code

@changeset-bot

changeset-bot Bot commented Jul 31, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 6fa57fc

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@rocket.chat/fuselage Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@CLAassistant

CLAassistant commented Jul 31, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Comment thread packages/fuselage/src/components/Message/Messages.styles.scss Outdated
@ggazzo

ggazzo commented Aug 3, 2026

Copy link
Copy Markdown
Member

@juliajforesti 🆘 not 100% sure about my reviews

Comment thread .changeset/quieter-message-header-metadata.md Outdated
Comment thread packages/fuselage/src/components/Message/Messages.styles.scss
Comment thread packages/fuselage/src/components/Message/Messages.styles.scss Outdated

@juliajforesti juliajforesti left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

keep comments brief, and only when strictly necessary - it should not be a history of a debate

Comment thread packages/fuselage/src/components/Message/Messages.styles.scss Outdated
Comment thread packages/fuselage/src/components/Message/Messages.styles.scss Outdated
Comment thread packages/fuselage/src/components/Message/Messages.styles.scss Outdated
Comment thread packages/fuselage/src/components/Message/Messages.styles.scss Outdated
Timestamps rest on the secondary-info color and step back up to
font-default when the message is hovered, so the quieter treatment
never fails AA contrast against the hover surface. The size stays
on the c1 scale the ramp already provides.
Author names use the titles-labels color — declared on the container
too, because CSS paints text-decoration with the color of the box that
declares it, and system messages share the container with a different
name child. When the name is actionable ([role='button']) it shows a
pointer cursor and underlines on hover.
Stories for the hovered clickable author name on regular and system
messages, plus the DOM snapshot the story composition adds.
@ivans-netto
ivans-netto force-pushed the feat/quieter-message-header-metadata branch from 588833b to 6fa57fc Compare August 6, 2026 15:43
@ivans-netto
ivans-netto marked this pull request as ready for review August 6, 2026 17:25
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.

4 participants