Desenha um traçado SVG na tela e move um objeto por uma curva — só com atributos, sem escrever a matemática da curva.
Duas coisas relacionadas: revelar um caminho SVG como se estivesse sendo desenhado (efeito de "caneta" percorrendo o traço) e mover um elemento ao longo de uma curva SVG, seguindo a curva exatamente em vez de uma linha reta.
O SWCore mede o comprimento do caminho SVG (getTotalLength()) e calcula o movimento internamente — quem usa a biblioteca não escreve a trigonometria da curva, só aponta pro <path> e pro objeto que deve segui-la. data-sw="motion-path" fica direto no objeto que se move; ele procura o <path> dentro do elemento mais próximo marcado com data-sw-path (irmão dele, no mesmo container).
<svg viewBox="0 0 200 60" width="100%" height="60">
<path d="M10,50 C60,5 140,5 190,50" fill="none" stroke="currentColor" stroke-width="3" data-sw="svg-draw"></path>
</svg>
<svg data-sw-path viewBox="0 0 200 100" width="100%" height="100">
<path d="M10,90 C60,10 140,10 190,90" fill="none" stroke="currentColor"></path>
</svg>
<div data-sw="motion-path" data-sw-play="scroll"></div>
<!-- data-sw-path fica na <svg> (ou em quem envolve o <path>); o objeto é um irmão dela -->
<svg data-sw-path viewBox="0 0 200 100" width="100%" height="100">
<path d="M10,90 C60,10 140,10 190,90" fill="none" stroke="currentColor"></path>
</svg>
<div data-sw="motion-path" data-sw-play="auto" data-sw-repeat="true"></div>
data-sw="svg-draw"<path> — anima o desenho do traçado do início ao fim, ao entrar na teladata-sw="motion-path"data-sw-path<svg>) que contém o <path> de referência, próximo do objetodata-sw-play="scroll" (padrão) | "auto"data-sw-repeat="true"data-sw-durationNenhum.
Nenhum.
Nenhum.
gsap-bundle.js (GSAP com ScrollTrigger já incluso). O JS e o CSS do Motion já vêm dentro de swcore.js/swcore.css, sem arquivo extra do SWCore. A curva precisa ser um <path> SVG válido.