mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
SVG import kept a <text>'s nominal font-size and left the scale of the transforms and viewBox above it in the type's transform, so the Character panel showed one size and the canvas drew another (7 pt under scale(3) drew at 21 pt). The importer now moves that scale into the type: the scale across the baseline (the mean scale for type on a path) multiplies the size, leading, baseline shift, character stroke weights and dashes and the text path, and the transform keeps only the rest (a stretch along the baseline, a skew, a rotation or a reflection). The type draws exactly as before. Paints resolve in the grown text space, non-scaling strokes and the stroke under the characters are worked out before the fold, the factor is rounded to 6 significant digits (usvg's transforms are single precision) and never pushes sizes past the Character panel's 0.1–1296 pt (the rest stays in the transform). Tests: a group's, the text's own and a viewBox scale; rotated and scaled text equal to the same text written at twice the size; stretch and skew; type on a scaled path; the size limits; gradients on scaled text; SVG export → import of scaled type (stable over two round trips). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>