01Work 02Impact 03About 04Experience 05Stack 06Contact 07Lab
CRSR 0.000 · 0.000
SCRL 0.00 %
← lab / experiments
07 / Lab EXPERIMENT · LIVE

Morphism, three ways.

Skeuomorphism, neumorphism and glassmorphism are three answers to one question: how do you make pixels feel physical? Same card, same content, three completely different visual languages. Hit a tab and watch it morph — the environment changes too, because each style needs its own.

Skeuomorphism
Nightdrive
Parallel Suns

// In their natural habitat — EACH NEEDS ITS OWN ROOM

The morpher shares one canvas, but each language actually leans on a different backdrop to work. Here's the same little settings card, three times, each shown in the environment its effects were built for.

Playback

Shuffle

Skeuomorphism

2007–2013 · the iOS 6 era

Imitates real materials — leather, brushed metal, glossy plastic. Layered gradients, inset textures and heavy drop shadows tell your eye an element is a physical, pressable thing.

/* depth from real light + material */
background: linear-gradient(160deg,#4a4038,#2e2721);
box-shadow: 0 20px 46px rgba(0,0,0,.6),
            inset 0 1px 0 rgba(255,255,255,.13);
Reads dated & heavy if you over-gloss it

Playback

Shuffle

Neumorphism

2020 · soft UI

One background colour, no borders. The element is the same colour as its container and gets two shadows — light top-left, dark bottom-right — so it looks extruded from the surface, or pressed into it.

/* element == background colour */
background: #e0e5ec;
box-shadow: 9px 9px 18px #b8bec7,
            -9px -9px 18px #ffffff;
Low contrast — a real accessibility risk

Playback

Shuffle

Glassmorphism

2013 iOS 7 · revived 2020, macOS Big Sur

Frosted, translucent panels floating above a vivid background. A backdrop blur, a thin light border and a soft shadow sell the illusion of layered, semi-transparent glass.

/* blur whatever sits behind */
background: rgba(255,255,255,.12);
backdrop-filter: blur(16px) saturate(150%);
border: 1px solid rgba(255,255,255,.28);
Needs a colourful backdrop or the blur is invisible
// Side by side — QUICK REFERENCE
traitSkeuomorphismNeumorphismGlassmorphism
core ideaMimic real objectsExtrude from the backgroundFrosted glass over colour
backgroundRich textures & gradientsOne flat muted colourVivid & colourful
shadowsDeep, realisticDual (light + dark)One soft ambient
bordersBevels & highlightsNone — shadows do itThin, light, translucent
key cssgradient + box-shadowdual box-shadow / insetbackdrop-filter: blur()
contrastHighLow (its weak spot)Depends on backdrop
watch forDated if overdoneWeak affordance / a11yReadability & GPU cost

The whole thing is just CSS.
No canvas, no images.