Give a card's body the line the badge row was taking - #111
Merged
Merged
Conversation
The language badge owned a row of its own above the title: ~17px plus an 8px margin out of the 122px a card has, spent before a character of body. Badge, title and marks now share one line. The title gains the line budget it never had — clamped at two — and the head reserves a gutter for the selection tick, which floats at left: 8px and sat on the badge whenever a card was ticked. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #71.
The language badge owned a row of its own above the title — ~17px plus an 8px
margin out of the 122px a card has, spent before a character of body. Badge,
title and marks (
⚡ 📎 📌) now share one line, andSNIPPET_LINESgoes from 3to 4.
Measured, not estimated
Fully-visible body lines per card, same window, same corpus,
mainagainst thisbranch. A line counts only if its box sits wholly inside the snippet's band.
Five cards gain two or three lines. None loses any. The cards sitting at 0 on
mainare the ones a long unclamped title had eaten whole.The title now has a budget
It had none: a long one took three lines and ate the body, so two cards side by
side showed different amounts of it for no reason the user had chosen. Clamped at
two lines. That is a visible behaviour change and it is the point of the ticket,
not a slip.
The tick gets a gutter
.card-checkfloats atleft: 8pxwhile the card's padding starts at 14px, so it lands on whatever begins the top
line — and it is not a hover-only concern:
checkedkeeps it on with no pointerat all, which is the state a multiple selection leaves every card in. Unreserved
it sat squarely on the language badge, and on a todo list, which has no badge, it
would have sat on the title.
.card-headreserves 14px for it, permanently rather than only while the tickshows — the second would shift the title sideways under the pointer.
I looked at all four states the ticket asks for (at rest, hovered, ticked,⚠️ One honest caveat on the
ticked-while-hovered) on a card with a title long enough to wrap, and on a todo
list with no badge. Nothing overlaps in any of them.
method: a WebDriver pointer move produces no CSS
:hoverin this WebView, so thehovered states were captured by forcing on what hover reveals. That shows the
layout faithfully, which is what was at issue, but it is not a real pointer.
.card-pin'smargin-left: autois gone with the row it belonged to — on amerged line it would have pushed the title instead of the glyphs. The checklist
card's bottom-anchored item layer is untouched.
Checked locally
npm test961 passing,npm run lintclean,npm run test:e2e15/15 in 3:52.🤖 Generated with Claude Code