Repository navigation
fix(panel): the file Files changed's keys stand on is marked by its card's edge, not a focus ring - #4140
Merged
Conversation
…ard's edge, not a focus ring The current file (J/K's) wore the keyboard's focus ring around its header, drawn inset, so it ran thicker top and bottom than at the sides, clipped at the card's corners, and stood beside the card's own edge as a second border. It is now marked as a selected card is across the app: the card's own 1px edge in the selected edge's ink, around a folded header or the whole open file. The keyboard's focus keeps ringing the control inside the header that holds it, with the window's one ring. Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
Summary
The developer said: "I think the focus rings on file headers don't look good please fix."
The file card the keys stand on (J/K's current file, #3304) wore the keyboard's focus ring around its header (
.diff-list-head[data-standing]). The ring was drawn inset, and the inset ran into the card's own 1px border and its rounded clip, so:The current file is now marked the way a selected card is marked across the app (
border-color: var(--luke-color-border-selected), as indesktop.css,settings.cssandtasks.css). The card's own 1px edge switches to the selected edge's ink. The card is Pierre'sdiffs-container, the element the header stands in. The edge goes around a folded header or around the whole open file. It marks which file the keys act on; it is not keyboard focus.base.css. That ring is the same on every side, follows the control's radius, and stays inside the card..diff-list diffs-container:has(.diff-list-head[data-standing]), sets the edge. A document rule wins over the bundle's:hostborder, so the bundle doesn't change.data-search-landedring on a landed thread inside the card is untouched, and still reads as a brief 2px highlight on the thread.Before / after
These come from the real built renderer (
styles.cssanddiff-view.jsfromnode scripts/build.mjs), onmainand on this branch. The diff list is mounted withmountListand drawn with the real header markup fromFileHead, in headless Chromium.Evidence
tsc --noEmitfor panel: clean.vitest run packages/panel/src/styles packages/panel/src/tasks/agent-changes-tab.test.ts: 158 passed../scripts/repository-checks.sh: passed../scripts/oxlint.sh: 0 warnings, 0 errors.pnpm knip: clean.biome check: clean.node scripts/build.mjspasses.styles/file-head-current.test.ts: it builds the list's markup (card, Pierre's header slot, the kept element, header) and reads what the laid sheets declare.var(--luke-color-border-selected), another card declares no edge, and no header wears an outline.main, where the header declares the ring.Invariants
./scripts/check.shgreen: its pieces were run one by one, as listed above, and CI runs the whole of it.astype assertion.Effect.run*.CLAUDE.md/AGENTS.mdchange needed.PRIVACY.mdunchanged.Notes
Made with Luke