Groei
Vanaf €—/maand
- Maatwerk webdesign
- Animaties & microinteracties
- Technische SEO-basis

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 uitgelichte pricing-kaart in carbon met een schuine Populair-ribbon, een checklist met acid vinkjes en een hover-lift met lichtgevende rand.
position: absolutetransform: rotateoverflow: hidden::beforebox-shadowGroei
Vanaf €—/maand
<article class="pk-card">
<span class="pk-ribbon">Populair</span>
<p class="pk-plan">Groei</p>
<p class="pk-price"><span class="pk-from">Vanaf</span> €—<span class="pk-per">/maand</span></p>
<ul class="pk-list">
<li>Maatwerk webdesign</li>
<li>Animaties & microinteracties</li>
<li>Technische SEO-basis</li>
</ul>
<a class="pk-btn" href="#">Plan een gesprek</a>
</article>/* Prijs-kaart — prefix .pk- */
.pk-card {
--ink: #0C0C0D;
--paper: #F9F8F6;
--accent: #C6FF3D;
--lift: 6px;
--speed: 240ms;
position: relative;
overflow: hidden;
width: min(100%, 320px);
padding: 26px 26px 24px;
border: 2px solid var(--ink);
border-radius: 14px;
background: var(--ink);
color: var(--paper);
font-family: system-ui, sans-serif;
transition:
transform var(--speed) cubic-bezier(.2, .8, .2, 1),
box-shadow var(--speed) ease;
}
/* lift + acid ring */
.pk-card:hover,
.pk-card:focus-within {
transform: translateY(calc(var(--lift) * -1));
box-shadow:
0 0 0 4px var(--accent),
0 26px 40px -20px rgba(12, 12, 13, .55);
}
/* schuine ribbon in de hoek */
.pk-ribbon {
position: absolute;
top: 22px;
right: -46px;
width: 170px;
padding: 6px 0;
background: var(--accent);
color: #0C0C0D;
text-align: center;
font: 800 12px/1 ui-monospace, Menlo, Consolas, monospace;
letter-spacing: .12em;
text-transform: uppercase;
transform: rotate(40deg);
}
.pk-plan {
margin: 0 0 6px;
font: 700 13px/1 ui-monospace, Menlo, Consolas, monospace;
letter-spacing: .1em;
text-transform: uppercase;
opacity: .75;
}
.pk-price {
margin: 0 0 18px;
font: 900 40px/1 "Arial Black", "Helvetica Neue", Impact, system-ui, sans-serif;
font-variant-numeric: tabular-nums;
}
.pk-from,
.pk-per {
font: 500 14px/1 system-ui, sans-serif;
opacity: .75;
}
.pk-list {
display: grid;
gap: 10px;
margin: 0 0 22px;
padding: 0;
list-style: none;
font-size: 15px;
}
.pk-list li {
position: relative;
padding-left: 26px;
}
/* vinkje uit twee randen */
.pk-list li::before {
content: "";
position: absolute;
left: 4px;
top: 2px;
width: 6px;
height: 12px;
border-right: 3px solid var(--accent);
border-bottom: 3px solid var(--accent);
transform: rotate(45deg);
}
.pk-btn {
display: block;
padding: 13px 16px;
border-radius: 8px;
background: var(--accent);
color: #0C0C0D;
text-align: center;
font-weight: 800;
text-decoration: none;
transition: background-color var(--speed) ease;
}
.pk-btn:hover {
background: #F9F8F6;
}
.pk-btn:focus-visible {
outline: 3px solid var(--accent);
outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
.pk-card,
.pk-btn {
transition: none;
}
.pk-card:hover,
.pk-card:focus-within {
transform: none;
}
}Op een prijspagina wil je dat één pakket opvalt. Deze prijs-kaart doet dat zonder schreeuwerige gradients: een donkere carbon kaart op een lichte achtergrond, een schuine acid ribbon met “Populair” in de hoek en een checklist met zelfgetekende vinkjes. Bij hover of focus komt de kaart een stukje omhoog en krijgt hij een acid ring, zodat duidelijk is welk pakket je bekijkt.
Zet hem tussen twee lichtere kaarten in een prijsoverzicht, of gebruik hem los als één duidelijke offerte-CTA. In de demo staat bewust “Vanaf €—”: vul je eigen bedrag in.
.pk-ribbon staat absoluut in de rechterbovenhoek, is 170px breed en draait met transform: rotate(40deg). Omdat de kaart overflow: hidden heeft, worden de uiteinden netjes afgesneden en lijkt het een lint om de hoek.list-style: none. Elk li::before is een klein vlak met alleen een rechter- en onderrand in --accent, gedraaid met rotate(45deg). Zo ontstaat een vinkje zonder icoonfont of afbeelding..pk-card:hover en .pk-card:focus-within combineren translateY() met twee schaduwen: een ring van 4px in acid en een zachte drop-shadow. Een transition op transform en box-shadow maakt het vloeiend.font-variant-numeric: tabular-nums, zodat bedragen in naast elkaar staande kaarten gelijk uitlijnen.Op .pk-card staan --ink (kaartkleur), --paper (tekst), --accent (ribbon, vinkjes, knop en ring) en --lift voor hoe hoog de kaart opkomt. --speed regelt de duur van de beweging. Voor een lichte variant draai je --ink en --paper om; de ribbon houdt dan vanzelf zijn donkere tekst op acid.
De ribbon is echte tekst en wordt dus voorgelezen; zo weet ook een screenreadergebruiker welk pakket wordt aanbevolen. De vinkjes zijn pseudo-elementen en worden niet voorgelezen; de lijst blijft een echte <ul>. De knop is een echte link met een acid :focus-visible-ring op de donkere kaart. Off-white op carbon en carbon op acid halen ruim voldoende contrast. Met prefers-reduced-motion blijft alleen de ring over, zonder lift. Werkt in alle actuele browsers.
Zet je meerdere van deze kaarten naast elkaar, dan zijn container queries handig om de layout per kaartbreedte te regelen. Lees hoe dat werkt in container queries uitgelegd. Een prijspagina die echt overtuigt, maken we graag samen met je via webdesign.
Meer kaarten
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 detailsVan positionering tot beeldtaal: één systeem dat op elk scherm hetzelfde verhaal vertelt.