Skip to content
Skillpedia
Interfaces (UI/UX)48k · #4433

ui-states

Helps your agent create all screens and states for an app. This includes empty, error, or loading screens, ensuring a good experience.

What it does

This tool helps create app screens that work well in all situations, not just when everything is perfect. It ensures screens show useful information even when there's no data, the internet is slow, or something goes wrong.

When to use it

  • ✓When building a new screen that displays information.
  • ✓When reviewing a screen to ensure it works in all scenarios.
  • ✓When a screen only shows the 'happy path' (everything working perfectly).

Example of what to ask your AI

“Create the screen states for the product list, including when it's empty, loading, has an error, or is offline.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/ui-states/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/ui-states/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

It considers all possible problems a user might encounter (like having nothing to see or the internet dropping) and defines how the screen should look and behave in each of those cases.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add sickn33/agentic-awesome-skills --skill ui-states

Or download just the file:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/ui-states/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

UI states · by UXKIN

Real UI, not AI slop.

Most generated screens only show the happy path: perfect data, a fast connection, nothing failing. Real people meet everything else first: an empty list on day one, a spinner that never ends, an error with no way out, a name too long for its box. This skill finds those states for each screen and builds them properly.

It works on its own, with no account, token or server.

When to Use

  • Use when building or reviewing a screen that loads, lists, searches, submits or saves data.
  • Use when asked to make UI production-ready, handle edge cases or "finish" a screen.
  • Use when a screen only shows the happy path.

Connect UXKIN (optional)

UXKIN (https://uxkin.com) is a library of 500,000+ real app screens, user journeys and 15k+ website design systems, each with a DESIGN.md. Connected, it lets you look at how real products solve what you are building. To connect it, the person:

  1. adds the MCP server https://uxkin.com/mcp (name: uxkin) in this app's MCP settings,
  2. signs in with their UXKIN account when the app asks (searches need a UXKIN plan),
  3. or follows the guide for their app: https://uxkin.com/ui-design-mcp

Only set this up when the person asks for it; never add servers or accounts on your own.

1. List the states for each screen

For every screen or component that shows, loads or changes data, go through this list and keep the ones that can happen:

State Ask
First use What does someone see before they've added anything?
Empty What if a list, search or filter has nothing to show?
Loading What shows while data loads, and for how long?
Partial What if some data loads and some doesn't?
Error What if the request fails or times out?
Offline What if there's no connection?
Validation What if the input is wrong, missing or too long?
Permission What if access, a permission or a plan is missing?
Success How does someone know their action worked?
Edge content Very long names, missing images, zero, huge numbers, many items
Busy action What happens while a button's action is running?

Write the list down before building, and confirm the important ones with the person if the right behavior isn't obvious.

2. Build each state properly

  • First use and empty: say what this place is for and give the next step as a button ("Add your first invoice"), not just "No data". Empty because of a filter or search is different: say so and offer to clear it.
  • Loading: keep the layout steady. Use placeholders shaped like the content for lists and cards, an inline spinner for small areas, and progress for long tasks. Don't block the whole screen for a part of it. If it takes more than a few seconds, say what's happening.
  • Error: say what went wrong in plain words, what the person can do, and offer the action (Try again, Edit, Contact support). Keep what they typed. Never show raw error codes or stack traces.
  • Offline: show that the connection is missing, keep what's already loaded visible, and retry automatically when it's back if that's safe.
  • Validation: check at the right moment (on leaving a field or on submit, not on every keystroke), put the message next to the field, and say how to fix it.
  • Permission or plan missing: explain what's missing and how to get it, and keep the rest of the screen usable.
  • Success: confirm briefly and in place (a short message, the item appearing in the list); offer Undo for actions that remove things.
  • Edge content: truncate long text with the full value available, give images a fallback, format big numbers, and paginate or virtualise long lists.
  • Busy actions: disable the button and show progress while it runs so it can't be sent twice.

Use the project's existing components and copy style for every state; don't invent a new look for them.

3. Check each state

Make each state appear for real: empty data, a slow or failed request (through the browser's network tools, a mock or a test flag), offline mode, very long text. Look at each at a phone and a desktop width. Fix what's broken and check again.

Report which states you built, which you checked and how, and any that need a decision from the person (for example, what the error should say for their backend).

Optional: real examples

If the UXKIN MCP tools are connected, find_ui_references finds how

…

FAQ

What are 'UI states'?

These are the different appearances and behaviors of an app screen depending on what's happening, such as loading data, having no results, or encountering an error.

Why is it important to consider these states?

Because users frequently encounter these situations. A screen well-designed for all states improves user experience and prevents frustration.

Do I need to connect an account to use this?

No, the tool works on its own. Connecting an account is optional for accessing examples from other apps.

Details

Original description by the author

Design and build the UI states agents forget: first use, empty, loading, error, offline, no results, long content, permission denied and success.

repo: sickn33/agentic-awesome-skills

Popularity

GitHub stars
48k
Ranking position
#4433
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills