fabrica

hanna/fabrica

style(web): fix mobile dashboard/repo-nav overflow and truncate repo paths

e750afc · hanna committed on 2026-07-26

- Dashboard/profile/issue columns kept their side-by-side align-items
  (e.g. .dashboard's flex-start) when the mobile query stacked them to a
  column, so the main column shrank to its content and overflowed the
  viewport. Reset align-items: stretch and give the main columns
  width:100%/min-width:0 when stacked.
- Repo sub-nav stacked into a tall column with the branch/clone actions
  crowding it. On mobile the tab strip now scrolls horizontally
  (flex-wrap: nowrap) on its own row with the actions on the row below.
- Long repo/group paths in listing cards now truncate with an ellipsis
  instead of pushing past the card width; trailing visibility/archived
  badges stay put.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed by hannaSSH key fingerprint: SHA256:4g9cWhkAAw8gwqhJUcVbSnGEvdGwklW+1Aa/fMUu59k
1 files changed · +32 −2UnifiedSplit
assets/base.css +32 −2
@@ -1465,6 +1465,19 @@ label.checkbox input {
14651465 align-items: center;
14661466 gap: 0.45rem;
14671467 font-weight: 600;
1468+ max-width: 100%;
1469+}
1470+/* Truncate a long repo/group path so it never pushes past the card width; the
1471+ trailing visibility/archived badges stay put (they are not the name span). */
1472+.repo-row-name > span:not(.badge) {
1473+ overflow: hidden;
1474+ text-overflow: ellipsis;
1475+ white-space: nowrap;
1476+ min-width: 0;
1477+}
1478+.repo-row-name > .icon,
1479+.repo-row-name > .badge {
1480+ flex: none;
14681481 }
14691482 .repo-row-name .icon {
14701483 color: var(--fb-fg-muted);
@@ -2531,24 +2544,41 @@ td.diff-empty {
25312544 justify-content: center;
25322545 min-width: 44px;
25332546 }
2547+ /* Stack the repo sub-nav: the tab strip scrolls horizontally on its own row
2548+ (rather than wrapping into a tall column), with the branch/clone actions
2549+ on the row below instead of crowding the tabs. */
2550+ .repo-nav {
2551+ flex-direction: column;
2552+ align-items: stretch;
2553+ }
25342554 .repo-tabs {
2555+ flex-wrap: nowrap;
25352556 overflow-x: auto;
25362557 -webkit-overflow-scrolling: touch;
25372558 }
2559+ .repo-tabs a {
2560+ flex: 0 0 auto;
2561+ }
25382562 /* Diff tables scroll within their own box (the blob wrapper already does). */
25392563 table.diff {
25402564 display: block;
25412565 overflow-x: auto;
25422566 }
2543- /* Stack the profile, dashboard, and issue columns on narrow screens. */
2567+ /* Stack the profile, dashboard, and issue columns on narrow screens. The
2568+ containers use align-items other than stretch when side-by-side, so reset
2569+ it here or the main column shrinks to its content and overflows. */
25442570 .profile-layout,
25452571 .dashboard,
25462572 .issue-main {
25472573 flex-direction: column;
2574+ align-items: stretch;
25482575 }
25492576 .profile-sidebar,
25502577 .dashboard-side,
2551- .issue-side {
2578+ .issue-side,
2579+ .profile-main,
2580+ .dashboard-main {
25522581 width: 100%;
2582+ min-width: 0;
25532583 }
25542584 }