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

Balk niet-opgeslagen wijzigingen New

Settings screen where every change slides in a bar "You have 2 unsaved changes" with Cancel and Save (also Ctrl/Cmd+S); changed fields get a dot. Navigating away with open changes asks for confirmation. The browser beforeunload prompt is simulated in the demo; the real line is a comment in the JS.

Bedrijfsprofiel

Je hebt 1 niet-opgeslagen wijziging

Wijzigingen niet opgeslagen

How to use it

  1. Paste the HTML where the components 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.
<!-- Balk niet-opgeslagen wijzigingen · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="oob"><div class="oob__app">
<nav class="oob__nav" aria-label="Instellingen"><a href="#" class="oob__nl" aria-current="page">Bedrijfsprofiel</a><a href="#" class="oob__nl" data-leave>Openingstijden</a><a href="#" class="oob__nl" data-leave>Facturen</a><button type="button" class="oob__sim">Tabblad sluiten (demo)</button></nav>
<form class="oob__form" novalidate>
<h3 class="oob__h">Bedrijfsprofiel</h3>
<div class="oob__grid">
<div class="oob__f"><label for="oob-naam">Bedrijfsnaam <i class="oob__dot" aria-hidden="true"></i></label><input class="oob__i" id="oob-naam" name="naam" value="Schildersbedrijf Bakker" aria-describedby="oob-naam-e"><p class="oob__e" id="oob-naam-e"></p></div>
<div class="oob__f"><label for="oob-tel">Telefoon <i class="oob__dot" aria-hidden="true"></i></label><input class="oob__i" id="oob-tel" name="tel" type="tel" value="030 123 4567"></div>
<div class="oob__f oob__f--w"><label for="oob-tijd">Openingstijden ma tot vr <i class="oob__dot" aria-hidden="true"></i></label><input class="oob__i" id="oob-tijd" name="tijd" value="08:00 tot 17:00"></div>
<label class="oob__sw oob__f--w"><input type="checkbox" role="switch" name="wa" checked><span class="oob__tr" aria-hidden="true"></span><span>Toon WhatsApp-knop op de site</span><i class="oob__dot" aria-hidden="true"></i></label>
</div>
<div class="oob__bar" role="region" aria-label="Niet-opgeslagen wijzigingen">
<p class="oob__bt"><span class="oob__bd" aria-hidden="true"></span><span class="oob__n">Je hebt 1 niet-opgeslagen wijziging</span></p>
<div class="oob__ba"><button type="button" class="oob__cancel">Annuleren</button><button type="submit" class="oob__save"><span class="oob__spin" aria-hidden="true"></span>Opslaan</button></div>
</div>
</form>
</div>
<p class="oob__toast" role="status"></p>
<div class="oob__scrim" hidden></div>
<dialog class="oob__dlg" aria-labelledby="oob-dh" aria-describedby="oob-dt"><h4 class="oob__dh" id="oob-dh">Wijzigingen niet opgeslagen</h4><p class="oob__dt" id="oob-dt"></p><div class="oob__da"><button type="button" class="oob__stay">Blijven</button><button type="button" class="oob__leave">Weggaan zonder opslaan</button></div></dialog>
</div>
</div>

More components

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 →