The core of EVA CSS

Fluid scales
where breakpoints jump.

One clamp() replaces three media queries. Designs flow. Layouts breathe. Drag the sliders below.

The clamp() reveal

Drag the slider. The viewport simulator narrows. The content inside scales smoothly — no breakpoints, no jumps.

1200px

Live preview

Responsive headline

Padding, gap, type and button — all driven by one clamp() formula. Smooth across every viewport.

h3 font-size 42px
p font-size 16px
gap 12px
padding 28px
button font-size 14px
button padding 12px

Breakpoint vs fluid

Same component, two strategies. One slider drives both. Watch the left jump. Watch the right glide.

@media breakpoints
900px

Breakpoint card

Jumps at 768 / 1024 / 1440

font-size 16px
clamp() fluid
900px

Fluid card

Continuous between 320 and 1920

font-size 16px

Four size modifiers

One token, four scaling behaviors. --220 standard. --220_ reduced. --220__ extreme. --220- extended.

1200px
var(--220) 220px
var(--220_) 220px
var(--220__) 220px
var(--220-) 220px

The canonical setup

One @use. The sizes you actually use. EVA generates the rest.

SCSS input
@use 'eva-css-fluid' with (
  $sizes: (4, 8, 16, 32, 64, 128),
  $font-sizes: (14, 16, 24, 36, 52),
  $build-class: true
);
Generated variables
--16:  clamp(...);
--16_: clamp(...); /* reduced */
--16__: clamp(...); /* extreme */
--16-: clamp(...); /* extended */
--fs-24, --fs-24_, --fs-24__
Use anywhere
.card {
  padding: var(--32);
  gap: var(--16);
  font-size: var(--fs-16);
}

Why this exists

Twenty years of front-end design. I sit between designers and developers — and I see the same gap every time. Designers ship Figma values that developers translate into rigid breakpoints, and the design intent gets lost between two paradigms.

EVA CSS turns every fixed Figma value into a fluid, responsive variable. The maths happens once, the result holds across every viewport, and the original visual hierarchy survives the trip from canvas to code.

For your AI assistant

The full reference fits in one file.

Every variable, modifier, and formula lives in /llms.txt. Copy it into Claude, ChatGPT, or Cursor — your assistant now knows EVA CSS by heart.

Open /llms.txt →