Home
cd ../playbooks
Developer ToolsBeginner

Minimalist UI Design Skill: Editorial, Monochrome Interfaces

A frontend design system that enforces warm monochrome, bento grids, and editorial typography — the Notion/Linear look, banned from gradients, heavy shadows, and Inter

5 minutes
By Leonxlnx (Taste Skill)Source
#frontend#minimalist#editorial#design-system#ui

Every AI-built UI defaults to Inter, blue gradients, and shadow-lg cards. This playbook forces the opposite: warm off-white canvases, editorial serif headings, pastel accents used only for semantic meaning, and shadows so subtle they're almost invisible.

Who it's for: frontend developers, indie hackers building SaaS products, designers prototyping with Claude Code, teams who want a Notion or Linear look without a design team

Example

"Build a settings page for my app" → A warm off-white interface with a serif page heading, 1px bordered cards with no shadow, pale pastel status badges, and macOS-style faux window chrome for embedded previews, instead of a generic Tailwind template

CLAUDE.md Template

New here? 3-minute setup guide → | Already set up? Copy the template below.

# Premium Utilitarian Minimalism & Editorial UI

Clean editorial-style interfaces. Warm monochrome palette, typographic contrast, flat bento grids, muted pastels. No gradients, no heavy shadows.

## Protocol Overview

**Name:** Premium Utilitarian Minimalism & Editorial UI

**Description:** An advanced frontend engineering directive for generating highly refined, ultra-minimalist, "document-style" web interfaces analogous to top-tier workspace platforms. This protocol strictly enforces a high-contrast warm monochrome palette, bespoke typographic hierarchies, meticulous structural macro-whitespace, bento-grid layouts, and an ultra-flat component architecture with deliberate muted pastel accents. It actively rejects standard generic SaaS design trends.

## Absolute Negative Constraints (Banned Elements)

The AI must strictly avoid the following generic web development defaults:

- DO NOT use the "Inter", "Roboto", or "Open Sans" typefaces.
- DO NOT use generic, thin-line icon libraries like "Lucide", "Feather", or standard "Heroicons".
- DO NOT use Tailwind's default heavy drop shadows (e.g., `shadow-md`, `shadow-lg`, `shadow-xl`). Shadows must be practically non-existent or heavily customized to be ultra-diffuse and low opacity (< 0.05).
- DO NOT use primary colored backgrounds for large elements or sections (e.g., no bright blue, green, or red hero sections).
- DO NOT use gradients, neon colors, or 3D glassmorphism (beyond subtle navbar blurs).
- DO NOT use `rounded-full` (pill shapes) for large containers, cards, or primary buttons.
- DO NOT use emojis anywhere in code, markup, text content, headings, or alt text. Replace with proper icons or clean SVG primitives.
- DO NOT use generic placeholder names like "John Doe", "Acme Corp", or "Lorem Ipsum". Use realistic, contextual content.
- DO NOT use AI copywriting clichés: "Elevate", "Seamless", "Unleash", "Next-Gen", "Game-changer", "Delve". Write plain, specific language.

## Typographic Architecture

The interface must rely on extreme typographic contrast and premium font selection to establish an editorial feel.

- **Primary Sans-Serif (Body, UI, Buttons):** Use clean, geometric, or system-native fonts with character. Target: `font-family: 'SF Pro Display', 'Geist Sans', 'Helvetica Neue', 'Switzer', sans-serif`.
- **Editorial Serif (Hero Headings & Quotes):** Target: `font-family: 'Lyon Text', 'Newsreader', 'Playfair Display', 'Instrument Serif', serif`. Apply tight tracking (`letter-spacing: -0.02em` to `-0.04em`) and tight line-height (`1.1`).
- **Monospace (Code, Keystrokes, Meta-data):** Target: `font-family: 'Geist Mono', 'SF Mono', 'JetBrains Mono', monospace`.
- **Text Colors:** Body text must never be absolute black (`#000000`). Use off-black/charcoal (`#111111` or `#2F3437`) with a generous `line-height` of `1.6` for legibility. Secondary text should be muted gray (`#787774`).

## Color Palette (Warm Monochrome + Spot Pastels)

Color is a scarce resource, utilized only for semantic meaning or subtle accents.

- **Canvas / Background:** Pure White `#FFFFFF` or Warm Bone/Off-White `#F7F6F3` / `#FBFBFA`.
- **Primary Surface (Cards):** `#FFFFFF` or `#F9F9F8`.
- **Structural Borders / Dividers:** Ultra-light gray `#EAEAEA` or `rgba(0,0,0,0.06)`.
- **Accent Colors:** Exclusively use highly desaturated, washed-out pastels for tags, inline code backgrounds, or subtle icon backgrounds.
  - Pale Red: `#FDEBEC` (Text: `#9F2F2D`)
  - Pale Blue: `#E1F3FE` (Text: `#1F6C9F`)
  - Pale Green: `#EDF3EC` (Text: `#346538`)
  - Pale Yellow: `#FBF3DB` (Text: `#956400`)

## Component Specifications

- **Bento Box Feature Grids:**
  - Utilize asymmetrical CSS Grid layouts.
  - Cards must have exactly `border: 1px solid #EAEAEA`.
  - Border-radius must be crisp: `8px` or `12px` maximum.
  - Internal padding must be generous (e.g., `24px` to `40px`).
- **Primary Call-To-Action (Buttons):**
  - Solid background `#111111`, text `#FFFFFF`.
  - Slight border-radius (`4px` to `6px`). No box-shadow.
  - Hover state should be a subtle color shift to `#333333` or a micro-scale `transform: scale(0.98)`.
- **Tags & Status Badges:**
  - Pill-shaped (`border-radius: 9999px`), very small typography (`text-xs`), uppercase with wide tracking (`letter-spacing: 0.05em`).
  - Background must use the defined Muted Pastels.
- **Accordions (FAQ):**
  - Strip all container boxes. Separate items only with a `border-bottom: 1px solid #EAEAEA`.
  - Use a clean, sharp `+` and `-` icon for the toggle state.
- **Keystroke Micro-UIs:**
  - Render shortcuts as physical keys using `<kbd>` tags: `border: 1px solid #EAEAEA`, `border-radius: 4px`, `background: #F7F6F3`, using the Monospace font.
- **Faux-OS Window Chrome:**
  - When mocking up software, wrap it in a minimalist container with a white top bar containing three small, light gray circles (replicating macOS window controls).

## Iconography & Imagery Directives

- **System Icons:** Use "Phosphor Icons (Bold or Fill weights)" or "Radix UI Icons" for a technical, slightly thicker-stroke aesthetic. Standardize stroke width across all icons.
- **Illustrations:** Monochromatic, rough continuous-line ink sketches on a white background, featuring a single offset geometric shape filled with a muted pastel color.
- **Photography:** Use high-quality, desaturated images with a warm tone. Apply subtle overlays (`opacity: 0.04` warm grain) to blend photos into the monochrome palette. Never use oversaturated stock photos. Use reliable placeholders like `https://picsum.photos/seed/{context}/1200/800` when real assets are unavailable.
- **Hero & Section Backgrounds:** Sections should not feel empty and flat. Use subtle full-width background imagery at very low opacity, soft radial light spots (`radial-gradient` with warm tones at `opacity: 0.03`), or minimal geometric line patterns to add depth without breaking the clean aesthetic.

## Subtle Motion & Micro-Animations

Motion should feel invisible — present but never distracting. The goal is quiet sophistication, not spectacle.

- **Scroll Entry:** Elements fade in gently as they enter the viewport. Use `translateY(12px)` + `opacity: 0` resolving over `600ms` with `cubic-bezier(0.16, 1, 0.3, 1)`. Use `IntersectionObserver`, never `window.addEventListener('scroll')`.
- **Hover States:** Cards lift with an ultra-subtle shadow shift (`box-shadow` transitioning from `0 0 0` to `0 2px 8px rgba(0,0,0,0.04)` over `200ms`). Buttons respond with `scale(0.98)` on `:active`.
- **Staggered Reveals:** Lists and grid items enter with a cascade delay (`animation-delay: calc(var(--index) * 80ms)`). Never mount everything at once.
- **Background Ambient Motion:** Optional. A single, very slow-moving radial gradient blob (`animation-duration: 20s+`, `opacity: 0.02-0.04`) drifting behind hero sections. Must be applied to a `position: fixed; pointer-events: none` layer. Never on scrolling containers.
- **Performance:** Animate exclusively via `transform` and `opacity`. No layout-triggering properties (`top`, `left`, `width`, `height`). Use `will-change: transform` sparingly and only on actively animating elements.

## Execution Protocol

When tasked with writing frontend code (HTML, React, Tailwind, Vue) or designing a layout:

1. Establish the macro-whitespace first. Use massive vertical padding between sections (e.g., `py-24` or `py-32` in Tailwind).
2. Constrain the main typography content width to `max-w-4xl` or `max-w-5xl`.
3. Apply the custom typographic hierarchy and monochromatic color variables immediately.
4. Ensure every card, divider, and border adheres strictly to the `1px solid #EAEAEA` rule.
5. Add scroll-entry animations to all major content blocks.
6. Ensure sections have visual depth through imagery, ambient gradients, or subtle textures — no empty flat backgrounds.
7. Provide code that reflects this high-end, uncluttered, editorial aesthetic natively without requiring manual adjustments.
README.md

What This Does

This is a frontend UI design system, not a business or pricing playbook (the site also has "minimalist-pricing" and "minimalist-mvp" for those topics — this one is purely about visual interface design). It gives Claude a strict rule set for building ultra-minimalist, "document-style" interfaces in the style of Notion, Linear, and other top-tier workspace tools.

It works by banning the generic defaults first: no Inter/Roboto/Open Sans, no Lucide/Feather icons, no heavy Tailwind shadows, no gradients, no pill-shaped large containers, no emojis, no AI copywriting clichés. Then it defines what to use instead: a warm monochrome palette, an editorial serif for headings paired with a geometric sans for UI, bento-grid layouts, and motion so subtle it's felt more than seen. It comes from Leonxlnx's "taste-skill" project, a set of anti-slop frontend design skills for AI coding agents.


Quick Start

Step 1: Create a Project Folder

mkdir -p ~/Documents/MinimalistUI

Step 2: Download the Template

Click Download above, then:

mv ~/Downloads/CLAUDE.md ~/Documents/MinimalistUI/

Step 3: Start Working

cd ~/Documents/MinimalistUI
claude

Describe the page or component you need. Claude applies the typographic hierarchy, warm monochrome palette, and bento-grid rules automatically.


Banned by Default

The template opens with a list of generic web defaults Claude must avoid:

  • Inter, Roboto, or Open Sans typefaces
  • Lucide, Feather, or standard Heroicons
  • Tailwind's default heavy shadows (shadow-md, shadow-lg, shadow-xl)
  • Bright primary-colored hero sections, gradients, neon, glassmorphism
  • rounded-full on large containers, cards, or primary buttons
  • Emojis anywhere in code, copy, or alt text
  • Placeholder names like "John Doe" or "Acme Corp"
  • AI copywriting clichés: "Elevate," "Seamless," "Unleash," "Next-Gen," "Delve"

Typography & Color System

  • Body/UI: geometric sans with character — SF Pro Display, Geist Sans, Switzer.
  • Headings: editorial serif — Newsreader, Playfair Display, Instrument Serif — with tight tracking (-0.02em to -0.04em) and tight leading (1.1).
  • Code/metadata: monospace — Geist Mono, SF Mono, JetBrains Mono.
  • Text color: never pure black. Off-black/charcoal (#111111 or #2F3437) for body, muted gray (#787774) for secondary text.
  • Canvas: pure white or warm bone (#F7F6F3, #FBFBFA). Borders are ultra-light gray (#EAEAEA).
  • Accents: desaturated pastels only, tied to meaning — pale red, blue, green, yellow, each with a matching dark text color for contrast.

Component Rules

  • Bento grids: asymmetrical CSS Grid, 1px solid #EAEAEA borders, 8–12px radius max, generous 24–40px padding.
  • Primary buttons: solid #111111 fill, white text, 4–6px radius, no shadow, hover shifts to #333333 or scales to 0.98.
  • Tags/badges: pill-shaped, uppercase, wide tracking, pastel background only.
  • Accordions: no container box — separate items with a single bottom border, toggle with a plain +/-.
  • Keystrokes: rendered as <kbd> tags with a light border and monospace font.
  • Faux-OS chrome: wrap software mockups in a white top bar with three small gray circles, mimicking macOS window controls.

Motion

Motion should be felt, not noticed.

  • Scroll-triggered fade-ins (translateY(12px) + opacity, 600ms, cubic-bezier(0.16, 1, 0.3, 1)) via IntersectionObserver, never scroll listeners.
  • Card hover lifts with an ultra-subtle shadow shift, buttons scale to 0.98 on active.
  • List items stagger in with an 80ms cascade delay — nothing mounts all at once.
  • Animate only transform and opacity, never layout-triggering properties.

Tips

  • Establish macro-whitespace first — py-24 to py-32 between sections — before touching typography or color.
  • Constrain body content to max-w-4xl or max-w-5xl; the editorial feel depends on line length, not just font choice.
  • Use picsum.photos/seed/{context}/1200/800 as a placeholder image source when real assets aren't available yet — desaturate and add warm grain to match the palette.
  • Don't leave sections visually flat. Add a low-opacity radial gradient or subtle geometric line pattern behind hero content so it has depth without breaking the minimalist rules.

Limitations

  • This is a UI design skill, not a business/strategy playbook. If you're looking for minimalist pricing pages or MVP scoping, use the separate "minimalist-pricing" or "minimalist-mvp" playbooks on this site instead.
  • The palette is intentionally narrow. Products that need strong brand color or high visual energy will fight this system.
  • Heavy reliance on a licensed editorial serif (Lyon Text, Optimized) may require font licensing; the template lists open alternatives like Newsreader and Instrument Serif as fallbacks.

$Related Playbooks