lonja-dialogs-and-surfaceslisted
Install: claude install-skill zakariaf/CatchLaw
# Lonja Dialogs And Surfaces
A CATCHLAW dialog is **a slip of paper pasted square onto the page, not a card floating above it**.
This skill owns when a modal is earned at all, barrier and focus policy, destructive confirmation
copy, the typed result a modal hands back, snackbar and undo policy, and the ruled-inset treatment
of every panel, plate and sheet. It does NOT own routing, theme plumbing, semantics floors, or the
legal reasoning that decides a verdict is ambiguous in the first place.
Read the reference for the task at hand:
- `references/modal-decision-matrix.md` — modal versus route, barrier policy, focus capture and
return, destructive labels, typed results, the ambiguity case.
- `references/surfaces-and-plates.md` — panel and plate anatomy, rule weights, inset depth, sheet
geometry, snackbar slab, three-theme and glove-mode values.
Run `scripts/check_lonja_dialogs.sh` before a PR.
Routes and deep links live in `navigation-and-routing`; verdict wording lives in
`catchlaw-verdict-contract`. This skill governs everything drawn *over* a route.
## Non-negotiable rules
1. **A modal is EARNED only by a decision that must resolve.** A modal exists to block until the
user answers a question the app cannot proceed without — discard this measurement, choose between
two conflicting instruments. Anything informational, browsable, or dismissable-by-ignoring is a
route or an inline panel. A modal used as a container teaches Khalid to swipe modals away
reflex