Een merk dat niet fluistert
Van positionering tot beeldtaal: één systeem dat op elk scherm hetzelfde verhaal vertelt.

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 kaart met dikke rand, harde offset-schaduw, nummerlabel en tags. Bij hover schuift hij diagonaal omhoog en groeit de schaduw mee.
box-shadowtransformcalc()transition::afterVan positionering tot beeldtaal: één systeem dat op elk scherm hetzelfde verhaal vertelt.
<article class="bkr-card">
<span class="bkr-num" aria-hidden="true">01</span>
<div class="bkr-tags">
<span class="bkr-tag">Strategie</span>
<span class="bkr-tag">Branding</span>
</div>
<h3 class="bkr-title"><a class="bkr-link" href="#">Een merk dat niet fluistert</a></h3>
<p class="bkr-text">Van positionering tot beeldtaal: één systeem dat op elk scherm hetzelfde verhaal vertelt.</p>
<span class="bkr-cta" aria-hidden="true">Lees case <span class="bkr-arrow">→</span></span>
</article>/* Brutalist kaart — prefix .bkr- */
.bkr-card {
--ink: #0C0C0D;
--surface: #FFFFFF;
--accent: #C6FF3D;
--focus: #2E5BFF;
--shift: 6px;
--speed: 220ms;
position: relative;
width: min(100%, 340px);
padding: 22px 24px 24px;
background: var(--surface);
color: var(--ink);
border: 3px solid var(--ink);
/* harde schaduw zonder blur */
box-shadow: var(--shift) var(--shift) 0 var(--ink);
font-family: system-ui, sans-serif;
transition:
transform var(--speed) cubic-bezier(.2, .8, .2, 1),
box-shadow var(--speed) cubic-bezier(.2, .8, .2, 1);
}
/* kaart rijst op, schaduw groeit mee */
.bkr-card:hover,
.bkr-card:focus-within {
transform: translate(-4px, -4px);
box-shadow: calc(var(--shift) + 6px) calc(var(--shift) + 6px) 0 var(--ink);
}
/* vastgeniet nummerlabel */
.bkr-num {
position: absolute;
top: -3px;
right: -3px;
padding: 6px 10px;
background: var(--accent);
border: 3px solid var(--ink);
font: 700 14px/1 ui-monospace, Menlo, Consolas, monospace;
}
.bkr-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-bottom: 14px;
}
.bkr-tag {
padding: 3px 8px;
border: 2px solid var(--ink);
font: 700 11px/1.2 ui-monospace, Menlo, Consolas, monospace;
letter-spacing: .06em;
text-transform: uppercase;
}
.bkr-title {
margin: 0 0 8px;
font-family: "Arial Black", "Helvetica Neue", Impact, system-ui, sans-serif;
font-size: 22px;
line-height: 1.05;
text-transform: uppercase;
}
.bkr-link {
color: inherit;
text-decoration: none;
}
/* hele kaart klikbaar */
.bkr-link::after {
content: "";
position: absolute;
inset: 0;
}
.bkr-link:focus-visible {
outline: none;
}
.bkr-link:focus-visible::after {
outline: 3px solid var(--focus);
outline-offset: 6px;
}
.bkr-text {
margin: 0 0 16px;
font-size: 15px;
line-height: 1.5;
color: #2A2A2D;
}
/* marker-CTA die volloopt */
.bkr-cta {
display: inline-flex;
gap: 6px;
padding: 2px 4px;
background: linear-gradient(var(--accent), var(--accent)) 0 100% / 100% 35% no-repeat;
font: 700 13px/1.4 ui-monospace, Menlo, Consolas, monospace;
text-transform: uppercase;
transition: background-size var(--speed) ease;
}
.bkr-arrow {
transition: transform var(--speed) ease;
}
.bkr-card:hover .bkr-cta,
.bkr-card:focus-within .bkr-cta {
background-size: 100% 100%;
}
.bkr-card:hover .bkr-arrow,
.bkr-card:focus-within .bkr-arrow {
transform: translateX(4px);
}
@media (prefers-reduced-motion: reduce) {
.bkr-card,
.bkr-cta,
.bkr-arrow {
transition: none;
}
.bkr-card:hover,
.bkr-card:focus-within {
transform: none;
}
.bkr-card:hover .bkr-arrow,
.bkr-card:focus-within .bkr-arrow {
transform: none;
}
}Deze brutalist kaart is een contentblok dat niet probeert te verdwijnen in de achtergrond. Een rand van 3px, een harde schaduw zonder blur, een nummer in een acid-label en een rij tags in monospace: alles is zichtbaar opgebouwd uit rechte lijnen en vlakke kleur. Bij hover of toetsenbordfocus schuift de kaart een paar pixels diagonaal omhoog terwijl de schaduw dieper wordt, waardoor hij letterlijk van de pagina loskomt.
Je gebruikt hem voor cases, diensten, blogoverzichten of een featured item in een raster. Omdat de hele kaart klikbaar is via één echte link, werkt hij prettig in grids met drie of vier kolommen.
box-shadow: var(--shift) var(--shift) 0 var(--ink) heeft geen blur, dus je krijgt een massief blok achter de kaart. Bij :hover en :focus-within tellen we er met calc() 6px bij op en verschuift transform: translate(-4px, -4px) de kaart zelf. Samen lijkt het alsof de kaart oprijst.::after met position: absolute; inset: 0. Zo is het hele vlak aanklikbaar, maar leest een screenreader maar één linktekst..bkr-num staat absoluut op de rechterbovenhoek en overlapt de rand met een negatieve offset, zodat het lijkt vastgeniet.linear-gradient als achtergrond van 35% hoog. Bij hover groeit background-size naar 100% en schuift de pijl op.Op .bkr-card staan de variabelen. Met --ink wijzig je rand, schaduw en tekst, met --surface de kaartkleur en met --accent het nummerlabel en de marker. --shift bepaalt hoe diep de ruststand-schaduw is en --speed de duur van de beweging. Wil je meer drama, zet dan --shift op 10px en maak de rand 4px.
De kaart is een <article> met een echte kop en een echte <a href>. Het nummer is decoratief en heeft aria-hidden="true", net als de CTA-tekst, omdat de titel al de link is. De focusring staat via :focus-visible op het hele kaartvlak in cobalt. Met prefers-reduced-motion: reduce blijft de kaart op zijn plek en verandert alleen de schaduw. Alles werkt in alle actuele browsers; er zit niets experimenteels in.
Benieuwd waarom deze rauwe stijl zo goed werkt? Lees ons artikel over brutalistisch webdesign. Wil je zo’n eigenwijze uitstraling voor je hele site, kijk dan wat we doen in webdesign.
Meer kaarten
Groei
Vanaf €—/maand
Microinteracties, scroll-animaties en transities die je interface laten voelen in plaats van alleen werken.
Ontdek motion design →Live dashboard
Een rustig paneel dat boven kleur zweeft. De achtergrond blijft zichtbaar, de tekst blijft leesbaar.
Bekijk details