Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URLs added here will be added as <link>s in order, and before the CSS in the editor. You can use the CSS from another Pen by using its URL and the proper URL extension.

+ add another resource

JavaScript

Babel includes JSX processing.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Auto Save

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML

              
                <body>
    <section>
      <h2>Scroll Down To See Progress</h2>
      <p>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Quae aliquid
        unde fuga repellat odit modi deleniti dolorum aliquam accusamus nobis.
        Nisi, quis! Esse natus fugit dolore dicta eveniet at, consequuntur neque
        deserunt temporibus quo aspernatur facilis accusantium, possimus autem
        praesentium. Iusto porro qui eos, quas ducimus rem in recusandae
        quibusdam officia sint similique cupiditate veritatis fugiat suscipit
        minus, ut quia. Nam et quo fugit aperiam ipsam non, molestiae sapiente
        necessitatibus blanditiis aspernatur dicta consectetur, ad, odit atque
        nesciunt quae tempore tenetur quod a repudiandae facere eos. Facilis
        corporis voluptatum nisi dolore tenetur, non voluptates quidem
        laboriosam recusandae quis sequi accusamus reprehenderit laudantium
        deleniti autem vitae, commodi iusto debitis tempora cumque. Quos
        asperiores unde laborum aperiam veniam qui eaque et obcaecati error sint
        cum ipsum a, possimus ut odit, quia quibusdam, officiis aut? Nulla ut,
        debitis explicabo, reprehenderit accusamus odit quisquam dignissimos
        modi reiciendis eos eius necessitatibus et molestias cupiditate dolores,
        asperiores animi voluptatibus. Maiores facere accusantium aliquam dicta
        animi qui voluptas dolor explicabo amet nobis magni deleniti illo
        impedit fugiat molestias earum temporibus minima, tenetur minus quaerat.
        Obcaecati facere eaque dignissimos quaerat veniam vero quia quo? Illum,
        ex itaque enim maxime amet blanditiis harum nobis ab minus dolorem?
        Reiciendis, perferendis.
      </p>

      <br />
      <p>
        Lorem ipsum dolor sit amet consectetur, adipisicing elit. Consectetur
        itaque recusandae cupiditate inventore dolorum omnis architecto fuga ex
        tempore eius veritatis enim molestiae vero molestias, quibusdam
        deserunt? Ducimus dolore enim ipsum facere. Voluptate ea quisquam, omnis
        quam adipisci, id dicta sit dolore facilis, porro modi consequatur nam!
        Laborum eligendi quas inventore, expedita perferendis atque, sed
        temporibus mollitia recusandae eos distinctio quos libero quasi repellat
        delectus sequi hic quia ullam provident! Doloribus aliquam eum
        obcaecati, illo consequuntur, dolorum officia sint rem ducimus sapiente
        nobis veniam minus iste similique perspiciatis, maxime atque praesentium
        repellat non debitis? Perferendis illum quasi eaque unde molestias
        voluptate commodi reprehenderit totam voluptas architecto consectetur
        illo aspernatur iste inventore alias tempora eos, neque, eligendi odio
        modi officiis? Ea culpa sint ipsam quo quisquam ut quasi ex beatae
        aspernatur eum distinctio suscipit iste ipsa id, non earum omnis
        consequuntur nam quos. Porro error omnis quod iure ducimus beatae animi
        asperiores reprehenderit temporibus voluptate? Dolores, obcaecati. Neque
        quam vitae aliquid? Amet quos natus assumenda dolorum blanditiis?
        Assumenda eligendi excepturi error sint cupiditate temporibus iste,
        maiores recusandae reiciendis dolorem consequuntur, inventore quam
        earum, tempore praesentium eveniet culpa neque adipisci nisi. Atque,
        voluptatem praesentium vitae in velit qui molestiae eaque placeat
        perferendis.
      </p>

      <br />

      <p>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Unde, magnam
        quis illum expedita tempore consequatur similique ducimus aut voluptatum
        nemo ratione saepe eum deleniti. Quod animi cumque nemo vel adipisci
        ipsam dolorem quam totam quaerat. Iste harum cumque dolor reprehenderit
        officiis necessitatibus voluptates molestiae illum? Placeat, eos soluta
        autem vel velit nobis aspernatur cupiditate error sunt molestias iure,
        explicabo possimus numquam? Porro molestias odio, tempora, odit atque
        iure soluta aut praesentium deleniti iste consequatur quas! Similique
        qui incidunt, recusandae minima delectus tempora porro aliquam molestias
        labore ipsa in itaque ab? Quisquam doloremque tempore deserunt
        cupiditate tempora nulla incidunt culpa? Doloremque dolore odit itaque
        assumenda tenetur aliquam cumque minima. Officiis porro atque eaque
        ratione perferendis commodi dicta fuga est voluptates aut? Dignissimos
        suscipit id natus? Vero, cupiditate saepe numquam repudiandae possimus
        voluptatem nemo nam iusto voluptate! Sequi consequatur nesciunt deleniti
        sit architecto eveniet aut blanditiis, vitae alias dolor eaque! Magni
        consectetur, obcaecati molestiae nesciunt nam tempora officiis iusto
        veniam asperiores temporibus, ea molestias dignissimos quibusdam non
        eveniet illo eius repellat ex laudantium. Eaque maiores ab soluta maxime
        consectetur doloribus, veritatis saepe nesciunt ipsam eum earum
        accusamus mollitia ad a id reiciendis cumque voluptate voluptates
        placeat similique? Illo cumque alias itaque iure.
      </p>
      <br />
      <p>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Porro voluptate
        optio nam deserunt delectus quibusdam voluptatibus impedit? Dolores sint
        recusandae similique perferendis corporis earum suscipit velit
        inventore, provident consequatur veniam incidunt delectus ex nemo quae
        perspiciatis cumque! Inventore facere alias voluptate sint similique
        debitis a? Iusto nisi commodi molestias optio repellendus assumenda, et
        sapiente quaerat obcaecati deleniti cum ipsa earum laborum porro
        inventore laboriosam similique? Sint sunt esse, fugit id ex placeat,
        perferendis consequuntur corporis sapiente quas quo velit magni
        voluptatibus doloribus tenetur odio delectus? Fuga eos delectus minus
        perspiciatis earum qui harum non ex numquam? Quidem sit animi nostrum
        voluptatibus magnam incidunt exercitationem neque molestias laudantium
        velit excepturi alias voluptas, totam error. Expedita ratione odit
        placeat! Incidunt eos error soluta, quia sapiente repudiandae aut totam.
        Nulla quibusdam quis modi labore accusamus. Natus libero quidem officia
        quibusdam harum mollitia soluta blanditiis, tempora rerum deleniti ea
        dolores exercitationem dolorem. Veniam deleniti, quaerat, quasi ipsum
        dolores odio quae obcaecati similique harum corporis id debitis,
        officiis ipsa rem! Debitis delectus voluptatem aliquid qui aperiam ab
        dignissimos in inventore perspiciatis possimus fuga officia ratione, vel
        dolorum explicabo laudantium reiciendis at nihil nobis maiores alias?
        Aut ipsum soluta, molestiae nemo nam autem culpa consequuntur
        consectetur.
      </p>
      <br />
      <p>
        Lorem ipsum, dolor sit amet consectetur adipisicing elit. Necessitatibus
        repellendus autem explicabo voluptatem accusantium ut nam ipsa eos,
        porro incidunt quos qui doloremque ullam? Autem tempora eaque cupiditate
        quae! Natus tempora provident, animi dignissimos labore, facilis commodi
        autem iure culpa nesciunt laboriosam perferendis error praesentium
        quaerat eveniet nemo! Ea maiores sunt expedita tenetur ratione modi
        cumque quibusdam dolores repellat. Et perferendis error eveniet dolor.
        Nisi, velit doloribus repellat quas reprehenderit veritatis, dolore
        assumenda delectus at ex necessitatibus vel fugit. Ipsa illo recusandae
        ad ea, nam nemo vitae facere accusamus tempora, eveniet laboriosam,
        rerum neque? Doloremque corporis atque facilis animi quo quidem ipsam
        quia saepe, cupiditate soluta ipsa hic magni delectus, beatae aut
        tenetur consectetur et nisi omnis consequatur. Tenetur necessitatibus
        quae praesentium nulla provident voluptatem molestias debitis magni
        ducimus culpa accusamus perspiciatis dicta laudantium, quos libero
        mollitia sed consequuntur quis! Commodi enim sunt, assumenda repellat
        quisquam iure error quia exercitationem. Voluptatem commodi saepe
        architecto eius neque perspiciatis voluptas veritatis error numquam
        similique libero accusantium, sed quisquam ipsum corporis quod optio et
        magnam qui dignissimos vero. Placeat consectetur mollitia nam inventore
        maiores illo repellendus ducimus ab labore et unde est numquam tempora
        magni repudiandae voluptas doloremque accusantium, in voluptatem porro
        voluptatibus!
      </p>
      <br />
      <p>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Temporibus
        dolores porro laboriosam nemo suscipit et enim voluptate delectus minima
        amet quia doloribus voluptates sint minus, totam, hic mollitia sapiente
        atque doloremque. Nihil animi excepturi velit minus, voluptates eligendi
        totam deserunt optio facilis ea quibusdam, consequatur quisquam rem
        neque esse facere, deleniti molestiae sapiente? Placeat maiores, aut
        rem, alias reprehenderit temporibus similique fuga vero accusamus totam
        dolore blanditiis excepturi! Error molestias soluta laborum ab
        consectetur nisi officiis eum eligendi debitis veniam! Maiores qui natus
        iste, possimus quae magni blanditiis quis earum id eius, quia fuga,
        exercitationem praesentium provident officiis ullam sapiente? Laudantium
        quam tempora unde repellendus deleniti? Culpa ab assumenda veritatis quo
        quasi. Blanditiis beatae libero perspiciatis soluta hic maxime saepe
        nemo natus delectus unde magni omnis distinctio quasi architecto neque
        error tenetur magnam a temporibus, assumenda dolorum. Est voluptates
        aliquam atque, ex unde facere magnam perferendis, quia alias, fuga
        voluptatem! Sit quam quae deleniti ut incidunt! Sint, consequuntur, quae
        incidunt assumenda impedit soluta ad quis vel nostrum omnis facilis et,
        fuga hic dolorum cupiditate ipsum? Veniam quidem non accusantium
        explicabo debitis! Distinctio minima accusantium quod neque facilis
        tenetur quasi esse itaque ut? Distinctio cupiditate corporis voluptates
        a sequi, repudiandae accusantium.
      </p>
      <br />
      <p>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos,
        facilis ullam, accusantium quod repudiandae doloribus quos voluptatum
        dolorum quisquam quia obcaecati modi molestiae et eligendi provident
        atque temporibus. Accusamus laboriosam nam quaerat officiis ratione,
        voluptatum corporis quos incidunt sapiente cum provident excepturi ipsum
        animi iusto aperiam molestiae, nihil ipsa corrupti dolore ut aut a.
        Omnis, possimus rem. Illum pariatur nam, sit cupiditate eum autem
        quisquam excepturi inventore voluptatum, tempore nostrum dolorum veniam
        voluptate ex corporis aliquam eaque officia, ad maiores assumenda
        doloremque. Delectus magnam molestiae natus voluptatem animi id, quidem
        architecto laboriosam magni illum commodi cupiditate laudantium iste
        nobis dolor doloremque eos fugit velit at obcaecati accusamus unde.
        Repellendus quae animi deleniti iure, ad soluta eum consectetur
        consequatur temporibus. Rerum enim ullam, numquam mollitia, provident
        vero facilis, quam iusto culpa sit nulla nostrum dolores ratione
        molestiae nam. Corporis quae vel possimus praesentium illum, esse
        aperiam hic odit optio? Mollitia dolores esse expedita praesentium
        dignissimos, exercitationem suscipit reprehenderit quod quas animi dolor
        cumque, necessitatibus perspiciatis sapiente? Ipsam aspernatur animi
        rerum ipsa quam ab officiis non hic a dicta veritatis eius quidem qui
        harum voluptates, illum, tempora tenetur consequuntur totam tempore ex
        nam vel. Tempora reprehenderit asperiores perspiciatis ad, similique
        illum harum?
      </p>
      <br />
      <p>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestiae
        asperiores nemo fugiat, obcaecati, accusantium suscipit voluptate,
        labore et dolor facilis fuga delectus in! Omnis eveniet rerum optio iste
        doloremque, porro minima quisquam minus perferendis, illum nam nostrum
        aliquid? Aspernatur sit, explicabo iste dolorum maiores sapiente!
        Consectetur voluptates libero ducimus consequuntur, velit doloribus iste
        quisquam assumenda, similique, ullam dolor accusantium exercitationem.
        Officiis, qui esse. Consectetur ipsum rem a nesciunt laborum esse, eaque
        soluta! Voluptate officiis praesentium, accusantium reiciendis
        dignissimos vitae illum odio pariatur quis perferendis distinctio
        consectetur necessitatibus ea? Sint tenetur fugiat culpa laudantium odio
        amet sed doloremque, sapiente obcaecati ab deserunt dolorum ducimus
        aperiam in, ipsa aliquam commodi quasi illum corrupti earum nobis hic
        totam beatae. Facilis nulla eveniet expedita? Quo expedita totam tenetur
        ab natus voluptatem reprehenderit, nobis minima esse dignissimos error
        architecto nulla non eligendi at aut itaque, labore sit inventore hic,
        quod in. Distinctio ipsam voluptatum sunt iure reprehenderit ad est,
        doloribus harum obcaecati, nam vero mollitia laudantium debitis. Nemo
        laboriosam, excepturi quibusdam quas saepe deleniti quam porro dolor
        nihil cum! Autem quis molestias quia illum quibusdam porro excepturi
        vero dolorem nulla, maxime earum distinctio voluptatibus fugit a
        provident minima hic. Quam molestiae vitae ipsam ea necessitatibus?
      </p>
      <br />
      <p>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum
        necessitatibus sint dicta fuga laudantium doloremque quos! Veritatis
        vitae alias doloribus natus qui nulla, possimus neque velit ea. Modi
        aperiam odio quidem delectus quia? Velit architecto corporis sit
        consectetur assumenda deleniti itaque quis vitae aspernatur a, modi
        accusamus voluptate quos consequuntur autem non animi ipsam! Dolorum
        eius reiciendis fugit magni id beatae deleniti dolore repellat porro
        dolores adipisci sequi nam minus officiis odit quibusdam iure,
        repellendus culpa nesciunt tenetur modi ab? Blanditiis, nostrum expedita
        quo, porro sequi reiciendis ad earum sunt quidem reprehenderit libero
        voluptas eos iure eum quis voluptates et natus perferendis temporibus
        rerum soluta ullam veritatis commodi alias? Delectus cumque accusantium
        illum! Provident optio aspernatur, cum a officia odio hic assumenda non
        culpa beatae consequatur nam blanditiis perspiciatis ullam ipsa labore
        voluptas temporibus adipisci! Dignissimos commodi similique totam a
        dolorem impedit. Obcaecati labore earum pariatur cum fuga temporibus
        impedit omnis atque? Doloribus nemo accusamus, at, exercitationem
        corrupti molestiae dolorum sunt, quia enim vitae laboriosam placeat!
        Culpa recusandae doloribus dolores quisquam ab dolore accusamus
        voluptatum eaque. Perferendis tempora eveniet repellat corporis cum
        voluptatibus inventore magni magnam odio dicta, provident totam possimus
        facilis explicabo, facere nihil dolore nisi eligendi. Minus,
        repudiandae!
      </p>
      <br />
      <p>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Est reiciendis,
        dolores sunt veniam alias reprehenderit repellat deserunt voluptatem
        odit animi vitae quaerat, totam provident facere dolorem dignissimos qui
        laboriosam corrupti inventore aspernatur similique facilis iste
        quisquam. Totam consequatur praesentium, a consequuntur tenetur aperiam
        adipisci magnam quos similique harum quis iure, officiis labore suscipit
        perspiciatis pariatur, ullam recusandae et sint reprehenderit ex modi.
        Laudantium culpa quod neque voluptatibus? Nam asperiores neque odit
        voluptatem iusto ex nulla officia harum eveniet nihil minus, eaque
        pariatur ducimus deleniti deserunt! Culpa alias assumenda ipsum fuga at
        laborum molestias minus aspernatur porro error sequi excepturi pariatur
        perspiciatis dolores, eaque doloremque voluptate veritatis autem officia
        harum aliquam odit reprehenderit quas? Sunt voluptatum nihil nostrum cum
        officiis tenetur voluptas dolore at nesciunt odit. Unde ab corporis non
        voluptates aspernatur eligendi hic deserunt, expedita ipsum voluptate
        accusantium fugit voluptatibus natus laboriosam! Repellat quia in atque
        maiores ab vero, odio facere veniam obcaecati laudantium vitae laborum
        perspiciatis ullam unde id sapiente? Iure ea culpa cumque optio pariatur
        temporibus architecto excepturi, deserunt qui, praesentium repellendus
        tempore labore ut omnis, eligendi est consequatur. Aperiam a, animi quia
        adipisci sapiente unde vel, porro expedita error nesciunt itaque numquam
        ab, nihil tempora voluptate nemo.
      </p>
    </section>

    <div id="cursorMeter">
      <div id="percent">Page Scrolled</div>
      <div id="scrollPath">
        <div id="progressBar"></div>
      </div>
    </div>

    <script src="script.js"></script>
  </body>
              
            
!

CSS

              
                @import url('https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;600&display=swap');

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Inconsolata', monospace;
}

body {
  background: #000;
  cursor: context-menu;
}

section {
  padding: 40px;
  color: #555;
}

section h2 {
  font-size: 3.5em;
}

section p {
  font-size: 1.2em;
}

#cursorMeter {
  position: fixed;
  top: 0;
  width: 400px;
  height: 80px;
  // background: #ff0;
  pointer-events: none;
  z-index: 100000;
}

#scrollPath {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 10px;
  background: #333;
}

#progressBar {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0;
  background: linear-gradient(to left, #008aff, #00ffe7);
  animation: animate 5s linear infinite;
}

#progressBar::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to left, #008aff, #00ffe7);
  filter: blur(10px);
}

#progressBar::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to left, #008aff, #00ffe7);
  filter: blur(30px);
}

@keyframes animate {
  0%,
  100% {
    filter: hue-rotate(0deg);
  }
  50% {
    filter: hue-rotate(360deg);
  }
}

#percent {
  position: absolute;
  top: 30px;
  left: 0;
  color: #fff;
  font-size: 1.2em;
  padding: 2px 5px;
  background: #fff;
  color: #333;
}

              
            
!

JS

              
                let cursorMeter = document.getElementById('cursorMeter');
document.addEventListener('mousemove', function (e) {
  cursorMeter.style.top = e.clientY + 'px';
  cursorMeter.style.left = e.clientX + 'px';
});

let percent = document.getElementById('percent');
let progressBar = document.getElementById('progressBar');

let totalHeight = document.body.scrollHeight - window.innerHeight;

window.onscroll = function () {
  let progress = (window.pageYOffset / totalHeight) * 100;
  progressBar.style.width = progress + '%';
  percent.innerHTML = 'Page Scrolled ' + Math.round(progress) + '%';
};

              
            
!
999px

Console