Visual polish reviewer
Skill rakibulism/agent-skills-os/skills/visual-polish-reviewer
Review UI screenshots or code for visual polish — alignment, spacing rhythm, typography, color contrast, shadows, borders, and micro-details that separate "fine" from "feels great". Produces a prioritized punch list of fixes with concrete CSS/token changes. Use when the user says the UI "feels off", asks for a polish pass, or wants a design QA before shipping.From its SKILL.md
npx -y skills add rakibulism/agent-skills-os --skill visual-polish-reviewerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.7 KB, 999 tokens by cl100k_base, as published. Nobody here has run it
Visual Polish Reviewer
You spot the details that make a UI feel either cared-for or rushed. Most "feels off" feelings have specific, fixable causes.
What to look at, in order
1. Optical alignment, not geometric
Centering an icon next to text mathematically isn't centering. Glyphs have asymmetric bounding boxes; chevrons and triangles need a nudge of 1-2px to look centered. Same for circles next to text caps.
2. Spacing rhythm
Spacing should come from a scale (4/8/12/16/24/32...). Inspect for:
- One-off values like
13px,17px— almost always a sign nobody decided. - Inconsistent gap between similar-purpose elements (e.g. card padding differs across the page).
- Vertical rhythm — line-height stack should leave consistent breathing room.
3. Typography
- Font weight contrast: body text and headings should differ enough to read at a glance, but not so much it looks decorative.
- Tabular numerals for any column of numbers (
font-variant-numeric: tabular-nums). Misaligned digits in tables and stats are a giveaway. - Font smoothing:
-webkit-font-smoothing: antialiasedfor light text on dark backgrounds; default for dark on light. Wrong choice makes type look fuzzy or too thin. - Line height by use: tight (1.1-1.2) for display, comfortable (1.4-1.5) for body, loose (1.6+) only for long-form.
- Hyphenation / overflow: long words breaking the layout?
overflow-wrap: anywhereorhyphens: autoon narrow containers.
4. Color & contrast
- Body text contrast ≥ 4.5:1 (WCAG AA). Disabled / placeholder ≥ 3:1.
- "Muted" gray text on white shouldn't drop below ~#6E6E6E.
- Don't use pure black (
#000) on pure white — slightly warmer/darker grays read better. - Hover/active state should shift by a perceivable amount (~5-10% lightness or use a different token).
5. Borders, radii, and shadows
- Mixing radii (one card with
8px, another with12px) looks unintentional. Pick a scale. - Hairline borders on retina: 1px CSS = 2 device pixels — looks fine. But
0.5pxis a design-engineering signature when you want truly thin. - Shadows that look right have low alpha and longer Y offset than X — light comes from above. A single huge soft shadow looks cheap; two stacked (one tight, one diffuse) looks expensive.
- Image outlines: images on a light background often need a 1px inner shadow at low alpha to define the edge — otherwise they "float."
6. Borders on focus
Focus rings should be visible, on-brand, and not just the browser default. Inside-the-element rings (box-shadow: 0 0 0 2px <color>) look cleaner than outline.
7. Micro-interactions present?
- Hover transitions on interactive elements (not just
:hovercolor flip — a 150-200ms ease). - Stagger animations on list reveals (50-80ms between items).
- Loading states (not just spinners — skeleton or content placeholders for layouts).
8. Density and alignment of grouped elements
- Form labels and inputs aligned on a baseline.
- Icons in a row sharing the same optical size (different SVGs often need scale adjustment).
- Avatars/images cropped to the same aspect ratio.
Output format
## Blocking (visible to anyone)
1. **<one-line issue>** — <where it happens>.
Fix: <token/CSS change>
## Polish (noticeable on a second look)
1. ...
## Subtle (chef's kiss)
1. ...
## Done well
- <optional positives>
For each finding, prefer a concrete change over an instruction. "Increase to space.4 (16px)" beats "more breathing room."
What to avoid
- Personal-taste calls dressed as polish. "I don't like blue" is a taste call; "the primary button blue fails 3:1 against white" is a finding.
- Restating what a linter caught. Focus on what's invisible to tooling.
- Big rewrites in a polish pass. Polish is dozens of small fixes, not an architecture change. If you find a structural problem, call it out separately and stay scoped.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.