← ClaudeAtlas

lonja-lists-and-tableslisted

Governs every CatchLaw row, ledger table and non-happy state — species row anatomy of engraved silhouette, local name, italic binomial and a compact rule line, hairline dotted rule dividers at C2C5BB instead of card gaps, elevation or zebra stripes, tabular-figure numerics end-aligned so they mirror in Arabic, the whole row as one 64dp InkWell target rising to 76dp in glove mode, ListTile and DataTable banned in favour of LonjaSpeciesRow, LonjaLogRow and LonjaLedgerTable, Dismissible guarded by confirmDismiss and an undo, and the four mandatory states every list authors — empty, loading skeleton, error and the ochre STALE bar when the bundled rule pack has expired. Use when building a species or trip list, writing a bag-limit or penalties ledger, styling a divider, wiring swipe-to-dismiss, authoring an empty or stale state, choosing between Column and a builder list, or reviewing any _row.dart or _list_screen.dart in a diff.
zakariaf/CatchLaw · ★ 0 · Code & Development · score 55
Install: claude install-skill zakariaf/CatchLaw
# Lonja Lists and Tables A CatchLaw list is a **ruled column of a printed register**, not a stack of cards: rows sit shoulder to shoulder, a hairline is the only thing between them, and the page — never the row — carries the margin. This skill owns row anatomy, the ledger table, the divider ladder, swipe actions, and the four non-happy states every list must author. It does not own how the list is *constructed*. Read the reference for the task at hand: - `references/row-and-table-anatomy.md` — species/log/settings row slots, ledger column classes, divider ladder, numeric alignment and RTL mirroring, glove and sunlight density. - `references/the-four-states.md` — empty, loading skeleton, error, stale; state precedence, ochre bar geometry, copy rules, golden coverage matrix. Run `scripts/check_lonja_lists.sh` before a PR. Lazy `.builder` construction, `Key` policy and sized image decode live in `widget-composition` and `flutter-performance`; keyset pagination lives in `persistence-drift`. This skill governs what a row and a table LOOK like, and what a list does when it has nothing to show. ## Non-negotiable rules 1. **The whole row is ONE tap target.** Wrap the entire row in a single `InkWell` sized to the full row rect at `rowMinHeight` (64dp paper, 76dp glove); a trailing chevron is inert decoration and NEVER carries its own `onTap`. **WHY:** Khalid taps with a wet neoprene finger at 05:40 — a 15dp chevron hit box means the row silently does nothing, and he taps twice m