Shopify Polaris
Commerce states, content, accessibility, and consequence-aware actions. All research.
Shopify Polaris: make business-object work predictable
Thorbis stays Linear-first. Polaris is useful for a different reason: Shopify has refined how operators manage large collections, bulk actions, saved views, long forms, money, and durable business objects for years. We keep that administrative grammar and refuse the Shopify visual costume.
- Collections are workspaces. Search, filters, saved views, sort, columns, selection, bulk actions, and the path into a durable record belong to the collection itself.
- Tabs slice; navigation moves. All, Open, Draft, Archived, and custom views are states of one place. The sidebar/location bar still owns application navigation.
- Selection changes the action model. Normal browsing stays quiet. Selecting rows summons a visible bulk-action bar instead of leaving bulk vocabulary on screen all the time.
- Multi-edit can be its own tool. When several records need the same fields compared or changed, a purpose-built grid can beat repeated modals. It must still have explicit validation and commit/discard state.
- Dirty is a state. Unsaved changes stay visibly unresolved until Save or Discard. Navigation cannot silently destroy work. Autosave is not a substitute for deciding what save means.
- Main defines; inspector supports. Polaris's resource-detail grammar reinforces our RecordWorkspace: principal work in the sheet, status/metadata/relationships beside it, never an equal card for every fact.
- Large forms are places. Progressive disclosure first; durable multi-section editing belongs on a route, not inside a giant modal.
- Keep Thorbis's boundaries. No Shopify green, exact Admin cards, badge soup, global tabs, generic activity feeds, or softer consumer styling. Linear remains the core shell and interaction language.
Official sources: App Design Guidelines, Index pattern, Details pattern, Forms, and Save bar.
Mobbin evidence: product index, bulk selection, bulk editor, and order detail.
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.
Immediate acknowledgment is not confirmed success
A fast animation can falsely tell a person that money moved, a message arrived, or an assignment was saved.
Distinguish initiation, pending work, confirmed outcome, failure, and uncertain outcome. Show what is known. A repeated request needs a deliberate recovery path, not a second untracked business action.
Thorbis example. Collect payment keeps its label while the request is pending. A timeout says the result is not yet known and provides a way to check it; it does not invite an unconditional second charge. Confirmation names the actual result.
Verify. Review pending, explicit rejection, timeout after submission, reconnect, and repeat activation. Confirm that copy does not claim settlement from mere request acceptance and that a recoverable draft is preserved.
Do not import. No optimistic completion for consequential work, invented delivery guarantee, or success decoration that hides uncertainty.
Open the resilience skill · Evidence: 7 Principles of Rich Web Applications; Philosophy; Web Interface Guidelines