The generator retains each style's palette, material, radius, stroke and motion
signature. scripts/style_quality.py strengthens supporting text on its default
opaque canvas toward a 4.5:1 contrast target. This is a token-level measurement,
not certification for custom fills, translucent glass, font size or every pixel.
Inspect the final raster at the intended reading size.
layout.json.typography reports visible truncation, full source copy and a recovery
hint. data-full-text preserves provenance but does not make hidden text visible.
Use text_policy: "strict" to reject truncation. Widen the card, use an approved
short label, or split views. CJK descriptions wrap at character boundaries rather
than discarding the second line. Font width estimates remain heuristic; Noto Sans
CJK SC is included as a cross-platform fallback, not bundled or auto-installed.
Prefer the unified export-png command, 1920px by default. Its root-canvas parser
supports viewBox-only SVG, decimal/physical dimensions and nonzero SVG origins;
the JSON layout generator itself uses origin 0 0. Export rejects oversized images
and active/external SVG content. Confirm PNG dimensions and inspect actual text.
Use the public style fixtures for identity, the shared quality-baseline fixtures for comparison, and long-text fixtures/tests for readability. Adding metadata or passing XML checks alone never proves a visually successful diagram.