Golfslag
Pure CSS · elke letter een eigen vertraging

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 · Tekst-effecten
Een schuine acid marker-streep die van links over een woord tekent, plus een violet onderstreep-variant. Pure CSS met ::before en scaleX, met hover-replay.
::beforetransform: scaleXtransform-originskewXisolationWij maken websites die echt werken en merken die je niet vergeet.
<p class="hmt-text">Wij maken websites die <mark class="hmt-mark">echt werken</mark> en merken die je <mark class="hmt-mark hmt-mark--line">niet vergeet</mark>.</p>/* Marker-highlight: schuine streep die van links tekent */
.hmt-text {
--ink: #0C0C0D;
--marker: #C6FF3D;
--line: #9B5CFF;
--skew: -12deg;
--speed: .9s;
--delay: .4s;
max-width: 22ch;
margin: 0;
font-family: "Arial Black", "Helvetica Neue", Impact, system-ui, sans-serif;
font-size: clamp(28px, 5vw, 60px);
font-weight: 900;
line-height: 1.12;
letter-spacing: -.02em;
color: var(--ink);
}
.hmt-mark {
position: relative;
isolation: isolate;
padding: 0 .08em;
background: none;
color: inherit;
white-space: nowrap;
}
/* De streep zelf: achter de tekst, start op scaleX(0) */
.hmt-mark::before {
content: "";
position: absolute;
inset: .12em -.1em .02em;
z-index: -1;
border-radius: .3em .5em .2em .6em / .5em .3em .6em .3em;
background: var(--marker);
transform-origin: left center;
transform: skewX(var(--skew)) rotate(-1.5deg) scaleX(0);
animation: hmt-draw var(--speed) cubic-bezier(.7, 0, .2, 1) var(--delay) forwards;
}
/* Variant: smalle streep onderaan, tekent na de eerste */
.hmt-mark--line::before {
top: 64%;
background: var(--line);
animation-delay: calc(var(--delay) + var(--speed));
}
/* Hover: andere animatienaam = opnieuw afspelen */
.hmt-text:hover .hmt-mark::before {
animation-name: hmt-redraw;
animation-delay: 0s;
}
.hmt-text:hover .hmt-mark--line::before {
animation-delay: .25s;
}
@keyframes hmt-draw {
to { transform: skewX(var(--skew)) rotate(-1.5deg) scaleX(1); }
}
@keyframes hmt-redraw {
from { transform: skewX(var(--skew)) rotate(-1.5deg) scaleX(0); }
to { transform: skewX(var(--skew)) rotate(-1.5deg) scaleX(1); }
}
@media (forced-colors: active) {
.hmt-mark::before { display: none; }
.hmt-mark { background: Mark; color: MarkText; }
}
@media (prefers-reduced-motion: reduce) {
.hmt-mark::before,
.hmt-text:hover .hmt-mark::before {
animation: none;
transform: skewX(var(--skew)) rotate(-1.5deg);
}
}Met deze marker-highlight lijkt het alsof iemand met een markeerstift over je kop gaat. Een schuine, licht gekantelde acid-lime streep tekent van links naar rechts onder de woorden echt werken. Kort daarna volgt een smallere violette streep onder niet vergeet. De onregelmatige hoeken geven de streep een handgemaakt gevoel, zonder afbeelding of SVG.
Gebruik het om in een hero-kop, een quote of een belangrijke zin één of twee kernwoorden te laten opvallen. Het is subtieler dan een kleurwissel en trekt de blik precies naar de boodschap die telt.
<mark>. De standaard gele achtergrond halen we weg met background: none, zodat het pseudo-element de markering overneemt..hmt-mark::before staat absoluut achter de tekst met z-index: -1. Omdat de mark zelf isolation: isolate heeft, blijft de streep wel boven de achtergrond van de pagina.border-radius met acht waarden en een transform met skewX(var(--skew)) en rotate(-1.5deg) maken de streep schuin en onregelmatig.scaleX(0) met transform-origin: left center. De keyframes hmt-draw schalen hem naar scaleX(1), met forwards zodat hij blijft staan..hmt-mark--line beslaat alleen het onderste deel en krijgt calc(var(--delay) + var(--speed)) als vertraging. Zo tekent hij pas als de eerste klaar is.animation-name daarom naar hmt-redraw, met dezelfde beweging. Zo tekenen de strepen opnieuw.white-space: nowrap. Een absoluut pseudo-element op een inline-element dat over twee regels breekt, gedraagt zich namelijk onvoorspelbaar.De variabelen staan op .hmt-text:
--marker: de kleur van de hoofdstreep.--line: de kleur van de smalle variant.--skew: hoe schuin de streep staat. Op 0deg wordt hij recht.--speed en --delay: hoe snel en wanneer de streep tekent.--ink: de tekstkleur.<mark> geeft de markering ook betekenis voor hulpsoftware, niet alleen een visuele stijl. Carbon op acid lime en carbon op violet hebben voldoende contrast. In de modus voor geforceerde kleuren verdwijnt de streep en gebruikt de mark de systeemkleuren Mark en MarkText. Met prefers-reduced-motion: reduce staan de strepen direct in beeld, zonder animatie. Alles werkt in alle actuele browsers.
Een gemarkeerd kernwoord is een van de simpelste manieren om een kop sterker te maken. Meer tips lees je in ons artikel over hero-secties die converteren. Wil je typografie die zo scherp communiceert op je hele site, kijk dan bij webdesign.
Meer tekst-effecten
Pure CSS · elke letter een eigen vertraging
Ontwerp. Code. Lancering.