From ed5a0882996181ebcb983d687357e5a58f3a08ca Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Mon, 7 Sep 2026 20:48:43 +0100 Subject: [PATCH] feat(web): equal-width project cards, drop worktree counters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Project boxes now use a fixed two-column grid so every card is the same width. The worktree count line is removed — the information lives in the worktree picker that follows a project selection. Co-Authored-By: Claude Opus 4.6 --- web/src/spawnForm.ts | 5 +---- web/src/styles.css | 15 +-------------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/web/src/spawnForm.ts b/web/src/spawnForm.ts index 42690af..180bcb6 100644 --- a/web/src/spawnForm.ts +++ b/web/src/spawnForm.ts @@ -680,16 +680,13 @@ export function createSpawnForm(opts: SpawnFormOptions): SpawnFormHandle { box.type = "button"; box.className = `project-box${isStale(project, new Date()) ? " is-stale" : ""}`; box.dataset.cwd = project.path; - const trees = worktreesOf(group).length; // The parent directory only — the last segment is the name line above it. // Unabbreviated beyond `~`, since the stem is what tells two projects // sharing a basename apart (#95). const parent = abbreviateCwd(parentDir(project.path), homeDir); - const meta = trees > 0 ? `${trees} worktree${trees === 1 ? "" : "s"}` : ""; box.innerHTML = ` ${escapeHtml(project.name)} - ${escapeHtml(parent)} - ${escapeHtml(meta)}`; + ${escapeHtml(parent)}`; box.addEventListener("click", () => selectProject(group)); return box; } diff --git a/web/src/styles.css b/web/src/styles.css index 13ba302..99471d7 100644 --- a/web/src/styles.css +++ b/web/src/styles.css @@ -3749,7 +3749,7 @@ input.leaf-rename:focus { .picker.projects { display: grid; - grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); + grid-template-columns: repeat(2, 1fr); align-content: start; gap: var(--sp-2); max-height: 300px; @@ -3805,19 +3805,6 @@ input.leaf-rename:focus { overflow-wrap: anywhere; } -.project-meta { - font-family: var(--font-mono); - font-size: var(--fs-12); - color: var(--faint); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.project-meta:empty { - display: none; -} - .project-other { align-self: flex-start; padding: 4px 0;