The loaded state gets a spec. The empty one gets whatever someone types at 2am before launch.
Every product has a moment where a screen has nothing in it yet: a new account with no files, a search with no results, a dashboard before the first data point lands. Teams spend real time on the full state and the loading state, then leave the empty state to render as a bare browser default or a lone gray sentence nobody styled. Empty-state tokens close that gap with three roles instead of a fresh decision each time: an icon slot at a fixed size, a headline at a fixed text scale (never the page's main heading), and a CTA in a consistent ghost variant so it never competes with a real primary action elsewhere on the screen. The mechanism only changes two things per screen, the icon and the copy; the card shape, the spacing, and the button weight stay identical everywhere the pattern shows up, whether that is an empty inbox, an empty search, or an empty file list. Once this exists, a new zero-data screen is a content decision, not a design decision, because the shape was already settled the first time.

Leave a Reply
You must be logged in to post a comment.