Every dialog in the app comes from one primitive, so they all share the same faults and can all be fixed at once. Three redesigns on the app's tokens, each shown on the two pop-ups Michael sent: a booked job's details, and reviewing the applicants on a post.
Saturday, September 19, 2026Demo data, Dana WhitfieldSixteen dialogs share the primitive
Why they blend in
The dialog primitive paints its panel in the page's own paper colour, with 24px of padding on every side, a single hairline border and a 95 percent zoom-in. The overlay behind it is a mid grey. So the pop-up is a paper rectangle on a greyed paper page, with nothing that says "this is on top". Inside, everything is at one weight: the facts strip, the pictures, the description, the vendor block and the buttons all sit in the same 24px gutter with the same hairlines between them.
The buttons are the other problem. Job details has seven actions on two rows, one of them amber, and Close is a button among them. Review applicants has Reject and Book on every row, so with three applicants there are six buttons and no sense of which row is the one to read first. Neither dialog has a footer that stays put, so on a phone the actions are wherever the scroll ends.
Three things every direction fixes, before they differ:
The surface is the card white, not the paper. The page is paper and the cards on it are white, so a white panel on a darkened page reads as lifted. The dark theme does the same with the card tone on the void.
A header, a body and a footer that stays. The title and status at the top, the actions at the bottom, and the body scrolls between them. On a phone the footer is pinned above the thumb.
One amber, and Close is not a button. Each pop-up has one primary action. Close is the X in the corner, the overlay, and Escape. Everything else is an outline or a text button.
Tour Dash/Pop-ups/Directions, Sept 2026
Current · as they ship
Michael's screenshots from the demo, September 19
Job details / CurrentDesktop · Light
123
Review applicants / CurrentDesktop · Light
145
1Paper on paper. The panel is the page colour, so the only thing lifting it is a grey overlay and a hairline.
2Empty room. One picture and a long description sit in a wide panel at the same weight as the facts. Nothing is more important than anything else.
3Seven buttons. Close, Directions, Zillow, Call vendor, Text, and two calendar links, in two rows with no order to them.
4Six buttons for three people. Reject and Book on every row, at the same weight, so the eye has nowhere to land.
5No floor. The list ends where it ends. On a phone the last Book is below the fold and there is no pinned footer.
Direction A · The Sheet
A panel from the right edge, the page stays readable beside it
Job details / A900 · Light
Deep cleanBooked
Pre-photo clean — Chapel Hill Road
45 Chapel Hill Road, Short Hills
$340Pay
Sun, Sep 20 · 8:00 amWhen
240 minDuration
Rosa DelacruzVendor
Vendor
Rosa Delacruz
Brightline Detail · (973) 555-0166
Description
Sellers moved out Sunday and the photographer is booked for Thursday morning. Four bed, three bath, plus the finished basement. Interior only, the garage can stay as it is.
Pictures · 1
Add to calendar
GoogleApple or Outlook
DirectionsZillowCall Rosa
123
Review applicants / A900 · Light
Home showings3 waiting on you
Need coverage — Chapel Hill Road, 2 showings
45 Chapel Hill Road, Short Hills, NJ
$95Posted at
Mon, Sep 21 · 11:00 amWhen
60 minDuration
3Applied
Erik Lindstrom
Rahway River Homes · 4.6 · 18 reviews · yesterday
“I'm two blocks away that morning and can cover both showings back to back.”
$95at your price
Nia Caldwell
South Mountain Residential · 4.9 · 52 reviews · today
“Can do — I'd need the second showing pushed to 11:45 if that's flexible.”
“Available Thursday. I've shown in this building before, front desk knows me.”
$110$15 above
Pick one to book. The rest hear back automatically.Reject allBook Erik · $95
45
1A sheet, not a modal. It slides in from the right and takes 440px; the dashboard stays readable under a light dim. You can glance at the week while you read the job.
2The vendor is a row with two icon buttons. Call and Text sit on Rosa's line, where her number is, instead of in the footer with everything else.
3One amber, pinned. The footer stays at the bottom of the sheet. Directions and Zillow are outline, Call Rosa is the primary, Close is the X.
4Rows are for reading. No buttons on the applicant rows. Tap a row to select; the sorted order puts the person at your price with the best fit first.
5Book happens once. The footer names who you are booking and for how much. The line beside it says what happens to the others, so nobody rejects by hand.
Direction B · The Card
Still centred, with an ink header and a real footer
Job details / B900 · Light
Deep cleanBooked
Pre-photo clean — Chapel Hill Road
45 Chapel Hill Road, Short Hills
$340Pay
Sun, Sep 208:00 am · 240 min
Rosa DelacruzVendor
ConfirmedPaid on completion
Description
Sellers moved out Sunday and the photographer is booked for Thursday morning. Four bed, three bath, plus the finished basement. Interior only, the garage can stay as it is.
Vendor
Rosa Delacruz
(973) 555-0166 rosa@brightlinedetail.example
Pictures · 1
TextCall Rosa
123
Review applicants / B900 · Light
Home showings3 waiting on you
Need coverage — Chapel Hill Road, 2 showings
Mon, Sep 21 · 11:00 am · 60 min · posted at $95
Erik Lindstrom
Rahway River Homes · 4.6 · 18 reviews · yesterday
“I'm two blocks away that morning and can cover both showings back to back.”
$95at your price
RejectBook
Nia Caldwell
South Mountain Residential · 4.9 · 52 reviews · today
“Can do — I'd need the second showing pushed to 11:45 if that's flexible.”
“Available Thursday. I've shown in this building before, front desk knows me.”
$110$15 above
RejectBook
Booking one tells the others.Message all three
145
1An ink header. The same reverse the rail labels got this morning, carrying the type, the status, the title and the address. The pop-up is unmistakably on top of the page.
2Facts as cells. Four cells with hairlines between them, straight under the header, so pay, when, who and state read as one line.
3Secondary actions become icons. Calendar, directions and Zillow are icon buttons on the left of the footer; Text and Call Rosa are on the right, and only Call is amber.
4Rows keep their buttons, but ranked. The best-fit row's Book is amber, the others are outline. Reject is a text button. The eye lands on one Book.
5A footer even for a list. The floor holds one line of what happens next and a way to reach everyone at once.
Direction C · The Desk
Two panes: the facts and actions on the left stay put, the content on the right scrolls
Job details / C900 · Light
Deep cleanBooked
$340paid to Rosa on completion
When
Sun, Sep 20 · 8:00 am
For
240 min
Where
45 Chapel Hill Road
Vendor
Rosa Delacruz
Call RosaText RosaDirectionsAdd to calendar
Pre-photo clean — Chapel Hill Road
45 Chapel Hill Road, Short Hills · Zillow
Description
Sellers moved out Sunday and the photographer is booked for Thursday morning. Four bed, three bath, plus the finished basement. Interior only, the garage can stay as it is.
“Available Thursday. I've shown in this building before, front desk knows me.”
$110$15 above
Not the right fit? Reject all three and keep the post open.
145
1Money leads the left pane. The pay is the biggest thing in the pop-up, with a line under it saying who it goes to or where it came from. Then the when, for, where and who as a list.
2Actions are a stack, in order. Call first, amber; then Text, Directions, Calendar as outline buttons. The stack never scrolls away because the left pane is fixed.
3The right pane is for reading. Description, pictures, the vendor's details and a timeline. The dangerous action, cancelling, is a text link at the very bottom, away from the stack.
4Pick, then book. Rows have no buttons. The selected row gets the amber rule the app already uses for "active", and the left pane restates who is chosen so the amber button can name them.
5One question before booking. Asking the selected person something is the second button, because half the time the reason to hesitate is a detail like Nia's 11:45.
Side by side
Current
A · The Sheet
B · The Card
C · The Desk
Surface
Paper panel on greyed paper
White sheet from the right, light dim
White card, ink header, mid dim
White two-pane, paper left pane, heavy dim
Context
Hidden
Dashboard stays readable
Hidden
Hidden
Actions
Seven in two rows
Pinned footer, one amber
Icons left, Text and Call right, one amber
Vertical stack, one amber, cancel as a link
Applicants
Reject and Book on every row
Select a row, book from the footer
Buttons on rows, only the best fit amber
Select a row, left pane names who you book
Phone
Centred, scrolls, footer floats away
Becomes a bottom sheet, footer pinned
Full screen, header and footer pinned
Left pane becomes a pinned top block, stack moves to a footer
Fits the other 14
All of them; forms and confirms as narrow sheets
All of them; confirms as a short card without cells
Details and lists well; forms and confirms want B
Cost
One primitive swap plus a footer slot in each dialog
Same, plus a header band component
A new two-pane layout for four dialogs, B for the rest
Where I would land
B · The CardRecommended for all sixteen
It fixes the blend with the ink header, gives every dialog the same header, body and footer, and fits the confirm and form dialogs without bending. It also rhymes with the rail labels shipped this morning, so the app has one way of saying "this is the label".
A · The SheetIf context matters more
The right pick if Michael wants the week visible while reading a job. It is the same amount of work as B and the phone story is the cleanest of the three. Forms feel slightly odd in a sheet.
C · The DeskOnly for details and applicants
The best reading experience for the two dialogs Michael sent, but it does not generalise. Worth doing as the details and applicants layout inside B's shell if those two matter most.
What ships regardless
The primitive changes once. Card surface, a 12px radius, a 40 percent ink overlay, and a header, body and footer slot. A fade and an 8px rise in, not a zoom; the reduced-motion setting gets the fade only.
Close is the X, Escape and the overlay. No Close button in any footer.
One amber per dialog, and it names its object: Call Rosa, Book Erik, not Call vendor, Book.
On the phone every dialog is a bottom sheet with the footer pinned above the home bar.
Sentence case, Inter, the locked title scale. Dialog titles are 17px semibold, section labels 11px semibold muted.