Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Let source and diff cards grow to their full height

30de4a44010d926a2d6ae088cbd7effc0811dbfe · Keenan Nemetz · 8d ago · parent 87bef95c

Let source and diff cards grow to their full height

The code browser capped a blob at 76vh, so a long file scrolled inside the
card. A diff card was not height-capped, but `overflow: hidden` still made it a
scroll container. Ctrl+F on either one found a match that moved an inner box
while the page stayed put, which is how a reviewer loses the result.

The source card now has no height cap, and the diff card clips with
`overflow: clip` rather than `hidden`, so neither is a vertical scroll area:
the page scrolls and find can reach every line. A line wider than the pane
still scrolls sideways, and the file tree keeps its capped sticky scroll
because it is navigation beside the pane, not the content.

server/web/static/vole.css +8−5

@@ -975,11 +975,15 @@ pre code { background: none; border: 0; padding: 0; font-size: inherit; }
975 975
976 976 .diffsum { font-size: calc(13.2px * var(--font-scale)); margin: 10px 0; }
977 977
978 /* A diff is read with the browser's find bar as much as with the eyes, so the
979 card is not a scrolling box: it grows to the full height of the patch and the
980 page scrolls instead. `clip` rounds the corners like `hidden` did, without
981 making the element a scroll container that find has to scroll separately. */
978 982 .diff {
979 983 border: 1px solid var(--border);
980 984 border-radius: var(--radius-lg);
981 985 margin: 12px 0;
982 overflow: hidden;
986 overflow: clip;
983 987 background: var(--bg-panel);
984 988 }
985 989 .diff h3 {
@@ -1438,7 +1442,6 @@ details[open] > summary .tree-chevron { transform: rotate(90deg); }
1438 1442 .code-main .filebody { max-width: none; }
1439 1443 .code-main .readme > *,
1440 1444 .code-main .filebody > * { max-width: none; }
1441 .code-main .blob { max-height: calc(100vh - 240px); }
1442 1445 .empty-code { margin-top: 0; }
1443 1446
1444 1447 .dirlist td { padding: 2px 10px; }
@@ -1453,7 +1456,6 @@ details[open] > summary .tree-chevron { transform: rotate(90deg); }
1453 1456 @media (max-width: 760px) {
1454 1457 .code-browser { grid-template-columns: 1fr; }
1455 1458 .file-tree { position: static; max-height: 260px; }
1456 .code-main .blob { max-height: none; }
1457 1459 }
1458 1460
1459 1461 .readme > *,
@@ -1472,9 +1474,10 @@ details[open] > summary .tree-chevron { transform: rotate(90deg); }
1472 1474 }
1473 1475 .filebody > :first-child { margin-top: 0; }
1474 1476
1477 /* The source card grows to the file's full height for the same reason: find has
1478 one scroll area, the page. Only a line too wide for the pane scrolls here. */
1475 1479 .blob {
1476 max-height: 76vh;
1477 overflow: auto;
1480 overflow-x: auto;
1478 1481 }
1479 1482 .blob table.code {
1480 1483 font-family: var(--mono);