design.allworkin

popular

Neumorphism

Soft emboss on a ceramic control panel.

Best for: Wellness, meditation, low-interaction hardware apps

Not for: High-contrast a11y contexts, data-dense dashboards

Start with this style

Clay Mixer

Specimen

The quick brown fox

primary
secondary
tertiary
background
surface
outline
muted
success
warning
error
onPrimary
onSecondary
onTertiary
onBackground
onSurface
h1 — Design systems for agents
h2 — Design systems for agents
h3 — Design systems for agents
body — Design systems for agents
label — Design systems for agents
caption — Design systems for agents
mono — Design systems for agents
PrimarySecondaryCard
---
version: alpha
name: Neumorphism
description: Soft emboss on a ceramic control panel.
colors:
  primary: "#5B8DEF"
  secondary: "#8B93A1"
  tertiary: "#E8C4C8"
  background: "#E8ECF2"
  surface: "#E8ECF2"
  onPrimary: "#F4F4F5"
  onSecondary: "#F4F4F5"
  onTertiary: "#18181B"
  onBackground: "#18181B"
  onSurface: "#18181B"
  outline: "#D5DBE6"
  muted: "#6F7785"
  success: "#4C9A73"
  warning: "#C4A24A"
  error: "#D06A6A"
typography:
  h1:
    fontFamily: Outfit
    fontSize: 40px
    fontWeight: 600
    lineHeight: 1.12
    letterSpacing: -0.03em
  h2:
    fontFamily: Outfit
    fontSize: 28px
    fontWeight: 600
    lineHeight: 1.2
    letterSpacing: -0.02em
  h3:
    fontFamily: Outfit
    fontSize: 20px
    fontWeight: 600
    lineHeight: 1.3
    letterSpacing: -0.01em
  body:
    fontFamily: Outfit
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.55
    letterSpacing: 0em
  label:
    fontFamily: Outfit
    fontSize: 13px
    fontWeight: 500
    lineHeight: 1.3
    letterSpacing: 0.02em
  caption:
    fontFamily: Outfit
    fontSize: 12px
    fontWeight: 400
    lineHeight: 1.4
    letterSpacing: 0em
  mono:
    fontFamily: JetBrains Mono
    fontSize: 13px
    fontWeight: 500
    lineHeight: 1.45
    letterSpacing: 0em
rounded:
  sm: 12px
  md: 16px
  lg: 22px
  xl: 28px
  full: 999px
spacing:
  xs: 4px
  sm: 8px
  md: 16px
  lg: 24px
  xl: 32px
  2xl: 48px
  3xl: 64px
components:
  navbar:
    backgroundColor: "{colors.background}"
    textColor: "{colors.onBackground}"
  hero:
    backgroundColor: "{colors.background}"
    textColor: "{colors.onBackground}"
  stat:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.onSurface}"
    rounded: "{rounded.lg}"
  slider:
    backgroundColor: "{colors.primary}"
    rounded: "{rounded.full}"
  toggle:
    backgroundColor: "{colors.primary}"
    rounded: "{rounded.full}"
    size: 51px
  footer:
    backgroundColor: "{colors.background}"
    textColor: "{colors.muted}"
---

# Neumorphism

## Overview

Soft emboss on a ceramic control panel. The atmosphere is daily-app balanced, predictable and symmetric, with fluid CSS motion. Tone: soft, tactile, calm. Density 5/10, variance 3/10, motion 5/10. Material: Surface equals background. Raised = dual box-shadow; inputs/pressed = inset. One light from top-left.

How to use: Place this file at the repository root. Tell Cursor / Claude Code / Codex: read DESIGN.md and obey its tokens and Do/Don'ts.

## Colors

Semantic roles for the light theme. Keep a single accent; do not introduce a second brand hue.

- **primary** (`#5B8DEF`)
- **secondary** (`#8B93A1`)
- **tertiary** (`#E8C4C8`)
- **background** (`#E8ECF2`)
- **surface** (`#E8ECF2`)
- **outline** (`#D5DBE6`)
- **muted** (`#6F7785`)
- **success** (`#4C9A73`)
- **warning** (`#C4A24A`)
- **error** (`#D06A6A`)
- **onPrimary** (`#F4F4F5`)
- **onSecondary** (`#F4F4F5`)
- **onTertiary** (`#18181B`)
- **onBackground** (`#18181B`)
- **onSurface** (`#18181B`)

## Typography

Hierarchy comes from weight and size, not from shouting. Body line length stays near 65 characters.

- **h1**: Outfit 600 / 40px / 1.12 / -0.03em
- **h2**: Outfit 600 / 28px / 1.2 / -0.02em
- **h3**: Outfit 600 / 20px / 1.3 / -0.01em
- **body**: Outfit 400 / 16px / 1.55 / 0em
- **label**: Outfit 500 / 13px / 1.3 / 0.02em
- **caption**: Outfit 400 / 12px / 1.4 / 0em
- **mono**: "JetBrains Mono" 500 / 13px / 1.45 / 0em

## Layout

Spacing scale: xs=4px, sm=8px, md=16px, lg=24px, xl=32px, 2xl=48px, 3xl=64px.

iOS: 44pt targets, respect Safe Area and Dynamic Type, SF Symbols, Large Titles and grouped lists.

Web: mobile-first, single column below 768px, body ≥ 16px, clamp() headlines, max-width 1120–1400px, min-h-[100dvh] for full-height sections.

Every element occupies its own spatial zone. No overlapping hero text. Collapse multi-column layouts below 768px.

## Elevation & Depth

- sm: `6px 6px 12px #c5c9d1, -6px -6px 12px #ffffff`
- md: `10px 10px 20px #c5c9d1, -10px -10px 20px #ffffff`
- lg: `16px 16px 32px #c5c9d1, -16px -16px 32px #ffffff`
- surface: `neu`
- inset: `inset 8px 8px 16px #c5c9d1, inset -8px -8px 16px #ffffff`
- recipe: Surface equals background. Raised = dual box-shadow; inputs/pressed = inset. One light from top-left.

Tint shadows toward the background hue. High-density layouts may replace cards with hairline dividers.
Neumorphic fill equals the background. Raised uses dual shadows; inputs/pressed use inset.

## Shapes

Radius scale: sm=12px, md=16px, lg=22px, xl=28px, full=999px.

## Components

- **Navbar** (`web.navbar` / default / md): Desktop nav with logo, icon links, and one primary CTA.
- **Hero** (`web.hero` / left / lg): Hero uses left layout, one CTA, no "Scroll to explore".
- **Stat** (`stat` / default / md): Numbers in mono, labels in quiet uppercase.
- **Slider** (`slider` / default / md): Volume/brightness slider; track and thumb use primary.
- **Slider** (`slider` / default / md): Volume/brightness slider; track and thumb use primary.
- **Slider** (`slider` / default / md): Volume/brightness slider; track and thumb use primary.
- **Toggle** (`toggle` / on / md): Capsule switch; on-state uses primary.
- **Footer** (`web.footer` / default / md): Quiet footer with clear link groups.

## Do's and Don'ts

### Do
- Use semantic color tokens, never raw hex in components.
- Keep a single accent; hierarchy comes from type weight and space.
- Define default, hover, focus-visible, pressed, disabled, and loading states.
- Meet WCAG 2.2 AA contrast for body text and interactive labels.
- Touch targets are at least 44×44pt on iOS and 44px on web.
- Pair emboss with a single light source from the top-left.

### Don't
- Do not use Inter as the display face for premium work.
- Do not use pure black #000000 for large surfaces.
- Do not add neon outer glows or custom mouse cursors.
- Do not ship three equal feature cards as the default layout.
- Do not hide focus rings or drop below AA contrast.
- Do not rely on neumorphic fills for text contrast.