website_designs

Claymorphism Design Reference

Claymorphism is a UI design trend coined by Michal Malewicz (Hype4 Academy) that gives interface elements a soft, inflated, 3D clay-like appearance. Elements look as if molded from Play-Doh or clay, floating above the background with puffy, tactile surfaces. Unlike Neumorphism (where elements extrude from the background), claymorphic elements float on top of the background using outer shadows for separation and inner shadows for the illusion of volume and inflation.


Visual Characteristics

Core Design Traits

Design Principles


Color Palette

Primary Scheme

Claymorphism demands bright pastels and vivid colors. Drop shadows become ineffective on darker variations, so foregrounds and backgrounds should stay in the lighter pastel range.

Role Colors Hex (suggested)
Background Soft white, light lavender, light mint #F5F5FA, #F0EEFF, #EEFBF5
Card surfaces White, soft pastels #FFFFFF, #FFF5F5, #F0F4FF
Primary accent Vivid coral / red #F76D6D, #FF6B6B
Secondary accent Bright sky blue #62CDFF, #6CB4EE
Tertiary accent Soft purple / lavender #D6A2FF, #AA3FFE
Success Pastel green #7AE582, #82D993
Warm accent Soft amber / peach #FFB347, #FFCBA4
Text (dark) Deep blue-gray #2D3557, #333652
Text (light) Off-white #F1F1F1, #FAFAFA

Suggested CSS Custom Properties

:root {
  /* Backgrounds */
  --clay-bg-primary: #f5f5fa;
  --clay-bg-secondary: #eee8ff;
  --clay-bg-tertiary: #eefbf5;

  /* Surface colors (cards, elements) */
  --clay-surface-white: #ffffff;
  --clay-surface-coral: #f76d6d;
  --clay-surface-blue: #62cdff;
  --clay-surface-purple: #d6a2ff;
  --clay-surface-green: #7ae582;
  --clay-surface-peach: #ffb347;
  --clay-surface-pink: #ff9eb5;
  --clay-surface-mint: #a8e6cf;

  /* Text */
  --clay-text-dark: #2d3557;
  --clay-text-medium: #555b7a;
  --clay-text-light: #f1f1f1;

  /* Shadows (base colors for rgba manipulation) */
  --clay-shadow-purple: rgba(170, 63, 254, 0.42);
  --clay-shadow-coral: rgba(247, 109, 109, 0.40);
  --clay-shadow-blue: rgba(98, 205, 255, 0.40);
}

Color Guidelines


Typography

Typeface Characteristics

Claymorphism typography should be:

Font Style Usage
Nunito Rounded sans-serif, soft terminals Headlines, body text (ideal match for claymorphism)
Nunito Sans Clean companion to Nunito Body text, UI labels
Quicksand Rounded geometric sans Headlines, cards, buttons
Comfortaa Rounded geometric, friendly Display headings, logos
Poppins Geometric sans, versatile weights All-purpose: headings + body
Varela Round Single-weight rounded sans UI elements, labels
DM Sans Clean geometric sans Body text, smaller UI copy

Typography CSS Example

/* Import fonts */
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&family=Quicksand:wght@500;600;700&display=swap');

/* Headlines */
h1, h2, h3 {
  font-family: 'Quicksand', 'Nunito', sans-serif;
  font-weight: 700;
  color: var(--clay-text-dark);
  line-height: 1.2;
}

/* Display / Hero text */
.clay-display {
  font-family: 'Quicksand', sans-serif;
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.1;
}

/* Body text */
body {
  font-family: 'Nunito', sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--clay-text-dark);
}

/* Bold UI labels / buttons */
.clay-label {
  font-family: 'Nunito', sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  text-transform: none; /* avoid uppercase -- it feels too rigid for clay */
}

Layout Principles

Grid and Structure

Section Organization


CSS/Design Techniques

The Claymorphism Shadow Formula

The core visual effect relies on combining two inset shadows (one dark, one light) with one outer shadow:

box-shadow:
  [outer-x] [outer-y] [outer-blur] [outer-color],        /* depth/float */
  inset [dark-x] [dark-y] [dark-blur] [dark-color],       /* volume/concavity */
  inset [light-x] [light-y] [light-blur] [light-color];   /* highlight/inflation */

Basic Claymorphic Card

.clay-card {
  background: #ffffff;
  border-radius: 40px;
  padding: 48px;
  box-shadow:
    0 35px 68px 0 rgba(145, 112, 201, 0.25),
    inset 0 -8px 16px 0 rgba(145, 112, 201, 0.15),
    inset 0 12px 24px 0 rgba(255, 255, 255, 0.9);
}

Colored Claymorphic Element

.clay-coral {
  background: #f76d6d;
  border-radius: 40px;
  padding: 48px;
  color: #f1f1f1;
  box-shadow:
    12px 12px 24px rgba(200, 80, 80, 0.4),
    inset -8px -8px 16px rgba(180, 50, 50, 0.3),
    inset 8px 8px 16px rgba(255, 180, 180, 0.5);
}

Blue Variation

.clay-blue {
  background: #62cdff;
  border-radius: 40px;
  padding: 48px;
  box-shadow:
    12px 12px 24px rgba(60, 150, 200, 0.35),
    inset -8px -8px 16px rgba(40, 120, 180, 0.3),
    inset 8px 8px 16px rgba(180, 230, 255, 0.6);
}

Purple Variation

.clay-purple {
  background: #d6a2ff;
  border-radius: 48px;
  padding: 48px;
  box-shadow:
    0 35px 68px 0 rgba(170, 63, 254, 0.42),
    inset 0 -8px 16px 0 rgba(140, 40, 220, 0.3),
    inset 0 12px 24px 0 rgba(240, 210, 255, 0.6);
}

Green Variation (HSL approach)

.clay-green {
  background: hsl(120deg 35% 82%);
  border-radius: 50px;
  padding: 50px;
  color: hsl(120deg 5% 35%);
  box-shadow:
    34px 34px 68px hsl(120deg 10% 50%),
    inset -8px -8px 16px hsl(120deg 20% 50% / 0.7),
    inset 0 14px 28px hsl(120deg 20% 95%);
}

Warm Brown Variation

.clay-brown {
  background: rgba(165, 79, 29, 0.6);
  border-radius: 30px;
  padding: 40px;
  box-shadow:
    0.8em 0.8em 2em rgba(165, 79, 29, 0.6),
    inset -0.6em -0.6em 1em rgba(165, 79, 29, 0.6),
    inset 0.4em 0.4em 0.5em rgba(245, 230, 221, 0.6);
}

Claymorphic Button

.clay-button {
  background: var(--clay-surface-coral);
  color: var(--clay-text-light);
  border: none;
  border-radius: 20px;
  padding: 16px 36px;
  font-family: 'Nunito', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  box-shadow:
    8px 8px 20px rgba(200, 80, 80, 0.35),
    inset -4px -4px 10px rgba(180, 50, 50, 0.25),
    inset 4px 4px 10px rgba(255, 180, 180, 0.45);
}

.clay-button:hover {
  transform: translateY(-2px);
  box-shadow:
    10px 12px 24px rgba(200, 80, 80, 0.45),
    inset -4px -4px 10px rgba(180, 50, 50, 0.25),
    inset 4px 4px 10px rgba(255, 180, 180, 0.5);
}

.clay-button:active {
  transform: translateY(1px);
  box-shadow:
    4px 4px 12px rgba(200, 80, 80, 0.3),
    inset -6px -6px 14px rgba(180, 50, 50, 0.35),
    inset 6px 6px 14px rgba(255, 180, 180, 0.35);
}

Claymorphic Input Field

.clay-input {
  background: #ffffff;
  border: none;
  border-radius: 20px;
  padding: 16px 24px;
  font-family: 'Nunito', sans-serif;
  font-size: 1rem;
  color: var(--clay-text-dark);
  outline: none;
  box-shadow:
    6px 6px 16px rgba(145, 112, 201, 0.15),
    inset -4px -4px 8px rgba(145, 112, 201, 0.08),
    inset 4px 4px 8px rgba(255, 255, 255, 0.8);
}

.clay-input:focus {
  box-shadow:
    8px 8px 20px rgba(145, 112, 201, 0.25),
    inset -4px -4px 10px rgba(145, 112, 201, 0.12),
    inset 4px 4px 10px rgba(255, 255, 255, 0.9);
}

Claymorphism + Glassmorphism Hybrid

Combining clay shadows with glass transparency for a layered effect:

.clay-glass {
  background: rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  border-radius: 30px;
  padding: 48px;
  box-shadow:
    0 35px 68px 0 rgba(170, 63, 254, 0.42),
    inset 0 -8px 16px 0 #d6a2ff;
}

Drop Shadow Alternative (for non-rectangular shapes)

.clay-shape {
  filter: drop-shadow(34px 34px 34px hsl(120deg 10% 50%));
}

Using clay.css Library

For rapid prototyping, the clay.css micro-library provides a single .clay class with CSS custom properties:

<link rel="stylesheet" href="https://unpkg.com/claymorphism-css/dist/clay.css"/>

<div class="clay" style="
  --clay-background: #f76d6d;
  --clay-border-radius: 48px;
  padding: 48px;
  color: #f1f1f1;
">
  Content here
</div>

Available CSS variables:

Tailwind CSS Configuration

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      boxShadow: {
        'clay-card': `
          inset -10px -10px 20px hsl(302deg 25% 50% / 0.7),
          inset 0 16px 32px hsl(302deg 25% 95%)
        `,
        'clay-btn': `
          16px 16px 32px 0 hsl(277deg 50% 65% / 0.5),
          inset -16px -16px 32px 0 hsl(277deg 50% 65%),
          inset 8px 8px 16px 0 hsl(227deg 65% 75% / 0.45)
        `,
      },
      dropShadow: {
        'clay': '35px 35px 35px hsl(302deg 25% 50%)',
      },
      borderRadius: {
        'clay': '40px',
        'clay-lg': '50px',
      },
    },
  },
};

Shadow Construction Guide

Building claymorphic shadows from any base color requires three shadow layers:

Layer Direction Purpose Color Derivation
Outer shadow Positive X/Y (e.g. 12px 12px) Creates floating/depth effect Base color darkened, 30-45% opacity
Inset dark Negative X/Y (e.g. inset -8px -8px) Creates concavity/volume Base color darkened 20-30%, 30-70% opacity
Inset light Positive X/Y (e.g. inset 8px 8px) Creates highlight/inflation Base color lightened heavily, 50-90% opacity

Shadow Recipe for Any Color

/* Given a base color, e.g. #62CDFF (blue): */
.clay-element {
  background: #62CDFF;                    /* base color */
  border-radius: 40px;                    /* generous rounding */
  box-shadow:
    12px 12px 24px rgba(50, 140, 200, 0.35),     /* outer: darker hue, ~35% opacity */
    inset -8px -8px 16px rgba(30, 110, 170, 0.3), /* inset dark: much darker, ~30% opacity */
    inset 8px 8px 16px rgba(180, 230, 255, 0.6);  /* inset light: very light tint, ~60% opacity */
}

Aesthetic Relationship to Claymorphism
Neumorphism Predecessor; elements extrude from background vs. claymorphism where they float above it; neumorphism is monochromatic while claymorphism uses vivid colors
Glassmorphism Contemporary; uses transparency and blur vs. claymorphism’s opaque, inflated surfaces; they can be combined
Skeuomorphism Ancestor; claymorphism borrows the tactile, physical-object metaphor but abstracts it into playful clay forms
Corporate Memphis Shares the friendly, colorful, rounded illustration style; often paired with claymorphic UI elements
Minimalism Claymorphism applies minimalist content principles with maximum surface treatment

Quick-Start: Minimal Claymorphism Page Template

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Claymorphism Page</title>
  <link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&family=Quicksand:wght@500;600;700&display=swap" rel="stylesheet">
  <style>
    :root {
      --clay-bg: #f0eeff;
      --clay-text: #2d3557;
      --clay-surface: #ffffff;
      --clay-coral: #f76d6d;
      --clay-blue: #62cdff;
      --clay-purple: #d6a2ff;
    }

    * { margin: 0; padding: 0; box-sizing: border-box; }

    body {
      background: var(--clay-bg);
      color: var(--clay-text);
      font-family: 'Nunito', sans-serif;
      font-weight: 400;
      line-height: 1.6;
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 4rem 2rem;
      gap: 3rem;
    }

    h1, h2, h3 {
      font-family: 'Quicksand', sans-serif;
      font-weight: 700;
    }

    .hero {
      text-align: center;
      padding: 3rem;
    }

    .hero h1 {
      font-size: clamp(2.5rem, 6vw, 4.5rem);
      line-height: 1.1;
      margin-bottom: 1rem;
    }

    .clay-card {
      background: var(--clay-surface);
      border-radius: 40px;
      padding: 48px;
      max-width: 600px;
      width: 100%;
      box-shadow:
        0 30px 60px rgba(145, 112, 201, 0.2),
        inset 0 -6px 12px rgba(145, 112, 201, 0.1),
        inset 0 10px 20px rgba(255, 255, 255, 0.9);
    }

    .clay-card h2 {
      margin-bottom: 1rem;
    }

    .clay-button {
      display: inline-block;
      background: var(--clay-coral);
      color: #f1f1f1;
      border: none;
      border-radius: 20px;
      padding: 14px 32px;
      font-family: 'Nunito', sans-serif;
      font-weight: 700;
      font-size: 1rem;
      cursor: pointer;
      margin-top: 1.5rem;
      transition: transform 0.2s ease, box-shadow 0.2s ease;
      box-shadow:
        8px 8px 20px rgba(200, 80, 80, 0.35),
        inset -4px -4px 10px rgba(180, 50, 50, 0.25),
        inset 4px 4px 10px rgba(255, 180, 180, 0.45);
    }

    .clay-button:hover {
      transform: translateY(-2px);
    }
  </style>
</head>
<body>
  <div class="hero">
    <h1>Claymorphism</h1>
    <p>Soft, puffy, and delightfully tactile UI design</p>
  </div>
  <div class="clay-card">
    <h2>Hello, Clay World</h2>
    <p>This card demonstrates the core claymorphic effect: an outer shadow for floating depth, an inner dark shadow for volume, and an inner light shadow for the inflated highlight.</p>
    <button class="clay-button">Touch Me</button>
  </div>
</body>
</html>