Master soft UI design with practical CSS techniques, accessibility solutions, and a look at how neumorphism is evolving in modern interface design.
Neumorphism (also called "soft UI" or "new skeuomorphism") emerged as one of the most distinctive design trends of the early 2020s. By combining carefully crafted shadows against a matching background, it creates interfaces that feel tactile, physical, and almost three-dimensional — like pushing buttons on a real device. While the trend has evolved and adapted since its initial explosion on Dribbble, understanding neumorphism principles remains valuable for designers and developers working on modern interfaces, particularly in dark mode, health and wellness apps, and IoT dashboards.
Neumorphism is a design approach that creates soft, extruded UI elements by applying dual box-shadows to elements positioned against a background of the same color. Unlike flat design (which eliminates shadows entirely) or traditional material design (which uses clearly separated layers), neumorphism makes elements appear to emerge from or press into the surface itself.
The technique takes inspiration from physical, real-world interfaces — think of the soft, rubberized buttons on a modern remote control or the raised sections on a high-end appliance. The visual effect is achieved entirely through CSS, with no images or complex shapes required.
The entire neumorphic effect relies on a single CSS property: box-shadow. The magic is in using two shadows — one offset toward the light source and one away from it — both with large blur radii to create a soft, diffused appearance.
A raised element appears to push out from the surface:
.neu-raised {
background: #e0e5ec;
border-radius: 12px;
box-shadow: 8px 8px 16px #b8bec7,
-8px -8px 16px #ffffff;
padding: 20px 40px;
color: #555;
}
A pressed element appears to be pushed into the surface:
.neu-pressed {
background: #e0e5ec;
border-radius: 12px;
box-shadow: inset 4px 4px 8px #b8bec7,
inset -4px -4px 8px #ffffff;
padding: 20px 40px;
color: #555;
}
.neu-btn {
background: #e0e5ec;
border: none;
border-radius: 12px;
padding: 12px 32px;
box-shadow: 6px 6px 12px #b8bec7,
-6px -6px 12px #ffffff;
color: #555;
font-weight: 600;
cursor: pointer;
transition: all 0.2s ease;
outline: none;
}
.neu-btn:active {
box-shadow: inset 4px 4px 8px #b8bec7,
inset -4px -4px 8px #ffffff;
}
Neumorphism works beautifully in dark mode — in fact, many designers argue it looks even better with dark backgrounds because the subtle shadows create a more dramatic sense of depth.
.neu-dark {
background: #1e293b;
border-radius: 16px;
box-shadow: 8px 8px 16px #151d2e,
-8px -8px 16px #273548;
padding: 24px;
color: #e2e8f0;
}
.neu-dark-pressed {
box-shadow: inset 4px 4px 8px #151d2e,
inset -4px -4px 8px #273548;
}
.neu-card {
background: #e0e5ec;
border-radius: 20px;
padding: 30px;
box-shadow: 10px 10px 20px #b8bec7,
-10px -10px 20px #ffffff;
max-width: 320px;
}
.neu-card h3 {
color: #4a5568;
margin-bottom: 8px;
}
.neu-card p {
color: #718096;
line-height: 1.6;
}
.neu-toggle-track {
width: 56px;
height: 28px;
background: #e0e5ec;
border-radius: 14px;
box-shadow: inset 3px 3px 6px #b8bec7,
inset -3px -3px 6px #ffffff;
position: relative;
cursor: pointer;
}
.neu-toggle-thumb {
width: 22px;
height: 22px;
background: #e0e5ec;
border-radius: 50%;
box-shadow: 3px 3px 6px #b8bec7,
-3px -3px 6px #ffffff;
position: absolute;
top: 3px;
left: 3px;
transition: transform 0.3s ease;
}
.neu-toggle-track.active .neu-toggle-thumb {
transform: translateX(28px);
}
.neu-progress {
width: 100%;
height: 8px;
background: #e0e5ec;
border-radius: 4px;
box-shadow: inset 2px 2px 4px #b8bec7,
inset -2px -2px 4px #ffffff;
overflow: hidden;
}
.neu-progress-fill {
height: 100%;
width: 65%;
background: linear-gradient(90deg, #6366f1, #818cf8);
border-radius: 4px;
box-shadow: 0 0 8px rgba(99, 102, 241, 0.4);
}
Neumorphism's biggest criticism — and the reason it fell out of mainstream favor — is its accessibility problems. The low-contrast shadows that create the soft aesthetic also make it difficult for many users to perceive interactive elements, distinguish boundaries, and navigate interfaces effectively.
border: 1px solid rgba(0,0,0,0.08)) provides an additional visual boundary without destroying the soft aesthetic.outline: 2px solid #6366f1; outline-offset: 2px; on :focus-visible for keyboard navigation.Pure neumorphism — entire interfaces built from matching backgrounds and dual shadows — has largely been abandoned by major product teams. However, the aesthetic principles have evolved and found new life in several forms:
The most practical evolution adds subtle borders to neumorphic elements. This solves the primary accessibility issue (unclear boundaries) while preserving the soft, tactile feel. Apple's watchOS widgets and several meditation apps use this approach.
Modern designers increasingly combine neumorphic elements with other styles. A dashboard might use neumorphic cards on a dark background alongside flat typography and glassmorphic overlays. The key is selective application — use neumorphic shadows for specific components (toggles, sliders, metric cards) rather than building the entire UI in the style.
Neumorphism has found its strongest niche in dark mode interfaces. The contrast between dark shadows and slightly lighter highlights reads more naturally in dark environments, and the overall aesthetic pairs well with the ambient lighting that dark mode implies. IoT dashboards, music players, and health tracking apps frequently use dark neumorphism in 2026.
Neumorphism excels at micro-interactions. The transition from raised to pressed state when clicking a button provides satisfying, tactile feedback that flat design cannot match. When combined with haptic feedback on mobile devices, the effect is genuinely delightful.
Box-shadows are generally GPU-accelerated in modern browsers, so neumorphic elements perform well. However, keep these considerations in mind:
transform and opacity transitions instead for better performancewill-change: transform sparingly on elements that will animate frequentlyUse our free CSS generator to create neumorphic components with custom colors, border radius, and shadow depth — light and dark mode supported.
Try CSS Box Shadow Generator →Neumorphism (soft UI) is a design style that creates a soft, extruded look by combining two box-shadows on elements — one light shadow and one dark shadow — against a background of the same color. The result is a UI that appears to be part of the background itself, with elements that look like they are pushing out of or pressed into the surface.
The core CSS technique uses box-shadow with two values: a light shadow (offset top-left) and a dark shadow (offset bottom-right). For a raised effect: box-shadow: 8px 8px 16px #b8bec7, -8px -8px 16px #ffffff. The element and background must be the same color. For a pressed/inset effect, use inset shadows instead.
Neumorphism has significant accessibility challenges. The low-contrast shadows can fail WCAG contrast requirements, making it difficult for users with low vision. Interactive elements often lack clear visual boundaries. To improve accessibility: maintain at least 4.5:1 text contrast ratios, add clear focus indicators, use ARIA labels, provide sufficient click target sizes, and test with screen readers.
Neumorphism uses solid shadows to create a soft, embossed look on a matching background, giving elements a tactile, physical feel. Glassmorphism uses backdrop-filter blur with semi-transparent backgrounds over colorful or image backgrounds, creating a frosted glass effect. Neumorphism is monochromatic and subtle; glassmorphism is vibrant and layered.
Pure neumorphism has declined in mainstream use due to accessibility concerns, but its principles have evolved. Modern adaptations include "soft UI with borders" (adding subtle borders for clarity), hybrid approaches combining neumorphic shadows with glassmorphism or flat design, and selective use on specific elements like toggles and buttons rather than entire interfaces. The aesthetic works best in dark mode and for specific industries like health and wellness apps.
Published on April 10, 2026 · Last updated April 10, 2026 · 10 min read