65

Custom Clients

98%

Launch Rate

20k

Happy Customers

150

Fonts Purchased

<script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/ScrollTrigger.min.js"></script>
<script>
window.addEventListener('load', () => {

  gsap.registerPlugin(ScrollTrigger);

  // Apply class `count-up` to the number box.
  // Type the number alone (98) OR with a static character baked in ($1,500 / 98% / 4.9★ / 250+).
  // Only the numeral animates; any prefix/suffix character stays static.
  document.querySelectorAll('.count-up').forEach(el => {

    // Drill to the deepest span so Showit's inline font styling is preserved.
    let textEl = el;
    while (textEl.firstElementChild) textEl = textEl.firstElementChild;

    const raw = textEl.textContent.trim();

    // Split into: [prefix chars] [number] [suffix chars]
    const match = raw.match(/^([^\d.,]*)([\d.,]+)([^\d.,]*)$/);
    if (!match) return; // no number found, skip

    const prefix = match[1]; // e.g. "$" (or "")
    const numStr = match[2]; // e.g. "1,500"
    const suffix = match[3]; // e.g. "%" "+" (or "")

    const target = parseFloat(numStr.replace(/,/g, ''));
    if (isNaN(target)) return;

    const decimals = (numStr.split('.')[1] || '').length; // match typed decimals
    const useCommas = numStr.includes(','); // match typed commas
    const proxy = { val: 0 };

    const render = () => {
      let n = proxy.val.toFixed(decimals);
      if (useCommas) {
        const p = n.split('.');
        p[0] = p[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
        n = p.join('.');
      }
      textEl.textContent = prefix + n + suffix; // static chars stay put
    };

    render(); // reset to starting value before it triggers

    gsap.to(proxy, {
      val: target,
      duration: 2, // ← tweak count speed here
      ease: 'power1.out',
      onUpdate: render,
      scrollTrigger: {
        trigger: el,
        start: 'top 80%',
        toggleActions: 'play none none none', // count once
      },
    });
  });

});
</script>
Paste Into Pre-Existing Site
In the left sidebar from the Site Tab, click SITE SETTINGS to open up the panel. From the popup, select Integrations. This is where you will see we've built in global settings site wide (this means you can use it on any page). Under the nested Integrations, select Site Customizations.

If you are adding to an existing website, you will need to add the custom code in order for your effects to work. To do this, go to SITE SETTINGS. Click the Integrations tab and select + Add Custom Code. In the center panel, select + ADD CODE TO... and from the dropdown, select Add HTML to the head and paste:

Preview instructions on Desktop :)

Once added, you can now add the CSS Class ".count-up" to any text element. If it is not working, be sure to check if you have a site canvas on the page or if it is selected in the Integrations tab.