Web and App implementation guide for Neumorphism (Soft UI). Trigger when user wants soft shadows, extruded appearance, and light source simulation.
date_added
2026-06-17
risk
safe
source
self
source_type
self
Neumorphism (Soft UI)
"Elements extruded from the background material itself, shaped by a singular, persistent light source."
When to Use
Use this sub-style when the user's request matches the aesthetic described above. This is a child reference of the design-it skill and is not meant to be triggered directly.
Core Principles
Unified Surface Color: The background and the elements MUST share the exact same base color.
Dual Shadows: Elements are shaped by two shadows: a light shadow (highlight) on the side facing the light source, and a dark shadow on the opposite side.
: The shape is entirely defined by the shadows.
No Borders
Visual DNA
Colors: Works best with mid-tone neutrals. Desert Mirage, Earth-Grounded Elegance, or Sophisticated Neutral are perfect. Avoid pure white or pure black (shadows/highlights won't show).
Inner shadows (for pressed state) are NOT natively supported in Flutter's BoxShadow.
Use the flutter_inset_box_shadow package OR fake it with a layered Stack: place a Container with a dark gradient overlay on top and a light gradient below.
Set the Scaffold background to the SAME baseColor so elements look extruded.
Compose limitation: Like React Native, Compose Modifier.shadow() only supports a single directional shadow.
For true dual-shadow neumorphism, use a custom Modifier.drawBehind { } with drawIntoCanvas to paint two separate shadow paths (one light, one dark).
The neumorphic-compose library provides a pre-built Modifier.neumorphic() that handles both shadows.
Set the Scaffold background to the same baseColor — this is non-negotiable.
Do's and Don'ts
DO: Use inset shadows for "active" states (like pressed buttons or filled form fields).
DON'T: Rely on Neumorphism for critical elements without secondary indicators. Contrast is inherently low, making it an accessibility nightmare if used improperly.
Limitations
This is a styling reference and does not replace enprojectnment-specific validation, accessibility testing, or expert review.
Ensure appropriate contrast ratios and responsive behaviors are verified separately.