update: now you can use css progress() for adaptive radius, shadow, etc. ↓
same trick, but progress() does the division + clamps for you! 🧑🍳
.card__surface {
--r: 42px; --g: 24px;
border-radius: calc(
progress((100vi - 100cqi) / 2, 0px, var(--g)) * var(--r)
);
}
a little css trick i like ↓
adapt the radius gradually based on available space
shrink from --r to 0 within --g 🧑🍳
.card__surface {
--r: 42px;
--g: 24px;
border-radius: clamp(
0px,
(100vi - 100cqi) / 2 *
var(--r) / var(--g),
var(--r)
);
}