A specific state of a screen, loading, empty, error, populated, or any variant that changes how the screen appears.
A screen state is the variantVariantGrowthA variant in an A/B testView reference → a single screen renders under a given condition: empty, loading, error, populated, offline. One screen is many screens, and most of them are not the one in the mockup. The tension the concept exists to hold is that designers and engineers naturally draw the screen full of perfect data, the happy path, while real users meet it most often when it has nothing in it, is still loading, or has just failed. Designing only the happy path ships an interface that breaks the moment reality differs from the demo.
The clearest articulation is Scott Hurff's "UI Stack", set out in his 2015 article and his book Designing Products People Love (2018). Hurff names five states every screen can occupy: the ideal state, the empty state, the error state, the partial state, and the loading state. The argument is that a screen is awkward when its designer planned for the ideal and left the other four to chance, so users hit blank voids, dead spinners, and unhelpful error messages.
The idea took hold across design systemsDesign SystemDesign SystemThe root design system entityView reference →, which now treat empty, loading, and error states as required deliverables rather than optional polish. The empty state in particular was reframed as an opportunityOpportunityDiscoveryA validated gap worth solvingView reference →: a first-run screen with nothing in it is the best moment to teach a new user what to do, so the "empty" state often does the heaviest onboarding work on the whole screen.
A team designs an inbox screen. The mockup shows twelve tidy messages, the ideal state. Working through the stack, they design four more: the empty state for a brand-new account, which explains how mail arrives and offers a first action; the loading state, a skeleton rather than a spinner so the layout does not jump; the error state for a failed sync, with a retry control and a plain explanation; and the partial state for the user with one message, which must not look broken. Five states from one screen, and four of them are the ones most users see first.
screenScreenExperience DesignA distinct screen or view in the productView reference → owns many screen states. The screen is the noun; the state is the adjective applied to it under a runtime condition.In the Unified Product Graph, a screen state sits in the Experience, Design & Brand region as a leaf hanging off a ScreenExperience DesignA distinct screen or view in the productView reference →, joined by a screenScreenrenders asScreen Statehierarchy edge. Modelling each state as its own node makes the unhappy paths first-class and countable: a screen with a populated state and no empty, loading, or error siblings is visibly incomplete, which turns "did we design all the states" from a review-time hope into a structural fact the graph can answer.screen_renders_as_screen_state
Type-specific fields on BaseNode
state_namestringState
triggerstringCause for entering this state
conditionstringData or environmental condition the state represents
messagestringUser-visible copy
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
1 edge type connected to this entity.
screen_renders_as_screen_state