Neumorphism UI Design: A Complete Guide to Soft UI

Discover how neumorphism creates tactile, modern interfaces by blending the depth of skeuomorphism with the minimalism of flat design.

What Is Neumorphism?

Neumorphism--short for "new skeuomorphism" and often called "soft UI"--is a design trend that emerged around 2019-2020 as a response to the stark minimalism of flat design. The style creates interfaces where elements appear to be extruded from or pressed into the background surface, using subtle shadows and highlights to convey depth while maintaining a clean, modern aesthetic.

Unlike skeuomorphism, which mimicked realistic textures and materials, neumorphism relies on light and shadow to create a sense of tactile softness. This approach bridges the gap between the realistic interfaces of the past and the minimal digital-first aesthetic that dominates today, creating interfaces that feel tangible and physically present while remaining streamlined and contemporary.

The defining characteristic of neumorphism is its use of dual shadows--one light and one dark--positioned on opposite sides of an element to simulate a light source. This technique creates the illusion that elements are either raised above or pressed into the surface, providing users with intuitive visual cues about interactivity and depth without relying on the heavy visual weight of traditional skeuomorphism or the flatness of material design.

The Evolution: From Skeuomorphism to Flat Design to Neumorphism

Understanding neumorphism requires knowing where it fits in design history and why it emerged as a distinct approach.

Skeuomorphism (1990s-2010s): Early digital interfaces mimicked real-world objects--notebooks looked like physical books, trash cans looked like metal bins, and application icons resembled their real-world counterparts. Apple popularized this approach with iOS before 2013, creating interfaces that felt familiar to users transitioning from physical to digital spaces. The realism helped users understand functionality through visual metaphor, but as digital literacy increased, the need for such literal translations diminished.

Flat Design (2013-2019): As users became familiar with digital interfaces, designers stripped away realism in favor of simplicity and clarity. Microsoft led this movement with their Metro design language, followed by Apple's dramatic iOS 7 redesign that eliminated skeuomorphic elements entirely. Flat design prioritized readability, performance, and scalability across devices. However, this minimalism introduced a new challenge: elements could feel disconnected and lack affordance, with buttons looking like static labels rather than interactive components.

Neumorphism (2019-Present): A middle ground emerged--elements have depth and dimension but remain minimal and modern. According to the UX Design Institute, neumorphism addresses a fundamental limitation of flat design by adding back the tactile quality that users intuitively understand. The soft shadows create a sense of physical presence that helps users immediately recognize interactive elements while maintaining the clean, efficient aesthetic that modern interfaces demand.

This evolution reflects a broader understanding that digital interfaces don't need to choose between realistic mimicry and flat abstraction. Neumorphism offers a third path--one that communicates depth and interactivity through subtle visual cues rather than literal textures or complete flatness. For projects looking to stand out with contemporary design aesthetics, understanding these trends helps inform better decisions about web development approaches.

The Core Principles of Neumorphism

Neumorphism is built on four fundamental principles that work together to create its distinctive soft, tactile appearance. Understanding these principles is essential for implementing neumorphism effectively in your designs.

Shadows and Depth

Shadows are the defining feature of neumorphic design. Unlike traditional drop shadows that create elevation, neumorphism uses two complementary shadows--a light shadow on one side and a dark shadow on the opposite--to simulate a light source. As documented by LogRocket, this dual-shadow approach creates the characteristic soft, extruded look that defines neumorphism.

The Shadow Technique:

  • Light shadow (highlight): Placed on the side opposite the light source, lighter than the background color
  • Dark shadow: Placed on the same side as the light source, darker than the background color
  • Inset vs. outset: Outset shadows make elements appear raised; inset shadows make elements appear pressed in

The box-shadow property accepts multiple shadow values separated by commas, allowing you to layer both the light and dark shadows on a single element. For example, a standard neumorphic button might use box-shadow: 9px 9px 16px #a3b1c6, -9px -9px 16px #ffffff;--the first shadow creates the dark shadow on the bottom-right, while the second creates the light highlight on the top-left. This combination, with a light source assumed from the top-left, produces the illusion of a raised surface.

Calculating shadow values requires balancing several factors. The shadow distance (the first value in each shadow declaration) determines how "high" the element appears. Larger distances create more dramatic elevation, while smaller distances produce subtler effects. The blur radius controls how soft the shadow edges appear--higher values create more diffuse shadows, while lower values produce sharper edges. For most neumorphic designs, blur values between 15 and 25 pixels work well with shadow distances of 8 to 12 pixels.

Color Palette

Neumorphism works best with monochromatic or analogous color schemes. The background and elements share similar colors, with only slight variations creating the 3D effect. According to the UX Design Institute, soft, muted backgrounds work most effectively for neumorphic designs.

Recommended Color Approach:

  • Soft, muted backgrounds (often light gray, off-white, or soft pastels)
  • Background color typically ranges from #E0E0E0 to #F5F5F5
  • Shadows use slightly darker/lighter variations of the base color
  • Avoid high-contrast accent colors that disrupt the soft aesthetic

Using CSS variables makes it easy to adjust your color palette and maintain consistency. A typical neumorphic color scheme might define:

:root {
 --neu-bg: #e0e5ec;
 --neu-light: #ffffff;
 --neu-dark: #a3b1c6;
 --neu-text: #4a5568;
}

The light shadow color is typically a very light tint (often white or near-white), while the dark shadow is a slightly darker shade of your background color. The exact values depend on your background color and the intensity of shadow you want to achieve. For darker backgrounds, you would invert this pattern, with the light shadow becoming darker and the dark shadow becoming lighter.

Rounded Corners and Soft Shapes

Sharp edges contradict the tactile, organic feel of neumorphism. Elements should have generous border-radius values--typically 12px to 24px or more--to create soft, approachable shapes. As noted by Clay, consistent rounding creates visual harmony throughout neumorphic interfaces.

Design Guidelines:

  • Use border-radius liberally on buttons, cards, and containers
  • Avoid sharp corners and hard edges throughout your design
  • Circle and pill-shaped elements work particularly well with neumorphism
  • Consistent rounding creates visual harmony across all elements

The relationship between corner radius and element size matters. Larger elements typically benefit from proportionally larger corner radii. A button might use border-radius: 50px for a pill shape, while a card might use border-radius: 20px for softer but still rectangular corners. The key is maintaining consistency--elements of similar type and size should share similar rounding values.

Focus on Light and Shadow

A consistent light source is essential for believable neumorphic design. All shadows must align with a single light direction (typically top-left) to maintain realism. According to the UX Design Institute, choosing a primary light direction and maintaining it throughout creates convincing depth effects.

Light Source Rules:

  • Choose a primary light direction and maintain it consistently throughout
  • Light shadows appear on the opposite side of the light source
  • Dark shadows appear on the same side as the light source
  • Maintain consistent shadow angles and intensities across all elements

Inconsistent light sources are one of the most common mistakes in neumorphic design. If one element has shadows suggesting light from the top-left while another suggests light from the bottom-right, the interface loses coherence and realism. Before implementing neumorphism, establish your light source direction as a design standard and ensure all team members understand and follow it.

Neumorphic Button CSS Example
1/* Base neumorphic variables */2:root {3 --neu-bg: #e0e5ec;4 --neu-light: #ffffff;5 --neu-dark: #a3b1c6;6}7 8/* Raised button */9.neu-button {10 background: var(--neu-bg);11 border-radius: 50px;12 padding: 12px 24px;13 border: none;14 color: #4a5568;15 font-weight: 600;16 box-shadow:17 9px 9px 16px var(--neu-dark),18 -9px -9px 16px var(--neu-light);19 cursor: pointer;20 transition: all 0.2s ease;21}22 23/* Pressed/active state */24.neu-button:active {25 box-shadow:26 inset 6px 6px 10px var(--neu-dark),27 inset -6px -6px 10px var(--neu-light);28}29 30/* Recessed input field */31.neu-input {32 background: var(--neu-bg);33 border-radius: 12px;34 padding: 16px;35 border: none;36 outline: none;37 box-shadow:38 inset 6px 6px 10px var(--neu-dark),39 inset -6px -6px 10px var(--neu-light);40 width: 100%;41}42 43/* Neumorphic card */44.neu-card {45 background: var(--neu-bg);46 border-radius: 20px;47 padding: 24px;48 box-shadow:49 12px 12px 20px var(--neu-dark),50 -12px -12px 20px var(--neu-light);51}

Neumorphic UI Components

Neumorphism applies to more than just buttons. Understanding how to apply this style to various UI components will help you create cohesive, tactile interfaces that maintain visual consistency throughout your application.

Buttons

Neumorphic buttons are perhaps the most recognizable element of this design style. They appear either raised (ready to press) or pressed (active state). According to Clay, the button states align naturally with the tactile metaphor--raised elements invite interaction, while pressed elements confirm it.

Button States:

  • Default state: Outset shadows create a raised appearance that invites clicking
  • Active/pressed state: Inset shadows create a pressed appearance, confirming the action
  • Hover state: Slightly increased shadow intensity or a subtle transition effect
  • Disabled state: Reduced contrast, possibly using flatter or more subtle shadows

However, neumorphism can sometimes make state changes difficult to perceive, especially for users with visual impairments or on screens with limited color accuracy. The shadow-based visual feedback may not be sufficiently distinct. To address this, combine neumorphic styling with other indicators: icon changes (such as a subtle rotation or color shift), cursor changes, and potentially text label transformations. For critical actions, consider adding subtle color shifts or tiny icons that reinforce the active state.

Cards

Neumorphic cards use subtle outset shadows to appear slightly raised from the background. They should feel integrated yet distinct--part of the same surface but clearly separate as containers for content.

Card Design Considerations:

  • Use neumorphic cards for grouping related content and creating visual hierarchy
  • Maintain consistent shadow intensity across all cards in your interface
  • Consider hover states that provide subtle feedback (perhaps a slight lift or shadow intensification)
  • Ensure text remains readable against the soft background by testing contrast ratios
  • Avoid applying neumorphic effects to the entire card if it contains complex nested content

Input Fields

Input fields in neumorphic design often use inset shadows to appear recessed into the surface--a logical visual metaphor since inputs accept content that goes "into" the interface. This approach, documented by the UX Design Institute, creates intuitive affordance for form elements.

Input Field States:

  • Default: Subtle inset shadow suggesting a recessed area ready to accept input
  • Focus: Increased contrast or additional visual indicators to show the field is active
  • Filled: Visual feedback when content is present, such as a slight shadow change or icon appearance
  • Error state: Use color (red accent) combined with shadow changes rather than relying on shadow alone

Toggle Switches and Sliders

These interactive elements particularly benefit from neumorphic design--the pressed/raised states align naturally with the on/off metaphor. A toggle switch that appears raised when off and pressed when on provides intuitive visual feedback about its state without requiring labels or additional indicators.

Implementation Guidance:

  • Toggle switches should appear raised in the "off" position and pressed in the "on" position
  • Consider using accent colors to indicate "on" state while maintaining neumorphic shadows
  • Sliders should use neumorphic styling for the track (often recessed) and the thumb (raised)
  • Ensure interactive areas are large enough for comfortable touch targeting

The key to successful neumorphic component design is consistency. All buttons should behave similarly, all cards should share visual weight, and all input fields should provide comparable feedback. This consistency helps users build mental models of your interface and predict how new elements will behave.

Advantages of Neumorphism

Why designers choose soft UI

Aesthetic Appeal

Creates a modern, sophisticated look that stands out from typical flat design. The soft, tactile appearance feels premium and carefully crafted.

Tactile Feedback

Elements that feel physically present provide better affordance. Users intuitively understand what is interactive without additional cues.

Subtle Depth

Adds dimension without the visual weight of material design's bold shadows or skeuomorphism's realistic textures.

Cohesive Appearance

When done well, neumorphic interfaces feel unified--the entire UI shares a consistent material quality.

Challenges of Neumorphism

Considerations before adopting soft UI

Accessibility Concerns

The low-contrast nature of neumorphism can create readability issues for users with visual impairments.

Implementation Complexity

Achieving good neumorphism requires careful shadow tuning. Poorly executed neumorphism looks amateur.

Overuse Fatigue

Heavy neumorphism throughout an interface can feel monotonous. The soft aesthetic works best as accent treatment.

Performance Impact

Complex shadow rendering can impact performance, especially on lower-powered devices.

Accessibility Best Practices

Neumorphism's low-contrast nature requires intentional accessibility considerations to ensure your designs work for all users, including those with visual impairments or color blindness. The UX Design Institute emphasizes that accessibility should never be sacrificed for aesthetics.

Ensure Sufficient Contrast

WCAG 2.1 guidelines require a minimum contrast ratio of 4.5:1 for normal text and 3:1 for large text. Neumorphism's subtle shadows can make meeting these requirements challenging, particularly for text placed directly on neumorphic surfaces.

Practical Tips:

  • Test all text against backgrounds using tools like the WebAIM Contrast Checker
  • Aim for contrast ratios well above the minimum (5:1 or higher provides better margin)
  • Consider providing a high-contrast mode option that reduces or eliminates neumorphic effects
  • Place text on solid-colored backgrounds rather than directly on neumorphic surfaces when possible
  • Use darker text colors than you might initially think necessary to ensure readability

Provide Multiple Indicators

Don't rely solely on shadow for state indication. Combine neumorphism with other visual cues to ensure all users can understand interface states.

Visual Indicators to Include:

  • Icon changes for state (different icons or icon rotations for active/inactive states)
  • Text labels where appropriate, especially for toggle states and action buttons
  • Cursor changes for interactive elements (pointer cursor on hover)
  • Focus indicators for keyboard navigation, which should be high-contrast and clearly visible
  • Subtle color shifts that complement the neumorphic shadows without disrupting the aesthetic

Consider Your Audience

For enterprise applications, government websites, healthcare interfaces, or any accessibility-focused application, use neumorphism sparingly or as accent treatment only. These users often have specific accessibility requirements or may be using assistive technologies.

Recommendations by Context:

  • Accessibility-critical applications: Use neumorphism only for decorative elements, never for functional components
  • General consumer apps: Neumorphism can be used more freely but should still include accessibility alternatives
  • Portfolio and showcase sites: Neumorphism works well here, but ensure content remains accessible

When implementing accessible neumorphic designs, consider how our web development team approaches accessibility from the start of every project, ensuring all users can effectively interact with your digital products.

Performance Considerations

Complex box-shadow rendering can impact performance, especially on lower-powered devices or older browsers. According to LogRocket, testing neumorphic interfaces on various devices is essential.

Optimization Strategies:

  • Test your neumorphic designs on mobile devices and older computers
  • Reduce shadow complexity if you notice performance issues
  • Consider using CSS transforms with will-change for smoother animations
  • Avoid animating box-shadow properties directly; use transforms instead for state changes
  • Use hardware acceleration where possible by including transform in your animated properties

Balancing aesthetics with accessibility requires intentional design decisions. Neumorphism can create beautiful, engaging interfaces, but only when designers take deliberate steps to ensure all users can effectively interact with the design.

When to Use Neumorphism

Understanding where neumorphism works best will help you make informed design decisions and avoid applying it inappropriately. The UX Design Institute and Clay provide guidance on appropriate use cases.

Ideal Use Cases

Portfolio and Showcase Sites: Neumorphism's distinctive look works well for design portfolios and creative projects where visual impact and brand differentiation matter. The unique aesthetic helps creative professionals demonstrate their awareness of contemporary design trends while creating memorable visual experiences.

Mobile Apps with Simple Interactions: Apps with limited functionality--calculators, music players, IoT controls, alarm clocks, and similar utilities--can benefit significantly from neumorphism's tactile feel. These interfaces benefit from clear button affordances without complex navigation or content density.

Dashboard Widgets: Individual widgets within a dashboard can use neumorphism to stand out from the background while maintaining visual consistency. Neumorphic containers work particularly well for status indicators, quick-action buttons, and data visualization cards.

Marketing Landing Pages: For brands wanting a modern, premium aesthetic, neumorphism creates visual interest without overwhelming content. It's particularly effective for product showcase sections, call-to-action areas, and feature highlights.

Smart Home and IoT Interfaces: IoT and smart home control panels often use neumorphism effectively because the physical metaphor (pressed/raised switches) aligns naturally with how users think about controlling physical devices.

When to Avoid Neumorphism

Content-Heavy Interfaces: News sites, blogs, documentation, and information-dense applications should prioritize readability over aesthetic effects. Neumorphic surfaces can make extended reading more difficult and slow users' ability to scan and process information.

Complex Productivity Tools: Applications where users need quick visual recognition and efficient interaction--project management tools, email clients, spreadsheets--may suffer from neumorphism's subtleness. Users need clear visual hierarchy and immediate recognition of interactive elements.

Accessibility-Focused Applications: Government websites, healthcare portals, educational platforms, and any application required to meet strict accessibility standards should use clearer visual distinctions. The risk of insufficient contrast and unclear states makes neumorphism a poor choice here.

Forms with Many Fields: Input-heavy forms benefit from clear borders and labels. Neumorphic inputs, while aesthetically pleasing, can make form completion more difficult, especially for users who need clear visual boundaries.

Decision Criteria: When deciding whether to use neumorphism, consider these questions:

  1. Is visual impact more important than content density for this interface?
  2. Will users interact frequently with a limited set of controls?
  3. Can I maintain sufficient contrast ratios for all text and interactive elements?
  4. Is the target audience likely to appreciate contemporary design trends?
  5. Can I implement neumorphism selectively rather than universally?

If most answers favor neumorphism, it may be appropriate for your project--used selectively as an accent rather than applied to every interface element.

For brands exploring modern design aesthetics, working with experienced web design services helps ensure neumorphism enhances rather than hinders user experience.

Common Mistakes and How to Avoid Them

Even experienced designers can stumble when implementing neumorphism. The Clay design resource identifies several common pitfalls that can undermine even well-intentioned neumorphic designs.

Mistake 1: Overly Strong Shadows

Excessively dark or prominent shadows defeat the soft, subtle nature of neumorphism. When shadows are too strong, the effect becomes heavy and aggressive rather than gentle and tactile.

Solution: Start with subtle shadows and increase gradually only as needed. A typical starting point for a light gray background (#e0e5ec) might use a shadow distance of 6px with a blur of 12px. Only increase to values like 9px/16px or 12px/20px if the effect needs more visibility. The goal is a gentle 3D effect, not dramatic depth.

Mistake 2: Inconsistent Light Sources

Shadows pointing in different directions break realism and create visual confusion. When one element suggests light from the top-left while another suggests bottom-right, users' brains struggle to reconcile the inconsistent reality.

Solution: Establish a single light direction (top-left is the standard convention) and create a design system reference that all team members can access. Document your shadow values and ensure they're applied consistently. Before finalizing any new neumorphic element, verify its shadows align with your established light source.

Mistake 3: Too Many Elements

Applying neumorphism to every element creates visual fatigue and monotony. The soft aesthetic works best as accent treatment--a way to highlight important interactive elements rather than a universal styling approach.

Solution: Use neumorphism selectively for buttons, cards, or input fields while keeping navigation, typography, and layout structure simple and clear. Consider a hybrid approach where neumorphic elements exist on a flat background rather than applying the effect to containers that then hold more neumorphic content.

Mistake 4: Ignoring Contrast

Low-contrast neumorphism creates serious usability issues, particularly for users with visual impairments or on displays with limited color accuracy. When shadows don't provide sufficient contrast against the background, users may struggle to identify interactive elements.

Solution: Ensure all text meets WCAG contrast requirements (minimum 4.5:1 for normal text). Use neumorphism for container elements, not for text itself. Test your designs on multiple displays and consider how the colors might appear to users with different vision. When in doubt, increase contrast--accessibility should never be sacrificed for aesthetic purity.

Mistake 5: Inconsistent Rounding

Mixing sharp corners with rounded elements creates visual discord that undermines the cohesive feel neumorphism aims to achieve. Elements should share consistent corner radii throughout the interface.

Solution: Establish standard border-radius values for different element types and apply them consistently. A typical system might use:

  • Buttons: 50px (pill shape)
  • Cards: 20px
  • Input fields: 12px
  • Smaller UI elements: 8px

Write these values into your CSS variables or design tokens so they're automatically applied to all appropriate elements.

Mistake 6: Neglecting States

Failing to design clear state changes (hover, active, focus, disabled) undermines the tactile promise of neumorphism. If users can't distinguish between states, they lose the intuitive feedback that neumorphism should provide.

Solution: Design each state explicitly before implementation. The hover state might intensify shadows slightly, the active state might switch to inset shadows, and the disabled state might reduce shadow contrast. Consider adding complementary visual cues like subtle color shifts, icon changes, or cursor modifications.

Mistake 7: Forgetting Performance

Complex, layered box-shadows can impact rendering performance, particularly during animations or on lower-powered devices.

Solution: Test neumorphic designs on target devices during development, not just at the end. If you notice lag or jank, simplify shadow calculations, reduce blur radii, or limit neumorphism to key interactive elements only.

Tools for Creating Neumorphic Designs

Having the right tools makes implementing neumorphism significantly easier. LogRocket and Clay recommend several approaches for creating neumorphic interfaces efficiently.

Design Tools

Figma: Has become the most popular tool for neumorphic design due to its shadow capabilities and extensive plugin ecosystem. Several neumorphism-specific plugins exist that generate shadow values automatically. Figma's component system makes it easy to create consistent neumorphic elements and update them globally.

Adobe XD: Offers robust shadow effects and prototyping capabilities suitable for neumorphic interfaces. While less flexible than Figma for iteration, XD's repeat grid and component features help maintain consistency across designs.

Sketch: Provides layer styles and shadow effects that work well for neumorphism. The tool's shared library features help teams maintain consistent shadow values and design tokens across projects.

CSS Frameworks and Approaches

Tailwind CSS: Can be configured with custom shadow utilities for neumorphism. By extending your tailwind.config.js with custom box-shadow values, you can apply neumorphic effects using utility classes like neu-flat or neu-pressed. This approach provides the benefits of Tailwind's rapid development while enabling neumorphic styling.

CSS Variables: Define your neumorphic shadow values as CSS custom properties for easy reuse and adjustment. A well-structured variable system allows you to change your entire color scheme by modifying just a few variables:

:root {
 --neu-bg: #e0e5ec;
 --neu-light: #ffffff;
 --neu-dark: #a3b1c6;
 --neu-radius-sm: 8px;
 --neu-radius-md: 12px;
 --neu-radius-lg: 20px;
 --neu-shadow-outset: 9px 9px 16px var(--neu-dark), -9px -9px 16px var(--neu-light);
 --neu-shadow-inset: inset 6px 6px 10px var(--neu-dark), inset -6px -6px 10px var(--neu-light);
}

Online Generators

Several neumorphism-specific CSS generators can help you create shadow values without manual calculation:

  • Neumorphism Generator: Allows you to enter your background color and adjust shadow distance, blur, and intensity, then copy the generated CSS
  • CSS Shadow Generator: A more general tool that works well for neumorphic shadow layering
  • Glassmorphism/Neumorphism Generator: Some tools combine both effects for hybrid designs

These generators are particularly useful for experimenting with different background colors or quickly prototyping before committing to specific values.

CSS-in-JS and Component Libraries

For React, Vue, or other component-based frameworks, consider creating reusable neumorphic components that encapsulate the shadow logic:

const NeuButton = ({ pressed, children, ...props }) => (
 <button
 {...props}
 style={{
 background: '#e0e5ec',
 borderRadius: '50px',
 boxShadow: pressed
 ? 'inset 6px 6px 10px #a3b1c6, inset -6px -6px 10px #ffffff'
 : '9px 9px 16px #a3b1c6, -9px -9px 16px #ffffff',
 border: 'none',
 padding: '12px 24px'
 }}
 >
 {children}
 </button>
);

Building neumorphic components into your design system ensures consistency and makes it easy to adjust values globally as your design evolves. Our web development services include implementing such design systems for consistent, maintainable UI development.

Frequently Asked Questions

Ready to Create Modern, Tactile Interfaces?

Our team of UI/UX designers specializes in creating visually stunning, user-friendly interfaces that leverage modern design trends.