Lab 14 · Command and alerts · rebuilt on Untitled UI

One asks, one tells.

The command bar runs on all one hundred routes and is the only place a person addresses the platform in their own words. The notification centre is the only place the platform addresses them. Between them they are the whole conversation, and both had never been designed.

They share one idea, which is the same idea running through the rest of the system: show the reasoning, not just the result. The command bar echoes what it understood before it acts on it. A reminder shows the rule it fires on rather than a date somebody typed. In both cases the alternative is a box that behaves mysteriously, and mysterious is expensive when money is involved.

The screens, rebuilt

Drawn fresh from the Untitled kit and the system’s ruled tokens, not restyled from the originals.

The command bar · it shows what it understood
lhr nrt 14 sep 2 adults
Northline Travel LLCFromLHRToNRTDepart14 SepTravelers2 adultsReturn · not given

The parse printed back before a single result; the dashed token is the guess it refuses to hide.

Four kinds of question, and the empty state
bkg-7qp2
A booking reference. One answer, no ambiguity, enter opens the record.
lhr nrt 14 sep 2 adults
A live supplier search. Five tokens, one of them empty.
marchetti
Text. Six matches, grouped by Customers, Trips and Travelers.
new enquiry
A command. Runs the action rather than searching for the words.
nothing yet
Recent records and suggested actions; an empty bar is still useful.
Two lists, because they are two things
Notifications · it happened
Payment reversedBKG-7QP2K4M9 · $6,000 · the gate crossed
Ticketing limit inside 3 hoursSV 1024 · 2 seats held
Hotel confirmation landedPark Hyatt Kyoto · filed
Reminders · it will
Chase the balance3 days before the due date · computes to 29 Aug 2026
Send the travel packwhen every item is confirmed · no date exists yet

The reasoning, kept

01 / the command bar

At rest, it offers what you were doing.

Six hundred and forty pixels, centred, entering at 140ms with five pixels of rise. It carries the active entity as a chip, because a search that silently spanned two sets of books would be the worst kind of quiet error.

02 / the idea that makes it work

It shows you what it understood.

The platform's search box is asked four completely different kinds of question, and the failure mode is a person typing a route and getting a text match on a customer called Nairobi. So the bar parses first and prints the parse back as tokens before it shows a single result. If it read you wrong, you can see it read you wrong.

03 / the notification centre

Two different things that every product mixes up.

A notification says something happened and you may have missed it. A reminder says something will happen and somebody asked to be told. They have different tenses, different severities and different lifespans, and putting them in one list is why notification centres get muted.

04 / the reminders half

A reminder is a rule, not a date.

This is the part of the platform's doctrine that has no equivalent in a normal calendar. A person does not want to be told on 25 August. They want to be told three days before the hotel's free-cancel deadline, and if that deadline moves, the reminder moves with it. Some anchors have no date at all: "when the supplier confirmation arrives" fires on an event that may never happen.

The dashed token is the important one

"No return" is printed as an unfilled token rather than left silent, because the difference between a one way search and a return search is thousands of dollars and the person typing did not say which they meant. Every token the parser did not find, but could have used, is shown empty and is one keystroke from being filled. A parser that only reports its successes is a parser that hides its guesses.

Severity uses the same edge as the queue, and unread uses a ground

Nothing new was invented. Already broken is a solid leading edge, about to break is hatched, and unread is the paper ground rather than a dot or a bold weight, because a bold weight would fight the record names and a dot would be a third thing to learn. When a row is read it simply becomes card white, which is the quietest possible way for a state to leave.

There is no date field anywhere in that builder

That is the whole design. A typed date is a copy of a fact that lives somewhere else, and copies go stale silently. The builder offers the anchors the record actually has, computes the date from them, and prints the computed date underneath so nobody has to trust it blindly. The one sentence at the bottom, and it will move if the deadline does, is the entire product difference stated in nine words.

What this lab asked

  1. The parse echo. The command bar prints what it understood before it acts, including the tokens it did not find. It costs a row of chips and it is the difference between a search box people trust with a route and one they only use for names.
  2. No date field on a reminder. Anchors only, with the computed date shown underneath. This is the strongest position in the lab and the one most likely to get pushback from somebody who just wants to type a date. My answer is that a typed date is a copy that goes stale in silence, but it is your call whether a free date anchor exists as a last resort.
  3. The bell counts broken, not unread. Nineteen unread is noise; two broken is information. It means a person can leave things unread forever without the interface nagging, which is either the right respect or the wrong permission depending on how your team works.
The original document, in its own chrome and drawings, is kept unedited: open the original.
Tripbooks Design SystemBuilt on Untitled UI · Inter for language, IBM Plex Mono for every figureLight and dark from the same tokens