Realistic, tactile design that mimics physical materials: leather, metal, wood, paper. Use this when you want to communicate luxury, familiarity, or nostalgia—perfect for wallets, note apps, premium products, and retro-inspired interfaces that feel tangible and trustworthy.
Skeuomorphism is a design philosophy that creates digital interfaces resembling their real-world counterparts. Key characteristics:
Historical context: Dominant in iOS 6-7 era (leather calendar, wooden bookshelves). Replaced by flat design, now resurging in luxury brands, audio interfaces, and retro-conscious products.
/* Leather: warm brown, soft edges, subtle texture */
.leather {
background: linear-gradient(135deg, #8B6F47 0%, #6B5432 50%, #5A4A2A 100%);
background-image:
url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><filter id="noise"><feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="4"/></filter><rect width="100" height="100" fill="%238B6F47" filter="url(%23noise)" opacity="0.05"/></svg>');
border-radius: 8px;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.4),
inset 0 -2px 3px rgba(0, 0, 0, 0.3),
0 4px 8px rgba(0, 0, 0, 0.4);
padding: 24px;
}
/* Metal: cold grays, sharp reflections, high contrast */
.metal {
background: linear-gradient(90deg, #E8E8E8 0%, #D4D4D4 20%, #C0C0C0 50%, #D4D4D4 80%, #E8E8E8 100%);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.8),
inset 0 -1px 2px rgba(0, 0, 0, 0.5),
0 2px 4px rgba(0, 0, 0, 0.5);
border: 1px solid #999;
}
/* Wood: warm orange-browns, vertical grain, organic flow */
.wood {
background:
linear-gradient(90deg,
transparent 0%,
rgba(0, 0, 0, 0.1) 10%,
transparent 20%,
rgba(255, 255, 255, 0.1) 40%),
linear-gradient(180deg, #A0692F 0%, #8B5A3C 50%, #704D2C 100%);
background-size: 4px 100%, 100% 100%;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.3),
0 4px 8px rgba(0, 0, 0, 0.4);
}
/* Glass: transparent with subtle frosting */
.glass {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.3);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.4),
0 8px 16px rgba(0, 0, 0, 0.2);
}
/* Paper: warm white, subtle shadow, torn edge effect */
.paper {
background: #F5F1E8;
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.1),
0 8px 16px rgba(0, 0, 0, 0.08);
border: 1px solid #E0D9CC;
}
.btn-skeu-metal {
background: linear-gradient(180deg, #F0F0F0 0%, #D0D0D0 50%, #B0B0B0 100%);
border: 1px solid #666;
border-radius: 6px;
padding: 12px 24px;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.6),
inset 0 -2px 3px rgba(0, 0, 0, 0.3),
0 4px 6px rgba(0, 0, 0, 0.3);
font-weight: 600;
cursor: pointer;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
}
.btn-skeu-metal:active {
box-shadow:
inset 0 2px 3px rgba(0, 0, 0, 0.3),
0 2px 3px rgba(0, 0, 0, 0.2);
}
.card-skeu-leather {
background: linear-gradient(135deg, #8B6F47 0%, #6B5432 50%, #5A4A2A 100%);
border-radius: 8px;
padding: 32px;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.2),
inset 0 -3px 6px rgba(0, 0, 0, 0.4),
0 8px 20px rgba(0, 0, 0, 0.5);
color: #F5E6D3;
position: relative;
}
.card-skeu-leather::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg,
rgba(255, 255, 255, 0) 0%,
rgba(255, 255, 255, 0.3) 50%,
rgba(255, 255, 255, 0) 100%);
}
.card-skeu-leather h2 {
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.input-skeu-paper {
background: #F5F1E8;
border: 1px solid #D4CCBB;
border-radius: 4px;
padding: 12px 16px;
box-shadow:
inset 0 1px 2px rgba(0, 0, 0, 0.05),
0 2px 4px rgba(0, 0, 0, 0.08);
font-size: 1rem;
font-family: Georgia, serif;
}
.input-skeu-paper:focus {
outline: none;
box-shadow:
inset 0 1px 2px rgba(0, 0, 0, 0.05),
0 0 0 3px rgba(139, 111, 71, 0.2),
0 2px 4px rgba(0, 0, 0, 0.08);
}
When generating skeuomorphic design:
For React (Leather Wallet Component):
const SkeuomorphicWallet = ({ balance }) => (
<div style={{
background: 'linear-gradient(135deg, #8B6F47 0%, #6B5432 50%, #5A4A2A 100%)',
borderRadius: '8px',
padding: '32px',
color: '#F5E6D3',
boxShadow: 'inset 0 1px 0 rgba(255,255,255,0.2), inset 0 -3px 6px rgba(0,0,0,0.4), 0 8px 20px rgba(0,0,0,0.5)',
}}>
<h2 style={{ textShadow: '1px 1px 2px rgba(0,0,0,0.5)' }}>Balance</h2>
<p style={{ fontSize: '2.5rem', fontWeight: 700, textShadow: '2px 2px 4px rgba(0,0,0,0.4)' }}>
${balance}
</p>
</div>
);
Output (Skeuomorphism/Leather):
<div style={{
background: 'linear-gradient(135deg, #8B6F47 0%, #6B5432 50%, #5A4A2A 100%)',
borderRadius: '12px',
padding: '28px',
color: '#F5E6D3',
boxShadow: 'inset 0 1px 0 rgba(255,255,255,0.2), inset 0 -3px 6px rgba(0,0,0,0.4), 0 10px 25px rgba(0,0,0,0.5)',
fontFamily: 'Georgia, serif',
}}>
<h3 style={{ fontSize: '0.875rem', letterSpacing: '0.05em', textTransform: 'uppercase' }}>
Checking Account
</h3>
<p style={{ fontSize: '1.75rem', fontWeight: 700, margin: '12px 0', textShadow: '1px 1px 2px rgba(0,0,0,0.5)' }}>
$12,450.00
</p>
</div>
Output (Skeuomorphism/Metal):
<div style={{
width: '80px',
height: '80px',
borderRadius: '50%',
background: 'radial-gradient(circle at 30% 30%, #F0F0F0 0%, #D0D0D0 50%, #808080 100%)',
boxShadow: 'inset 0 2px 4px rgba(255,255,255,0.4), inset 0 -2px 4px rgba(0,0,0,0.5), 0 8px 16px rgba(0,0,0,0.4)',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
cursor: 'pointer',
}}>
<div style={{
width: '4px',
height: '20px',
background: '#333',
borderRadius: '2px',
}} />
</div>