case 03 · civic tech · hack for la × ladot
Five modals were doing the work of fifteen. So I built a taxonomy.
LA's Transportation Demand Management calculator is the tool real-estate developers use to figure out parking and transit requirements. It had ad-hoc modals everywhere. I audited them and shipped a system.
5 modal types · 1 system
01 The problem
The TDM tool had dialog boxes everywhere — confirmations, warnings, info popups, save prompts. Each one looked different. None of them documented why they'd been chosen. Engineering kept reinventing them.
02 What I did
Audited every modal in the product. Classified them into five types: Warning, Action, Information, Note, and Submit Confirm. Wrote when-to-use docs. Designed all variants. Got engineering to align on naming.
03 What happened
The taxonomy ships in production at LADOT's TDM calculator. New modals now start from a type, not a blank canvas. Engineers stop reinventing. The system is documented and used.
This was a Hack for LA project, partnered with the LA Department of Transportation. I came in as a volunteer UX designer — the engineering team had been moving fast and the UI was starting to fragment. Modals especially: every dialog in the tool was solving its problem by itself, with no shared rules.
I started by cataloguing every modal in the tool. Forty-some instances. I clustered them by what they were actually doing — interrupting to ask permission, warning about consequences, confirming a destructive action, providing context, saving form data — and the clusters collapsed into five types.
Then I wrote it up. When-to-use, when-not-to-use, what each type's button language sounds like, how it handles dismissal. Designed the visual variants. The biggest fight was naming: I held the line on Warning vs Note vs Information because the team kept conflating them. Once we had names, we had a shared vocabulary, and the system stuck.