Tlačidlo v makete zvyčajne zobrazuje jeden stav: predvolený. V skutočnom produkte je rovnaké tlačidlo umiestnené, zaostrené pomocou klávesnice, stlačené, vypnuté, keď je formulár neúplný, a načítava sa počas odosielania požiadavky. Každý z nich je stav používateľského rozhrania a každý potrebuje dizajn.
Pomáha oddeliť dve skupiny. Stavy interakcie pochádzajú od používateľa: vznášanie sa, zaostrenie, stlačenie a vypnutie. Stavy údajov pochádzajú zo systému: načítavanie, prázdne, čiastočné údaje, chyba a úspech. Obrazovka so zoznamom napríklad potrebuje návrh, keď sa načítava, keď nemá žiadne položky, keď má jednu položku, keď má stovky a keď požiadavka zlyhá.
Štáty zamerania si zaslúžia osobitnú pozornosť. Ľudia, ktorí používajú klávesnicu alebo prepínacie zariadenie, závisia od viditeľného indikátora zaostrenia, aby vedeli, kde sa nachádzajú. Odstránenie obrysu zamerania prehliadača bez náhrady je jedným z najčastejších zlyhaní dostupnosti.
Zmena medzi stavmi je tiež súčasťou dizajnu. Krátky, jasný prechod z predvoleného na stlačený potvrdí klepnutie. Stav načítania, ktorý sa plynule zmení na úspech, hovorí ľuďom, že ich akcia fungovala. Náhle skoky alebo príliš pomalá animácia spôsobujú, že rozhranie je nespoľahlivé.
Praktickým spôsobom, ako sa vyhnúť chýbajúcim stavom, je vypísať ich pre každý komponent pred návrhom alebo modelovať komponent ako stavový automat: množinu stavov a udalostí, ktoré sa medzi nimi pohybujú. ExodeUI, ktorý vyrábame, funguje týmto spôsobom. Každý stav a prechody medzi nimi navrhujete v jednom súbore a váš kód odosiela udalosti, ktoré menia stavy v skutočnej aplikácii.