Changelog

Fresh off the board.

This release ships a comprehensive dark chrome theme that follows your board or account background across every surface — palette, settings sheet, dashboard, minimap, mobile toolbar, and card zoom. Handwriting fonts are replaced with a new set that stays readable on sticky notes. Avatars get a unified color system with lively, spaced hues. The card detail rail is redesigned with comments and agent status living in the rail chip, a new card focus mode, and an animated working-agent indicator. Board navigation gets smoother trackpad and pinch-zoom handling, the wordmark shuffles its cards on hover, and several chrome-band interaction bugs are fixed.

New

  • App chrome goes dark on dark boards and dark account backgroundsThe Cmd+K palette, settings sheet, dialogs, dashboard, and /people now switch to a dark theme whenever your resolved background is dark — on every page, not just boards. The server stamps data-theme="dark" on <html> before hydration so there is no light-chrome flash, and a shared applyDarkChrome helper keeps it in sync on live background changes. 3aaf607 27bfe78 27deced
  • Card focus mode expands the card to fill the viewportA new Focus button in the card detail view expands the card to 75dvw × 75dvh, giving more room to read and write. The keyboard shortcut is shared with "Fit board" and is listed in the help dialog. 8d0f2ac
  • Organize undo toast auto-dismisses after 8 secondsThe undo toast after an auto-arrange now clears itself after 8 seconds. Hovering or focusing the toast pauses the timer so it does not vanish as you reach for Undo. 991e645 46e411b

Improved

  • Handwriting fonts replaced with faces that stay readable on sticky notesThe four formal scripts (Parisienne, Cookie, Sofia, Grand Hotel) are replaced with Patrick Hand, Architects Daughter, Shantell Sans, and Caveat Brush, plus an Inter/Lora plain-text pair. Connected calligraphy collapsed across two lines and shrank the x-height; the new faces are chosen to survive a sticky note at real card sizes. Anyone still holding a dropped font is migrated to caveat automatically. 4f81480 4719f44 27eb1c2 0a8dd5d
  • Avatars use a unified, lively color system across every surfaceUser and agent avatars now derive their hue from a single shared palette with well-spaced, perceptually distinct colors and a durable ordinal so the same person always gets the same face. The agent mark on board cards, the card detail chip, comments, the header, and the dashboard all draw from the same resolved token. 788563c d034814 0277231 649dbc4
  • Appearance panel: "Preview" label removed, tile hover unifiedThe redundant "Preview" label is removed from the appearance panel's sample card. Background and font tile hover states now share the same border-ring language, with the font tile also washing in bg-accent. 001a2a8 431770a b2f8a33 9e14204
  • Comments live in the rail chip, not a pinned footerThe pinned comment teaser row above the card's action bar is gone. The rail's Comments chip now carries the full thread indicator — empty label when there are none, a glyph plus count once there is one, and a filled glyph for unread. Reading the thread is what marks it read, not merely opening the card, so the unread indicator survives long enough to act on. ba71180 9c72ebc
  • Agent status lives in the owner chip, not a separate pillThe card detail rail no longer shows a redundant status pill below the owner chip. The chip itself now carries the agent's state — an acting robot mark, a status dot, and a named state class — so the rail keeps a stable height when a job starts or stops. 75ed08f 66653b0 83d87f2 90ab66e b8e43c3
  • Faster, smoother trackpad and pinch-zoom board navigationViewport gesture updates are coalesced to one requestAnimationFrame per frame and applied directly to the compositor layer, eliminating jank on dense boards. A lost pointer capture now correctly cancels and restores a canvas pan rather than leaving the board in a broken state. 952a46b 1116bd4
  • Hovering the wordmark shuffles its sticky-note cardsThe wordmark is now an inline SVG so its individual cards are reachable from CSS. Hovering it deals the five cards to new positions with staggered timing, reading as a shuffle. The header logo's hover fade is removed — the shuffle is the affordance now. 7fe24eb
  • Board dims under the chrome bands you reach forSweeping to the top or bottom chrome band now drops the same overlay wash that Cmd+K already uses, so both interactions read as one consistent behavior rather than two separate effects. 8aa5cb3

Fixed

  • Dark chrome covers the minimap, mobile toolbar, and organize overlayThe minimap, mobile toolbar, mobile sheet menu, and organize overlay pill were still rendering as bright panels over a dark board. They now use the same design tokens as the rest of the dark theme. 693cf04
  • Sticky note and card text stays dark on dark boardsCard titles, image captions, and dashboard mini-tile card text are re-pinned to their light-mode ink values inside [data-theme="dark"], so dark-paper sticky notes keep readable dark text even when the board chrome flips. The fix covers .overdew, .stack-thumb-top, and .zoom-card. f018c0b 8cb0a4d fd22b5f
  • Dark theme contrast and polish across settings, toasts, and popoversRemaining hardcoded light styles are replaced with design tokens: settings row hover states, the Invite button, focus rings on keyboard-navigable rows, font/background badge checkmarks, the auto-arrange undo toast, the "Needs attention" popover, and destructive text in the settings sheet all now meet AA contrast in both themes. 94f0be1 5fba9f3 af27ab4
  • Dashboard board tile shows the background you actually seeThe tile previously drew from the board's raw background column, ignoring your per-board preference override. It now resolves your personal override first, matching what you see when you open the board. 79a991b
  • Chrome bands no longer hide when switching monitors or when the window loses focusA bogus mouseout fired a few pixels inside the viewport when returning from another display was incorrectly treated as a real exit, hiding the minimap the moment the pointer reached it. Only a leave past the actual viewport edge now counts as an exit. The minimap also no longer pulses its zoom pill on every board open — it pulses only on zoom changes. c0ccbda d442e73 ceddfe4 85c8bb5