TikTok Tutorial #52- How to create a Text Animation in CSS and Javascript

Learn with us how to create a Text Animation in CSS and Javascript!

If you found us on TikTok on the following post, check out this article and copy-paste the full code!

Happy coding! 😻

@creative.tim How to #52 or How to bring color with CSS and JS to your website💡 #css #js #webdev #programming #coding #devtok #webdevelopment ♬ original sound - Creative Tim

Contents:
1. HTML Code
2. CSS Code
3. Javascript Code

Get your code ⬇️

1. HTML Code

<svg class="motion" viewBox="0 0 1150 280.7">
<g>
	<path d="M46,233V59"/>
	<path d="M46,59l85,115l87-115"/>
	<path d="M218,59v174"/>
</g>
<g>
	<path d="M354,233c-51,0-93-42-93-93c0-52,42-94,93-94"/>
	<path d="M354,233c52,0,93-42,93-93c0-52-41-94-93-94"/>
</g>
<g>
	<line x1="563" y1="232.5" x2="563" y2="59"/>
	<line x1="490" y1="59.1" x2="636" y2="59.1"/>
</g>
<g>
	<path d="M682,233.1v-174"/>
</g>
<g>
	<path d="M914,140c0-52-41-94-93-94c-51,0-93,42-93,94"/>
	<path d="M914,140c0,51-41,93-93,93c-51,0-93-42-93-93"/>
</g>
<g>
	<path d="M957,233V59"/>
	<path d="M957,59l147,174"/>
	<path d="M1104,233V59"/>
</g>
</svg>

2. CSS Code

body {
  overflow: hidden;
  height: 100vh;
  display: grid;
  place-items: center;
  background: #98B9F2 ;
}
svg {
  width: 90vw;
  height: auto;
  left: 5vw;
}
line,
path {
  stroke-width: 32px;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

3. Javascript Code

const tl = gsap.timeline({
  id: 'Timeline',
  repeat: -1,
  repeatDelay: 1.5
});
GSDevTools.create({
  animation: tl
});

const colors = ['#ff0080 ', '#7928ca', '#F2F2F2'];

function tween (node) {
  let path = node;
  const delay = Math.random() * 1;
  const length = path.getTotalLength();
  colors.forEach((color, index) => {
    if (index !== 0) {
      path = path.cloneNode();
      node.parentNode.appendChild(path);
    }
    path.setAttribute('stroke', color);
    tl.set(path, {
      strokeDasharray: length + 0.5,
      strokeDashoffset: length + 0.6,
      autoRound: false
    }, 0);
    tl.to(path, {
      strokeDashoffset: 0,
      autoRound: false,
      duration: 1.2,
      ease: 'power3.out'
    }, index * 0.25 + delay);
  });
}

document.querySelectorAll('.motion path, .motion line').forEach(p => tween(p));

I hope you did find this tutorial useful!

For more web development or UI/UX design tutorials, follow us on:

Other useful resources: