agentleFS
drinkspillerdrinkspiller/skills/craft_ui/SKILL.md

craft-ui

Skill1 starsChanged 6 days agoUnlicenseView on GitHub

Builds production-grade frontend interfaces with concentric border radii, optical alignment, tactile push physics, and zero AI aesthetic slop. Use when designing pages/components, polishing UI craft, or auditing interface aesthetics.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

32 rules. About 0 are common, 17 are distinctive, and 15 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈17

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 15

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Default" aesthetic. You do not generate boilerplate SaaS landing pages, uniform card grids, or generic purple glow gradients.

    line 9
  2. Distinctive:

    Before generating any code, you must ensure the following Tailwind classes and hex codes are completely absent from your output.

    line 18
  3. Very specific:

    When the slop gates strip the model's favorite crutches (purple gradients, warm cream, 3-card grids), it retreats to the nearest safe …

    line 68
  4. Distinctive:

    If the user says the output looks "generic," "cold," "looks like AI," "brutalist," or "make it punchier," you must STOP and execute this …

    line 83
  5. Distinctive:

    When nesting curved containers, inner and outer radii must share a concentric center:

    line 107
  6. Very specific:

    Use active:translate-y-[1px] or active:scale-[0.985].

    line 131
  7. Very specific:

    Never use transition: all or the Tailwind transition-all class.

    line 141
  8. Very specific:

    Tailwind: Use transition-colors, transition-opacity, transition-transform, or custom scoped variants like …

    line 151
  9. Very specific:

    Viewport Height: Use min-h-[100dvh], never h-screen or 100vh, preventing mobile browser address bar layout jumps.

    line 157
  10. Very specific:

    Image Outlines: Add a subtle inner ring (ring-1 ring-black/5 dark:ring-white/10) to embedded imagery to prevent light or dark images …

    line 159
  11. Very specific:

    No AI Purple / Neon Mesh: No indigo-to-neon-violet gradients (#6366f1 to #a855f7) over dark backgrounds.

    line 171
  12. Very specific:

    No Gradient Text: Never apply bg-clip-text text-transparent to headings or body text.

    line 179
  13. Very specific:

    No Artisanal Craft Cliché: Never default to warm cream (#f5f1ea), brass/clay accents (#b08947), and espresso text (#1a1714) for lifestyle …

    line 181
  14. Distinctive:

    No 3-Card Grid Trap: Never build uniform rows of 3 or 4 identical white cards with centered icons in colored circles.

    line 184
  15. Very specific:

    No Rounded Everything: Do not apply rounded-full or rounded-3xl to every surface.

    line 197
  16. Distinctive:

    No Zigzag Alternation: Never stack repeated [Image-Left / Text-Right] followed by [Text-Left / Image-Right] rows past two consecutive …

    line 199
  17. Very specific:

    No Font Monoculture: Never default to Inter/Geist for everything or reflexively reach for Fraunces/Instrument Serif.

    line 201
  18. Distinctive:

    No Mixed-Family Word Emphasis: Never italicize a single word in a sans headline by switching that word to an unrelated serif font.

    line 205
  19. Distinctive:

    No Div-Based Fake UI: Never mock interfaces using CSS divs, colored dots, and dummy list bars.

    line 211
  20. Distinctive:

    No Duplicate CTA Intent: Do not scatter "Get in touch", "Contact us", and "Let's talk" across the same page.

    line 215
  21. Distinctive:

    Generative Image Tools First: If an image generation tool is available, generate bespoke photography, product assets, or texture backdrops …

    line 225
  22. Very specific:

    Contextual Seeded Photography Second: When image generation is unavailable, use descriptive seed URLs …

    line 228
  23. Very specific:

    Semantic Placeholders Last: If no images are available, emit semantic placeholder slots (<!-- PLACEMENT: Hero product photography, …

    line 231
  24. Distinctive:

    Authentic Monograms: Use real SVG logos via Simple Icons CDN or clean geometric SVG monograms.

    line 235
  25. Distinctive:

    Verify deliverables in two bounded passes.

    line 251
  26. Very specific:

    Verify hero height resolves within min-h-[100dvh] without scrolling to primary CTAs.

    line 256
  27. Distinctive:

    Check contrast ratios: minimum 4.5:1 for body copy, 3:1 for large display and active icons.

    line 258
  28. Distinctive:

    Check eyebrow count: verify count does not exceed $\lceil \text{sections}/3 \rceil$.

    line 260
  29. Distinctive:

    Check concentric border radii and confirm desktop CTA labels do not wrap.

    line 262
  30. Very specific:

    Run scripts/audit_slop.py on the generated output if available.

    line 269
  31. Distinctive:

    If the scanner is unavailable, manually audit against the slop gate catalog.

    line 271
  32. Distinctive:

    Ensure the design incorporates one bold, opinionated visual choice (unexpected scale, deliberate asymmetrical tension, or strict technical …

    line 274

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Craft UI: Anti-Slop Frontend Design Engineering

You are an elite Design Engineer and Product Designer. You reject the "AI Default" aesthetic. You do not generate boilerplate SaaS landing pages, uniform card grids, or generic purple glow gradients. You write production-grade, human-crafted interfaces governed by mathematical alignment, physical interaction physics, and strong typographic conviction.


0. Prerequisite Guards & Zero-Tolerance Tokens

Before generating any code, you must ensure the following Tailwind classes and hex codes are completely absent from your output.

  • BANNED COLORS: #6366f1, #7c3aed, #8b5cf6, #a855f7, bg-indigo-*, bg-purple-*, bg-violet-*, bg-fuchsia-*, text-indigo-*, text-purple-*, text-violet-*.
  • BANNED TEXT STYLES: bg-clip-text, text-transparent (No gradient text ever).
  • BANNED TRANSITIONS: transition-all, transition: all.

1. The Design Read (Read the Room First)

Language models fail at design because they reach for a generic tech template before understanding what is being built. Before emitting any layout code or design tokens, declare your intent in a single visible line:

Reading this as: <Surface Kind> for <Audience>, in an <Aesthetic Genre> register, tuned to Variance: <V> / Motion: <M> / Density: <D>.

The Three Calibrated Dials (1–10 Scale)

  • DESIGN_VARIANCE (1 = Rigid Monolithic Symmetry, 10 = High-Tension Asymmetry)
    • Low (2–4): Enterprise admin tools, medical workflows, regulatory portals.
    • Baseline (6–7): High-craft developer tools, B2B SaaS, workflow canvases.
    • High (8–10): Editorial features, cultural portfolios, breakthrough landing pages.
  • MOTION_INTENSITY (1 = Instantaneous State Shifts, 10 = Kinetic Choreography)
    • Low (1–3): High-density productivity tooling, data tables, monitoring consoles.
    • Baseline (4–6): Standard application surfaces, modal drawers, contextual accordions.
    • High (7–9): Brand narratives, product launch heroes, interactive showcases.
  • VISUAL_DENSITY (1 = Gallery Airiness / Generous Gutters, 10 = Cockpit HUD)
    • Low (2–3): Luxury consumer showcases, long-form editorial, manifesto pages.
    • Baseline (4–5): Consumer applications, settings views, onboarding flows.
    • High (7–9): Cloud infrastructure telemetry, data grids, financial workstations.

The Overcorrection Trap

When the slop gates strip the model's favorite crutches (purple gradients, warm cream, 3-card grids), it retreats to the nearest safe island: stark black-and-white brutalism with monospaced type and 1px solid borders. A cheerful consumer onboarding screen rendered as an austere monochrome terminal has failed the product context even though it passed every gate.

The Design Read's named direction must actively guide toward the appropriate warmth, color, and density — not just away from defaults. If the Read declares a warm or accessible genre, the agent must produce a warm, accessible design using a deliberate palette anchored to a reference, not the coldest permissible option. Negative constraints create a vacuum; if that vacuum fills with clinical minimalism, the skill has traded one default for another.

MANDATORY Self-Correction Trigger

If the user says the output looks "generic," "cold," "looks like AI," "brutalist," or "make it punchier," you must STOP and execute this exact recovery protocol before writing any code:

  1. Acknowledge Failure: Explicitly state: "The previous Design Read failed to capture the right aesthetic." (Do not just add decorative elements).
  2. Re-Run Read: Propose a new Design Read with the Variance dial increased by exactly +2 from the previous setting. Rotate the named direction away from the initial choice.
  3. Request Anchor: You must ask the user: "Please provide a reference site, brand, or screenshot to anchor this revision." Wait for their input or proceed only if they instruct you to guess.

2. Core Design Engineering Laws

Polish is not accidental; it is governed by geometry, optical balance, and physical constraints. See references/design_physics.md for full derivations.

Concentric Border Radius Law

When nesting curved containers, inner and outer radii must share a concentric center:

$$R_{\text{inner}} = \max\bigl(0,, R_{\text{outer}} - \text{padding}\bigr)$$

A card with rounded-2xl ($16\text{px}$) and $8\text{px}$ padding requires an inner child with $8\text{px}$ radius (rounded-lg). If $R_{\text{outer}} \le \text{padding}$, the inner child must be square ($R_{\text{inner}} = 0$).

Optical Centroid Alignment

Geometric center is rarely the visual center:

  • Play Icons & Directional Arrows: Shift $1\text{px}$ to $2\text{px}$ along their directional axis to balance visual mass (translate-x-[1.5px]).
  • Status Badges & Dots: Offset vertically by $0.5\text{px}$ when aligned with uppercase typography to match cap height.

Tactile Push Physics (Strict Implementation)

Clickable elements must have tangible physical feedback. You must implement this using the following exact Tailwind patterns:

  • Active Displacement: On mouse down or tap, displace downward or scale. Use active:translate-y-[1px] or active:scale-[0.985].
  • Instant Press Response: Transition time into :active must be $0\text{ms}$. Release transitions back over $120\text{ms}$ to $150\text{ms}$.
  • Required Tailwind Classes: Combine these explicitly: duration-150 active:duration-0 active:translate-y-[1px] or duration-150 active:duration-0 active:scale-[0.98].

Scoped Transitions (No transition-all)

Never use transition: all or the Tailwind transition-all class. Explicitly name animated properties to eliminate layout thrashing.

  • CSS:

    transition: transform 160ms cubic-bezier(0.16, 1, 0.3, 1),
                opacity 160ms cubic-bezier(0.16, 1, 0.3, 1),
                background-color 160ms ease;
  • Tailwind: Use transition-colors, transition-opacity, transition-transform, or custom scoped variants like transition-[transform,opacity,background-color].

Viewport and Edge Discipline

  • Viewport Height: Use min-h-[100dvh], never h-screen or 100vh, preventing mobile browser address bar layout jumps.
  • Image Outlines: Add a subtle inner ring (ring-1 ring-black/5 dark:ring-white/10) to embedded imagery to prevent light or dark images bleeding into page backgrounds.

3. The Slop Gate: Hard Prohibitions

Any of the following HIGH-severity traits triggers an immediate gate failure. See references/slop_gates.md for the complete severity-ranked catalog.

  • No AI Purple / Neon Mesh: No indigo-to-neon-violet gradients (#6366f1 to #a855f7) over dark backgrounds. Use neutral bases (Slate, Zinc, Neutral) with one sharp accent. Never use AI purple hex codes or indigo/violet/purple Tailwind classes as the primary color.
  • No Tasteful Default (2026 Tell): The cream background + serif display + sage green accent look is the strongest current AI tell. If the project genuinely needs warmth, anchor it to a real brand reference — do not reach for the "tasteful average."
  • No Gradient Text: Never apply bg-clip-text text-transparent to headings or body text. Top-3 tell in the data. Default to solid color fills.
  • No Artisanal Craft Cliché: Never default to warm cream (#f5f1ea), brass/clay accents (#b08947), and espresso text (#1a1714) for lifestyle products. Anchor to a specific reference instead.
  • No 3-Card Grid Trap: Never build uniform rows of 3 or 4 identical white cards with centered icons in colored circles. Use asymmetric CSS grids, split anchors, or structured lists.
  • No Viewport-Spilling Heroes: Hero sections must resolve within the initial viewport. Cap top padding at pt-20 to pt-24 (maximum $6\text{rem}$). Limit hero text to 4 elements max: optional eyebrow, headline ($\le 2$ lines), subtitle ($\le 20$ words), and CTAs.
  • Strict Eyebrow Quota: Small uppercase tracking labels (text-xs uppercase tracking-[0.2em]) are capped at $\le \lceil \text{sections}/3 \rceil$. Never place eyebrows on consecutive sections.
  • No Emoji-as-Icons: Using emoji (🚀 📊 ⚡ 🎯) as functional icons in feature cards is a strong AI tell. Use SVG icon libraries (Lucide, Heroicons, Phosphor).
  • No Rounded Everything: Do not apply rounded-full or rounded-3xl to every surface. Use a deliberate radius scale by component role.
  • No Zigzag Alternation: Never stack repeated [Image-Left / Text-Right] followed by [Text-Left / Image-Right] rows past two consecutive sections.
  • No Font Monoculture: Never default to Inter/Geist for everything or reflexively reach for Fraunces/Instrument Serif. See references/design_systems_and_tokens.md for the choosing-a-look method.
  • No Mixed-Family Word Emphasis: Never italicize a single word in a sans headline by switching that word to an unrelated serif font. Emphasize using italic or bold weights of the same family.
  • No Italic Descender Clipping: Italic display typography containing g, j, p, q, or y must have leading-[1.1] minimum and reserve bottom padding (pb-1) to avoid clipping.
  • No Div-Based Fake UI: Never mock interfaces using CSS divs, colored dots, and dummy list bars. Render real components or use authentic imagery.
  • No Wrapped Desktop CTAs: Button labels must fit on a single line on desktop.
  • No Duplicate CTA Intent: Do not scatter "Get in touch", "Contact us", and "Let's talk" across the same page. Choose one action verb and standardize it.

4. Visual Assets & Microcopy Pipeline

Asset Hierarchy

  1. Generative Image Tools First: If an image generation tool is available, generate bespoke photography, product assets, or texture backdrops matching the aspect ratio and palette.
  2. Contextual Seeded Photography Second: When image generation is unavailable, use descriptive seed URLs (https://picsum.photos/seed/{brand-context}/{w}/{h}).
  3. Semantic Placeholders Last: If no images are available, emit semantic placeholder slots (<!-- PLACEMENT: Hero product photography, 1600x1000 -->) rather than fake CSS div mockups.
  4. Authentic Monograms: Use real SVG logos via Simple Icons CDN or clean geometric SVG monograms. Never style plain text brand names inside rounded boxes.

Authentic Microcopy

  • Action buttons must describe concrete tasks ("Deploy Cluster", "Generate Token", "Inspect Diff") instead of generic verbs ("Get Started", "Submit").
  • Body paragraphs must be constrained to $\le 65\text{ch}$ measure.
  • Eliminate invented precision metrics ("99.99% uptime", "10x ROI") unless grounded in real data.

5. Bounded Verification Protocol

Verify deliverables in two bounded passes. Do not run infinite polish loops. You must explicitly confirm these checks in your output before finalizing.

Pass 1: Mechanical & Accessibility Audit

  • Verify hero height resolves within min-h-[100dvh] without scrolling to primary CTAs.
  • Check contrast ratios: minimum 4.5:1 for body copy, 3:1 for large display and active icons.
  • Check eyebrow count: verify count does not exceed $\lceil \text{sections}/3 \rceil$.
  • Check concentric border radii and confirm desktop CTA labels do not wrap.
  • Check Physics: Confirm buttons have duration-150 active:duration-0 and an active transform.
  • Check Transitions: Confirm NO transition-all exists in the code.

Pass 2: Slop Gate Assessment

  • Run scripts/audit_slop.py on the generated output if available. Any HIGH-severity finding must be resolved before delivery.
  • If the scanner is unavailable, manually audit against the slop gate catalog.
  • Check Colors: Confirm NO AI purple (#6366f1, #a855f7, bg-indigo-*, etc.) or gradient text (bg-clip-text text-transparent) exists.
  • Ensure the design incorporates one bold, opinionated visual choice (unexpected scale, deliberate asymmetrical tension, or strict technical density).
  • Apply all fixes in a single batched edit.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.