AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Ui Design Craft

skill-f-e-u-e-r-opus-pack-ui-design-craft · by F-e-u-e-r

Static visual judgment for generated or restyled UI. Load when you are about to produce or modify any user-facing surface - a landing/marketing page, product screen, mockup, or component styling - when a brief says "make it look good/premium/modern" with no design system attached, or when you notice generated UI converging on default AI aesthetics. NOT for motion decisions (motion-craft), for run…

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add skill-f-e-u-e-r-opus-pack-ui-design-craft

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-f-e-u-e-r-opus-pack-ui-design-craft)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
16d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Ui Design Craft? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

UI Design Craft

AI-generated UI fails in a recognizable direction: it optimizes for the safe average. The counter is not taste words - it is bans with exact signatures, budgets with numbers, and a mechanical gate. One meta-rule governs the whole file, learned from production tests upstream: "use sparingly" does not transfer to a generating model; binary phrasing and countable caps do.

0. Classify the surface before generating anything

First action, before any code or mockup:

  • MARKETING (landing, portfolio, about, pricing): all sections below

apply, §2 layout budgets included.

  • APP UI (dashboard, admin, dense product screens - including the

chrome AROUND embedded tables and editors): route the visual system to an established design system (Material, Fluent, Carbon, Polaris, or the project's own); from this file everything EXCEPT §2 applies - the §1 bans, §3 discipline, §4 states, §5 floors, §6 preservation on restyles, and §7's gate minus its MARKETING group. The §2 marketing budgets do NOT apply - a dashboard is allowed to be dense and repetitive.

  • HYBRID (product site with embedded app screens): classify each section.
  • Out of scope entirely - say so and route: the INTERNALS of data-grid

and code-editor widgets (TanStack/AG Grid, Monaco/CodeMirror - theme them through their official APIs; the app chrome around them stays in scope above), native mobile idiom (HIG/Material), realtime collaboration surfaces.

  • If the project has a governing design contract (DESIGN.md, tokens file,

brand guide), it outranks every default in this file - verify and consume it per design-review-gate ("the design contract"); the bans below still apply to whatever the contract leaves open.

1. The ban list (AI tells, with signatures)

Hard bans by default; a ban yields only to an explicit brand fact or brief requirement, stated in writing ("the brand IS purple" unlocks purple - the override is the recorded reason, never silent).

Color tells

  • Default indigo/violet accent: #6366f1 #4f46e5 #8b5cf6 #7c3aed and their

Tailwind neighbors. The single most reliable AI fingerprint.

  • The "premium consumer" beige+brass+espresso family applied to every

luxury/artisan/wellness brief; same for olive/clay/terracotta earth tones as an unresearched default.

  • Evenly distributed color with no accent hierarchy; semantic colors

(error/success) reused decoratively.

Typography tells

  • Fraunces or Instrument Serif as unjustified display defaults (the two

LLM-favorite serifs); any serif repeated from your previous project.

  • The decorative one-word swap: one headline word italicized, serif-ed, or

color-shifted purely to feel "designed". Distinction comes from layout, scale, weight, or media - not a costume on one word.

  • Em-dash in generated page copy: zero, everywhere on the page -

headlines, body, captions, buttons, alt text. Upstream production tests found models ignore "limit em-dashes"; only the binary form holds. Use a hyphen or restructure. (Scope: copy on generated surfaces - not code, not prose documents.)

  • ALL-CAPS or small labels without letter-spacing; italic descenders clipped

by tight line-height (leading below ~1.1 with no padding).

Container tells

  • Cards as the default grouping: if removing border+shadow+background+radius

hurts nothing, it was never a card - use sections, columns, dividers.

  • Decorative left accent stripe (border-left: 4px solid ): stripes

carry meaning (status, priority, selection) or they go.

  • The 3-column icon-in-colored-circle feature grid, repeated symmetrically -

the single most recognizable signature of generated marketing pages.

  • "Split header" (huge left headline + small floating right paragraph) as a

section-header default; stack vertically instead, max-width ~65ch.

  • Hairline borders above AND below every row of a list or spec table.
  • Standard emoji standing in for icons: use an icon set or a plain

Unicode glyph (an arrow, a bullet, a diamond) - emoji as UI iconography reads as unfinished work.

Label and meta tells

  • Eyebrow labels (small caps tracking-wide strings above headlines) above

every section. Cap: at most 1 eyebrow per 3 sections, hero included - the check is a count, see §7.

  • Section numbering (001 · Capabilities), version stamps in heroes or

footers (v0.6, BETA, Build 0048), pagination on tiles (01 / 4).

  • Locale/weather/time strips ("LIS 14:23 · 18°C"), scroll cues ("Scroll to

explore"), decorative status dots, poetic section labels ("From the field", "Quietly trusted by"), generic step labels ("Step 1 / Step 2" - the verb is the label: "Install", "Configure", "Ship").

  • Middle-dot separator chains ("foo · bar · baz · qux") - max one · per

metadata line.

Fake-content tells

  • Div-built fake product UI in the hero (fake terminal, fake dashboard of

styled divs) - use a real screenshot, a real component, or nothing.

  • Placeholder people ("Jane Doe", "John Smith"), invented testimonials,

fake logos, fake metrics. Absent real content, design the empty state.

  • Image-led direction collapsed to text-only because no image was handy:

preserve the media slot with honest dimensions and an art-direction note instead of faking imagery with CSS blobs.

Mode tells

  • Dark mode as an unrequested default: light is the baseline unless the

brief says otherwise (dark is a brand decision, not a vibe).

  • "Calm editorial" autopilot (cream canvas + oversized serif + airy spacing)

on products that need utility or proof. Before using it, write down why THIS product earns an editorial voice; no written reason, no serif system.

2. Layout budgets (MARKETING surfaces)

  • Hero: headline max 2 lines desktop; subtext max 20 words; at most 4

text elements total (one eyebrow-or-brand-strip, headline, subtext, CTA row of 1 primary + max 1 secondary); CTAs visible without scrolling; top padding capped ~6rem. Trust logos, pricing teasers, and feature bullets live in sections BELOW the hero, never inside it. If the value proposition does not fit in 20 words, the proposition is unclear - fix that, not the rule.

  • Headline scale is planned with the asset: 3-5 word headlines may take

the largest scale; 6+ words step down one or two sizes. A hero headline wrapping to 4 lines is a font-size error, not a copy problem.

  • Navigation: single line at desktop, height max 80px (default 64-72px).

A two-line desktop nav is broken, not cozy.

  • Section rhythm: a layout family (3-col cards, full-width quote,

text+image split...) appears at most once per page - which itself forces variety, no separate diversity quota needed; max 2 consecutive alternating image/text "zigzag" sections - the third consecutive is a gate failure.

  • Bento grids: exactly as many cells as there is content (3 items = a

1+2 or 2+1 composition, never a blank filler tile), and at least 2-3 cells carry real visual variation (image, tinted background, pattern) - not six white-on-white text tiles.

  • Mobile collapse is declared per section in the same component; "the

framework will handle it" is not a declaration.

3. Type and color discipline

  • Hierarchy has 3-4 distinct levels, differentiated by weight and spacing,

not size alone.

  • Accent budget: at most 2 visible accent uses per screen. Spend them

deliberately - a highlighted label plus the primary action is the usual allocation. Links draw from the same budget; once it is spent, style them as underlined foreground text instead.

  • One lock each per page: ONE theme (no section flipping to inverted

mid-page), ONE accent applied identically, ONE corner-radius system.

  • Contrast floors (WCAG AA): text needs 4.5:1 at normal size and 3:1 only

at large size (large = at least 24px, or 18.66px bold) - placeholder text and text over images or scrims included, with no exemption for either; non-text UI needs 3:1 where the visual carries identification or state (WCAG 1.4.11's scope - inactive controls and unmodified browser defaults are exempt, and a decorative boundary not needed to identify the control is too; this pack treats focus and state indicators as always in scope, a deliberately stricter pack floor); secondary BODY-size text needs 4.5:1 in both color modes - dark-mode secondary text is where this fails silently.

  • Micro text is whitelisted, not vibes-based: the smallest size (11px and

below) appears only in an enumerated role list you can state (timestamps, badge pills, axis labels...) - any other use upgrades a size.

4. State coverage - the most reliable generated-UI failure

Shipping only the populated state IS the failure mode. Every surface that fetches, accepts, or transforms data renders five states before it is done:

| State | Must contain | |---|---| | Loading | skeleton/spinner plus a "taking longer than expected" fallback after ~10-15s | | Empty | headline, plain explanation, primary CTA - designed, not blank | | Error | plain-language cause, recovery action, user input preserved | | Populated | the case you actually designed | | Edge | extreme volume, long unbroken strings, missing optional fields |

Edge matrix to actually try: 10,000-row table with sort+filter; 200-char title with no spaces; missing avatar/optional field; 0 results after a filter; offline mid-submit. Render each and look - reading the code is not rendering.

5. Platform floors (APP and touch surfaces)

  • Touch targets: 44x44pt (iOS) / 48x48dp (Android) minimum - the vendors'

published guidance (Apple phrases it as a rule, Android as a recommendation), adopted here as hard pack floors. Audits measure CSS px (~= pt/dp at 1x) and apply to touch-capable surfaces; a desktop-pointer-only UI may go smaller with the reason recorded.

  • Modal scrims visibly isolate the foreground: content behind reads as

inert, and any text sitting over the scrim still meets the §3 floors. Vendor anchor: Material defines scrim as a color ROLE, commonly rendered at a 32%-black component default (Compose drawers, container transform) - start there; heavier is a legitimate brand choice, while a missing or near-invisible scrim is a defect.

  • Press/hover states never shift layout (no border-width or size jumps -

swap colors/elevation instead).

  • Every SUPPORTED color mode rendered and looked at before done, with

every applicable §4 state checked in each. A single-mode product passes as single-mode - supporting dark is a product decision, and §1's tell is about DEFAULTING to dark unasked, not about supporting it. Dark-mode regressions hide in secondary text and disabled states.

6. Restyling an existing surface: preservation rules

A redesign is a visual change, not a silent content or interface change. Never modify without explicit approval: URL slugs and anchor IDs, primary nav labels, form field names and order (autofill + analytics depend on them), the logo/wordmark, legal and consent copy. Extract existing brand colors FIRST - a purple brand stays purple, overriding §1's indigo ban. Never regress accessibility already present (focus states, alt text, keyboard paths, contrast). These names are interfaces with hidden consumers

  • operational-rigor's call-site sweep applies to them, verbatim: "Interfaces

include observable output text and names." (canonical copy in operational-rigor §3; on disagreement that file wins).

7. The pre-flight gate (mechanical)

Run before delivering the surface. Every box, honestly; if a single box cannot be honestly ticked, the surface is not done. Counts are counted, not estimated. Boxes group by §0's surface class - an APP UI surface skips the MARKETING group because §0 scoped those budgets out, not as an escape hatch.

All surfaces:

  • [ ] Surface classified (§0) and, for APP UI, a design system named?
  • [ ] Zero em-dashes in page copy (search the output for the character)?
  • [ ] Accent count per screen motion-craft.
  • Running a measured review with a fix loop -> design-review-gate; its

static pass applies this file's gate.

  • Charts and data visualization -> the environment's dataviz tooling.
  • Native mobile idiom -> Apple HIG / Material directly.
  • Brand identity creation (naming, logo) - out of scope for this pack.

Provenance

Composed 2026-07-19 for design-pack 0.1.0. The ban corpus and layout budgets are curated - deliberately not imported wholesale - from three MIT sources verified in their repos at composition time: Leonxlnx/taste-skill (layout hard rules incl. hero/nav/zigzag/bento/eyebrow caps and their mechanical counts, the production-test tell corpus, the em-dash binary and its "use sparingly fails" lesson, preservation rules, the pre-flight if-one-box-fails framing; its full §9-10 corpus remains the deeper upstream reference), referodesign/refero_skill (indigo/cards/dark-default/calm- editorial/emoji/stripe tells, litmus tests, media-slot preservation), and Emil Kowalski's skills (context; his marketing directives stripped). From Apache-2.0 nexu-io/open-design: the accent-budget number and tiered-ban severity as ideas, and §4's five-state table as ADAPTED EXPRESSION carried under Apache-2.0 (notice in THIRD-PARTY-NOTICES) - not an ideas-only borrow. Ideas without text from MIT garrytan/gstack (surface classifier, icon-circle-grid tell - independently listed by taste-skill) and MIT creativetimofficial/ui (micro-text whitelist technique). WCAG/HIG/Material floors are vendor facts - re-verify on major vendor releases; hex lists and font-fashion bans are the fastest-decaying facts here (they track model training data - revisit each model generation). Probe status: probe-tested 2026-07-19 on a private planted-slop fixture (fresh weak-tier agent, n=1 per arm, smoke grade): the bare arm found 0 of 7 planted tells - returning CSS-engineering nits instead - while the ruled arm found 6 of 7 with rule citations plus budget catches beyond the plants; it missed the em-dash tell, recorded as the arm's one gap (rule retained - one miss is not yet a wrong rule, skill-authoring §7). A round-0 run was voided for a leaked in-fixture answer key, caught by the expected-before-actual discrepancy rather than the score. Trail in the design-pack PR.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.