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

@ -102,6 +102,19 @@ skills.
- **Safe margins:** every template keeps text and logo 7 % of the width from the sides and 5 % of the height from the
top; `shots check` measures the layout boxes recorded at render time and fails anything under 6 % / 4 %.
## Palettes, photo backgrounds and title weight
- **palette.bg** takes gradient stops (2-3 colours), one colour (`'#15171C'`, flat) or a CSS gradient string (passed
through). Anything else fails validation: "palette.bg must be a colour, a gradient or an array of 2-3 colours".
- **Photo backgrounds:** `palette.image` (+ `overlay`, default 0.45) for scenes, `shots.feature.background` (a path or
`{ image, overlay }`) for the Play feature graphic. Cropped to cover under a flat dark overlay. Play's feature
graphic can be a branded photo; the App Store has no feature graphic, but the same art fits the Header and Search
Results slots below. `shots check`: the file exists and is at least the output size.
- **Contrast guard:** `shots render` hides the title, samples the pixels behind it and records the worst ink contrast
in report.json; `shots check` warns under 3:1.
- **Title weight:** `shots fonts` fetches the weights the templates use (full `wght` axis, else the used range, else
static weights); `shots check` warns when a title was drawn at a weight no loaded face serves (font-synthesis is
off, so a 400-only face draws a 750 headline thin).
## Header and Search Results (App Store creative assets, iOS / iPadOS 27+)
Since 5 Oct 2026 the App Store version page has a "Header and Search Results" tab next to "App Previews and
Screenshots". Optional: without these assets the App Store uses in-app events, app previews and screenshots.