Experiments

Squircle

The continuous-curve corner, from a single SVG filter

September 2026

Toggle the squircle

A squircle is the rounded rectangle Apple uses across its whole interface, from app icons to buttons to sheets, and it is not the one you get from border-radius. A border-radius rounds only the corners - each one a quarter circle bolted onto a straight edge, with a hard little join where the two meet. A squircle rounds the whole shape: the curve starts before the corner and keeps going after it, so the outline flows the entire way around with no seam. Nothing turns a sharp corner, which is exactly why a grid of squircles looks calmer than the same grid merely rounded.1

The real shape is a superellipse2 - a bit of maths you can compute a path from3 - but there is a cheaper trick, floating around in plenty of libraries online4: blur the element, then snap it back to a hard edge. A Gaussian blur rounds everything, corners hardest of all, and an alpha ramp steep enough to turn that blur back into a solid shape keeps the softened corners while letting the whole edge push out a touch. That is the entire effect: one feGaussianBlur, one feColorMatrix on the alpha channel, and an feBlend to drop the sharp original back on top. It is a plain CSS filter, with no geometry to compute and nothing to redo when the box resizes.

the filter

<filter id="squircle">
<feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur" />
{/* alpha * 20 - 7: steep enough to turn the blur back into a hard, melted edge */}
<feColorMatrix in="blur" mode="matrix"
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 20 -7" result="goo" />
<feBlend in="SourceGraphic" in2="goo" />
</filter>

The change is small, so it is worth zooming right into one corner to see it:

border-radiussquircle

The solid line is the edge the filter actually produces; the dashed line is where a plain border-radius stops. The squircle sits a hair outside it the whole way round - that little push is the whole thing. Flip the toggle up top and you can watch the cards swell into shape and back.

It is a cheat, not a true superellipse, and the corners are only approximate - but for a filled element it is a convincing squircle for five lines of SVG. And it is not only app icons: anything with a border-radius takes the same treatment, whether that is a card, a sheet, a button or a thumbnail5, because it is just a filter you drop onto whatever you already have.

Coming to CSS

The filter is a stopgap, though, and it will not be needed much longer. CSS is growing a corner-shape property6 that names the corner geometry outright: round is today's default, with squircle and bevel joining it - and a superellipse() function underneath for everything in between. It needs a border-radius to act on, and then a real squircle, an exact superellipse rather than an approximation, is two lines with no SVG at all:

.squircle {
border-radius: 44px;
corner-shape: squircle;
}
A tile styled with only corner-shape: squircle - no filter, where the browser supports it.

Support is still landing and it is not in every browser yet, so the filter stays the portable option for now. But the moment corner-shape is everywhere, this whole experiment collapses into those two lines.

References

  1. 1.Squircles and how it changed the landscape of iOS design · Bootcamp · Medium
  2. 2.Superellipse · Wikipedia
  3. 3.phamfoo/figma-squircle · GitHub
  4. 4.Apple squircle effect · Skiper UI
  5. 5.The art of the squircle: bringing Apple's design language to the web with SCSS · Medium
  6. 6.corner-shape · CSS · MDN

Next experiment

Dynamic Island

The Dynamic Island and the morph between its states, rebuilt with Motion

Written by Pablo Cingolani, a Design Engineer at RoomPriceGenie. Say hello at hello@cingopablo.com.