Skip to content

fix(web): the pull request badge reads at the meta size and keeps its state colour on hover - #23

Open
f3kin wants to merge 4 commits into
shwarmadev:mainfrom
f3kin:card/hotlap-pr-badge-meta
Open

f3kin wants to merge 4 commits into
shwarmadev:mainfrom
f3kin:card/hotlap-pr-badge-meta

Conversation

@f3kin

@f3kin f3kin commented Sep 25, 2026

Copy link
Copy Markdown

The pull request badge in the sidebar rendered at 16px/500, larger and bolder than the 14px thread title. That regression came from pingdotgg#13034; upstream t3code fixed it in pingdotgg#13175, which is not yet in this fork.

Verified in a real render on synthetic data: the badge baseline is within 0.00px of the timestamp in sidebar rows and of the branch name in the composer, and the state colour holds at rest, on hover and on keyboard focus in the sidebar and the composer, light and dark. ThreadStatusIndicators.test.tsx covers the type and the colour surviving hover for both InlineButton and ComposerControl, and fails without the fix.

Known residue, not from this PR: lint:restyle-ceiling already fails on main (632 findings against a ceiling of 628); this PR adds none.

🤖 Generated with Claude Code

juliusmarminge and others added 4 commits September 24, 2026 02:02
…tgg#13175)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
(cherry picked from commit 6975efd)
After pingdotgg#13175 the badge's text was 12px/400, but only on an inner
display:contents span: the control around it (an InlineButton in the
sidebar) kept its inherited 16px size, 24px line box and font-medium, so
the badge sat a pixel below the timestamp baseline and its hover underline
was drawn for the larger link. The badge now puts its meta typography
(font-normal text-xs tabular-nums, plus the state tone) on the control
through useRender's merged props and drops the contents span. The badge
owns its type, as in pingdotgg#13208, so no call site restyles the control, and
every sidebar and the composer toolbar share the fix.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Moving the tone onto the badge's control let a control's own hover colour
win: the composer's ComposerControl (hover:text-foreground/80) turned a
merged badge grey, icon included. The tone goes back on an inner contents
span around the icon and number, as upstream had it, so no control hover
or focus colour reaches them. The meta type stays on the control, which
is what keeps the badge on the timestamp baseline, and the control keeps
the tone too, so an InlineButton's hover underline takes it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The it.each table held JSX elements in an array literal, which tripped two
react(jsx-key) warnings. Each row now holds a factory that renders its
control. No behaviour change.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants