Layout & CSS Core A2 · Formal specification Platform: Web

clamp()

`clamp()` chooses a preferred CSS value but keeps it between a minimum and a maximum.

See how it works
You might call it bounded fluid valueCSS clamp

See how it works

Original worked exampleclamp()

Another example

A headline uses `clamp(2rem,1.2rem + 3vw,4.5rem)`. It grows smoothly from phone to desktop, but never goes below 32px or above 72px. Because the rule keeps `rem` units, browser zoom still works.

Main parts

  1. 01Minimum
  2. 02Preferred expression
  3. 03Maximum

Use it when

Use it for a value that should change smoothly but stay inside clear, readable limits. Mix relative and viewport units when helpful.

Do not use it when

For text, do not make the preferred value use only viewport units. Test zoom, short screens, and very long translations.

Name used in code

clamp(minimum, preferred, maximum)

Before you ship

Check content order, shared design values, component consistency, contrast, zoom, and layout changes by screen size. Verify every theme, language, and state. If there is motion, offer an equal reduced-motion experience.

Request you can copy

Outcome: Use or define clamp() to make the visual experience clear and easy to use. User context: A headline uses `clamp(2rem,1.2rem + 3vw,4.5rem)`. It grows smoothly from phone to desktop, but never goes below 32px or above 72px. Because the rule keeps `rem` units, browser zoom still works. Design concept to apply: clamp(). Why it fits: Use it for a value that should change smoothly but stay inside clear, readable limits. Mix relative and viewport units when helpful. Do not use it when: For text, do not make the preferred value use only viewport units. Test zoom, short screens, and very long translations. Design requirements: Set the content order, shared design values, and reusable components. Define how the layout changes by screen size and state. Keep useful design choices separate from decoration. Inclusion and resilience: Check contrast, zoom, languages, themes, and reduced motion when needed. Do not use color or effects as the only way to show meaning. Acceptance criteria: The design stays clear on phones and desktops, at zoom, in every theme, and in all supported languages. Interactive states stay clear and consistent. Evidence and limits (evidence boundary): A formal document may still be a draft, release candidate, or final version. Check its status and browser or platform support. Unknowns to confirm: Brand limits, amount of content, supported themes and languages, target devices, and design-system rules.

Check this request

Review the current use of clamp(). Definition: `clamp()` chooses a preferred CSS value but keeps it between a minimum and a maximum. Release checks: Check content order, shared design values, component consistency, contrast, zoom, and layout changes by screen size. Verify every theme, language, and state. If there is motion, offer an equal reduced-motion experience. Before changing code, report the evidence you found, gaps, severity, and the smallest safe fix.

A2
How official is this term?

Formal specification

A published, versioned formal specification defines this term for the listed technical scope.

A formal document may still be a draft, release candidate, or final version. Check its status and browser or platform support.

Scope
CSS clamp() value function
Document status
draft
Checked on
2026-07-30

Evidence sources & scope

Authority source + Term reference · W3C CSS Working Group · draft CSS Values and Units Module Level 4 — clamp() comparison function clamp() comparison function Scope: CSS value functions and viewport-relative units; direct scope: clamp() comparison function Role here: Direct term reference Source covers: canonical name, definition, semantics, implementation Authority source · W3C CSS Working Group · draft CSS Values and Units Module Level 4 Scope: CSS value functions and viewport-relative units Role here: Authority within stated scope Source covers: canonical name, definition, semantics, implementation

Copy it yourself

The browser could not copy this. Select the request below and copy it yourself.