Repository navigation
feat(app): the sidebar is a rail of your projects, and the app is on one layout grid - #154
Merged
Merged
Conversation
…e's worktrees beside it Each project is a tile on a narrow rail: its GitHub owner's avatar, or an identicon from its name, with a letter when projects share an owner, and a dot that is amber while an agent in it needs you and blue while one works. The pinned places, More and Settings sit on the rail; the sheet beside it has the project's header, search, and its worktree rows as the list draws them. With one project there is no rail. It is the default layout: saved prefs move to it once (version 4), except a two-column sidebar someone chose. Settings › Appearance › Sidebar picks Rail, List or Two columns; the browser specs pin the list unless they test another layout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Everything on the sheet sits on two lanes: boxes (the avatar, search, a row's highlight, the boxes' line) 12px in from either edge, and their contents (search's icon, the label, a row's glyph, the boxes' dots) where a row's padding puts its glyph. "Show N older" starts where a row's title does at any text size (it was in px, the rows in rem). The sheet's top border carries on the tab bar's bottom one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ffic lights' centre line Tokens in index.css (h-bar, h-bar-pane, px-edge, pl-lane, px-page, w-rail). The sidebar's strip in every layout, the tab bar, the Compare bar, a full-page view's header, Settings', onboarding's and zen's strips and the notification centre's header are all h-bar: 40px at the default text size and smaller, growing only past it, as the traffic lights are placed once in points. The lights move to the band's middle. A view's header is now a single band row, its title the window-title size. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… pins the top band Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ls on the column's edge A split pane's header, the Browser and Preview bars (and the agent's view, its tabs and the sandbox bar), the Console/Network drawer and its filter bar, the Files panel's header, a File tab's header and its conflict bar, the ⌘P preview's header and a file card's header are all h-bar-pane (32px), their outer controls on px-edge (12px). The Compare bar's sides move to the edge too; Review's diff header and the worktree sheet's Commits line take the edge and page tokens at their current heights. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The list and two-column sidebars use the rail sheet's lanes: rows' highlights on px-edge, their glyphs, labels and section folds on pl-lane, and every right end (rows, menus, Settings, the bell and the hide button) on px-edge. Full-page views put their content on px-page, under the header's title; centred pages keep their content width. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…edge Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nav and full-page views on the grid's gutters and lanes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Same-size bars use the tokens; the tree's indent and the zoom HUD are in rem; the Team pages start on the page gutter; the rail's letter badge is on the type scale. check-grid looks at horizontal gutters only, skips the illustrations, and takes a grid-ok comment for the few deliberate exceptions, each saying why. CI runs pnpm check:grid. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nder the tab bar Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…r of the traffic lights ⌘\ in the rail layout hides the sheet and keeps the rail, with search and the notifications from the strip, and a tile opens the sheet on its project. The folded sidebar is never narrower than the traffic lights need (w-rail-folded, 76px at the least); it was sized in rem and ran under them at small text sizes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The lights run from 14pt to 74pt; at 76px the green one met the rail's edge. 88 leaves 14 clear either side and centres them over the rail's icons. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…two tones The rail, the top band and the status bar are the frame; the sheet and the main area are one surface beside it. The sheet was a blend of the two, a third tone that matched neither. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A chevron where a row's glyph goes, and quieter, smaller words that still start on the titles' line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The sidebar becomes a rail of your projects, and the whole app goes on one layout grid so its edges and centre lines meet.
The project rail (new default sidebar)
One layout grid
Tokens in
index.css("The layout grid"):h-bar,h-bar-pane,px-edge,pl-lane,px-page,w-rail,w-rail-folded.h-bar: 40px at the default text size and smaller, growing only past it. The traffic lights move to its middle (trafficLightPosition.y18 → 22), so everything in the band is on one centre line. A full page's header is now a single band row, its title at the window-title size.h-bar-pane(they were five heights).pnpm check:grid(new, in CI and AGENTS.md) fails on a bar of its own height or a raw-pixel gutter; a deliberate exception carries agrid-ok: whycomment.Proof (mock data)
Checked natively in a dev build too: the traffic lights, bell, hide button, tab titles and + share one centre line; the sheet's top border carries on the tab bar's; the lights measure 14–74pt, which sets the folded width.
Tests
sidebar-rail(tiles, picking, ⌘K, folding, migration, lanes, top line),grid(one band height with its controls centred, in every layout and at text sizes 11/13/16),sidebar-listand a columns lanes test,page-gutters; a11y scenes for the rail and the folded rail (light and dark). Existing specs pin the list via?sidebar=listunless they test another layout.check:titles,check:type,check:grid,check:csp,check:themes, unit tests (543), build,tsc -p e2e,cargo check, docs build.🤖 Generated with Claude Code