Let’s be honest: for years, web corners were either sharp or slightly rounded, and that was about it. If you wanted anything fancier, you had to hack it together with images or SVGs. Then border-radius came along and made rounded corners a breeze. Now, there’s a new kid on the block: corner-shape. It lets you create all sorts of cool corner effects—bevels, notches, squircles, and more—without any Photoshop tricks or extra markup.
What’s corner-shape?
corner-shape is a new CSS property (currently only in Chrome 139+ and not widely supported yet, so don’t use it in production just yet) that lets you control the shape of a box’s corners, not just how rounded they are. It works together with border-radius—think of border-radius as setting the “size” of the corner, and corner-shape as setting the “style.”
Quick example:
div {
border-radius: 30px;
corner-shape: scoop;
}
This gives you a box with “scooped” (concave) corners instead of the usual rounded ones.
Why should you care?
- More design options: Go beyond boring rectangles and circles. Make your UI stand out with notched, beveled, or squircle corners.
- No more image hacks: Do it all in CSS—no extra images, SVGs, or weird markup.
- Consistent styling: Borders, backgrounds, and shadows all follow the new corner shape.
How does it work?
You use corner-shape alongside border-radius. The property accepts one to four values, just like border-radius, and you can mix and match different shapes for each corner.
Supported shapes (keywords):
-
round(the default, same as border-radius) -
bevel(snipped off corners) -
notch(sharp, cut-in corners) -
scoop(concave, like a bite taken out) -
square(removes border-radius, makes it sharp) -
squircle(a mix between a square and a circle) -
superellipse()(lets you fine-tune the curve with a number)
Examples:
/* All corners beveled */
corner-shape: bevel;
/* Top-left and bottom-right notched, others superellipse */
corner-shape: notch superellipse(0.6);
/* Each corner different */
corner-shape: scoop superellipse(-1.6) superellipse(-2.2) round;
Order matters: The values go clockwise from the top-left corner, just like border-radius.
Real-world uses
-
Snipped corners: Want that “cyberpunk” or “brutalist” look? Use
corner-shape: bevel;. -
Sale tags: Mix
roundandbevelto get those classic sale tag shapes. -
Arrow breadcrumbs: Use
bevelon one side to make arrow-like list items. -
Tooltips: Use
scoopfor a fun, modern caret. -
App icons:
squircleis perfect for those rounded-square icons you see on iOS and Android.
Animating corners
You can even animate between different corner shapes! For example, smoothly morph a square into a notched box:
@keyframes corner-pulse {
0%, 20% { corner-shape: square; }
100% { corner-shape: notch; }
}
div {
animation: corner-pulse 4s infinite alternate linear;
}
Heads up: Browser support
This is still experimental. Right now, only Chrome 139+ supports it, and you’ll want to check compatibility before using it in anything important. But it’s a great tool for prototypes, experiments, or just having fun with new CSS features.
TL;DR
-
corner-shapelets you pick the style of your corners, not just how round they are. - Works with
border-radiusfor tons of new shapes. - Only supported in Chrome 139+ for now.
- Great for modern, unique UI designs—no images or SVGs needed.
If you’re tired of the same old corners, give corner-shape a try (in a supported browser). It’s a small change that can make your designs feel fresh and fun.
Must Read If you haven't
Streaming HTML: Client-Side Rendering Made Easy with Any Framework
Rahul Sharma ・ Apr 19 '25
React.js state management using signals
Rahul Sharma ・ Sep 21 '22
Simplify JavaScript's Async Concepts with One GIF
Rahul Sharma ・ Nov 2 '23
More content at Dev.to.
Catch me on
Youtube Github LinkedIn Medium Stackblitz Hashnode HackerNoon


Top comments (0)