CSS clamp()-kalkulator

Angi en størrelse for små og store skjermer og få en flytende clamp()-verdi som skalerer trinnløst i mellom — for skriftstørrelser, padding, marginer eller gap.

Størrelser
Minimum
Maksimum
clamp()-verdi
clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem)

Resultatet beholder en rem-del i det midterste leddet, slik at teksten fortsatt forstørres når noen zoomer til 200% — en verdi basert kun på viewport ville ikke gjort det.

Forhåndsvisning

Flytende tekst, perfekt tilpasset.

Juster størrelsene og skjermbreddene for å forme verdien.

Beregningen kjøres i sin helhet i nettleseren din. Ingenting du skriver inn her lastes opp til BroBroGo.

Ofte stilte spørsmål

Hvordan bygger kalkulatoren clamp()-verdien?

Du oppgir to punkter: en størrelse ved en liten skjermbredde og en størrelse ved en stor skjermbredde. Den tegner en rett linje mellom dem slik at størrelsen vokser trinnløst etter hvert som skjermen blir bredere, og pakker den inn i clamp() slik at den aldri faller under minimumsstørrelsen eller overstiger maksimumsstørrelsen. Mellom de to breddene skalerer størrelsen flytende; utenfor låses den til nærmeste grense.

Hvorfor er resultatet i rem og vw i stedet for piksler?

Grensene er i rem, og den dynamiske midtre delen beholder en rem-komponent, slik at teksten fortsatt vokser når en bruker zoomer inn eller øker nettleserens standard skriftstørrelse — en verdi i piksler eller kun viewport kan forhindre dette. Du skriver inn størrelser i piksler fordi det er slik de fleste tenker på dem, og verktøyet konverterer til rem basert på din rot-skriftstørrelse.

Kan jeg bruke dette til avstander, og ikke bare skriftstørrelse?

Ja. Den samme verdien fungerer for padding, margin, gap, bredde eller høyde — overalt der du kan bruke en lengde. Bytt forhåndsvisningen til «Boks» for å se avstanden vokse i stedet for tekst. Hvis minimums- og maksimumsstørrelsen er like, kollapser resultatet til en vanlig fast lengde, siden det ikke er noe å skalere.

Støtter alle nettlesere clamp()?

Ja — alle moderne nettlesere har støttet clamp() siden 2020, så du kan bruke verdien som den er uten fallback. Ved svært store maksimale verdier eller rask endringstakt, lønner det seg å ta en rask sjekk med 200% zoom for å sikre at teksten fortsatt forstørres for brukere som trenger det.

CSS clamp() og flytende responsivt design

I moderne webutvikling er det en utfordring å skape oppsett som ser bra ut på alt fra små mobilskjermer til store skrivebordsskjermer. Tradisjonelt har man løst dette med medieforespørsler (media queries) som endrer størrelser ved bestemte knekkpunkter. CSS-funksjonen clamp() tilbyr en mer flytende tilnærming. Med clamp() kan en størrelse skalere trinnløst mellom en definert minimumsverdi og en maksimumsverdi basert på skjermens bredde.

Dette verktøyet beregner den nøyaktige clamp()-verdien for deg. Du oppgir ønsket størrelse for en liten skjerm og en stor skjerm, samt bredden på disse to skjermene. Kalkulatoren genererer deretter en ferdig CSS-funksjon som sørger for at størrelsen aldri blir mindre enn minimumsstørrelsen eller større enn maksimumsstørrelsen, men skalerer flytende i intervallet mellom dem. Denne teknikken er spesielt nyttig for typografi, men fungerer like godt på andre lengdeegenskaper som padding, marginer, gap, bredde eller høyde.

Slik fungerer kalkulatoren

For å generere den flytende verdien krever kalkulatoren fem spesifikke inndata:

  • Minimum størrelse: Størrelsen i piksler som skal gjelde ved den minste skjermbredden.
  • Minimum skjermbredde: Bredden på den minste skjermen der skaleringen starter.
  • Maksimum størrelse: Størrelsen i piksler som skal gjelde ved den største skjermbredden.
  • Maksimum skjermbredde: Bredden på den største skjermen der skaleringen stopper.
  • Rot-skriftstørrelse: Verdien (i piksler) som brukes til å regne om pikselverdiene til enheten rem. Standardverdien er vanligvis 16px.

Kalkulatoren bruker lineær interpolasjon for å finne formelen som forbinder de to punktene. Resultatet presenteres som en ferdig CSS-funksjon, for eksempel clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem).

Under beregningen overvåker verktøyet inndataene og gir statusmeldinger basert på verdiene som tastes inn:

  • Juster størrelsene og skjermbreddene for å forme verdien. – Standardstatusen når verktøyet er klart.
  • Omvendt skalering — størrelsen krymper når skjermen vokser. – Vises dersom maksimumsstørrelsen er satt lavere enn minimumsstørrelsen.
  • Begge størrelser er like, så dette er en fast verdi, ikke flytende. – Vises hvis minimums- og maksimumsstørrelsen er identiske.

Regler, feilhåndtering og grenseverdier

For at kalkulatoren skal kunne generere en gyldig CSS-verdi, må visse matematiske og logiske regler overholdes:

  1. Gyldige tall: Alle inndatafelt må inneholde gyldige tall. Hvis et felt er tomt eller inneholder ugyldige tegn, vil systemet kreve korrekte data.
  2. Skjermbredder: Den minste skjermbredden må være et mindre, positivt tall enn den største skjermbredden. Dersom dette kravet ikke oppfylles, vil kalkulatoren returnere verdien og vise feilmeldingen: "Den lille skjermbredden må være et mindre positivt tall enn den store."
  3. Like størrelser: Hvis minimums- og maksimumsstørrelsen settes til nøyaktig samme verdi, kollapser formelen til en fast lengde uten flytende skalering.
  4. Enhetskonvertering: Alle pikselverdier for størrelser regnes om til rem basert på den angitte rot-skriftstørrelsen. Grenseverdiene i den ferdige clamp()-funksjonen oppgis i rem, og den dynamiske midtre delen beholder alltid en rem-komponent i tillegg til vw (viewport width).

Tilgjengelighet og bruk av rem

Når man designer for web, er tilgjengelighet (accessibility) et kritisk hensyn. En vanlig feil i flytende typografi er å basere den skalerbare midtdelen utelukkende på viewport-enheter (som vw). Hvis en skriftstørrelse kun er definert i vw, vil ikke teksten forstørres dersom en bruker zoomer inn med nettleserens zoomfunksjon, eller hvis de har endret standard skriftstørrelse i operativsystemet eller nettleseren.

Denne kalkulatoren løser problemet ved å sikre at den midtre, dynamiske delen av clamp()-funksjonen beholder en rem-komponent. Dette garanterer at teksten fortsatt vokser og tilpasser seg når en bruker zoomer inn til 200 %, noe som er avgjørende for å oppfylle etablerte retningslinjer for universell utforming.

Forhåndsvisning av skaleringen

Kalkulatoren inneholder et visuelt forhåndsvisningsområde som lar deg teste hvordan verdien oppfører seg i praksis. Du kan velge mellom to moduser for forhåndsvisning:

  • Tekst: Viser eksempelet "Flytende tekst, perfekt tilpasset." slik at du kan se hvordan skriftstørrelsen endrer seg.
  • Boks: Viser en visuell boks der du kan observere hvordan avstander (som padding eller marginer) krymper og vokser.

Når du endrer bredden på forhåndsvisningsområdet, vil verktøyet vise den gjeldende bredden og indikere nøyaktig hvilken tilstand formelen befinner seg i:

  • låst til minimum: Skjermbredden er mindre enn den angitte minimumsbredden, og størrelsen holdes fast på den laveste grensen.
  • låst til maksimum: Skjermbredden har passert den angitte maksimumsbredden, og størrelsen holdes fast på den øverste grensen.
  • skalerer flytende: Skjermbredden er mellom de to grensene, og størrelsen justeres trinnløst.

Personvern og databehandling

Når du bruker denne kalkulatoren, behandles alle data lokalt. Beregningen kjøres i sin helhet i nettleseren din. Ingenting du skriver inn her lastes opp til BroBroGo. Dette betyr at du kan arbeide med dine designparametere uten at data sendes over nettverket eller lagres på eksterne servere.


Ofte stilte spørsmål (FAQ)

Hvordan bygger kalkulatoren clamp()-verdien?

Du oppgir to punkter: en størrelse ved en liten skjermbredde og en størrelse ved en stor skjermbredde. Den tegner en rett linje mellom dem slik at størrelsen vokser trinnløst etter hvert som skjermen blir bredere, og pakker den inn i clamp() slik at den aldri faller under minimumsstørrelsen eller overstiger maksimumsstørrelsen. Mellom de to breddene skalerer størrelsen flytende; utenfor låses den til nærmeste grense.

Hvorfor er resultatet i rem og vw i stedet for piksler?

Grensene er i rem, og den dynamiske midtre delen beholder en rem-komponent, slik at teksten fortsatt vokser når en bruker zoomer inn eller øker nettleserens standard skriftstørrelse — en verdi i piksler eller kun viewport kan forhindre dette. Du skriver inn størrelser i piksler fordi det er slik de fleste tenker på dem, og verktøyet konverterer til rem basert på din rot-skriftstørrelse.

Kan jeg bruke dette til avstander, og ikke bare skriftstørrelse?

Ja. Den samme verdien fungerer for padding, margin, gap, bredde eller høyde — overalt der du kan bruke en lengde. Bytt forhåndsvisningen til «Boks» for å se avstanden vokse i stedet for tekst. Hvis minimums- og maksimumsstørrelsen er like, kollapser resultatet til en vanlig fast lengde, siden det ikke er noe å skalere.

Støtter alle nettlesere clamp()?

Ja — alle moderne nettlesere har støttet clamp() siden 2020, så du kan bruke verdien som den er uten fallback. Ved svært store maksimale verdier eller rask endringstakt, lønner det seg å ta en rask sjekk med 200% zoom for å sikre at teksten fortsatt forstørres for brukere som trenger det.