fix(registry): halftone fidelity

Merged
KA
2mo ago
+170-128
  • Paint dot area as the cell's own tone. Coverage, source tone and depth each entered through a floor, so every logo arrived the same flat grey. dotScale is now measured against a full-coverage halftone dot — same default, different paint.
  • Read tone as contrast against the surface the artwork sits on rather than the source's own range, so mid shades keep their weight.
  • Measure the lattice floor in device pixels, not CSS pixels, so small marks keep their shape instead of collapsing to a handful of dots.
  • Resample the lattice by area when consolidating, so edges lose the uneven beat they picked up.
  • Size the playground preview bake by device pixels so the grid control reaches it; close the gap above the preset picker's first category.
  • Mirror the renderer's tone law in the launch video.
  • Tests and changesets updated; public/r regenerated.

Breaking: one major changeset — the same dotScale value paints differently.


Summary by cubic

Fixes halftone dot rendering so painted area matches each cell's own tone, and small marks keep their shape on high-DPI screens. dotScale now measures against a full-coverage halftone dot — the same default value paints differently, so this is a breaking change.

Bug Fixes

  • Tone is read as contrast against the surface the artwork sits on, not the source's own range, so mid shades keep their weight.
  • The lattice floor is measured in device pixels, so small marks don't collapse to a few dots.
  • Lattice resampling by area removes the uneven edge beat when consolidating.
  • The playground preview bake is sized by device pixels so the grid control reaches it, and the preset picker gap is closed.
  • The launch video's tone law now mirrors the renderer's.