ui-polish-pass

Core pack — always active as final step. Visual polish pass for spacing, hierarchy, alignment, and cleanup. Runs after design-review and ux-baseline-check as the last quality step before presenting work.

3,891 stars

Best use case

ui-polish-pass is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Core pack — always active as final step. Visual polish pass for spacing, hierarchy, alignment, and cleanup. Runs after design-review and ux-baseline-check as the last quality step before presenting work.

Teams using ui-polish-pass should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ui-polish-pass/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/aa-on-ai/ui-polish-pass/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ui-polish-pass/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ui-polish-pass Compares

Feature / Agentui-polish-passStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Core pack — always active as final step. Visual polish pass for spacing, hierarchy, alignment, and cleanup. Runs after design-review and ux-baseline-check as the last quality step before presenting work.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# UI Polish Pass

## Core Pack — Always Active
This is a core skill. Use as the final step after design-review and ux-baseline-check on all visual work.

The screen works. Now make it feel right. This is the difference between functional and professional.

## Core Lens
- Distill before decorating.
- Strip the screen to its essential structure, then add back only what earns its place.
- If a polish pass needs more color, more cards, and more chrome, it is probably not a polish pass.
- Use `/bolder` and `/quieter` as directional moves:
  - `/bolder` = increase contrast, hierarchy, or confidence without adding clutter
  - `/quieter` = remove noise, reduce emphasis, let the right thing lead

## The Pass (run sequentially)

### Pass 1: Spacing & Breathing Room
- [ ] Section spacing — major sections have clear visual separation (32-48px minimum between groups)
- [ ] Element spacing — consistent gaps within groups (use the project's spacing scale, usually 4/8/12/16/24)
- [ ] Edge padding — content doesn't touch container edges. Minimum 16px padding, 24-32px preferred
- [ ] The squint test — do clear groups emerge, or is it one undifferentiated blob?
- [ ] Remove, don't add — if two elements feel crowded, try removing one before adding more UI

### Pass 2: Typography Hierarchy
- [ ] One clear headline — the page has exactly one thing that reads as the primary heading
- [ ] Three levels max — heading, subheading, body. If you need more, the IA is probably wrong
- [ ] Weight before size — try bold before bigger. Try softer opacity before smaller
- [ ] No orphan labels — labels without content, headers without their section
- [ ] Consistent text styles — same content type uses the same style everywhere

### Pass 3: Alignment & Grid
- [ ] Left-align by default — center alignment is for special moments, not routine content
- [ ] Consistent gutters — columns have the same gap throughout
- [ ] Baseline alignment — text in adjacent columns sits cleanly together
- [ ] No rogue pixels — near-miss alignment reads cheap fast
- [ ] Max content width — prose doesn't exceed 65-75 characters per line

### Pass 4: Color & Contrast
- [ ] Restrained palette — use project colors only, don't improvise new ones
- [ ] Tinted neutrals — prefer slightly warm/cool neutrals over pure gray
- [ ] Hierarchy through opacity — secondary text at 60-70%, tertiary at 40-50% when appropriate
- [ ] No decoration color — color means action, status, selection, or rare emphasis
- [ ] Dark/light mode — if the project supports both, check both

### Pass 5: Interactive Feel
- [ ] Hover states exist — every clickable element acknowledges intent
- [ ] Transitions are smooth — 150-200ms for micro-interactions, ~300ms for layout changes
- [ ] Easing is refined — no bounce, no elastic, no novelty curves
- [ ] Cursor changes — pointer on clickable, not-allowed on disabled, grab on draggable
- [ ] Focus visible — tab through the page, always know where you are
- [ ] No dead zones — click targets are generous, not tiny islands of text

### Pass 6: Micro-Details
- [ ] **Tabular numbers** — any dynamically updating number uses `font-variant-numeric: tabular-nums` to prevent layout shift (counters, prices, stats, timers)
- [ ] **Text wrapping** — headings use `text-wrap: balance`, body text uses `text-wrap: pretty` to avoid orphans
- [ ] **Font smoothing** — root layout has `-webkit-font-smoothing: antialiased` for crisper text on macOS
- [ ] **Concentric border radius** — nested rounded elements have outer radius = inner radius + padding (see alignment.md)
- [ ] **Image outlines** — images on light backgrounds get a subtle `outline: 1px solid rgba(0,0,0,0.06)` for consistent depth
- [ ] **Icon animations** — icons that change state (open/close, play/pause) cross-fade with opacity + scale, not hard swap
- [ ] **Scale on press** — buttons use `scale(0.97)` on active state for tactile feedback, 100ms transition
- [ ] **No `transition: all`** — always specify exact properties (`transition-property: transform, opacity`)

### Pass 7: Final Proof
- [ ] Screenshot at 1x — does it still look professional at actual pixels?
- [ ] Compare to reference — side by side, honestly
- [ ] The 3-second test — can someone tell what the screen is for quickly?
- [ ] Would Linear or Vercel ship this?
- [ ] Final distill pass — what can you remove and make better at the same time?

## When NOT to Polish
- Prototypes Aaron hasn't aligned on yet
- Throwaway experiments or spikes
- Internal tools where speed matters more than beauty

Polish comes after structure is approved. Never polish a bad foundation.

## Speed Tips
- Fix spacing first — it solves half the problem
- Use the browser inspector grid overlay to check alignment
- Compare at actual viewport width, not narrow devtools panels
- If you're spending more than 15 minutes on polish, something structural is probably wrong
- If the UI feels weak, choose a direction: `/bolder` or `/quieter`, then commit

Related Skills

pentest-auth-bypass

3891
from openclaw/skills

Test authentication and session management controls for bypass and account takeover scenarios.

Security

career-compass

3891
from openclaw/skills

职场罗盘 by Barry — 一站式求职辅助 Skill。整合简历解析优化、公司调研(就业向)、同城职位搜索、模拟面试四大模块。输入个人信息/简历,自动生成简历优化方向、公司调研报告、招聘表单,并可进行模拟面试。

pass

3891
from openclaw/skills

Complete guide for using pass, the standard Unix password manager. Use this skill whenever the user asks about pass, password-store, managing passwords from the terminal, GPG-encrypted passwords, setting up pass for the first time, inserting or generating passwords, syncing a password store with git, using pass-otp for TOTP codes, importing passwords from another manager, or any task involving the `pass` CLI. Trigger on phrases like "set up pass", "add a password to pass", "sync my password store", "generate a password", "pass git", "pass-otp", "pass-import", or any variation.

local-password

3891
from openclaw/skills

Generate secure random passwords and check password strength. Supports custom length and character types (uppercase, lowercase, numbers, symbols). Pure local operation, no external dependencies. Use when users need to generate new secure passwords or check password strength.

onepassword

3891
from openclaw/skills

1Password Connect — vaults, items, secrets management for server-side applications.

medical-email-polisher

3891
from openclaw/skills

Transforms rough email drafts into polished, professional medical correspondence.

agent-passport-system

3891
from openclaw/skills

Enforcement and accountability layer for AI agents. Bring your own identity (did:key, did:web, SPIFFE, OAuth, did:aps). Gateway enforcement boundary, monotonic narrowing, cascade revocation, spending controls, data lifecycle, observation governance (telemetry scopes, derivation rights, behavioral memory). Use when agents need scoped delegation, trust scoring, constraint enforcement, or cryptographic audit trails. 103 modules, 132 MCP tools, 2535 tests. 8 framework adapters: Stripe, Composio, IBAC/Cedar, LangChain, CrewAI, MCP, A2A, Gonka.

collab-offer-polisher

3891
from openclaw/skills

把合作邀约、商务私信、品牌合作需求和合作条款草稿,改写成更专业、更容易推进合作的版本。

Agent Communication Skill (PassDeck)

3891
from openclaw/skills

This skill provides the security and networking foundation for AI Agent swarms. It handles DID (Decentralized Identity) registration, cryptographically secure signing using Ed25519, and E2EE (End-to-End Encryption) for sensitive data.

English Polish

3891
from openclaw/skills

Refine English writing for grammar, fluency, and native-level expression. Covers academic, business, creative, and casual registers.

Academic Paper Polish

3891
from openclaw/skills

Transform rough drafts into publication-ready manuscripts following Nature, Science, and top-tier journal conventions. Supports both English and Chinese academic writing.

Skill Operator (PassDeck)

3880
from openclaw/skills

The Skill Operator serves as the orchestration and orchestration engine for collaborative agent sessions. It provides high-performance persistence using Loro-CRDT with an append-only log architecture, ensuring that data is never lost and remains consistent across all agents.