Places
One focused chapter from the Thorbis interface research. 9 rules. Read the research index for every chapter and focused study.
Places
- Why we like Linear’s model. Every surface earns its role. They do not park leftover UI in a convenient drawer because a page felt expensive. Search is a view so you can filter and compare. Create is a modal so you can finish and still see the board. Properties sit in a panel that is part of the layout. Peek inspects without navigating. Command is an action system, not a tiny search page. Their March 2026 refresh said it plainly: surface what is needed when it is needed, and keep the central task in focus. How we redesigned the Linear UI (opens in a new tab).
- A page is a place. A durable destination. Back and forward work. The URL is shareable. Tabs, filters, sections, or modes are allowed. You can compare, investigate, and open related work. Job, customer, invoice, estimate, equipment, report, search. If it needs more than a brief interaction, it is a route.
- A modal is a transaction. One clear task. Save, Create, Confirm, or Cancel. You can still see the page behind it. You finish quickly. No navigation deeper than one level. Collect a payment. Assign a tech. Add a note. Invite. Confirm a void. Linear moved issue create off a page and into a modal for speed and context. They still let a long create go fullscreen. We do the same.
- A popover is a choice. One value or one contextual action. A small amount of temporary information. No substantial typing. No navigation. Status, priority, technician, date, tags, payment method.
- An inspector is context. Supporting information that should remain visible beside the primary work. It participates in the layout. It does not float over it. Job properties, invoice math, the customer while you schedule, activity history. Linear’s issue properties panel is the model. Ours is first-class because a shop is form-heavier than an issue tracker.
- Peek is inspection. Temporarily look at a record without navigating into it. Hold
Spaceon a job. Split view for search results and inbox so you can walk the collection and keep your place. If the record is the day’s work, open it as a place. - Command goes. Search finds.
⌘Kis strongest when you roughly know what you want: one result, one action, then leave. The query is temporary. Search as a route is strongest when you do not know the title, you are crossing object types, you need filters and sort, you want to move through several results, or search itself becomes a workspace. Linear has treated search as a view since 2019. They did not replace quick search with the page./may still filter this view. Different kinds of finding deserve different tools. - Why a desktop drawer fails. It is not quite a page: no durable URL, no honest Back. It is not quite a modal: people keep clicking the thing behind it. It covers the content they were comparing. It becomes a nest of tabs and nested drawers. Escape is a guess. Linear forces a stronger decision. If the content needs navigation, history, or several next actions, it is a page. If it is secondary metadata, it is a panel in the layout.
- Where Thorbis is a tiny bit different. We are more form-heavy. Payments, customers, equipment, scheduling. A dispatcher often changes one record while reading another. So the inspector is resizable and stays. On a phone, a bottom sheet may hold that inspector or one secondary action — the van has different hands and gestures. We still refuse a desktop drawer used as a job page. We still let a long create expand from a modal into a place. The principle we copied is not “avoid modals and sheets.” It is: never a transient surface for a durable workflow, and never a durable page for a momentary transaction.
I built this for the dispatcher at 7 a.m., the tech in a crawlspace, and the owner closing the books. Quiet chrome. Precise work. I’m still learning. These are the notes.
Applied bookmark research
Reviewed 2026-09-06. These examples reinforce the existing owners; they do not introduce another visual style or claim the product behavior is implemented. Read the 26-source review and access limits.
Make the task easier, not the screen busier
A feature can look complete while the dispatcher still has to reconstruct context or wait for unrelated content.
Start from one person, interruption, and completed task. Keep the current job and its next action usable while optional evidence arrives. Treat the real constraint as part of the brief, not something polished away afterward.
Thorbis example. For assigning a tech, show the job, relevant availability, and the consequence of the assignment. Do not make the dispatcher traverse a marketing-style sequence or a new shell to finish a routine task.
Verify. Walk through the task with representative long and missing records. Check that the essential action remains understandable when optional content is slow or unavailable. Record the result rather than claiming a performance improvement without measurement.
Do not import. No additional shell, feature hero, framework migration, or new dependency. Keep the approved surface role.
Open the product skill · Evidence: Design Engineer Principles; How we think about design; Component Architecture for React Server Components
Preserve the place as the collection grows
Large customer, property, and inspiration collections become expensive to navigate when every inspection loses the current place.
Treat filters, selected records, scroll, and Back behavior as part of the task. Loading a child or optional panel should not reset the whole collection. A saved reference includes enough context to be useful when revisited.
Thorbis example. Open a property from a filtered customer list and return to the same filter and position. On the inspiration wall, reserve the media footprint and retain source credit even when the preview is unavailable.
Verify. Try refresh, Back and Forward, a direct record link, an empty result, a failed preview, and a long collection. Check that late data does not overwrite a draft or move the action under the pointer.
Do not import. No unbounded eager media, private information in shareable URLs, or a local-only storage promise borrowed from Copper.
Open the ecosystem skill · Evidence: 7 Principles of Rich Web Applications; Component Architecture for React Server Components; Philosophy; Copper