About
Careers
FAQs
Diplomas & Certificates
Awards
Gallery
Brand Design
Product Designs
WordPress Website
SEO
Hosting & Security
Website Care & Rescue
Launch
Scale
Transform
Case Studies
Portfolio
Client Stories
Curated Portfolio
Our Process
Insights
Free tool
This free font clamp calculator gives you two formulas per token, not one: the font size and the line height that goes with it, linked by a ratio you set yourself. Line height is not a single number for a whole scale. A heading wants tighter leading than body copy, and the two have to scale at different rates or your headings crowd while your paragraphs drift apart.
Every size grows smoothly between a small screen and a large one instead of jumping at a breakpoint. Start with the Clamp calculator at the top if you only want one value: two sizes in, two formulas out, copy and go. Use the table below to build a whole named scale and export it as CSS custom properties.
Everything runs in your browser. Your scale is remembered in your own browser storage only, nothing is uploaded, and there is no sign-up.
Type two font sizes. Copy the CSS.
The two widths the type scales between. Below the minimum and above the maximum the size is clamped flat.
These are the presets we use on client sites. Start from one, then change anything: enter a ratio to derive both line heights from the font sizes, or type the line heights directly.
| Label | Min font | Max font | × Ratio | Min LH | Max LH | Font clamp | Line-height clamp |
|---|
Each line is rendered at its own clamp() value, so resizing this page moves them exactly as they will move on yours.
Paste this into your stylesheet, then reference the variables instead of hard-coding sizes.
One field if you want one value, five steps if you want a whole scale. Nothing to install either way.
--fs-6xl down to --fs-xs, with a 1.4 line-height ratio on every body size. Headings only gives you 7. All three are starting points, not rules.fluid-type-scale.css. You get a --fs- variable and a matching --lh- variable for every token.Built for our own work, free for yours. No sign-up on any of them.
Anywhere the same text has to work on a phone and on a wide monitor without someone maintaining a separate size for each.
Ship one set of type tokens that every page inherits, instead of a font-size declared again in each component.
Drop the variables into a kit or a child theme and reference them from a widget, so a scale change is one edit.
Turn the two artboard widths a designer worked at into the sizes in between, which is the part the file does not tell you.
Headlines that fill a desktop hero and still fit a phone, without a stack of breakpoint overrides.
Hold body text and line height in proportion across widths, which is what keeps line length readable.
Small text is where fluid sizing goes wrong fastest. Clamping the floor stops labels shrinking past legibility.
What clamp() is doing, how to choose your numbers, and what happens to your work.
It takes three values: a floor, a preferred value that scales with the viewport, and a ceiling. The browser uses the middle one until it would fall below the floor or rise above the ceiling. That is why fluid type needs no breakpoints: the size is a straight line between your two widths, and it is clamped flat outside them.
Because a straight line needs an intercept and a slope. The rem part is where the line starts and the vw part is how steeply it climbs, so the size hits your minimum exactly at your minimum viewport and your maximum exactly at your maximum. The calculator solves both from the four numbers you enter.
No. The calculator runs entirely in your browser and your scale is saved only in your own browser storage, on your machine. The page does count how many times the tool is used, as a plain number with nothing attached to it and no way to tie it to you.
The minimum is the narrowest screen you actually support, commonly 320px to 375px. The maximum is the width your design was drawn at, commonly 1440px or 1920px. It starts at 330px to 1440px. A wider range makes the type climb more gently, a narrower one makes it climb faster.
It sets both line heights from the font sizes in that row, so a ratio of 1.4 gives a line height 1.4 times each size. It is a shortcut, not a lock: type a line height in directly and that row releases the ratio and keeps your number. A row with no ratio keeps the line heights you typed when you change its font sizes.
Because its minimum and maximum are the same number. There is nothing to scale between, so the calculator writes a single rem value instead of a clamp() that could never move. That is deliberate and it is the correct CSS.
The output is in rem, converted against the root font size you set. That is what makes the scale respect a visitor who has raised their default text size in the browser, which a scale written in px ignores. Enter your sizes in pixels, because that is what a design file gives you, and let the calculator convert.
Yes. Add token appends a row, and the cross at the end of a row removes it. You can edit each label, but the CSS variable names are set by the tool: a new row gets the first free name such as --fs-new-1, and its line height variable follows as --lh-new-1.
Free tools are a small part of what we do. The rest is websites and digital products for businesses serious about growth, whether you are launching, scaling or transforming.