A product state is a condition the product, screen, component, or data can be in at a particular moment, which determines what the user sees and can do.
Take a task-approval card. It might be pending, approved, rejected, reassigned, expired, loading, or failed.
The visual component may look similar across these conditions, but the available actions and meaning are different.
Each condition is a product state.
Users do not experience one static design. They experience changes over time. State tells the interface what to display and which interactions are valid.
If a design only represents the default state, engineering still has to decide what happens during waiting, failure, permissions, or completion.
A screen is a visual container. One screen can support many states.
A billing page may show no invoices, invoices loading, a populated list, a fetch error, or a permission-restricted view without becoming a completely different screen.
A polished default screenshot leaves important state logic undefined.
For example, showing an enabled approval action after the request has expired.
The move between states often needs feedback, not an instant unexplained jump.
A product state answers: what is true right now, and what can the user see or do because of it?
Empty state · Loading state · Error state · Edge case
Read Prototyping UX Design for state-heavy product examples.