style(desktop): draw Files changed's unmodified-lines band as one surface

Merged
DA
2d ago
+40-0

Summary

The developer's note: "I don't like how the 'unmodified lines' button has a different background."

Pierre's line-info-basic separator draws its wrapper on the code's ground (--diffs-bg), and its arrows and "N unmodified lines" on the band's ground (--diffs-bg-separator), with a 2px code-ground seam after the arrow. The label read as a box pasted onto a strip.

LOOK_CSS now overrides it (as #3818 did for the gutter "+"):

  • The wrapper takes the band's ground (--diffs-bg-separator, which LIST_CSS sets to --luke-color-fill-hover since #3794) across the card's full width.
  • The arrows and label have no ground or border of their own.
  • Only the arrow fills under the pointer (--luke-color-fill-pressed).
  • The label stays clickable, with no underline and no fill: it's a bigger target than the arrow.
    • Pierre opens both ends of a gap from the label, which at the file's top or foot isn't what the arrow opens.
    • So the label lets the pointer through (pointer-events: none) to the arrow, whose press area (::after) now spans the band's width. The label opens exactly the arrow's lines: 20 at a time, or all of a short gap.
    • Hovering the band lifts the label's ink to --luke-color-text-muted.

Screenshots

Electron under xvfb, PR #2908's build.mjs, 900px.

lightdark
before
after
after, arrow hovered
after, label hovered
label clicked (347 → 327 lines left, as the arrow does)

Evidence

  • This is a styling change inside the diff bundle's shadow CSS. No test covers Pierre's shadow styles (as with #3818's "+"), so the screenshots above are the evidence.
  • Local checks: tsc for panel, oxlint, biome, repository-checks (the var() carries a --luke-* fallback, as the checker asks), diff-view and Files changed tests, and the desktop build.

Made with Luke