CSS clamp() Calculator

Voer een grootte in voor kleine en grote schermen en krijg een vloeiende clamp()-waarde die er prachtig tussenin schaalt — voor lettergroottes, padding, marges of gaps.

Maten
Minimum
Maximum
clamp()-waarde
clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem)

Het resultaat behoudt een rem-deel in de middelste term, zodat tekst nog steeds vergroot wanneer iemand inzoomt naar 200% — een waarde die alleen op de viewport is gebaseerd, doet dat niet.

Preview

Vloeiende tekst, precies de juiste maat.

Pas de maten en schermbreedtes aan om de waarde te bepalen.

De berekening wordt volledig in je browser uitgevoerd. Niets van wat je hier invoert, wordt geüpload naar BroBroGo.

Veelgestelde vragen

Hoe berekent de calculator de clamp()-waarde?

Je geeft twee punten op: een grootte bij een smal scherm en een grootte bij een breed scherm. De calculator trekt hier een rechte lijn tussen, zodat de grootte vloeiend meeschaalt met de schermbreedte. Dit wordt verpakt in een clamp()-functie, zodat de waarde nooit onder je minimum of boven je maximum uitkomt. Tussen de twee breedtes schaalt de grootte vloeiend; daarbuiten blijft deze steken op de limiet.

Waarom is het resultaat in rem en vw in plaats van pixels?

De grenzen worden uitgedrukt in rem en het variabele middendeel behoudt een rem-component. Hierdoor groeit de tekst netjes mee wanneer een lezer inzoomt of de standaard lettergrootte van de browser aanpast — een waarde in alleen pixels of viewport-eenheden kan dat verstoren. Je voert de maten in pixels in omdat dat makkelijker denkt, en de tool rekent dit om naar rem op basis van je root-lettergrootte.

Kan ik dit ook gebruiken voor marges en tussenruimtes, en niet alleen voor lettergrootte?

Ja. Dezelfde waarde werkt voor padding, margin, gap, width of height — overal waar een lengte-eenheid wordt verwacht. Schakel de preview over naar 'Box' om te zien hoe de tussenruimte groeit in plaats van de tekst. Als je minimale en maximale grootte gelijk zijn, valt het resultaat terug op een vaste lengte, omdat er niets te schalen valt.

Ondersteunen alle browsers clamp()?

Ja — elke moderne browser ondersteunt clamp() sinds 2020, dus je kunt de waarde direct zonder fallback gebruiken. Bij een heel hoog maximum of een snelle schaling is het wel verstandig om even te controleren of de tekst bij 200% zoom nog goed meeschaalt voor gebruikers die dat nodig hebben.

De werking van CSS clamp() in responsief webdesign

De CSS-functie clamp() biedt een methode om elementen vloeiend te laten schalen tussen een gedefinieerde minimum- en maximumwaarde op basis van de schermbreedte. In plaats van te werken met rigide breakpoints die de lay-out abrupt laten verspringen, berekent de browser met clamp() een dynamische waarde die zich continu aanpast aan de viewport.

De functie accepteert drie parameters: een minimumwaarde, een centrale variabele waarde (vaak een combinatie van viewport-eenheden en relatieve eenheden) en een maximumwaarde. De browser zorgt ervoor dat de berekende waarde nooit onder het minimum zakt en nooit boven het maximum stijgt. Dit is bruikbaar voor uiteenlopende CSS-eigenschappen zoals lettergroottes, padding, marges, tussenruimtes (gaps), breedte of hoogte.

Omrekening van pixels naar rem en vw

Om een vloeiende schaling te realiseren tussen twee specifieke schermbreedtes, gebruikt de calculator lineaire interpolatie. Er wordt een rechte lijn getrokken tussen het startpunt (de minimale grootte bij de minimale schermbreedte) en het eindpunt (de maximale grootte bij de maximale schermbreedte).

Hoewel ontwerpers lay-outs vaak in pixels uitwerken, gebruikt deze calculator rem en vw (viewport width) voor de uiteindelijke CSS-uitvoer. De calculator converteert de ingevoerde pixelwaarden naar rem op basis van de opgegeven root-lettergrootte. De resulterende clamp()-waarde behoudt altijd een rem-component in het variabele middendeel. Dit zorgt ervoor dat de grenzen en de schaling gekoppeld blijven aan de lettergrootte van de gebruiker.

Toegankelijkheid en zoomgedrag

Het gebruik van de juiste eenheden in clamp() is essentieel voor de toegankelijkheid van een website. Wanneer een formule uitsluitend gebruikmaakt van viewport-eenheden (vw) om tekst te schalen, kan dit de zoomfunctionaliteit van de browser verstoren. Gebruikers die de tekst handmatig vergroten of de standaard lettergrootte van hun browser aanpassen, ervaren dan dat de tekst niet meegroeit.

Doordat deze calculator een rem-deel in de middelste term van de formule behoudt, blijft de tekst schaalbaar. Dit garandeert dat de tekst correct vergroot wanneer een bezoeker inzoomt, wat bijdraagt aan een toegankelijk ontwerp dat voldoet aan de richtlijnen voor webtoegankelijkheid.

Invoerparameters en foutafhandeling

De calculator vereist specifieke invoergegevens om de juiste formule te genereren:

  • Minimum Grootte: De gewenste afmeting in pixels op het smalle scherm.
  • Minimum Schermbreedte: De breedte van het smalle scherm in pixels.
  • Maximum Grootte: De gewenste afmeting in pixels op het brede scherm.
  • Maximum Schermbreedte: De breedte van het brede scherm in pixels.
  • Root-lettergrootte: De basiswaarde in pixels (meestal 16) die wordt gebruikt voor de conversie naar rem.

De calculator hanteert strikte regels voor deze invoervelden om foutieve CSS-code te voorkomen:

  • In elk veld moet een geldig getal worden ingevoerd. Bij ontbrekende of ongeldige invoer verschijnt de melding: "Voer in elk veld een geldig getal in.".
  • De kleine schermbreedte moet een kleiner positief getal zijn dan de grote schermbreedte. Als dit niet het geval is, toont de calculator de foutmelding: "De kleine schermbreedte moet een kleiner positief getal zijn dan de grote schermbreedte.". De resulterende clamp()-waarde wordt in dat geval weergegeven als .

Statusmeldingen en preview-modi

Tijdens het aanpassen van de waarden geeft de calculator direct feedback via statusmeldingen en een visuele preview. De status van de berekening wordt beschreven met de volgende meldingen:

  • "Pas de maten en schermbreedtes aan om de waarde te bepalen.": Dit is de standaardstatus wanneer de invoer wordt gewijzigd.
  • "Omgekeerd schalen — de grootte krimpt naarmate het scherm groter wordt.": Deze melding verschijnt wanneer de minimale grootte groter is ingesteld dan de maximale grootte.
  • "Beide maten zijn gelijk, dus dit is een vaste waarde en schaalt niet vloeiend.": Wanneer de minimum- en maximumgrootte identiek zijn, stort de formule ineen tot een vaste lengte.

De visuele preview laat zien hoe de waarde zich gedraagt bij verschillende breedtes. De gebruiker kan schakelen tussen de modi "Tekst" (met de voorbeeldtekst "Vloeiende tekst, precies de juiste maat.") en "Box" om de schaling van respectievelijk typografie of tussenruimtes te beoordelen. De actuele breedte van dit voorbeeldgebied wordt getoond als de "Preview-breedte". Afhankelijk van deze breedte toont de calculator de actuele status van de schaling:

  • "vastgezet op minimum": De preview-breedte is kleiner dan of gelijk aan de minimale schermbreedte.
  • "vastgezet op maximum": De preview-breedte is groter dan of gelijk aan de maximale schermbreedte.
  • "vloeiend schalen": De preview-breedte bevindt zich tussen de twee grenzen in, waardoor de waarde actief schaalt.

Privacy en gegevensverwerking

De verwerking van de ingevoerde gegevens vindt lokaal plaats. De berekening wordt volledig in je browser uitgevoerd. Niets van wat je hier invoert, wordt geüpload naar BroBroGo.


Veelgestelde vragen

Hoe berekent de calculator de clamp()-waarde?

Je geeft twee punten op: een grootte bij een smal scherm en een grootte bij een breed scherm. De calculator trekt hier een rechte lijn tussen, zodat de grootte vloeiend meeschaalt met de schermbreedte. Dit wordt verpakt in een clamp()-functie, zodat de waarde nooit onder je minimum of boven je maximum uitkomt. Tussen de twee breedtes schaalt de grootte vloeiend; daarbuiten blijft deze steken op de limiet.

Waarom is het resultaat in rem en vw in plaats van pixels?

De grenzen worden uitgedrukt in rem en het variabele middendeel behoudt een rem-component. Hierdoor groeit de tekst netjes mee wanneer een lezer inzoomt of de standaard lettergrootte van de browser aanpast — een waarde in alleen pixels of viewport-eenheden kan dat verstoren. Je voert de maten in pixels in omdat dat makkelijker denkt, en de tool rekent dit om naar rem op basis van je root-lettergrootte.

Kan ik dit ook gebruiken voor marges en tussenruimtes, en niet alleen voor lettergrootte?

Ja. Dezelfde waarde werkt voor padding, margin, gap, width of height — overal waar een lengte-eenheid wordt verwacht. Schakel de preview over naar 'Box' om te zien hoe de tussenruimte groeit in plaats van de tekst. Als je minimale en maximale grootte gelijk zijn, valt het resultaat terug op een vaste lengte, omdat er niets te schalen valt.

Ondersteunen alle browsers clamp()?

Ja — elke moderne browser ondersteunt clamp() sinds 2020, dus je kunt de waarde direct zonder fallback gebruiken. Bij een heel hoog maximum of een snelle schaling is het wel verstandig om even te controleren of de tekst bij 200% zoom nog goed meeschaalt voor gebruikers die dat nodig hebben.