Skip to content
Run here 100% in your browser, no upload, no login

Neumorphism Generator

Shape a soft UI card with paired shadows and copy the neumorphic CSS.

Live preview

Soft UI

Neumorphism depends on the card and the surface sharing one base color: the two shadows are a darkened and a lightened version of that same color.

Generated CSS

How to use it

  1. Pick a Base color. The card and the surface around it share this colour; that shared colour is what makes the effect work.
  2. Move Size and Corner radius to shape the card.
  3. Set Distance for how far the shadows reach and Intensity for how far the two shadow colours sit from the base colour.
  4. Choose a Shape: raised draws both shadows outside, pressed draws them inside, flat draws none.
  5. Copy the CSS. The comment line records the two derived shadow colours so you can reuse them elsewhere.

Common use cases

Why it stays private

Colour maths and preview rendering run in your browser. No palette, screenshot or snippet is uploaded.

FAQ

Q: Why does the effect disappear on a white or black background? A: Both shadows are derived from the base colour by darkening and lightening it. Near white or near black there is no room to move in one direction, so one shadow vanishes.

Q: How do I make a pressed state for a button? A: Generate the raised variant for the resting state and the pressed variant for :active, keeping every other value identical so only the shadow direction changes.

Q: Is this accessible? A: Neumorphic controls often have low contrast against their surface, and shadows alone do not convey state to assistive technology. Keep visible labels, focus rings and a contrast ratio that passes your target level.

Your data stays on this device

Neumorphism Generator runs 100% locally. Everything you paste or drop is processed by your own browser and never transmitted. Nothing is stored on our servers — close the tab and it is gone.

Nothing you type is sent to a server, logged, or used for analytics. The page works even with your network disconnected after first load.