Responsive Type System

Responsive Type System

Fluid type scale for CSS implementation. Preview enlargement is a simulation; test the finished page with real browser zoom and your actual font.

1. Scale inputs

All viewport and body sizes are in CSS pixels at the browser default 16px root. Ratios and line height are unitless.

Adjust the range to update all roles.

2. Size table

These are calculated CSS pixel sizes at a 16px root. Clamp holds outside the stated viewport interval.

Type role320px880px1440px
Small14.22px15.03px15.83px
Body16.00px17.50px19.00px
Lead18.00px20.40px22.80px
Heading 320.25px23.80px27.36px
Heading 222.78px27.81px32.83px
Heading 125.63px32.51px39.40px

3. Reading preview

Resize the sample viewport and simulate 100–200% root text enlargement. The final font and real browser zoom can produce different wrapping.

Heading 1 · 31.14px

A clear headline and readable paragraph help people find the right information at every screen size.

Heading 2 · 26.8px

A clear headline and readable paragraph help people find the right information at every screen size.

Heading 3 · 23.09px

A clear headline and readable paragraph help people find the right information at every screen size.

Lead · 19.92px

A clear headline and readable paragraph help people find the right information at every screen size.

Body · 17.2px

A clear headline and readable paragraph help people find the right information at every screen size.

Small · 14.87px

A clear headline and readable paragraph help people find the right information at every screen size.

4. CSS tokens

The CSS uses rem for limits and vw for the fluid term. Apply .type-system to the text container and one .type-* role class to each element.

/* Assumes 1rem = 16px at the browser default; rem endpoints grow with the user root-font setting. */
:root {
  --type-small: clamp(0.888889rem, calc(0.860119rem + 0.143849vw), 0.989583rem);
  --type-body: clamp(1rem, calc(0.946429rem + 0.267857vw), 1.1875rem);
  --type-lead: clamp(1.125rem, calc(1.039286rem + 0.428571vw), 1.425rem);
  --type-heading3: clamp(1.265625rem, calc(1.138661rem + 0.634821vw), 1.71rem);
  --type-heading2: clamp(1.423828rem, calc(1.24435rem + 0.897388vw), 2.052rem);
  --type-heading1: clamp(1.601807rem, calc(1.355923rem + 1.229419vw), 2.4624rem);
}
.type-system {
  line-height: 1.55;
  max-width: 68ch;
}
.type-small { font-size: var(--type-small); }
.type-body { font-size: var(--type-body); }
.type-lead { font-size: var(--type-lead); }
.type-heading3 { font-size: var(--type-heading3); }
.type-heading2 { font-size: var(--type-heading2); }
.type-heading1 { font-size: var(--type-heading1); }

Comments & questions

Responsive Type System

Build a connected six-role typography scale instead of adjusting one text sample. Set the viewport interval, body size at each end, modular ratios, line height and reading measure. The tool checks role ordering and minimum small-text size, calculates sizes at the ends and midpoint, and exports CSS clamp tokens with rem bounds and a vw interpolation term. A 100–200% preview illustrates larger root text; confirm real browser zoom and reflow in your own layout.

Key features

  • Six linked roles from small text through heading 1
  • Viewport-bound CSS clamp with rem endpoints and vw interpolation
  • Boundary and midpoint font-size table
  • Configurable unitless line height and character-based reading measure
  • Width and enlarged-text preview plus CSS copy/download

How to use

  1. Enter minimum and maximum viewport widths and body font sizes in pixels.
  2. Choose mobile and desktop modular ratios, line height and reading measure.
  3. Review the role size table at the bounds and midpoint.
  4. Resize the preview and inspect the 100–200% enlarged-text simulation.
  5. Copy or download CSS, then verify it with your actual fonts, browser zoom and content.

Use cases

  • Design a consistent heading hierarchy for a blog
  • Check mobile-to-desktop body and heading growth
  • Export type variables for a design system

Frequently asked questions

What does the ratio control?

It multiplies the body size for each higher role and divides it for small text. Different ratios at the two viewport bounds let the hierarchy widen or narrow across screen sizes.

Are sizes outside the configured viewport range extrapolated?

No. CSS clamp holds each role at its minimum below the lower bound and at its maximum above the upper bound at the default root font setting.

Does the 200% preview guarantee accessibility?

No. It simulates a larger root text size in the sample. The rem endpoints can grow with a real root-font change, but the vw term responds to viewport width. Test your actual page at browser zoom and with long translated text.

Can I compare uploaded fonts here?

No. This tool produces a multi-viewport size system using a browser fallback font in the preview. The separate Font Preview tool compares font faces at a single chosen size.

What is the reading measure?

It sets a max-width in ch units for the sample container. Actual line length varies with the chosen font, glyphs and language; inspect the final site.

Privacy

Calculations and CSS generation run in your browser. This tool does not submit your text or settings to a server API.

Related Tools

Font Preview and ComparisonCSS Grid PlaygroundResponsive Layout AuditorWasm Module InspectorHreflang Matrix CheckerAST Query PlaygroundContainer Build GraphDependency Graph ExplorerSemver Range LabCron Schedule AuditorPatch Review WorkbenchSource Map ExplorerLocalization Catalog AuditorStructured Data ReviewerHTTP Archive AnalyzerWebhook Signature LabProtobuf Schema WorkbenchGraphQL Schema LabAvro Schema EvolutionLocal SQL WorkbenchSchema Form BuilderMesh Repair WorkbenchPipe Network LabRobot Arm Kinematics LabThermal Network LabBeam Response LabGear Train DesignerTolerance Stackup LabSensor Calibration FitPCB Stackup PlannerDigital Filter DesignerNetwork Reachability MapSun Shadow MapGPS Error SimulatorDigital Logic SimulatorAnalog Circuit LabMechanism Linkage LabAnalysis Mesh GeneratorOpenAPI Contract InspectorDatabase Migration PlannerDimensional Equation CheckerTruss Force LabBoolean Minimization LabControl Response LabQueueing Simulation LabGeofence Event SimulatorCoordinate Reference LabSurvey Traverse LabRaster Classification LabChoropleth Design LabMap Print ComposerRaster Reprojection LabElevation Contour MakerTerrain Viewshed LabWatershed DelineatorMap Tile PackagerText File Encoding WorkbenchFilesystem Portability AuditorSBOM License ExplorerFile Signature Auditornpm Lockfile Conflict ResolverSource Secret AuditorOffline Web Package BuilderCertificate Chain InspectorTorrent Metainfo InspectorChunked File PackagerEncrypted File VaultDuplicate File FinderArchive WorkbenchDesign Token ManagerSpacing Token DesignerPackaging Dieline DesignerSVG Icon Sprite PackerFlex Layout PlaygroundRegex Equivalence LabMarkdown Repository AuditorLog Template MinerEmail Template PreviewInternal Link GraphState Machine TesterPetri Net SimulatorGit History VisualizerCurl Request WorkbenchBinary Protocol DesignerHex File EditorBinary Patch WorkbenchFile Signature WorkbenchAPI Mock SandboxSchema Column MapperEvent Log SessionizerER Diagram DesignerTime Series Gap AuditorStratified Data SplitterData Lineage DesignerDecision Tree LabData Anonymization WorkbenchData Expectation RunnerJSON Schema ValidatorBasket Pattern AnalyzerRobots Policy TesterSEO HTML AuditorAccessibility Structure AuditorSyndication Feed WorkbenchIndexNow Payload BuilderCrawl Log AnalyzerCSP Policy WorkbenchSearch Performance AnalyzerCSV Formula Risk AuditorCORS Response SimulatorCache Header LabCookie Policy InspectorWeb Vitals Trace LabSitemap Health AuditorBatch File RenamerFile Manifest VerifierFolder Space MapFolder Difference ReviewerRoute Order OptimizerGeoJSON Map EditorPolygon Overlay LabCartographic Label PlacerSpatial Table JoinGeoJSON Topology AuditorGPX Track AnalyzerTrack Privacy RedactorCSV Table JoinCSV Pivot WorkbenchScientific Data ProfilerTabular Cleaning WorkbenchRecord ReconciliationData Dictionary BuilderCanonical Graph AuditorRedirect Plan TesterHTTP response and ping reference testBrowser and System InformationJSON ↔ YAML ConverterXML ↔ JSON ConverterHTML FormatterJavaScript MinifierMock Data Generator.gitignore GeneratorLicense GeneratorUser-Agent ParserPassword Strength CheckerCode to ImageXML FormatterHTTP Status Code LookupMIME Type LookupJS & SQL String EscapeCSS Box Shadow GeneratorCSS Gradient GeneratorIndent ConverterNumber Base ConverterUnicode Escape ConverterUnicode InspectorJSON Structure DiffMarkdown Table GeneratorBase64 EncoderJSON FormatterURL EncoderSQL FormatterCron Expression GeneratorRegex TesterUUID GeneratorHash GeneratorTimestamp ConverterJWT DecoderHTML Entity ConverterMarkdown PreviewCSS MinifierMeta Tag GeneratorJSON ↔ CSVCase ConverterImage to Base64
Explore all Dev Tools tools →Image/Media →Text/Convert →Life/Fun →