Home Work
SaaS developmentAI developmentAPI developmentMobile app developmentGoogle Ads managementHeadless ShopifyLaravel developmentNext.js developmentReact developmentTypeScript engineeringUI/UX designSEO & AEOEcommerce development
AI solutionsB2B platformsE-commerceHospitalityLead generationLogisticsEducationProcess automationSaaS platformsStartup MVPReal estateHealthcare
LegalHealthcareReal estateFinanceHospitality
The HagueRotterdamAmsterdamUtrechtEindhovenAlmereBredaArnhemNijmegenTilburgEnschedeGroningenLeidenDelftZoetermeerDen Bosch
Studio
AboutProcessLabBlogContact

Voortgang: balk, stappen, laden, cirkel New

Four progress forms in one set: steps (2 of 4), linear bar with label and amount, an upload that ends in success or error, a ring and an indeterminate loading bar. Animates to its value when in view (IntersectionObserver + CSS transitions), with role="progressbar" and aria-valuenow. With reduced motion values are set directly and the loader stays still.

Voortgang · vier vormen
Offerte aanvragenStap 2 van 4 · Woning
  1. Gegevens
  2. Woning
  3. Planning
  4. Bevestigen
Speeltuin Kralingen0%
€ 6.840 van € 9.000 opgehaald
plattegrond.pdf · 3,2 MB0%
Uploaden
0%
Profiel compleet
Agenda ophalen

How to use it

  1. Paste the HTML where the numbers & charts should appear.
  2. Add the CSS to your stylesheet. All classes are prefixed, so nothing clashes with your own styles.
  3. Add the JavaScript and call init() with the element that contains the HTML.
<!-- Voortgang: balk, stappen, laden, cirkel · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="prs">
  <div class="prs__head"><span class="prs__eyebrow">Voortgang · vier vormen</span><span class="prs__btns"><button class="prs__btn prs__replay" type="button">Opnieuw</button><button class="prs__btn prs__fail" type="button">Toon fout</button></span></div>
  <div class="prs__grid">
    <div class="prs__col">
      <div class="prs__item">
        <div class="prs__lbl"><span>Offerte aanvragen</span><b>Stap 2 van 4 · Woning</b></div>
        <ol class="prs__steps" aria-label="Offerte aanvragen, stap 2 van 4"><li class="is-done">Gegevens</li><li class="is-cur" aria-current="step">Woning</li><li>Planning</li><li>Bevestigen</li></ol>
      </div>
      <div class="prs__item">
        <div class="prs__lbl"><span id="prs-l1">Speeltuin Kralingen</span><b class="prs__num" data-to="76">0%</b></div>
        <div class="prs__bar" role="progressbar" aria-labelledby="prs-l1" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" data-to="76"><span></span></div>
        <small class="prs__sub">€ 6.840 van € 9.000 opgehaald</small>
      </div>
      <div class="prs__item prs__up">
        <div class="prs__lbl"><span id="prs-l2">plattegrond.pdf · 3,2 MB</span><b class="prs__unum">0%</b></div>
        <div class="prs__bar prs__ubar" role="progressbar" aria-labelledby="prs-l2" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><span></span></div>
        <small class="prs__msg" aria-live="polite">Uploaden</small>
      </div>
    </div>
    <div class="prs__col prs__col--r">
      <div class="prs__ring" role="progressbar" aria-label="Profiel compleet" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" data-to="80"><svg viewBox="0 0 44 44" aria-hidden="true"><circle class="prs__rbg" cx="22" cy="22" r="19"/><circle class="prs__rfg" cx="22" cy="22" r="19"/></svg><span class="prs__rnum">0%</span></div>
      <small class="prs__cap">Profiel compleet</small>
      <div class="prs__ind" role="progressbar" aria-label="Beschikbaarheid ophalen" aria-busy="true"><span></span></div>
      <small class="prs__cap">Agenda ophalen</small>
    </div>
  </div>
</div>
</div>

More numbers & charts

Seen something you like?

Add it to your selection and send it over. We build your site around it, in your brand.

Get in touch →