prettify

star 5.4k

Iteratively improves the visual design of an existing page — making it more sophisticated, richer, and prettier — without redesigning from scratch. Works on any page or UI surface: landing pages, marketing pages, pricing, docs, dashboards, admin views, settings, modals, empty states, etc. Use when the user says "prettify", or that a page/screen/component "looks flat", "feels generic", "needs more polish", "make it prettier", "more sophisticated", "richer", or asks to improve, refine, or enhance an existing UI surface. Loops screenshot → critique → targeted edit → re-screenshot until it meets a higher visual bar.

yournextstore By yournextstore schedule Updated 5/7/2026

name: prettify description: Iteratively improves the visual design of an existing page — making it more sophisticated, richer, and prettier — without redesigning from scratch. Works on any page or UI surface: landing pages, marketing pages, pricing, docs, dashboards, admin views, settings, modals, empty states, etc. Use when the user says "prettify", or that a page/screen/component "looks flat", "feels generic", "needs more polish", "make it prettier", "more sophisticated", "richer", or asks to improve, refine, or enhance an existing UI surface. Loops screenshot → critique → targeted edit → re-screenshot until it meets a higher visual bar.

Prettify

Improve the visual quality of an existing UI surface through small, targeted iterations. Works on any page or component: landing/marketing, pricing, docs, dashboards, admin tables, settings panels, modals, empty states, etc. Preserve the existing structure, copy, and brand. Do not redesign.

Inputs

The user gives you a target — a route (e.g. /, /pricing, /admin/products), a component file, a running URL, or a specific section/modal/state of a page. If unclear, ask once:

  • Which surface? (route, file path, or component)
  • For component-level targets: what state/route exposes it? (e.g. "the empty state on /admin/orders when there are no orders")
  • What feels off? (optional — gives you a starting hypothesis)
  • How many iterations? (default 5; user can request more)

If the dev server isn't running, start it (bun dev) before iterating. For authed surfaces (admin, settings), make sure you're signed in before screenshotting.

The Loop

Run this loop N times. Each pass should make one focused improvement, not a sweeping rewrite.

1. Screenshot the current state

Use Chrome DevTools MCP. Capture at all three required widths (mobile-first is mandatory for YNS):

  • 320px (mobile)
  • 768px (tablet)
  • 1280px (desktop)

Save screenshots so you can compare before/after across iterations.

2. Critique against the rubric

Score the current state across these dimensions. Focus the next change on the lowest-scoring one — don't try to fix everything at once.

Dimension What to look for
Visual hierarchy Does the eye know where to land first? Is the primary heading/action dominant? Are CTAs obvious without being loud? On data-heavy surfaces: is the most important column/value emphasized?
Typography Type scale ratio (1.25–1.5×). Heading weight contrast vs body. Tracking on display sizes. Line-height on body (~1.5). Tabular numerals on numeric tables.
Spacing & rhythm Vertical rhythm between sections/rows/cards. Generous breathing room around primary content. Consistent spacing scale (Tailwind 4/6/8/12/16/24). No cramped edges on mobile.
Color & contrast Is the palette doing work? Accent color used sparingly for emphasis (status, focus, primary action). Neutrals layered (not just white + black). Sufficient contrast (WCAG AA).
Depth & texture Subtle shadows, borders, gradients, noise, or backdrop blur where appropriate. Avoid flat-everywhere or shadow-everywhere.
Detail & richness Micro-details that signal craft: refined dividers, subtle animations, considered iconography, well-tuned focus rings, balanced asymmetry, considered empty/loading states.
Consistency Border radii, shadow tokens, button styles, table cell padding, form field heights all aligned. No one-off styles.
Mobile fidelity Mobile is not a shrunken desktop. Adjusted type sizes, stacked layouts, full-bleed sections, scrollable tables with sticky headers where appropriate.

3. Apply ONE targeted improvement

Pick the single highest-leverage change for this iteration. Examples of good targeted changes:

Marketing / landing surfaces:

  • "Increase H1 from text-4xl md:text-6xl to text-5xl md:text-7xl, tighten tracking to -0.02em."
  • "Add a subtle gradient backdrop behind the hero (bg-gradient-to-b from-white via-zinc-50 to-white)."
  • "Replace solid border on feature cards with border border-zinc-200/60 shadow-[0_1px_2px_rgba(0,0,0,0.04)]."
  • "Bump section padding from py-16 to py-24 md:py-32 for more breathing room."

App / admin / dashboard surfaces:

  • "Apply tabular-nums and right-align numeric columns; soften header row to text-zinc-500 uppercase text-xs tracking-wider."
  • "Tighten table row padding (py-3py-2.5) and add divide-y divide-zinc-100 for a calmer rhythm."
  • "Replace heavy card shadow with a hairline border + 1px shadow combo (border border-zinc-200/70 shadow-[0_1px_0_rgba(0,0,0,0.02)])."
  • "Add focus-visible:ring-2 ring-zinc-900/10 ring-offset-2 to interactive rows for a more refined focus state."

Component-level (modals, empty states, forms):

  • "Increase modal max-width and inner padding; make the title heavier and add a subtle muted subtitle."
  • "Replace the empty-state stock illustration with a refined icon, soften the helper text, lift the primary CTA."
  • "Align form field heights, increase label tracking, and unify input border to a single token."

Examples of bad changes (these are redesigns, not enrichment):

  • Replacing the hero / table / modal layout entirely.
  • Swapping the brand color palette.
  • Adding a new section, column, or step that wasn't there.
  • Rewriting copy.
  • Replacing a component library (e.g. ripping out shadcn primitives).

4. Verify the change

  • Re-screenshot at all three widths.
  • Compare side-by-side with the previous screenshot.
  • If the change made it worse or didn't move the needle, revert it. Don't accumulate regressions.
  • Run bun lint and bun tsgo --noEmit if you touched TypeScript.

5. Log the iteration

Keep a running log in your response:

Iteration 3/5
- Critique focus: typography hierarchy (H1 felt thin against the body copy)
- Change: H1 font-weight 600 → 700, tracking -0.01em → -0.02em
- Result: kept (clearer hierarchy, no regression at 320px)

If reverted, say so and try the next-priority dimension.

Rules

  • Tabs for indentation, always (per AGENTS.md). No spaces.
  • Mobile-first. Every change must hold at 320px. If a change only works on desktop, it's a regression.
  • Never rewrite copy. Visual changes only unless the user explicitly asks for copy edits.
  • Never restructure layout (swap sections, change DOM order, replace components). Style and refine what's there.
  • Use existing tokens — Tailwind classes, design system colors, cn() for class merging. Don't introduce raw hex codes if a token exists.
  • Use YNSLink, not Link if you touch links.
  • Edit existing files, don't create new components for cosmetic tweaks.
  • One change per iteration. If you want to bundle "spacing + shadow", do them as iteration 4 and iteration 5.
  • Max iterations = what the user asked for. Don't keep going past it. Stop, summarize, and ask if they want more.

Anti-patterns to avoid

  • Shadow soup — shadows on every card, every button, every section. Pick where depth matters.
  • Gradient everything — one or two strategic gradients, not a gradient zoo.
  • Border-everything — borders should be intentional, not decorative wrap.
  • Animation noise — fade-in-on-scroll on every element is exhausting. Animate selectively.
  • AI-generic aesthetic — purple-to-pink gradients, glassmorphism on white, generic stock-photo backgrounds. Aim for considered, not trendy.
  • Loud accents — accent colors should highlight, not dominate. If three elements compete for attention, none win.

Output format

After the loop completes, output a summary:

## Prettify summary — <surface>

Iterations run: 5
Changes kept: 4
Changes reverted: 1

### Changes
1. [kept] Hero H1 weight + tracking — stronger hierarchy
2. [kept] Section padding scale (py-16 → py-24 md:py-32) — more breathing room
3. [reverted] Gradient backdrop — competed with hero image
4. [kept] Feature card border refinement — softer, more considered
5. [kept] Footer accent divider — added subtle craft detail

### Files touched
- src/app/page.tsx
- src/ui/marketing/hero.tsx
- src/ui/marketing/feature-grid.tsx

### Screenshots
- before/ and after/ at 320, 768, 1280 — see <path>

### What I'd do next
<one or two suggestions for further iterations the user might want>

When to stop early

  • You've made 3 consecutive reverts in a row — your hypothesis is wrong, ask the user for direction.
  • The user's stated complaint is resolved (e.g., "it felt flat" → has depth now). Don't keep adding for the sake of adding.
  • The surface is hitting diminishing returns. Better to stop at a strong v2 than churn into a worse v3.
Install via CLI
npx skills add https://github.com/yournextstore/yournextstore --skill prettify
Repository Details
star Stars 5,434
call_split Forks 663
navigation Branch main
article Path SKILL.md
More from Creator
yournextstore
yournextstore Explore all skills →