
A screen is not finished when it looks good.
A screen is finished when it behaves correctly, communicates clearly, survives real content, and can be built without guessing. “Looks good” is a compliment, not a specification. If your team treats compliments as acceptance criteria, your project will leak time.
Definition of done is not a bureaucratic document. It’s an insurance policy. It protects quality, timeline, margin, developer sanity, and client trust. It turns subjective approval into a shared standard. Most importantly, it prevents the most expensive kind of work: revisiting decisions after the build has already started.
If you run client projects, this matters even more. Clients do not measure your quality by your Figma file. They measure it by how predictable the delivery feels. Undefined done creates surprises. Surprises create anxiety. Anxiety creates micromanagement. Micromanagement creates chaos. A definition of done breaks that chain.
This post gives you a practical one.
UI rework usually looks like small tweaks. It arrives disguised as polish. In reality, it is a symptom: the team never agreed on what must be true before a screen can be shipped.
Without a definition of done, these questions appear too late:
What happens on error? What happens when data is empty? What happens on slow network? What happens when text is longer? What happens on small devices? What is the hover state? What is the focus state? What does success look like? What happens next?
If those questions are asked after implementation, the design becomes a series of patches. Patches cost more than decisions.
So the goal is not perfection. The goal is coverage.
A mature design team does not rely on taste to ship. Taste is useful, but taste alone does not guarantee function.
Coverage does.
Coverage means the screen can handle the states and scenarios it will face in real life. That is what makes UI feel professional. That is what prevents users from getting stuck. That is what reduces support. That is what makes clients think, quietly, “These people know what they’re doing.”
Use this as your final gate before you call a screen finished, send it to dev, or present it for approval. You can keep it as a checklist in your project template. You can also put it into your internal QA process.
Here’s the standard. It is not long. It is just non-negotiable.
A UI screen is done when:
the purpose is clear and the primary action is unmissable
the content is readable and written in plain language
the screen covers states, edge cases, and real content
the layout works across breakpoints without “design by hope”
interactions are defined so developers don’t improvise
accessibility basics are respected, not postponed
handoff removes ambiguity rather than creating it
That’s the spine. Now we make it concrete.
If a screen cannot be summarized, it cannot be built cleanly.
A finished screen has a single job that you can state in one sentence. It answers one primary user question first. It makes one primary action obvious. If your screen contains multiple CTAs competing for attention, the work is not done – it is unresolved.
This is where most teams lose days. Not in pixels. In decisions they avoided.
A finished UI does not force users to decode language.
Labels should be plain. Buttons should state outcomes. Errors should tell the user exactly what happened and how to fix it. Success should confirm what changed and what to do next. If your UI uses vague confirmations like “Done” or “Success” without context, you’re leaving users in a state of uncertainty, and uncertainty is expensive.
This is also where brand trust is built. Clear microcopy is not “content”. It is guidance.
This is the part that separates a good portfolio screen from a screen that survives production.
Most screens look perfect in ideal conditions. Real screens live in messy conditions: empty data, long text, failed requests, slow loading, partial completion, wrong inputs, and interruptions.
If those states aren’t designed, they will still exist. They will just be designed by accident – by default browser behavior, by rushed dev decisions, or by whatever UI pattern was easiest at the time.
That is not “agile”. That is uncontrolled quality.
Here is the only list you need to keep in your process. It is short and it saves projects.
Define the empty state, loading state, error state, and success state for the screen’s main action.
Stress test content with extremes: long names, long titles, long addresses, translations, and zero data.
Confirm how the screen behaves on small devices and slow network.
If you do this before handoff, you prevent rework after handoff.
A finished screen does not require interpretation.
Hover, focus, active, disabled, and loading states should be clear for interactive elements. Responsive behavior should be defined. Complex components should include notes on interaction, logic, and precedence.
The goal is not to micro-manage developers. The goal is to stop the work from becoming a guessing game.
Good handoff feels like a recipe. Bad handoff feels like a puzzle.
Accessibility is not a separate project. It is part of the definition of done.
You do not need to solve the entire world in one sprint. You do need to avoid the obvious failures. Contrast that makes text unreadable. Focus states that disappear. Tap targets too small to use. Meaning communicated by color alone. Motion that cannot be avoided. Labels that are missing.
If a user cannot operate your interface reliably, your interface is not done. It is just shipped.
A definition of done does something subtle: it lowers the emotional temperature of reviews.
Instead of debating taste, you validate standards. Instead of chasing subjective approval, you walk through coverage. It becomes easier to explain what is included, what is not, and why a change request is a change request.
Clients don’t want to supervise your process. They want to trust it. A definition of done gives them a reason to.
If you want a fast ritual before you hand something off, use this.
Open the screen and ask, in this order: what is the job, what is the next step, what happens when it fails, what happens when it succeeds, what happens when it’s empty, and what happens when content is long. If any answer is “we’ll figure it out later”, the screen is not done.
Later is where timelines go to die.
Your definition of done is your standard of care.
It decides whether your work feels calm in production or fragile in production. It decides whether your projects run cleanly or drift into endless polishing. It decides whether developers build with confidence or with assumptions. It decides whether clients feel predictable progress or surprise.
Most teams don’t need more talent. They need a clearer finish line.
Define done once, apply it everywhere, and your work becomes easier to ship, easier to defend, and harder to break.
Our Telegram community chat is where the Circle actually happens. We keep it friendly and low-pressure: weekly prompts, questions, small wins, and feedback when you want it. No gatekeeping. No judgement.
Short emails with frameworks, breakdowns, and prompts. Decision Making, Information Hierarchy, Quality Control, UX Ethics, Design Systems, Career Practice, News.








By subscribing, you agree to receive Circle Notes and accept our Terms of Use and Privacy Policy.