ui-states-and-feedback
Installation
SKILL.md
UI states and feedback
Every data screen in an Expo app shows exactly one of loading, offline, failed, empty, filtered-empty or its content, decided once in its model hook; loading waits 300 ms and then shows a placeholder shaped like the content; a refresh never blanks the screen; and every message takes the lowest rung of one ladder (inline, notice, banner, dialog), with Undo instead of a confirmation for anything reversible. A zero-dependency checker and a screen states contract prove it.