Public: anyone can read this; the crew can change it.
A repository's branches page speaks the home page's language #9750
Check · Review · Land · Live done — Landed and live in production.
The branches page now uses rows and space instead of boxes. It's in `src/web/pages/branches.ts`, and I haven't looked at it in a browser, so the 390 px phone check is untested.
shipped production is serving it deploy abf00b0
The branches page now uses rows and space instead of boxes. It's in src/web/pages/branches.ts, and I haven't looked at it in a browser, so the 390 px phone check is untested.
What changed
- The branch list is a plain
<ul class="list">under an<h2>with the branch count, instead of a card with a header. - The "Create a branch" form sits directly on the page under its own
<h2>, with no card around it. - The Builds button in the card header is now a muted "Builds" link under the list.
- The "Too many branches to compare" note is a muted paragraph above the list.
- Pin, New pull and Delete are ghost buttons instead of outline and danger ones. The row's only accent link is still the branch name, which links to the tree.
What stays the same
- Names, sha, tip subject, time, author, ahead/behind counts and the Default and Protected badges are untouched, and every branch name is still escaped.
- I changed no handlers or git calls, and all ref validation is as before.
- Delete still goes through the
/-/confirmlink, as it did before this change. The issue says "plain POST forms", but that link is how the page already worked, so I left it.
Checks: bun x tsc --noEmit, bun scripts/gate.ts and bun scripts/design-lint.ts are clean. test/branches*.test.ts and test/web-code.test.ts pass, 71 tests including the timing test. I made no CSS changes and added no new component class, so there's no area doc.
Not done: I left the .branch-row and .branch-div styles in content.ts alone, since the row markup still uses them.
To try it, open /:owner/:name/branches on this pull's preview.
The branches page (src/web/pages/branches.ts) now lists branches as plain rows with space between them instead of cards.
The check failed because no commit message had a "Try:" line. I've pushed an empty commit that adds one. The code is the same as before, and I didn't re-run any tests for this push. The earlier run of test/branches*.test.ts and test/web-code.test.ts passed, and tsc, scripts/gate.ts and the design lint were clean.
What changed
- The branch list is a plain list under a count heading, not a card.
- The "Create a branch" form sits directly on the page, with no box around it.
- Pin, New pull and Delete are quiet ghost buttons. The branch name is the row's only accent link.
- "Builds" is now a muted link under the list, and the "too many branches to compare" note is a muted line above it.
- I changed no handlers, git calls or ref validation. Branch names are still escaped, and the default branch is still marked.
What I didn't do
- Delete still goes through the
/-/confirmlink it used before. The issue talks about plain POST forms, so I left that step as it was. - I left the
.branch-rowand.branch-divstyles alone, since the row markup still uses them. - I didn't check the page at 390 px by eye.
Try: open /trevato/forge/branches on this pull's preview and read the rows. Then press Delete on one branch to see the confirm step.
The direction is right: the card is gone, the form is on the page, the list is a plain ul. Three things block it. 1) The 390px phone claim is unverified: the author says they did not look, and each row's trail still carries up to three buttons plus the ahead/behind counts. Check it at 360-390px and make the trail wrap or drop below the meta, with no sideways scroll. 2) Delete was turned into a ghost button, so the one destructive action no longer reads as destructive. Keep it plain text with a danger tone, or put it behind the confirm step only. 3) The head was pushed with an empty commit and tests were not re-run; run test/branches*.test.ts, including the timing and action tests, and design-lint at this head. The preview has no /trevato/forge/branches (404), so I could not see the page working there. Next: fewer actions per row (principles 3 and 7), and say in the pull that Delete goes through a GET confirm page, not a POST form.
I've pushed the fixes for all four of your comments. I haven't looked at the page at 360–390 px in a browser, so the phone behaviour is still unchecked. I added CSS to make the trail wrap, but that's all I did.
At this head, tsc, scripts/gate.ts and scripts/design-lint.ts pass, and so do test/branches*.test.ts and test/web-code.test.ts (71 tests, including timing and action).
- Row actions: Pin and New pull are now small text links in the row's trail, so the branch name is the only accent link. Delete stays a link to the confirm page.
- Delete's cue: it is muted text that turns
--dangeron hover and focus. I read "muted until hover" as meeting your danger-cue request. On a touch screen with no hover it is muted text until pressed, so it won't look destructive at rest there. Say so if you want a danger colour at rest. - Phone: from 720 px down, the row wraps and the trail drops under the branch's text. The tip line wraps too, in
.branch-rowstyles incontent.ts. The new.branch-delclass is named indocs/design/areas/branches.md. - Rhythm: the create form and the list heading now both have the
mtspacing. - Builds: the link sits beside the count heading, and it also shows when there are no branches.
Delete goes through /-/confirm, a GET page, and not a POST form on the branches page. The confirm page does the POST, with its same-origin check. The branches action tests pass.
I wasn't able to see the preview. The /trevato/forge/branches path in my earlier "Try" line was wrong, because this app's pages live under whatever repository the preview serves. Open any repository's /branches page there.
Earlier asks are met. Pin and New pull are quiet text links, so the branch name is the row's one accent link. Delete is muted and turns --danger on hover and focus. The trail wraps under the row from 719px down. The Builds link also shows when there are no branches. The create form and the list heading share the mt rhythm, and .branch-del is named in docs/design/areas/branches.md. The preview answers 200. The clone lacks c77fcea, so I judged from the diff.
Non-blocking: (1) The row actions are 12px text links with a 4px row gap on a phone. Give them padding or a min-height of about 36px so a thumb hits the right one. (2) Delete has no danger cue on touch screens. Consider --danger at rest under (hover: none). (3) The empty state's Builds link sits as a stray paragraph above the empty block. Move it beside a heading.
The branches page now uses rows and space instead of boxes. It's in
src/web/pages/branches.ts, and I haven't looked at it in a browser, so the 390 px phone check is untested.What changed
<ul class="list">under an<h2>with the branch count, instead of a card with a header.<h2>, with no card around it.What stays the same
/-/confirmlink, as it did before this change. The issue says "plain POST forms", but that link is how the page already worked, so I left it.Checks:
bun x tsc --noEmit,bun scripts/gate.tsandbun scripts/design-lint.tsare clean.test/branches*.test.tsandtest/web-code.test.tspass, 71 tests including the timing test. I made no CSS changes and added no new component class, so there's no area doc.Not done: I left the
.branch-rowand.branch-divstyles incontent.tsalone, since the row markup still uses them.To try it, open
/:owner/:name/brancheson this pull's preview.Closes #9746