Typescale Settings

Root font size <px>
?
Viewport Unit
?
Viewport Size <px>
?
Base font size <px>
?

Presets for viewports

min
?
for max
?

Multipliers

?
h1
29 px1.80 rem
36 px2.25 rem
h2
24 px1.50 rem
30 px1.88 rem
h3
22 px1.40 rem
28 px1.75 rem
h4
21 px1.30 rem
26 px1.63 rem
h5
19 px1.20 rem
24 px1.50 rem
h6
18 px1.10 rem
22 px1.38 rem
small
14 px0.88 rem
18 px1.09 rem
tiny
12 px0.75 rem
15 px0.94 rem
code
14 px0.88 rem
18 px1.09 rem

Typography Settings

Headings (h1–h6)

Font family
?
Font Weight
?

Base (body)

Font family
?
Font Weight
?

Code Font

Font family
?
Font Weight
?

Live Typography Preview

H129px
Heading 1
H224px
Heading 2
H322px
Heading 3
H421px
Heading 4
H519px
Heading 5
H618px
Heading 6
BASE16px
Base font size: The quick brown fox jumps over the lazy dog.
SMALL14px
Small: Smaller helper text or caption.
TINY12px
Tiny: text example.
CODE14px
Code: font-size: 0.875rem;
Class Prefix
?

Responsive CSS output

/* * Generated by clampgenerator.com * Font size: 16px to 20px * Viewport: 320vw to 1200vw */ html { font-size: 16px; } /* Font Family Setup */ body { font-family: 'Inter', sans-serif; font-weight: 400; } h1, h2, h3, h4, h5, h6 { font-family: 'Inter', sans-serif; font-weight: 700; } code { font-family: 'Roboto Mono', monospace; font-weight: 400; } /* Typography Sizes */ h1, .cg-h1 { font-size: clamp(1.80rem, calc(1.636rem + 0.818vw), 2.25rem); } h2, .cg-h2 { font-size: clamp(1.50rem, calc(1.364rem + 0.682vw), 1.88rem); } h3, .cg-h3 { font-size: clamp(1.40rem, calc(1.273rem + 0.636vw), 1.75rem); } h4, .cg-h4 { font-size: clamp(1.30rem, calc(1.182rem + 0.591vw), 1.63rem); } h5, .cg-h5 { font-size: clamp(1.20rem, calc(1.091rem + 0.545vw), 1.50rem); } h6, .cg-h6 { font-size: clamp(1.10rem, calc(1.000rem + 0.500vw), 1.38rem); } body, .cg-base { font-size: clamp(1.00rem, calc(0.909rem + 0.455vw), 1.25rem); } small, .cg-small { font-size: clamp(0.88rem, calc(0.795rem + 0.398vw), 1.09rem); } .tiny, .cg-tiny { font-size: clamp(0.75rem, calc(0.682rem + 0.341vw), 0.94rem); } code, .cg-code { font-size: clamp(0.88rem, calc(0.795rem + 0.398vw), 1.09rem); }

What is a Modular Type Scale?

A modular scale multiplies a base font size by a fixed ratio, once per step, to produce every size in your typography system. If your body text is 1rem and your ratio is 1.25, H2 is 1.25rem, H1 is 1.5625rem, and so on. The result is a size relationship that feels intentional rather than arbitrary — every heading level is mathematically related to the ones next to it.

Scale Ratios, and When to Use Each

All of these are available as one-click presets in the tool above, and every multiplier is still editable per element afterward.

NameRatioBest for
Minor Second1.067Very subtle — headings barely stand apart from body text. Rare outside dense data UIs.
Major Second1.125Subtle, restrained hierarchy. Common in admin dashboards and UI-dense apps.
Minor Third1.200A safe, professional default — clear hierarchy without feeling dramatic.
Major Third1.250Slightly more contrast than Minor Third. Works well for most marketing and product sites.
Perfect Fourth1.333Confident, editorial hierarchy. A strong default for blogs and content-heavy pages.
Augmented Fourth1.414Bold and a little unconventional — good for design-forward brands.
Perfect Fifth1.500Dramatic size jumps. Best for landing pages and hero-heavy layouts.
Golden Ratio1.618The most dramatic option — striking for display type, risky for anything text-dense.

Why Fluid Typescale Beats Fixed Breakpoints

A lot of typescale tools compute your sizes for one viewport, or offer a single "responsive" toggle that swaps to a second fixed scale at one breakpoint. That still leaves a visible jump the moment the viewport crosses that line — text snaps rather than scales.

This generator uses clamp() to interpolate continuously across your entire configured viewport range. Every element scales smoothly from your minimum multiplier to your maximum multiplier — no jump, no second breakpoint to maintain, and no gap between "mobile size" and "desktop size" where the text is technically undefined.

font-size: clamp(1.00rem, calc(0.909rem + 0.455vw), 1.25rem);

Free vs. Paywalled: What to Check Before You Commit

Several typescale tools let you design a scale for free but put the actual CSS export behind a paid plan — you can preview the result, but copying the code costs money. Before you build a workflow around any typescale tool, it's worth checking:

  • ✅ Is the generated CSS export actually free, or gated behind a login/paid tier?
  • ✅ Does it output real clamp() values, or just numbers for one fixed viewport?
  • ✅ Can you export CSS variables, SCSS, and Tailwind — not just plain CSS?
  • ✅ Is font-family and font-weight configurable per section, with a live preview using the real font?

Every one of those is free here, with no account required — CSS, CSS Variable, SCSS, and Tailwind exports are all available directly above.

How to Use This Fluid Typescale Generator

  1. Set your minimum and maximum base font size (e.g. 16px on mobile, 18px on desktop).
  2. Set your minimum and maximum viewport width — 360px to 1440px covers most real devices.
  3. Pick a scale ratio preset, or dial in your own multiplier per element.
  4. Choose font families and weights for headings and body text, with live preview.
  5. Drag the preview slider to check every element scales the way you expect at every width.
  6. Copy the generated CSS, CSS Variable, SCSS, or Tailwind output.

Common Typescale Mistakes to Avoid

  • Too many sizes. Six-plus distinct heading sizes plus body variants usually means the hierarchy has stopped communicating anything — most designs need 4-5 meaningfully different sizes, not more.
  • A ratio that's too aggressive at small viewports. A dramatic ratio like Golden Ratio can make H1 unreadably large on a 360px phone even if it looks great on desktop — check the mobile end of your preview slider, not just desktop.
  • Ignoring line-height. A line-height tuned for your minimum size often looks cramped or too loose at your maximum — use a unitless line-height so it scales with the font-size automatically.
  • Different base sizes on different pages. If your blog and your marketing pages don't share the same base font size and viewport range, their typescales will drift out of sync visually even using the same ratio.
  • Not testing real content. Lorem ipsum hides overflow and wrapping problems that a real headline reveals — use the live preview's editable text field with your actual copy.

Fluid Typescale Generator FAQs

What is a fluid typescale?

A typescale is a consistent set of font sizes across your headings and text — H1 larger than H2, and so on, in a fixed ratio. A fluid typescale uses clamp() so every size in that scale interpolates smoothly across the full viewport range, instead of jumping at fixed breakpoints.

Is this typescale generator really free?

Yes — every export format (CSS, CSS Variable, SCSS, Tailwind) is free with no login, signup, or paid tier. Some other typescale tools let you design a scale for free but gate the actual CSS export behind a paid plan; nothing here is paywalled.

How is a fluid typescale different from a typical online typescale tool?

Many typescale tools compute a fixed scale for one viewport, or offer a single 'responsive' breakpoint that swaps to a second fixed scale at one screen width. This tool interpolates continuously with clamp() across your entire configured viewport range, so there's no visible jump at any screen size.

Which scale ratio should I use?

Minor Third (1.2) or Major Third (1.25) are safe, professional defaults for most sites. Perfect Fourth (1.333) or Perfect Fifth (1.5) suit editorial or marketing pages that want a bolder hierarchy. Golden Ratio (1.618) is the most dramatic and works best for display-heavy, text-light designs.

Can I use different font families for headings and body text?

Yes — the tool lets you assign separate Google Fonts and font weights to heading elements (H1-H6) and body text (body, small, code), with a live preview using the real fonts.

Can I export the CSS as variables, SCSS, or Tailwind config?

Yes, all four formats are available and free: plain CSS, CSS custom properties, SCSS variables, and Tailwind utility classes with a customizable prefix.

Do I need to know the math behind clamp() to use this?

No. Pick a base font size, a viewport range, and a scale ratio (or set your own), and the tool calculates the slope and intercept for every element automatically. You can still fine-tune each element's multiplier manually if you want more control.

Guides