O traço de um desenho SVG se desenha sozinho conforme você rola.
Anima o stroke-dashoffset de um <path> SVG do zero até o traço completo, dando a impressão de estar sendo desenhado à mão.
O atributo vai direto no <path>, não no <svg> — o comprimento do traço é medido automaticamente via getTotalLength().
<svg viewBox="0 0 120 60">
<path sw-ani="svg-draw"
d="M4 30 Q 30 4 60 30 T 116 30"
fill="none" stroke="var(--sw-pri)" stroke-width="3"/>
</svg>
<!-- o atributo vai NO <path>, nunca no <svg> -->
<!-- fino -->
<path sw-ani="svg-draw" d="…" fill="none" stroke="var(--sw-pri)" stroke-width="1"/>
<!-- grosso e com ponta arredondada -->
<path sw-ani="svg-draw" d="…" fill="none" stroke="#f43f5e"
stroke-width="8" stroke-linecap="round"/>
<!-- fill="none" é obrigatório: é o TRAÇO que anima, não o preenchimento -->
<svg viewBox="0 0 200 100">
<path sw-ani="svg-draw" d="M20 80 L 60 30" fill="none" stroke="…" stroke-width="4"/>
<path sw-ani="svg-draw" d="M60 30 L 100 70" fill="none" stroke="…" stroke-width="4"/>
</svg>
<!-- cada <path> anima o próprio traço, no seu tempo -->
<svg viewBox="0 0 240 80">
<path sw-ani="svg-draw"
d="M10 55 C 30 10, 50 10, 60 45 S 80 70, 95 40 S 120 5, 140 45"
fill="none" stroke="var(--sw-pri)" stroke-width="3" stroke-linecap="round"/>
</svg>
<!-- exporte o traço do Figma/Illustrator como <path> e cole aqui -->
Nenhum.
(sem opções)stroke-widthstrokevar(--sw-pri) e qualquer cor CSSNenhum.
Nenhum.
<path> precisa de fill="none" e um stroke visível.<rect>, <circle> ou texto não são cobertas — converta pra <path> no editor de vetor antes.