Skip to main content
skill CX Codex

frontend-design-deslop — Claude Code skill: UI without the AI look

A skill that steers generated interfaces away from the default AI look: typography, OKLCH color, design tokens, dark mode, accessibility.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add samber/cc-skills --skill frontend-design-deslop -a claude-code
Open on GitHub

What frontend-design-deslop does

The skill starts from why AI-built UI looks the same. First, the model has no constraints, so it samples the statistical median of web code. Second, design begins before anyone knows what is being designed. So the work runs strategy first: artifact and audience, then brand adjectives, then type and color.

Five phases. Phase 0 classifies the artifact (landing page, dashboard, ecommerce, deck, portfolio and others), the audience and the single primary action, and locks 3 to 5 brand adjectives. Then one opinionated aesthetic direction, a display and body pairing, color authored in OKLCH, and a token table emitted before any component. The craft layer follows: layout, components, motion, iconography, dark mode, accessibility. An audit closes it out. The skill checks for DESIGN.md at the project root and extends existing tokens instead of starting over.

Questions go through the environment's question tool, one at a time, with 2 to 4 options. The skill asks for Read, Edit, Write, Glob, Grep, Agent, AskUserQuestion, WebSearch and WebFetch. It does not write marketing copy. Supporting material sits in references/ — design theory, typography, color, artifact types.

What it helps with

  • strip the indigo-and-violet default off a landing page
  • pick typefaces that match the brand instead of habit
  • build an OKLCH palette and split it into tokens
  • set up DESIGN.md and keep the UI on one token set
  • tighten a dashboard's grid and accessibility

Example prompts for the agent

  • Build a landing page for our SaaS, and make it not look like AI
  • Update DESIGN.md and move the components onto the new tokens
  • Design an analytics dashboard with a proper grid, dark mode and accessibility

How to install frontend-design-deslop

1Skills CLI (Vercel)

npx skills add samber/cc-skills --skill frontend-design-deslop -a claude-code

2Manually: put the files in place

~/.claude/skills/frontend-design-deslop/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/frontend-design-deslop/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about frontend-design-deslop

How do I install frontend-design-deslop in Claude?

Run npx skills add samber/cc-skills --skill frontend-design-deslop -a claude-code. The skill file then lands at ~/.claude/skills/frontend-design-deslop/SKILL.md.

What does frontend-design-deslop do?

It drives UI design from strategy: artifact type, audience, brand adjectives, then typography, OKLCH color, tokens and the craft layer. The point is to avoid the generic look models produce by default.

Which platforms does it support?

It is designed for Claude, Codex and similar harnesses. Install commands are also listed for Cursor, GitHub Copilot, Gemini CLI and OpenCode.

Source text

SKILL.md · MIT
---
name: frontend-design-deslop
description: Designs distinctive, non-generic UI — typography, OKLCH color, design tokens (DESIGN.md), layout, components, motion, dark mode, accessibility — for landing pages, SaaS apps, dashboards, ecommerce, decks, docs, portfolios, avoiding the AI-slop / Claude-esque default look. Use whenever building or styling any web frontend, app, dashboard, landing page, deck, or artifact, or when the user says "make it not look like AI", "de-slopify", "deslop", "less generic", "give it character", "design a UI for X", "design an app", "update DESIGN.md", or complains the output looks like every other AI site. Trigger even on a bare "build a UI for X" with no aesthetic named. Not for writing marketing copy.
user-invocable: true
license: MIT
compatibility: Designed for Claude Code, Codex or similar harness.
metadata:
  author: samber
  version: "1.2.2"
  openclaw:
    emoji: "🎨"
    homepage: https://github.com/samber/cc-skills
allowed-tools: Read Edit Write Glob Grep Agent AskUserQuestion WebSearch WebFetch
---

**Questions:** Ask the user through the environment's question tool — never as plain-text prose. One question at a time, 2–4 tappable options, wait for the answer. If the environment has no question tool, ask in prose with the same options, one at a time.

# frontend design deslop

AI-generated UI looks generic for two reasons:

1. **No constraints.** The model samples the statistical median of 2019-2024 web code — Tailwind UI's `bg-indigo-500`, Inter, rounded cards, soft shadows. You cannot out-prompt a vacuum.
2. **Designing before knowing what you're designing.** A corporate landing page, a creative portfolio, a developer-tool landing page, an analytics dashboard, and an ecommerce product page share almost no design DNA — a beautiful aesthetic that fights the artifact's job is its own slop.

The fix is a discipline borrowed from brand design: strategy drives design, never aesthetics first.

1. Commit to words first — what this is, who it serves, the adjectives it must feel like.
2. Translate those words into a typography and color system.
3. Build from tokens.
4. Apply the craft layer (layout, components, motion, iconography, imagery, dark mode, accessibility).
5. Audit.

Target the convergence mechanism, not a frozen blocklist; the slop fingerprint shifts over time (purple gradients in 2022, cream backgrounds and italic-serif heroes in 2026).

This skill does two jobs at once: it de-slops the default AI look, and it designs applications well. A distinctive theme on top of careless components, weak layout, or thoughtless motion still reads as amateur. The mechanisms behind every choice live in `references/design-theory.md` (hierarchy, Gestalt, CRAP, signal-vs-noise, affordances, the interaction laws); read it once so the rest is reasoning rather than rule-following.

## Asking questions (CRITICAL)

Every single user question must go through the question tool (see the **Questions:** directive above) — never as plain-text prose. The bank is generous; the asking is selective. Do not interrogate.

- Batch related questions; offer 2 to 4 concrete options each.
- Ask only the high-signal subset that changes the design system.
- Infer from context first and confirm inferences rather than re-asking.

## Phase 0: Discover and commit to words (do this FIRST, before any code)

Check for an existing `DESIGN.md` at the project root (and common locations like `docs/`) before writing any code.

- **Exists** — read it, honor its tokens, skip the questions it already answers, and extend it rather than starting over.
- **Missing** — resolve three things below before any pixel. Read `references/discovery.md` for the full protocol, question bank, and the personality-to-token translation table, and `references/artifact-types.md` for per-type priorities.

1. **WHAT is the artifact?** Classify it: marketing/landing page, pricing page, SaaS application, dashboard/data tool, ecommerce, marketplace, mobile app, AI/conversational interface, email/newsletter, blog/editorial publication, onboarding/auth flow, settings/admin/CMS, presentation/deck, docs/API reference, portfolio/brand site, or one of the long-tail types in `references/artifact-types.md`. Each optimizes for a different thing and has its own layout grammar and density. A composite artifact (a marketing site with an embedded app, an AI chat inside a SaaS app) is designed region by region.
2. **WHO and WHY?** Audience, positioning (corporate vs creative vs technical vs luxury vs playful), and the single primary action or outcome.
3. **Commit to words.** Lock 3 to 5 brand adjectives and a 3-word aesthetic essence before any visual exploration. This is the highest-leverage input; it drives type, color, density, radius, and motion. Strategy drives design, never the reverse.

Run discovery adaptively: infer, state inferences, ask the high-signal subset through the question tool, and ground the direction in 1 to 3 references (web-search strong current examples of the exact artifact type and positioning if none are given, then transpose rather than originate). Do not proceed until artifact type, positioning, and the adjectives are locked. On a generic brief (another dashboard, another SaaS landing page) where the category itself has little to say, widen the reference search past the product's own category rather than asking for more creativity within it — see `references/divergence.md`.

## Phase 1: Translate strategy into a design system (the gate)

State these commitments in prose, briefly. Each must follow from Phase 0, not from reflex.

1. **Aesthetic commitment.** Pick ONE opinionated direction that fits the artifact and the adjectives; generic is the failure mode. See `references/aesthetics-library.md`. If the user gave a brand or reference, transpose it. Derive 2-3 real candidates before picking one, commit to the winner fully before softening it for legibility, and check the bare structure (not just the styled surface) against the category default — see `references/divergence.md` for why each of these matters and how to do it without re-deliberating in the same pass.

2. **Typography (brand-first).** Choose type from personality, not aesthetic preference. Match classification to the adjectives, pick a modular-scale ratio that fits the content, and pair for contrast (display + body) without typographic mud. Never Inter/Roboto/Arial/system as the primary face. See `references/typography.md`.

3. **Color (appropriateness + differentiation).** Choose colors for fit with the brand and audience, then find uncontested territory (the indigo/violet band is the red ocean of AI UI; avoid it unless the brief demands it). Build one dominant plus a sharp accent plus neutrals plus semantic states, distributed roughly 60-30-10. Author in OKLCH. See `references/color-oklch.md`.

4. **Token table (emit BEFORE components).** Display + body font; type scale (state the ratio and base, 6 steps); spacing base unit; max two radius values; ONE shadow approach (defined edge OR soft elevation, never both on one element); palette with roles (bg, surface, fg, muted, border, accent, accent-fg, success, warning, error) — `surface` is required, not optional: it is what elevation-by-lightness (see `references/dark-mode.md`) steps off of. Everything references tokens; no scattered hex/px. Pull a starting set from `references/token-sets.md`.

5. **Signature move.** Name the single thing that makes this UI memorable and unmistakably not-default. One per project.

6. **Adapter.** Pick the stack syntax: plain CSS custom properties, Tailwind v4 `@theme`, or shadcn semantic tokens. See `references/adapters.md`. `references/token-core.css` is the portable source of truth.

## Phase 2: Apply the system to the interface (the craft layer)

Tokens make a UI consistent; the craft layer makes it good — this is the "design an application" half of the skill, and the half most AI output skips.

Apply each of the following to the artifact, pulling the matching reference on demand. Density and emphasis vary by artifact type (see `references/artifact-types.md`); a dashboard applies these very differently from a landing page.

1. **Layout and composition.** Compose space with intent: a base spacing unit, spacing that is tight within groups and generous between sections, an intentional grid (12-column, modular, or bento where content genuinely varies), at least one brief-specific layout move, and whitespace as a signal of confidence. Break the centered-max-width-column reflex. See `references/layout.md`.

2. **Components and states.** Specify every interactive component across its full state matrix (default, hover, active, focus, disabled, loading, error, selected), not just at rest. Get buttons (ranked by importance, not colored by meaning), forms (real labels, correct types, inline validation that keeps input), tables (left-align text, right-align tabular-nums numerals, light separators), navigation, overlays, and the empty/loading/error states right. See `references/components.md`.

3. **Motion.** Treat motion as communication, under a duration and easing token scale. Default to ease-out under 300ms, animate only transform and opacity, scale popovers from their trigger, and never animate high-frequency actions. See `references/motion.md`.

4. **Iconography.** One grid, one stroke, one radius across the set; do not let the unmodified default starter-kit set define the look. See `references/iconography.md`.

5. **Imagery and illustration.** Art-direct imagery as a system. Prefer real product visuals over stock and abstract; avoid the AI/stock fingerprint (people pointing at laptops, gradient blobs, corporate-Memphis, default Midjourney). Use texture and a graphic device to escape flat-slop. See `references/imagery.md`.

6. **Dark mode and theming.** If dark mode is in scope, design it (do not invert): near-black not pure black, off-white not pure white, elevation via lightness, desaturated accents, all driven by semantic tokens. See `references/dark-mode.md`.

7. **Accessibility as you build.** WCAG 2.2 AA: visible managed focus, keyboard operability, labels, 24px-plus targets, color independence, reduced-motion. Build it in; do not bolt it on. See `references/accessibility.md`.

At the end of conception, once the direction and craft decisions are locked, suggest to the user a relevant subset of design and component catalogs to mine for concrete ideas and ready implementations, framed as inspiration to transpose through the committed system (never to clone) and with a reminder to verify component licenses. Pick by artifact type and stage rather than dumping the whole list. See `references/catalogs.md`.

## Phase 3: Write DESIGN.md (the durable output)

Everything this skill produces lives in a single `DESIGN.md` at the project root:

- Discovery context
- Committed aesthetic and signature move
- Typography and color systems
- Tokens
- Spacing/radius/shadow rules
- Craft-layer decisions (layout, components, motion, iconography, imagery, dark mode, accessibility)
- Slop-audit result

Write or update it before or alongside building components, using the schema in `references/design-md.md`. DESIGN.md is the single source of truth — if the CSS, the adapter, or the components ever drift from it, DESIGN.md wins. On later sessions, Phase 0 reads this file instead of re-running discovery.

## Token-first generation rules

- **Colors in OKLCH**, dominant + sharp accent, not a timid even spread. Design hierarchy in grayscale first, add the accent last and sparingly, roughly 60-30-10 (neutral / brand / accent). On colored backgrounds, darken/desaturate the same hue rather than going gray. Define semantic state colors (success, warning, error) and never use color as the only signal.
- **Typography**: a distinctive display face paired with a refined body face, modular scale with a stated ratio. Source from Fontshare/Google. Limit to 2 to 3 families.
- **Spacing rhythm**: vary spacing by relationship (tight within a group, generous between sections). One uniform value everywhere is a tell.
- **Density fits the artifact.** Dashboards and pro tools tolerate high density; marketing and portfolio pages want air.
- **Match implementation complexity to the aesthetic**: maximalism gets elaborate detail; minimalism gets restraint and precision, not laziness.

## NEVER (negative prompt)

NEVER use generic AI-generated aesthetics: overused fonts (Inter, Roboto, Arial, system-ui as the primary face); cliched color schemes (especially purple/indigo/violet gradients on white or dark); the hero + 3-feature-cards + testimonials + CTA boilerplate as the only structure; the icon-tile-above-heading feature-card template; side-tab accent borders on cards; hairline border and diffuse drop shadow stacked on the same element; gradient text on headings or metrics; decorative glassmorphism; blob-rounding (radius > 16px on small cards); cream/beige backgrounds by reflex; bounce/elastic easing and animate-everything micro-interactions; decorative grid-line backgrounds or radial spotlight glows with no structural purpose; pulsing status dots or auto-scrolling marquees on content that is not actually live; hand-coded SVG mascots standing in for real illustration. Use distinctive fonts, a cohesive committed palette, and motion only where it serves the interaction.

Craft-layer NEVERs: do not ship components with only a resting state; do not use placeholder text as the label; do not color buttons by meaning instead of ranking them by importance; do not center-align numeric table columns or use non-tabular numerals for figures; do not let the unmodified shadcn/Tailwind default icon set define the look; do not use stock people-pointing-at-laptops, gradient blobs, floating orbs, glossy isometric tech illustrations, corporate-Memphis figures, or raw default-Midjourney imagery where a real product visual belongs; do not invert a light palette to make dark mode, use pure black backgrounds, pure white text, or glowing colored box-shadows by reflex; do not animate layout properties (width/height/top/left) or ignore prefers-reduced-motion; do not remove focus outlines without replacing them, convey meaning by color alone, or ship sub-24px targets.

## Self-audit before finishing

Run the generated UI against `references/slop-checklist.md` and score it.

1. Verify it serves the artifact type's priorities from `references/artifact-types.md` — a dashboard that reads as a portfolio piece, or a landing page with no clear primary action, has failed even if it is beautiful — and that the type and color choices match the committed adjectives.
2. Verify the craft layer: components have full state matrices, layout has rhythm and an intentional move, motion is communicative and respects reduced-motion, icons are one coherent system, imagery is not stock/AI slop, and dark mode (if present) is designed not inverted.
3. Run the accessibility gate in `references/accessibility.md` (focus, keyboard, contrast, targets, color independence); accessibility is a pass/fail gate, not a nicety.
4. Re-read the DESIGN.md aesthetic commitment against the actual render as if seeing it for the first time, and do the bare-structure check in `references/divergence.md` §6-7 — a tell-by-tell checklist pass alone can score clean on output that is still generic.
5. If any tell fires or the fit is wrong, regenerate that section before presenting.
6. Record the result in the DESIGN.md slop-audit section and bump its changelog, stating the artifact type, positioning, adjectives, aesthetic, type system, palette, and signature move used.

All checklist items are detectable within a single build; do not invent cross-generation rules the model cannot verify. A subset needs the rendered page rather than just source (see `references/slop-checklist.md`'s "Layout defects" and "Build correctness" sections) — run those whenever a screenshot or live browser is available.

## Reference files

Load on demand.

Foundation and intake:

- `references/design-theory.md` - the mechanisms behind every choice: hierarchy, Gestalt, CRAP, signal-vs-noise, affordances, interaction laws. Read once early.
- `references/discovery.md` - design intake: question-tool protocol, commit-to-words, question bank, personality-to-token translation table. Read at the start of Phase 0.
- `references/design-md.md` - the DESIGN.md schema and persistence conventions. The durable output of the whole skill. Read in Phase 0 (to consume an existing file) and Phase 3 (to write one).
- `references/artifact-types.md` - artifact taxonomy with per-type priorities, layout grammar, density, positioning variants, anti-patterns. Read at the start of Phase 0.
- `references/divergence.md` - why a model converges on the same concept and how to force real variance: derive-then-externally-select instead of self-picking, ground borrowed forms in specific produced systems, commit fully before softening, and check bare structure separately from styled surface. Read once alongside `design-theory.md`; apply in Phase 0/1 and the self-audit.

System (Phase 1):

- `references/typography.md` - full type strategy: brand-first selection, classification matrix, modular scale ratios, pairing, variable fonts, accessibility, anti-slop sourcing and ban-list.
- `references/color-oklch.md` - full color strategy: appropriateness, Blue Ocean differentiation, harmony systems, 60-30-10, archetype map, OKLCH primer, Radix roles, accessibility.
- `references/aesthetics-library.md` - encoded style families with defining traits, plus the method for originating a bespoke theme from discovery.
- `references/token-sets.md` - ready-to-use distinctive palettes, each with a signature move, plus shared motion tokens.
- `references/token-core.css` - the framework-agnostic OKLCH token core, including motion tokens.
- `references/adapters.md` - Tailwind v4 / shadcn / plain-CSS token syntax.

Craft (Phase 2):

- `references/layout.md` - spacing rhythm, grids (12-col, bento), asymmetry, whitespace, scanning, density, responsive, layout inspiration.
- `references/components.md` - the state matrix and patterns for buttons, forms, tables, navigation, overlays, feedback, empty/loading/error states, plus component inspiration.
- `references/motion.md` - duration and easing scales, springs, transform-origin, performance, reduced motion, motion tokens and inspiration.
- `references/iconography.md` - grid, stroke, radius, optical balance, when defaults become slop, how to differentiate, icon inspiration.
- `references/imagery.md` - art direction, photography direction, the AI/stock fingerprint, illustration systems, graphic devices and texture, imagery inspiration.
- `references/dark-mode.md` - dark mode as a designed mode (not inversion), elevation via lightness, desaturation, semantic-token theming, dark/theme tokens.
- `references/accessibility.md` - unified WCAG 2.2 AA: contrast, focus, keyboard, target size, forms, ARIA basics, motion, testing.
- `references/catalogs.md` - component catalogs (shadcn/ui, 21st.dev, Magic UI, Aceternity, Origin, Cult, Kibo, shadcnblocks) and inspiration galleries (Awwwards, Behance, Dribbble, Mobbin, Land-book, Page Collective, Godly, SaaS Landing Page, Lapa Ninja, Refero, Screenlane), with transposition and licensing cautions. Suggest a relevant subset at the end of conception.

Audit:

- `references/slop-checklist.md` - the self-audit (tell catalog + quality gates). Read before finishing any UI.

© samber · MIT · samber/cc-skills

Similar skills

Everything for Frontend and UI →

From the same set19

copywriting-hooks Drafts opening hooks and article titles for long-form content in English or French. Built for essays, newsletters, Substack, Medium, and dev.to. CX Codex +1 5,400installs linkedin-ghostwriting A skill that walks the agent through an interview, hook selection and post assembly for LinkedIn, aimed at results rather than reach. CX Codex +1 4,900installs copywriting-tone-of-voice-creator Generates a structured TONE.md brand voice guide or adapts an existing one to new channels. Built for content pipelines and agent-driven writing. CX Codex +1 4,800installs copywriting-cta Designs the call-to-action at the bottom of an article: copy, placement, A/B test plan and an accessibility check. Built for blogs, newsletters and brand publications. CX Codex +1 4,600installs technical-article-writer Drafts developer-focused tutorials, benchmarks, and postmortems. It guides you through an intake interview and generates 10 headline options. CX Codex +1 4,700installs deep-research A skill for deep research: parallel web searches, multi-source validation and a finished Markdown report with citations. CX Codex +1 4,700installs conventional-git Enforces Conventional Commits v1.0.0 rules for branch names and commit messages. Useful for parseable git history and automated changelogs on GitHub and GitLab. CX Codex +1 4,600installs chrome-extension Guides agents through Chrome extension work with Manifest V3. Use it for manifests, content scripts, background logic, browser APIs, and Chrome Web Store releases. CX Codex +1 4,500installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor