Skeuomorphism
Also called skeuomorphic design or realistic UI
A design style where digital controls imitate real objects and materials, such as metal knobs, leather, paper, and physical switches.
import { useState } from 'react';
const TICKS = 11; // from -135° to 135°
const KEY_STEPS: Record<string, number> = {
ArrowUp: 5,
ArrowRight: 5,
ArrowDown: -5,
ArrowLeft: -5
};
export function VolumeKnob() {
const [volume, setVolume] = useState(40); // 0 to 100
const change = (delta: number) =>
setVolume((v) => Math.min(100, Math.max(0, v + delta)));
return (
<div className='relative grid size-36 place-items-center rounded-full bg-neutral-200'>
{Array.from({ length: TICKS }, (_, i) => (
<span
key={i}
className='absolute inset-1 before:absolute before:top-0 before:left-1/2 before:h-2 before:w-0.5 before:bg-neutral-500'
style={{ rotate: `${-135 + i * (270 / (TICKS - 1))}deg` }}
/>
))}
{/* Repeating light and dark bands read as brushed metal. */}
<div
role='slider'
tabIndex={0}
aria-label='Volume'
aria-valuemin={0}
aria-valuemax={100}
aria-valuenow={volume}
onKeyDown={(event) => {
const step = KEY_STEPS[event.key];
if (step === undefined) return;
event.preventDefault();
change(step);
}}
onPointerDown={(event) =>
event.currentTarget.setPointerCapture(event.pointerId)
}
onPointerMove={(event) => {
if (!event.currentTarget.hasPointerCapture(event.pointerId)) return;
change(-event.movementY); // drag up to turn it up
}}
className='relative size-24 touch-none rounded-full bg-[conic-gradient(#d4d4d8,#fafafa,#a1a1aa,#f4f4f5,#d4d4d8,#fafafa,#a1a1aa,#f4f4f5,#d4d4d8)] shadow-[0_6px_12px_rgb(0_0_0/0.35),inset_0_2px_1px_rgb(255_255_255/0.8),inset_0_-2px_2px_rgb(0_0_0/0.2)] focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-blue-500'
>
{/* Only the indicator turns, so the light and shadow stay put. */}
<span
className='absolute inset-0'
style={{ rotate: `${-135 + volume * 2.7}deg` }}
>
<span className='absolute top-2 left-1/2 h-5 w-1 -translate-x-1/2 rounded-full bg-neutral-700' />
</span>
</div>
</div>
);
}Design a skeuomorphic volume knob: a 96px circle with a conic-gradient brushed-metal face, a 0 6px 12px rgba(0, 0, 0, 0.35) drop shadow, an inset top highlight, a small indicator line, and 11 tick marks from -135° to 135°. Rotate it by dragging up and down or with the arrow keys, and expose it as role="slider" with aria-valuenow.
Paste into Layerwise or any AI coding tool.
What is Skeuomorphism?
Skeuomorphism copies the look of physical things so people instantly know how to use them. A volume control looks like a brushed metal knob, a notes app looks like a yellow legal pad, and a switch has a glossy track and a raised thumb. Gradients, textures, highlights, and realistic shadows do the work.
It defined early iPhone apps until iOS 7 moved to flat design in 2013. Today it shows up in music and audio tools, games, calculators, and small moments of delight, such as a tactile toggle in a settings screen.
Detailed textures can feel heavy and dated across a whole app, and they are hard to keep consistent in dark mode. Borrow one or two cues, like a tactile knob or a paper texture, and keep the rest of the interface simple.
Often confused with
- Flat design
- Flat design removes the textures, gradients, and realistic shadows that skeuomorphism relies on, keeping solid colors and simple shapes.
- Neumorphism
- Neumorphism borrows only soft lighting and stays a single flat color. Skeuomorphism imitates specific real-world materials and objects.
Related terms
All termsFlat design
A design style that uses solid colors, simple shapes, and clean type, with no gradients, textures, or realistic shadows.
Neumorphism
A soft UI style where buttons and cards look pushed out of, or pressed into, a surface of the same color, using light and dark shadows.
Liquid glass
Apple’s translucent interface material from 2025 that bends, reflects, and tints the content behind it, with bright highlights along its edges.
Toggle switch
An on/off control shaped like a small track with a sliding knob, used for settings that take effect immediately.
Build it with Layerwise
Describe your app, watch it run in a live preview, and publish it with a database, storage, and sign-in built in.