UX Feedback
Overview
Part of StyleSeed, this skill ensures data-dependent UI does not stop at the happy path. It adds the four core feedback states every serious product needs: loading, empty, error, and success.
When to Use
- Use when a component or page fetches, mutates, or depends on async data
- Use when a flow currently renders only the success path
- Use when a card, list, or page needs better state communication
- Use when the product needs clear recovery and confirmation behavior
The Four Required States
Loading
Use skeletons that match the final layout. Avoid spinners inside cards unless the pattern genuinely requires them. Delay skeletons slightly to avoid flashes on fast responses.
Empty
Provide a friendly explanation and a next action. Zero values should still render meaningfully instead of disappearing.
Error
Use plain-language failure messages and always offer recovery where possible. Localize failures to the affected card or section if the rest of the page can still work.
Success
Use toasts or equivalent lightweight confirmation for completed actions. Add undo for reversible destructive changes.
Output
Return:
- The data-dependent areas identified
- The loading, empty, error, and success states added for each one
- Any reusable empty-state or toast patterns created
- Follow-up work needed for analytics, retries, or accessibility
Best Practices
- Match loading placeholders to the real layout
- Keep partial failure isolated whenever possible
- Make recovery obvious, not hidden in logs or developer tools
- Use success feedback sparingly but clearly
Additional Resources
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Core Process
- Identify all asynchronous boundaries requiring loading states.
- Implement skeleton screens that mirror the final loaded content structure.
- Design actionable error states with clear recovery paths.
- Create informative empty states featuring a primary call-to-action.
Common Rationalizations
| Rationalization |
Reality |
| I'll just use a generic spinner for this entire page load. |
Skeleton screens provide better perceived performance and context. |
| A simple 'Error' text is enough. |
Error states must be actionable, explaining what went wrong and how to fix it. |
| I don't need an empty state, the user will just add data. |
Empty states are critical onboarding opportunities to guide the user's first action. |
Red Flags
- Blank screens during data fetching.
- Dead-end error messages without recovery actions.
- Unstyled or generic empty states lacking call-to-actions.
Verification
1---2name: ux-feedback3description: Use when implementing loading, empty, error, and success feedback states in StyleSeed components to ensure responsive communication.4---56# UX Feedback78## Overview910Part of [StyleSeed](https://github.com/bitjaru/styleseed), this skill ensures data-dependent UI does not stop at the happy path. It adds the four core feedback states every serious product needs: loading, empty, error, and success.1112## When to Use13- Use when a component or page fetches, mutates, or depends on async data14- Use when a flow currently renders only the success path15- Use when a card, list, or page needs better state communication16- Use when the product needs clear recovery and confirmation behavior1718## The Four Required States1920### Loading2122Use skeletons that match the final layout. Avoid spinners inside cards unless the pattern genuinely requires them. Delay skeletons slightly to avoid flashes on fast responses.2324### Empty2526Provide a friendly explanation and a next action. Zero values should still render meaningfully instead of disappearing.2728### Error2930Use plain-language failure messages and always offer recovery where possible. Localize failures to the affected card or section if the rest of the page can still work.3132### Success3334Use toasts or equivalent lightweight confirmation for completed actions. Add undo for reversible destructive changes.3536## Output3738Return:391. The data-dependent areas identified402. The loading, empty, error, and success states added for each one413. Any reusable empty-state or toast patterns created424. Follow-up work needed for analytics, retries, or accessibility4344## Best Practices4546- Match loading placeholders to the real layout47- Keep partial failure isolated whenever possible48- Make recovery obvious, not hidden in logs or developer tools49- Use success feedback sparingly but clearly5051## Additional Resources5253- [StyleSeed repository](https://github.com/bitjaru/styleseed)54- [Source skill](https://github.com/bitjaru/styleseed/blob/main/seeds/toss/.claude/skills/ux-feedback/SKILL.md)5556## Limitations57- Use this skill only when the task clearly matches the scope described above.58- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.59- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.606162## Core Process631. Identify all asynchronous boundaries requiring loading states.642. Implement skeleton screens that mirror the final loaded content structure.653. Design actionable error states with clear recovery paths.664. Create informative empty states featuring a primary call-to-action.6768## Common Rationalizations69| Rationalization | Reality |70|---|---|71| I'll just use a generic spinner for this entire page load. | Skeleton screens provide better perceived performance and context. |72| A simple 'Error' text is enough. | Error states must be actionable, explaining what went wrong and how to fix it. |73| I don't need an empty state, the user will just add data. | Empty states are critical onboarding opportunities to guide the user's first action. |7475## Red Flags76- Blank screens during data fetching.77- Dead-end error messages without recovery actions.78- Unstyled or generic empty states lacking call-to-actions.7980## Verification81- [ ] Skeleton loading states match the final content structure.82- [ ] Error messages provide clear, actionable recovery steps.83- [ ] Empty states include a clear call-to-action to populate data.