# UI polish checklist

Canonical: https://amoeba.design/tools/ui-polish-checklist

A free checklist for teams cleaning up product UI. Read the code, remove overrides, use the browser, and check the states a SaaS interface actually has.

A free pass for teams cleaning up product UI. No account, no email gate. Checks stay in this browser. Clearing site data clears them.

Use it on one workflow, not the whole app. A campaigns table, a settings form, an invite modal: click the task, read the code, then mark what is actually true. The misses are a backlog. Contrast, when you want the spec, is[WCAG 2.2 AA](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html).

0 of 23 checked

0 of 23 checked

Read it before you ship it

Read the code behind the screen, including code an agent wrote.

Click the main task yourself and count the clicks.

Check empty, loading, error, and a name long enough to wrap.

Finish that same task with the keyboard only.

Review the diff. A screenshot is a glance.

Kill the overrides

List every override of a component's default styles.

Delete overrides that were accidents.

Move overrides you meant into the component, then delete the one-off.

Use one button, one input, and one dialog for this workflow.

Fail CI when the design system is violated.

Point agents at Storybook, or other docs that show the real component.

Use what the browser gives you

Prefer a native dialog, popover, disclosure, or form control before a custom widget.

Keep a visible focus style.

Label each control with what will happen.

Stick to one type scale and one spacing scale.

Use an existing layout pattern instead of a new string of utility classes.

Check that text stays readable. WCAG 2.2 AA is the reference for contrast.

Make the task obvious

Give the screen one primary action. Make secondary actions look secondary.

Name destructive actions for the damage they do.

Write errors that say what to fix.

Remove a chat affordance that does not change the task.

Align text, icons, and actions to the same edges.

Write one issue per problem, then limit how many you fix at once.

Reset checklist

## When the list is a backlog

A quiet screen with a few honest checks beats every box ticked from memory. Write an issue for each miss. One issue, one problem. Then stop adding scope.

If that backlog is longer than your engineers can pick up, the offer on this site is[rent a design engineer](https://amoeba.design/rent-a-design-engineer.md): you populate the issues, I ship polished UI as pull requests for your team to review. The [homepage](https://amoeba.design/index.md) is the short version.
