On this page
Organic shapes can make a rigid interface feel more approachable, but the effect works best when the underlying interaction stays predictable. A soft illustration frame can add personality; a constantly changing submit button usually adds uncertainty.
Custom border radii provide a lightweight way to introduce that personality without exporting a separate vector asset. This guide explains the syntax, a practical implementation, and the constraints that keep expressive shapes from interfering with content.
Give organic shapes a specific job
Start with visual hierarchy, not novelty. Decide whether the shape frames a product image, separates a testimonial, or provides a quiet background accent. One clear job makes it easier to judge whether an unusual contour improves the composition.
Use the Border Radius Morphing Tool below to explore a static silhouette before considering animation. Compare it with the original rectangle at the same size. If the shape draws attention away from the heading or call to action, reduce its asymmetry.
Keep interactive boundaries stable. Navigation, form fields, and destructive actions benefit from familiar silhouettes and consistent hit areas. Reserve more expressive contours for decoration and media containers unless user testing supports a stronger treatment.
A useful initial constraint is one organic shape per major section. Repeat a related curvature elsewhere through subtle corner treatments rather than placing a different blob behind every card. Consistency creates a recognizable visual language without making the page feel restless.
Understand the eight-value radius syntax
A simple radius applies equal curvature to all corners. The expanded form controls four horizontal radii and four vertical radii, separated by a slash. This elliptical curvature is what makes asymmetric blobs possible using ordinary CSS.
Within each group, values follow the same corner sequence: top left, top right, bottom right, bottom left. Percentages before the slash refer to the box's width; percentages after it refer to its height. The MDN border-radius reference details the shorthand and overlap behavior.
.organic-frame {
width: min(100%, 28rem);
aspect-ratio: 1;
border-radius: 62% 38% 44% 56% / 42% 58% 42% 58%;
overflow: hidden;
background: #d9e8ff;
}
.organic-frame img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
object-position: 50% 40%;
}This creates a clipping frame for an image. The border radius rounds the box, while overflow clipping prevents the rectangular image from painting beyond that contour. A rounded background alone would not necessarily clip its descendants.
When adjacent radii exceed the available dimension, browsers proportionally reduce them to prevent overlap. That normalization means doubling a percentage does not always double the visible curvature. Judge the result at its real aspect ratio instead of reasoning from individual values alone.
Protect content, focus, and composition
Organic containers have less usable corner space than their rectangular bounds suggest. Keep content safety explicit by placing text outside heavily clipped shapes or giving it generous internal padding. A headline that fits at one width may touch a curved edge after wrapping.
For portraits, set a deliberate focal point with object-position. Inspect the face at narrow widths and with alternate source images. A shape that works for a centered product render may crop a person's chin or remove important context from a photograph.
Use separate layers for decoration and interaction. A decorative pseudo-element can sit behind a normal card while the card's content remains in a predictable rectangular flow. Avoid placing overflow clipping on a container whose child controls need focus rings outside its edge.
Check the WAI focus visibility guidance when reviewing keyboard states. A creative silhouette does not excuse an outline that vanishes against the background or gets cut off during focus.
Before accepting a design, replace the sample text with a heading twice as long and a translated paragraph. Then test keyboard navigation. If the decorative treatment needs content-specific line breaks to survive, simplify the treatment rather than freezing the copy.
Add motion only when it serves the experience
A border-radius animation can interpolate between compatible values to produce a morphing contour. Keep the number of values consistent across keyframes so the motion remains easier to understand and maintain.
Do not assume that animating radius is compositor-only. Clipping and repaint costs depend on the element, its contents, and the browser. A large animated image may be more expensive than a small decorative surface, so profile the actual implementation.
.shape-accent {
width: 12rem;
aspect-ratio: 1;
background: #bdd5ff;
border-radius: 62% 38% 44% 56% / 42% 58% 42% 58%;
}
@media (prefers-reduced-motion: no-preference) {
.shape-accent[data-entering="true"] {
animation: settle-shape 700ms ease-out 1;
}
}
@keyframes settle-shape {
from {
border-radius: 48% 52% 58% 42% / 55% 45% 53% 47%;
}
to {
border-radius: 62% 38% 44% 56% / 42% 58% 42% 58%;
}
}The base rule provides a complete static design. Motion is added only for users who have not requested reduction. This static-first approach avoids making animation necessary for understanding the layout. See the MDN reduced-motion reference for the media feature's behavior.
Prefer a short, purposeful entrance to an endless background loop. If an animation keeps attracting attention while someone reads, it is competing with the page's primary task rather than supporting it.
Build a small, reusable shape system
Name shapes by design role, such as portrait frame, section accent, or feature illustration. Avoid naming tokens after arbitrary slider settings. A role tells another designer where the shape belongs and what constraints it carries.
Save a compact recipe for each accepted shape: radius values, intended aspect ratio, minimum size, image focal-point guidance, and whether motion is allowed. The same percentages applied to a wide banner and a square portrait produce different silhouettes.
Return to the radius design tool to create two or three related variants, not dozens of unrelated alternatives. Combine them with a restrained palette from the Tailwind CSS Palette Generator so color and shape reinforce the same hierarchy.
Use a review checklist before shipping:
- Inspect the shape at 320, 768, and 1280 CSS pixels of viewport width.
- Confirm that image subjects remain visible at every supported crop.
- Test long text, browser zoom, and keyboard focus near curved edges.
- Verify the reduced-motion experience without relying on animated transitions.
- Profile any animated version on a lower-powered device.
Document the fallback as part of the component, not as an afterthought. If a context cannot support the decorative layer, a simple rounded rectangle should still communicate the same content and action clearly.
Key takeaways
- Give organic shapes a purpose and keep interactive areas predictable.
- Use the slash syntax to control horizontal and vertical corner radii independently.
- Treat aspect ratio, cropping, and content padding as part of the shape recipe.
- Keep focus indicators outside clipped decorative regions where necessary.
- Start with a complete static design, then add limited motion that respects user preferences.
- Standardize a few reusable silhouettes instead of introducing a new contour in every section.
Reach designers & developers at work
Put your product next to the tools people use every day. One sponsor per placement, no tracking pixels.
Become a sponsor