shots: app titles get the weights the templates use (variable axis, used range or static weights; font-weight warning), palette.bg as one colour or a CSS gradient string (validated; contrast guard in shots check), photo backgrounds (palette.image, shots.feature.background) with overlay and cover crop

This commit is contained in:
CRTkafa 2026-10-20 13:37:37 +07:00
parent 2ba8278ab7
commit 3a11682a37
21 changed files with 713 additions and 44 deletions

View file

@ -1026,3 +1026,15 @@ that fails without the fix (see CONTRIBUTING.md).
`play upload` / `play release` / `apple upload` block before any network call, naming the requirement, date and fix.
- **Guard:** the dated tables `PLAY_TARGET_SDK_TABLE` and `APPLE_MIN_SDK_TABLE` in `cli/lib/store-minimums.ts` (a new
year is one row); `tests/store-minimums.test.ts`.
## 84. Thin app-style headlines, white backgrounds from a string palette.bg
- **Symptom:** a variable Google title family (a 200..800 axis) was downloaded as its default 400 instance, so the
750 headlines rendered thin (font-synthesis is off); a custom palette with `bg: '#15171C'` or a gradient string
rendered a white background, and white `ink` headlines vanished.
- **Do:** run `storebound shots fonts` again (it fetches the weights the templates use: full axis, used range, or
static weights) and `shots render`. Use `bg` as stops, one colour or a CSS gradient string; for a photo use
`palette.image` / `shots.feature.background` with an overlay. Read the `font-weight` and `contrast` warnings of
`shots check` before uploading.
- **Guard:** `cli/shots/weights.ts` (templateWeights, fetchFaces, weightIssues), `cli/shots/palette.ts` (bgIssue in
config validation, bgCss, contrastIssues, coverCrop); report.json `weights` / `contrast`; `tests/shots-look.test.ts`,
`tests/browser/palette-bg.browser.ts`.