CSS Border Radius Generator
Set every corner independently, including the elliptical two-value form most generators leave out.
Processed on your device — no upload
Corners
Percentages are measured against the box, so 50% makes any rectangle an ellipse and keeps doing so as the box resizes — which is how the organic blob shapes are made. Pixels stay put, which is what you want on a card whose corners should not change when the content grows.
How to use it
- Drag the corners.
- Try percentages for organic shapes.
- Copy the rule.
How it works
border-radius takes up to four values, one per corner, starting top-left and going clockwise. One value rounds all four equally, which covers most of what anyone needs.
Pixels stay fixed; percentages follow the box. A 16px radius is 16px whatever the card's size. A 50% radius is half the width horizontally and half the height vertically, so it turns any rectangle into an ellipse and keeps doing so as the element resizes.
The form most generators leave out is the slash. border-radius: 40% 60% 55% 45% / 45% 35% 65% 55% gives every corner a different horizontal and vertical radius. Each corner becomes a quarter-ellipse rather than a quarter-circle, and the result is the soft organic blob shape used all over modern landing pages. There is no other way to produce it in CSS.
When a radius is too large to fit — two adjacent corners asking for more than the side is long — the browser scales all of them down proportionally rather than clipping. That is why a very large radius on a short element quietly becomes a pill.
A worked example
Press "Make a blob". That is the elliptical form with eight different percentages. Change one number and watch a single corner deform. Give the element a gradient background and you have the decorative shape that would otherwise be an SVG — except this one scales, animates, and costs nothing to download.
Nested corners have a rule. When a rounded element sits inside another with padding, the inner radius should be the outer radius minus the padding. An 8px padding inside a 16px card means the inner element wants 8px, not 16px. Match them and the gap between the two curves goes visibly wrong. This is the detail that separates interfaces that look right from ones that look almost right.
A pill is not 999px, conceptually. It is "as round as possible", and 999px is the idiom that expresses it. The browser clamps it to half the height, so the button stays a pill at any size without you tracking the number.
One radius, used everywhere. Pick one value for cards, one for inputs and buttons, and one for small chips — and never deviate. Mixed radii are the fastest way to make a considered interface look assembled from parts.
The corner is one half of a card's physicality; the other is the shadow.
Questions
Can it make a squircle?
The elliptical form gets close: a rounded shape between a square and a circle. A true squircle is a superellipse and needs an SVG path, which CSS cannot express.
What order are the four values in?
Top-left, top-right, bottom-right, bottom-left — clockwise from the top-left corner.
What does the slash do?
It separates horizontal radii from vertical ones. Each corner becomes a quarter-ellipse rather than a quarter-circle, which is how blob shapes are made.
Pixels or percentages?
Pixels for anything that should keep its shape as it resizes — cards, buttons, inputs. Percentages when you want the curve to scale with the box, including circles and blobs.
How do I make a perfect circle?
Set 50% on all four corners of a square element. On a rectangle the same value gives an ellipse.
Why is my radius smaller than I set it?
Because two adjacent corners asked for more than the side is long, so the browser scales them all down proportionally to fit.
What radius should a nested element use?
The outer radius minus the padding between them. Using the same value on both makes the curves visibly disagree.
Does border-radius clip the content?
Backgrounds and borders are clipped. Content is not, unless you add overflow: hidden — which is why a rounded card with a full-width image needs it.
Can I animate it?
Yes, and it is reasonably cheap. Animating between two elliptical blob values is how the slowly morphing shapes on landing pages are done.
Related Web tools
Color Converter
HEX, RGB, HSL, HSV, CMYK
open$termiva contrast --wcagColor Contrast Checker
WCAG AA and AAA, with a fix
open$termiva palette --triadicColor Palette Generator
Harmonies and a full tint scale
open$termiva gradient --linearCSS Gradient Generator
Linear, radial and conic
open