一键导入
frontend-visual-design-taste
The user is building something where the quality
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
The user is building something where the quality
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Review code changes and report issues by severity with actionable fixes.
Sharpen a fuzzy intention into one measurable objective string that drives the rest of the work.
Convert a Prompt Flow PRS pipeline submission to run a Microsoft Agent Framework workflow.
Build a Model Context Protocol (MCP) server that lets an LLM call into external tools and resources.
Summarize PDF documents into concise bullet-point digests.
Bump a dependency version across a pnpm workspace and update lockfile.
| name | Frontend Visual Design Taste |
| description | The user is building something where the quality |
| category | code-assistants |
| tags | ["ai","api","backend","database","docker"] |
| source | {"url":"https://github.com/letta-ai/skills/tree/16352df0a3ce49c321281d9b45f73462bda582e5/tools/frontend-skill","fetched_at":"2026-06-12","commit":"16352df0a3ce49c321281d9b45f73462bda582e5","license":"MIT","original_path":"tools/frontend-skill/SKILL.md"} |
| license | MIT |
| author | Letta (downstream pack: badhope) |
| version | 0.1.0 |
| needs_review | false |
| slug | frontend-visual-design |
| created | 2026-06-12 |
| updated | 2026-06-19 |
| inputs | [{"name":"artifact_type","type":"string","required":true,"description":"Type of artifact - landing-page/marketing/app-shell/demo/prototype/game-ui/dashboard"},{"name":"thesis","type":"string","required":true,"description":"Visual thesis - mood + material + energy in one sentence"},{"name":"audience","type":"string","required":false,"description":"Target audience"},{"name":"motion_budget","type":"string","required":false,"description":"Motion level - none/restrained/expressive"}] |
| output | {"format":"markdown","description":"Generated content based on the user request"} |
The user is building something where the quality of the result depends on art direction, hierarchy, restraint, imagery, and motion — not on how many components ship. Typical triggers: "make the landing page look like a real product", "this prototype needs visual weight", "the demo is too plain", "I want the UI to feel premium", "design taste feedback".
Use this skill for:
Do not use this for:
artifact_type — landing-page / marketing /
app-shell / demo / prototype / game-ui /
dashboard.thesis — one sentence: mood + material +
energy. The single most important input.audience (optional) — who reads it.motion_budget (optional) — none / restrained
/ expressive.A ## Working Model block first, then section
notes, then a ## Beautiful Defaults recap, then
an ## Anti-patterns avoided checklist. The
agent should then build (or revise) the artifact
to match.
You are designing a UI where the quality of the
work depends on art direction, hierarchy,
restraint, imagery, and motion — not component
count. Default toward award-level composition:
one big idea, strong imagery, sparse copy,
rigorous spacing, and a small number of
memorable motions.
## 1. Write the working model first
Before building, write three things. The user
should be able to read these and tell if you
understood the brief.
- **Visual thesis** — one sentence:
mood + material + energy. Example: "soft
brutalism with brutal sans-serif, matte
concrete texture, slow fades". A weak thesis
is "modern and clean". A strong thesis
commits.
- **Content plan** — hero, support, detail,
final CTA. Each section gets one job, one
dominant visual idea, and one primary
takeaway or action.
- **Interaction thesis** — 2-3 motion ideas
that change the feel of the page. Examples:
"text fades in after the image settles",
"hover on a card swaps it for a full-bleed
variant", "scroll progress reveals the
section title with a 0.4s ease-out".
If you can't write these, you don't have a
design — you have a layout. Stop and ask the
user what mood they want.
## 2. Beautiful defaults (apply unless told
otherwise)
- **Start with composition, not components.**
Decide the grid, the dominant visual, and
the breathing room before picking a
Card.
- **Prefer a full-bleed hero or full-canvas
visual anchor.** A page that opens with a
card stack is a blog post, not a landing
page.
- **Make the brand or product name the
loudest text.** If your headline is louder
than the brand, you wrote an essay, not a
hero.
- **Keep copy short enough to scan in
seconds.** No 4-line paragraphs above the
fold. If the user has to read, they won't.
- **Use whitespace, alignment, scale,
cropping, and contrast before adding
chrome.** Decoration is a last resort.
- **Limit the system: two typefaces max, one
accent color by default.** Three typefaces
is a portfolio, not a product.
- **Default to cardless layouts.** Use
sections, columns, dividers, lists, and
media blocks instead. Cards are for
interchangeable items, not for everything.
- **Treat the first viewport as a poster,
not a document.** A poster has one big
thing, generous space around it, and a
reason to scroll. A document has a
sidebar and a heading.
## 3. Landing-page default sequence
1. **Hero** — brand or product, promise, CTA,
and one dominant visual
2. **Support** — one concrete feature, offer,
or proof point
3. **Detail** — atmosphere, workflow, product
depth, or story
4. **Final CTA** — convert, start, visit, or
contact
### Hero rules
- One composition only. Two compositions in
one hero is a busy billboard.
- Full-bleed image or dominant visual plane.
- Canonical full-bleed rule: on branded
landing pages, the hero itself must run
edge-to-edge with no inherited page
gutters, framed container, or shared
max-width. Constrain only the inner
text/action column.
- Brand first, headline second, body third,
CTA fourth. Reverse the order and the
brand is the smallest thing on the page.
- No hero cards, stat strips, logo clouds,
pill soup, or floating dashboards by
default. They eat the hero.
- Headlines: roughly 2-3 lines on desktop,
readable in one glance on mobile.
- Keep the text column narrow and anchored
to a calm area of the image (don't put
white text on the brightest cloud).
### Section rules
- Each section earns its scroll. If a
section could be deleted without changing
the page's argument, delete it.
- One dominant visual idea per section. A
section with two dominant visuals is
arguing with itself.
- Use a mix of media and type. Pages that
are all type feel academic; pages that
are all media feel like a moodboard.
- End with a single, decisive CTA. The
"Schedule a call / Read the docs / Sign
up" trio is three CTAs, not one.
## 4. Motion
- **Restrained** (default): one entrance
per section, easing `cubic-bezier(0.2,
0.8, 0.2, 1)`, durations 300-500ms,
no bounces.
- **Expressive** (marketing, hero): bigger
eases, parallax only on the hero, scroll-
linked reveals, occasional 3D tilt on
cards. Don't chain more than 3
scroll-linked animations in a row.
- **None** (document / data surfaces):
no entrance, no hover, no scroll-linked
anything. Page behaves like a book.
Motion that exists to show off motion is
worse than no motion.
## 5. Imagery
- Pick one imagery language per page:
photography / 3D render / illustration /
abstract gradient / typographic poster.
Mixing languages in one page reads as
"design system by committee".
- Photography: real, specific, current.
No stock-photo smiles, no AI-generated
"diverse team high-fiving" backgrounds.
- 3D: one material, one lighting setup.
Two materials reads as a render farm
demo.
- Illustration: consistent weight, line
style, and color palette across the
whole site.
- Abstract gradient: the gradient itself
is the design. Make it specific (color
stops, grain, noise) — not a generic
purple-pink smear.
## 6. Anti-patterns to flag and remove
Flag and remove, in order of severity:
- **Pill soup** — rows of feature pills in
the hero. Each pill is a tax on attention.
One promise, not seven.
- **Card stack hero** — three feature cards
side-by-side at the top. That's a table of
contents, not a hero.
- **Stat strip without proof** — "10,000+
users" with no source. Either cite it or
drop it.
- **Logo cloud** — row of customer logos
that's actually 2 logos scaled up. Cut
to one row, smaller.
- **Floating dashboard mockup** — hero shows
a tilted screenshot of "the product". The
product is not the hero; the brand is.
- **Two-column text-and-image blocks
repeated 5 times** — that's a brochure,
not a landing page. Vary the layout.
- **Generic gradient background with white
card centered** — the default of every
AI landing page generator. Replace with
the project's actual visual language.
- **CTA trio at the bottom** — "Start free /
Read the docs / Talk to sales" is three
things; the user will pick none. Pick
one.
- **Modal-on-first-visit** — destroys the
experience the user came for.
- **Cookie banner covering 30% of the
viewport** — sized for a court order, not
a button.
- **Animation on every scroll** — feels
like a slideshow. Use motion to mark
transitions, not to mark scrolling.
- **"Trusted by" with a brand that doesn't
match the audience** — instantly
suspicious.
Input:
artifact_type: landing-page
thesis: "soft brutalism with brutal sans-serif,
matte concrete texture, slow fades"
audience: "engineers considering a new
observability tool"
motion_budget: restrained
Output:
## Working model
### Visual thesis
Soft brutalism: heavy grotesque type on
matte-concrete texture, generous negative space,
slow 400ms eases. Confident without being loud.
Engineering credibility over marketing gloss.
### Content plan
- **Hero** — brand + one-line promise + one
concrete number (not "10,000+ users" — a real
metric like "p99 query at 12ms across 4B
spans")
- **Support** — one feature with a real
screenshot from a real install, not a
dashboard mockup
- **Detail** — "How it works" 3-step flow with
one diagram, not three diagrams
- **Final CTA** — single button: "Start a 14-day
trial"
### Interaction thesis
- Text fades in after the hero image settles
(300ms delay, 400ms ease)
- Section titles use a 0.4s ease-out reveal
tied to scroll progress
- Card hover: subtle border-color shift, no
scale, no shadow
## Beautiful defaults applied
- Full-bleed hero, no card stack
- Brand name loudest text in the hero
- Two typefaces: Inter Display (headings),
IBM Plex Mono (code/numbers)
- One accent color: a desaturated teal
- No pills in hero
- No logo cloud; one row of three real customer
logos, grayscale
- Copy: 8-word hero headline, 12-word subhead
- Final CTA is one button
## Anti-patterns avoided
- ✗ pill soup
- ✗ card stack hero
- ✗ floating dashboard mockup
- ✗ stat strip without proof
- ✗ CTA trio
- ✗ modal-on-first-visit
- ✗ animation on every scroll
These are the bugs that bite every new user. Check them before shipping:
Spec doesn't match thesis: Design decisions contradict the stated visual direction.
Too many defaults: Shipping every component because no one said no.
Imitation without understanding: Copying a reference site's look without knowing why it works.
Motion for its own sake: Adding animation because it looks cool, not because it communicates.
Accessibility ignored: High contrast, keyboard navigation, screen readers not considered.
The agent then builds the page to match. If the user pushes back on a default ("but I want the card stack hero"), change it — but call out the trade-off in one sentence.