← ClaudeAtlas

lonja-typographylisted

Enforces the Lonja type ramp and its four mandatory roles across CATCHLAW — serif for legal text, species accounts and the verdict stamp, sans for chrome and labels, mono with FontFeature.tabularFigures for every measurement, code, article number and citation, the Arabic Naskh stack at a 1.12 optical uplift, named steps verdict, display, legal, ui, eyebrow, datum, citation and articleNumber resolved only through LonjaType.of(context), tracking authored in logical pixels rather than em, a 65-character reading measure on legal prose that scales with textScaler, and a ramp that never clamps and never ships a runtime webfont. Use when adding a TextStyle, editing lib/theme/lonja_typography.dart, styling the verdict stamp or a species account, setting 38 cm or Ministerial Decision 580/2015 Art. 3, choosing between serif, sans and mono, wiring Arabic or RTL text, sizing headings, eyebrows and captions, or reviewing any text surface in a diff.
zakariaf/CatchLaw · ★ 0 · Web & Frontend · score 55
Install: claude install-skill zakariaf/CatchLaw
# Lonja Typography Type is the argument. CATCHLAW is a printed regulations booklet that happens to run on a phone, so the letterforms have to carry the authority the app is claiming: **a serif for anything that quotes the law, a mono with tabular figures for anything that can be compared, and sans only for chrome that is not part of the document.** This skill owns the ramp values, the four roles, their line-heights, tracking, reading measure and Arabic optical size. It does not own ThemeExtension plumbing, font bundling, colour values, or the never-clamp accessibility floor. Read the reference for the task at hand: - `references/type-ramp.md` — every step, size, weight, height, tracking, role, worked example. - `references/arabic-and-scripts.md` — Naskh stack, optical uplift, zero tracking, numeral faces, bidi-safe line-height, mixed-script rows. Run `scripts/check_lonja_type.sh` before a PR. ThemeExtension mechanics, `of(context)` asserts, `lerp`/`copyWith` and font bundling live in `design-system-structure`; colour and spacing values live in `lonja-design-tokens`; this skill governs the type VALUES and which role is mandatory where. ## Non-negotiable rules 1. **EVERY TextStyle in the app comes from LonjaType.of(context).** The ramp is a `ThemeExtension` declared once in `lib/theme/lonja_typography.dart`; call sites name a step (`t.legal`, `t.datum`) and never a metric. A raw `TextStyle(fontSize: 15)` in a feature widget is invisible to the night and sunligh