refactor(desktop): migrate home onto the design system
D36 of the design-system migration (Desktop stack, base feature/desktop-d35-settings-reset-flow, #3413).
What
The home page (apps/desktop/src/renderer/desktop/desktop-home.tsx) moves onto @luke/ui:
- New task (the greeting's and the first-task welcome's) is the barrel's primary
Button, keeping itsaria-keyshortcuts, its chord, and its unavailable state while signed out. It replaces the rawprimary-button. - The page titles ("Welcome back, …", "Start your first task") are
Textin the title role on anh1. The page-specific.home-titleselector is gone. - The section notes (nothing waiting, a refused Inbox read, a refused task-list read) stand in a home-owned
.home-notecontainer on the rows' inset instead of the sidebar's.sidebar-note. "Nothing needs you" is mutedText; the failures were already the barrel'sErrorState.
No caller here imported @luke/ui/compat. The section headings, rows, and column (.home-section*, .home-row*, .home-column) are shared with the person page, Issues, and Factory, so they stay until those rows (D41–D44) migrate.
I did not move the page onto CollectionPage or the welcome onto EmptyState: CollectionPage pins its header above a scrolling content column and EmptyState offers only a quiet action under a label-sized title, so either would be a layout change rather than a migration.
No behaviour changed: the ↑/↓/Return row keys, the Inbox and Recent lists, Retry, the welcome condition, and New task's command are untouched.
Visible changes
- New task: label type 13/18 weight 500 instead of 12.5px weight 600 (the contract's label); the chord keeps its muted on-accent ink, a glyph gap after the word.
- Titles: 22/30 weight 700 from the title role; the −0.015em tracking is dropped.
- "Nothing needs you": 13/20 body instead of 12.5px at 1.45.
Tests
- No new behaviour, so no tests added. One existing test located "Nothing needs you" by the
.sidebar-noteclass; it now finds the paragraph by element. pnpm check:affectedexits 0.
Evidence
Captured on Linux with headless Chrome at 1280×840, as #3413 was. A throwaway, uncommitted jsdom test rendered the real DesktopHome (the existing test's synthetic fixture), and that markup was framed in section.home with the built desktop stylesheet from each commit. The ⌘ glyph is missing from Linux's fonts.
| Light | Dark | |
|---|---|---|
| Home, before | ![]() | ![]() |
| Home, after | ![]() | ![]() |
| Welcome, before | ![]() | ![]() |
| Welcome, after | ![]() | ![]() |
Not verified on a Mac
- SF Pro rendering of the button and titles; the window's scroll and drag strip.
🤖 Generated with Claude Code







