← ClaudeAtlas

lonja-dialogs-and-surfaceslisted

Enforces Lonja modal and transient-surface policy across CATCHLAW dialogs, sheets, snackbars and plates — earning a modal only for a decision that must resolve before the user continues, squaring LonjaPanel and LonjaPlate off as ruled inset paper with no BoxShadow, no BorderRadius, no elevation and no scrim gradient, forcing barrierDismissible false on destructive and ambiguity modals, returning typed results like AmbiguityChoice instead of a bare bool, naming the consequence in the confirm label instead of OK, restoring focus to the opener after showLonjaDialog, and rendering the AmbiguityDialog that prints both conflicting instruments and refuses to choose. Use when adding showDialog or showModalBottomSheet, building lonja_ambiguity_dialog.dart, writing a destructive confirmation, wiring a SnackBar undo window, styling a panel or plate surface, choosing a modal over a route, or reviewing any barrier or dialog result in a diff.
zakariaf/CatchLaw · ★ 0 · API & Backend · score 55
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