Live dashboard
Inzicht zonder ruis
Een rustig paneel dat boven kleur zweeft. De achtergrond blijft zichtbaar, de tekst blijft leesbaar.
Bekijk details
A Industry, Logistics & Construction
Logistiek & Supply ChainTrack & traceMaakindustrie & MachinebouwConfigurator + RFQBouw & ProjectontwikkelingBouwfase-stackerJuridisch & ZakelijkSlimme intakeB Luxury, Lifestyle & Hospitality
Vastgoed & ArchitectuurLichtval-explorerSieraden & LuxuryConfiguratorAutomotive & ExoticsCar-configuratorHospitality & HorecaExperience-flowMedisch-esthetische kliniekenPatiëntreisC Tech, Finance & Future
FinTech & Private WealthVermogensprojectieCleanTech & EnergieEnergie-simulatorSaaS & Tech scale-upsMRR-simulatorCybersecurity & BeveiligingSecurity-scoreRecruitment & Executive searchTalent radarFestivals & EvenementenTimetable-builderCSS-lab · Kaarten
Een frosted glass kaart die boven langzaam drijvende kleurblobs zweeft, met een lichte rand en een glansstreep die bij hover over het glas veegt.
backdrop-filter@supports@keyframes::beforetransformLive dashboard
Een rustig paneel dat boven kleur zweeft. De achtergrond blijft zichtbaar, de tekst blijft leesbaar.
Bekijk details<div class="gk-scene">
<span class="gk-blob gk-blob--a" aria-hidden="true"></span>
<span class="gk-blob gk-blob--b" aria-hidden="true"></span>
<span class="gk-blob gk-blob--c" aria-hidden="true"></span>
<article class="gk-card">
<p class="gk-kicker">Live dashboard</p>
<h3 class="gk-title">Inzicht zonder ruis</h3>
<p class="gk-text">Een rustig paneel dat boven kleur zweeft. De achtergrond blijft zichtbaar, de tekst blijft leesbaar.</p>
<a class="gk-btn" href="#">Bekijk details</a>
</article>
</div>/* Glas-kaart — prefix .gk- */
.gk-scene {
--blob-a: #2E5BFF;
--blob-b: #9B5CFF;
--blob-c: #C6FF3D;
--speed: 14s;
position: relative;
display: grid;
place-items: center;
width: min(100%, 440px);
padding: 28px;
isolation: isolate;
}
/* kleurblobs achter het glas */
.gk-blob {
position: absolute;
z-index: -1;
border-radius: 50%;
animation: gk-drift var(--speed) ease-in-out infinite alternate;
}
.gk-blob--a {
width: 170px;
height: 170px;
top: 0;
left: 4%;
background: var(--blob-a);
}
.gk-blob--b {
width: 140px;
height: 140px;
bottom: 0;
right: 6%;
background: var(--blob-b);
animation-duration: calc(var(--speed) * 1.3);
animation-direction: alternate-reverse;
}
.gk-blob--c {
width: 80px;
height: 80px;
top: 42%;
right: 30%;
background: var(--blob-c);
animation-duration: calc(var(--speed) * .8);
}
@keyframes gk-drift {
to { transform: translate(40px, 24px) scale(1.15); }
}
/* het glaspaneel */
.gk-card {
--blur: 18px;
--radius: 20px;
--accent: #C6FF3D;
position: relative;
overflow: hidden;
width: 100%;
max-width: 340px;
padding: 24px 26px 26px;
border-radius: var(--radius);
border: 1px solid rgba(255, 255, 255, .22);
background: rgba(18, 18, 24, .35);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 20px 40px -20px rgba(0, 0, 0, .6);
color: #F9F8F6;
-webkit-backdrop-filter: blur(var(--blur)) saturate(160%);
backdrop-filter: blur(var(--blur)) saturate(160%);
}
/* fallback zonder backdrop-filter */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
.gk-card { background: rgba(18, 18, 24, .92); }
}
/* glansstreep */
.gk-card::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .28) 50%, transparent 65%);
transform: translateX(-110%);
transition: transform .8s cubic-bezier(.2, .7, .2, 1);
pointer-events: none;
}
.gk-card:hover::before,
.gk-card:focus-within::before {
transform: translateX(110%);
}
.gk-kicker {
margin: 0 0 8px;
font: 600 12px/1 ui-monospace, Menlo, Consolas, monospace;
letter-spacing: .1em;
text-transform: uppercase;
color: var(--accent);
}
.gk-title {
margin: 0 0 8px;
font: 800 24px/1.1 "Arial Black", "Helvetica Neue", Impact, system-ui, sans-serif;
}
.gk-text {
margin: 0 0 18px;
font-size: 15px;
line-height: 1.5;
color: rgba(249, 248, 246, .88);
}
.gk-btn {
display: inline-flex;
padding: 10px 18px;
border-radius: 999px;
background: var(--accent);
color: #0C0C0D;
font-weight: 700;
font-size: 14px;
text-decoration: none;
transition: transform .2s ease;
}
.gk-btn:hover {
transform: translateY(-2px);
}
.gk-btn:focus-visible {
outline: 2px solid #F9F8F6;
outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
.gk-blob { animation: none; }
.gk-card::before {
transform: none;
opacity: 0;
transition: opacity .3s ease;
}
.gk-card:hover::before,
.gk-card:focus-within::before {
transform: none;
opacity: 1;
}
.gk-btn { transition: none; }
.gk-btn:hover { transform: none; }
}Glassmorphism is de stijl waarin een paneel eruitziet als mat glas: wat erachter ligt, schemert wazig door. Deze glas-kaart zweeft boven drie kleurblobs in cobalt, sunset violet en acid lime die heel langzaam bewegen. Daardoor verandert het glas subtiel van kleur, ook als niemand de kaart aanraakt. Bij hover of focus veegt er een lichtstreep over het oppervlak, alsof je het glas kantelt in het licht.
Gebruik hem voor een feature-blok, een dashboard-teaser, een nieuwsbrief-aanmelding of een uitgelichte quote op een donkere sectie. Hij werkt het best op een achtergrond met kleur; op een egale vlakte heeft glas niets om te vervormen.
backdrop-filter: blur(var(--blur)) saturate(160%) vervaagt en verzadigt alles achter de kaart. Een halfdoorzichtige donkere tint (rgba(18, 18, 24, .35)) houdt de witte tekst leesbaar, ook als er een lichtgekleurde blob achter valt.inset-schaduw aan de bovenkant geeft het effect van een geslepen glasrand..gk-blob-elementen met border-radius: 50% en een eigen @keyframes gk-drift, elk met een andere duur en animation-direction. Zo lopen ze nooit synchroon..gk-card::before is een schuine linear-gradient die buiten de kaart wacht. Bij :hover en :focus-within schuift hij met transform: translateX() van links naar rechts; overflow: hidden houdt hem binnen de afgeronde hoeken.Op .gk-scene staan --blob-a, --blob-b en --blob-c voor de kleuren van de blobs en --speed voor hun tempo. Op de kaart zelf regel je met --blur hoe mat het glas is en met --radius de hoekafronding. --accent bepaalt de knop- en kickerkleur. Meer blur maakt het glas rustiger; minder blur laat de vormen herkenbaar doorschemeren.
backdrop-filter werkt in actuele Chrome, Edge, Firefox en Safari; voor oudere Safari staat -webkit-backdrop-filter erbij. Via @supports not krijgt een browser zonder ondersteuning een vrijwel dichte donkere kaart, zodat het contrast nooit wegvalt. De blobs zijn aria-hidden="true", de knop is een echte link met een duidelijke :focus-visible-ring. Met prefers-reduced-motion staan de blobs stil en verschijnt de glans als zachte fade in plaats van een veeg. Let op: veel grote blur-lagen op één pagina kosten rekenkracht op zwakke telefoons, dus gebruik dit effect gericht.
Zo’n glansstreep is een klassieke microinteractie. In ons artikel over microinteracties in UX lees je wanneer zulke details helpen en wanneer ze afleiden. Wil je dit soort beweging in je eigen site, bekijk dan interactief webdesign en animaties.
Meer kaarten
Groei
Vanaf €—/maand
Microinteracties, scroll-animaties en transities die je interface laten voelen in plaats van alleen werken.
Ontdek motion design →Van positionering tot beeldtaal: één systeem dat op elk scherm hetzelfde verhaal vertelt.