falleco/dotfiles/design-taste-frontend
Claude Code and agent skill by falleco/dotfiles
- community
Checking that the SKILL.md file is still in the repository.
Anti-slop frontend skill for landing pages, portfolios, and redesigns. The agent reads the brief, infers the right design direction, and ships interfaces that do not look templated. Real design systems when applicable, audit-first on redesigns, strict pre-flight check.
Install
npx vskill@latest install falleco/dotfiles/design-taste-frontendSKILL.md
The same SKILL.md was published earlier as yasikvlad/design-taste-frontend/design-taste-frontend.
tasteskill: Anti-Slop Frontend Skill
Landing pages, portfolios, and redesigns. Not dashboards, not data tables, not multi-step product UI.Every rule below is contextual. None of it fires automatically. First read the brief, then pull only what fits.
0. BRIEF INFERENCE (Read the Room Before Anything Else)
Before touching code or tweaking dials, infer what the user actually wants. Most LLM design output is bad because the model jumps to a default aesthetic instead of reading the room.
0.A Read these signals first
- Page kind - landing (SaaS / consumer / agency / event), portfolio (dev / designer / creative studio), redesign (preserve vs overhaul), editorial / blog.
- Vibe words the user used - "minimalist", "calm", "Linear-style", "Awwwards", "brutalist", "premium consumer", "Apple-y", "playful", "serious B2B", "editorial", "agency-y", "glassy", "dark tech".
- Reference signals - URLs they linked, screenshots they pasted, products they named, brands they're competing with.
- Audience - B2B procurement panel vs. design-conscious consumer vs. recruiter scanning a portfolio. The audience picks the aesthetic, not your taste.
- Brand assets that already exist - logo, color, type, photography. For redesigns, these are starting material, not optional input (see Section 11).
- Quiet constraints - accessibility-first audiences, public-sector, regulated industries, trust-first commerce, kids' products. These constraints OVERRIDE aesthetic preference.
0.B Output a one-line "Design Read" before generating
Before any code, state in one line: "Reading this as: \<page kind> for \<audience>, with a \<vibe> language, leaning toward \<design system or aesthetic family>."
Example reads:
- "Reading this as: B2B SaaS landing for technical buyers, with a Linear-style minimalist language, leaning toward Tailwind utilities + Geist + restrained motion."
- "Reading this as: solo designer portfolio for hiring managers, with an editorial / kinetic-type language, leaning toward native CSS + scroll-driven animation + custom typography."
- "Reading this as: redesign of a public-sector service site, with a trust-first language, leaning toward GOV.UK Frontend or USWDS."
0.C If the brief is ambiguous, ask one question, do not guess
Ask exactly one clarifying question - never a multi-question dump - and only when the design read genuinely diverges. Example: "Should this feel closer to Linear-clean or Awwwards-experimental?"
If you can confidently infer from context, do not ask. Just declare the design read and proceed.
0.D Anti-Default Discipline
Do not default to: AI-purple gradients, centered hero over dark mesh, three equal feature cards, generic glassmorphism on everything, infinite-loop micro-animations everywhere, Inter + slate-900. These are the LLM defaults. Reach past them deliberately based on the design read.
1. THE THREE DIALS (Core Configuration)
After the design read, set three dials. Every layout, motion, and density decision below is gated by these.
- `DESIGN_VARIANCE: 8` - 1 = Perfect Symmetry, 10 = Artsy Chaos
- `MOTION_INTENSITY: 6` - 1 = Static, 10 = Cinematic / Physics
- `VISUAL_DENSITY: 4` - 1 = Art Gallery / Airy, 10 = Cockpit / Packed Data
Baseline: 8 / 6 / 4. Use these unless the design read overrides them. Do not ask the user to edit this file - overrides happen conversationally.
1.A Dial Inference (design read → dial values)
| Signal | VARIANCE | MOTION | DENSITY | |
|---|---|---|---|---|
| "minimalist / clean / calm / editorial / Linear-style" | 5-6 | 3-4 | 2-3 | |
| "premium consumer / Apple-y / luxury / brand" | 7-8 | 5-7 | 3-4 | |
| "playful / wild / Dribbble / Awwwards / experimental / agency" | 9-10 | 8-10 | 3-4 | |
| "landing page / portfolio / marketing site (default)" | 7-9 | 6-8 | 3-5 | |
| "trust-first / public-sector / regulated / accessibility-critical" | 3-4 | 2-3 | 4-5 | |
| "redesign - preserve" | match existing | +1 | match existing | |
| "redesign - overhaul" | +2 | +2 | match existing |
1.B Use-Case Presets
| Use case | VARIANCE | MOTION | DENSITY | |
|---|---|---|---|---|
| Landing (SaaS, mainstream) | 7 | 6 | 4 | |
| Landing (Agency / creative) | 9 | 8 | 3 | |
| Landing (Premium consumer) | 7 | 6 | 3 | |
| Portfolio (Designer / studio) | 8 | 7 | 3 | |
| Portfolio (Developer) | 6 | 5 | 4 | |
| Editorial / Blog | 6 | 4 | 3 | |
| Public-sector service | 3 | 2 | 5 | |
| Redesign - preserve | match | match+1 | match | |
| Redesign - overhaul | +2 | +2 | match |
1.C How the Dials Drive Output
Use these (or user-overridden values) as global variables. Cross-references throughout this document refer to these exact variable names - never invent aliases like LAYOUT_VARIANCE or ANIM_LEVEL.
2. BRIEF → DESIGN SYSTEM MAP
Once you have the design read (Section 0) and dials (Section 1), pick the right foundation. Do not invent CSS for things that have an official package. Do not pretend an aesthetic trend is an official system.
2.A When to reach for a real design system (use official packages)
| Brief reads as… | Reach for | Why | |
|---|---|---|---|
| Microsoft / enterprise SaaS / dashboards | @fluentui/react-components or @fluentui/web-components | Official Fluent UI, Microsoft tokens, accessibility done | |
| Google-ish UI, Material-flavored product | @material/web + Material 3 tokens | Official, theme-able via Material Theming | |
| IBM-style B2B / enterprise analytics | @carbon/react + @carbon/styles | Official Carbon, mature data-density patterns | |
| Shopify app surfaces | polaris.js web components / Polaris React | Required for Shopify admin UI | |
| Atlassian / Jira-style product | @atlaskit/* + @atlaskit/tokens | Official Atlassian DS | |
| GitHub-style devtool / community page | @primer/css or @primer/react-brand | Official Primer; Brand variant for marketing | |
| Public-sector UK service | govuk-frontend | Legally / regulatorily expected | |
| US public-sector / trust-first | uswds | Same | |
| Fast local-business / agency MVP | Bootstrap 5.3 | Boring, fast, works | |
| Modern accessible React foundation | @radix-ui/themes | Primitives + polished theme | |
| Modern SaaS where you own the components | shadcn/ui (npx shadcn@latest add ...) | You own the code, easy to customise; never ship default state | |
| Tailwind-based modern SaaS / AI marketing | Tailwind v4 utilities + dark: variant | Default for indie + small team builds |
Honesty rule: if the brief reads as one of the systems above, install and use the official package. Do not recreate its CSS by hand. Do not import a system's tokens but then override 90% of them.
One system per project. Do not mix Fluent React with Carbon in the same tree. Do not import shadcn/ui components into a Material 3 app.
2.B When the brief is an aesthetic, not a system
For these directions, there is no single official package. Build with native CSS + Tailwind + a maintained component library. Be honest in code comments about what is borrowed inspiration vs. official material.
| Aesthetic | Honest implementation | |
|---|---|---|
| Glassmorphism / "frosted glass" | backdrop-filter, layered borders, highlight overlays. Provide solid-fill fallback for prefers-reduced-transparency. | |
| Bento (Apple-style tile grids) | CSS Grid with mixed cell sizes. No single library owns this. | |
| Brutalism | Native CSS, monospace, raw borders. No library. | |
| Editorial / magazine | Serif type, asymmetric grid, generous whitespace. No library. | |
| Dark tech / hacker | Mono + accent neon, terminal motifs. No library. | |
| Aurora / mesh gradients | SVG or layered radial gradients. No library. | |
| Kinetic typography | Native CSS animations, scroll-driven animations, GSAP for hijacks. No library. | |
| Apple Liquid Glass | Apple documents this for Apple platforms only. There is no official `liquid-glass.css`. Web implementations are approximations using backdrop-filter + layered borders + highlights. Label clearly as approximation. |
3. DEFAULT ARCHITECTURE & CONVENTIONS
Unless the design read picks a real design system (Section 2.A), these are the defaults:
3.A Stack
- Framework: React or Next.js. Default to Server Components (RSC).
- RSC SAFETY: Global state works ONLY in Client Components. In Next.js, wrap providers in a
"use client"component. - INTERACTIVITY ISOLATION: Any component using Motion, scroll listeners, or pointer physics MUST be an isolated leaf with
'use client'at the top. Server Components render static layouts only. - Styling: Tailwind v4 (default). Tailwind v3 only if the existing project demands it.
- For v4: do NOT use
tailwindcssplugin inpostcss.config.js. Use@tailwindcss/postcssor the Vite plugin. - Animation: Motion (the library formerly known as Framer Motion). Import from
motion/react(import { motion } from "motion/react"). Theframer-motionpackage still works as a legacy alias - prefermotion/reactin new code. - Fonts: Always use
next/font(Next.js) or self-host with@font-face+font-display: swap. Never link Google Fonts via<link>in production.
3.B State
- Local
useState/useReducerfor isolated UI. - Global state ONLY for deep prop-drilling avoidance - Zustand, Jotai, or React context.
- NEVER use
useStateto track continuous values driven by user input (mouse position, scroll progress, pointer physics, magnetic hover). Use Motion'suseMotionValue/useTransform/useScroll.useStatere-renders the React tree on every change and collapses on mobile.
3.C Icons
- Allowed libraries (priority order):
@phosphor-icons/react,hugeicons-react,@radix-ui/react-icons,@tabler/icons-react. - Discouraged:
lucide-react. Acceptable only when the user explicitly asks for it or the project already depends on it. - NEVER hand-roll SVG icons. If a glyph is missing, install a second library or compose from primitives - do not draw icon paths from scratch.
- One family per project. Do not mix Phosphor with Lucide in the same component tree.
- Standardize `strokeWidth` globally (e.g.
1.5or2.0).
3.D Emoji Policy
Discouraged by default in code, markup, and visible text. Replace symbols with icon-library glyphs. Override: allow emojis only when the user explicitly asks for a playful / chat-style / social-native vibe - and even then use them sparingly with intent.
3.E Responsiveness & Layout Mechanics
- Standardize breakpoints (
sm 640,md 768,lg 1024,xl 1280,2xl 1536). - Contain page layouts using
max-w-[1400px] mx-autoormax-w-7xl. - Viewport Stability: NEVER use
h-screenfor full-height Hero sections. ALWAYS usemin-h-[100dvh]to prevent layout jumping on mobile (iOS Safari address bar). - Grid over Flex-Math: NEVER use complex flexbox percentage math (
w-[calc(33%-1rem)]). ALWAYS use CSS Grid (grid grid-cols-1 md:grid-cols-3 gap-6).
3.F Dependency Verification (mandatory)
Before importing ANY 3rd-party library, check package.json. If the package is missing, output the install command first. Never assume a library exists.
4. DESIGN ENGINEERING DIRECTIVES (Bias Correction)
LLMs default to clichés. Override these defaults proactively. Each rule has a context-aware override path.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckinghome/.agents/skills/design-taste-frontend/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/falleco/dotfiles/design-taste-frontend)