From 44aa29fb63dd5ca13161a09f63b87575e39ddbc5 Mon Sep 17 00:00:00 2001 From: Abdul Wahab Date: Thu, 13 Aug 2026 17:29:45 +0500 Subject: [PATCH] Constrain dealt font pairs to Latin-script faces and English copy. CJK and other non-Latin families render the picker's previews and scale sheets wrong until language-aware pairs exist; the fallback deck comment matches the new visual-cues Step 6 rule. AI-assisted. Co-authored-by: Cursor --- picker/scripts/palette-picker.js | 3 +++ skill/reference/visual-cues.md | 1 + 2 files changed, 4 insertions(+) diff --git a/picker/scripts/palette-picker.js b/picker/scripts/palette-picker.js index 2361b5d6b..ae9e9292c 100644 --- a/picker/scripts/palette-picker.js +++ b/picker/scripts/palette-picker.js @@ -142,6 +142,9 @@ const INDEX = { stops: ['Selected', 'Archive', 'Studio', 'Contact'], }; +/* Deliberately Latin faces with English copy, same as the constraint on + dealt pairs in visual-cues.md Step 6. TODO: lift both together when the + picker's previews learn non-Latin scripts and per-language font subsets. */ const FALLBACK_FONTS = { version: 1, specimen: { diff --git a/skill/reference/visual-cues.md b/skill/reference/visual-cues.md index 4d61f06e0..07cb59e49 100644 --- a/skill/reference/visual-cues.md +++ b/skill/reference/visual-cues.md @@ -393,6 +393,7 @@ Compose six distinct territories, then resolve each into one heading and body pa - Apply [new-work.md](new-work.md)'s `rule:skill-typo-reflex-faces` as the canonical denylist and subject-world test. A family the user named in the interview or supplied assets is the only exception. - Follow [typeset.md](typeset.md)'s workhorse discipline. Give the heading a point of view; give the body a real text face that stays legible at 15px and provides regular and bold weights. A display face in the body slot fails the pair. Where the surface set names `operate` or `read`, that 15px floor is not the test the body face has to pass: the sizes in those two entries above are. - Verify every family exists on Google Fonts under the exact current name. Spelling is part of correctness; use `Source Sans 3`, never a retired family name. +- Every pair uses Latin-script faces, and the specimen headline and preview copy are written in English, even when the product's own language is not. Multilingual and CJK support is not built yet: a non-Latin face renders the picker's previews and scale sheets wrong, so English stands in for now. TODO: language-aware pairs that match PRODUCT.md's language and load the right Google Fonts subsets, once the picker's previews support them. - Write `why` as three to five words naming the pair's voice, not a sentence about the brand. The picker sets it in tracked caps under the two family names, so anything longer wraps and stops scanning. `Considered and editorial`, not `Source Serif 4 gives the questionnaire an editorial voice while Source Sans 3 keeps guidance easy to scan`. - Order the pairs best-first, judged on the strictest surface in the set. `pairs[0]` is the recommendation and reaches the picker pre-selected.