Overview
Empty State provides contextual messages when data is unavailable—whether a list is empty, search returns no results, or filters produce no matches. It supports custom illustrations, descriptions, and action buttons to guide users toward next steps.Usage
Sizes
Three size presets control padding and typography scale:sm— Inside tables and compact cards (heading-sm, 24px padding)md— Card panels and drawer bodies (heading-md, 48px padding) — defaultlg— Full-page zero-states (heading-xl, 80px padding)
Common Patterns
No Search Results
No Filter Results
Empty Cart
Text Only (No Illustration)
Props
Main heading
Muted description below the title
Illustration — any SVG, icon, or image node. Size it before passing (e.g.
style={{ fontSize: 48 }} on an antd icon).Action area — pass an AxButton or any ReactNode. Rendered below the description.
Controls padding and typography scale:
sm: inside tables and compact cards (heading-sm, body-xs, 24px padding)md: card panels and drawer bodies (heading-md, body-sm, 48px padding)lg: full-page zero-states (heading-xl, body-md, 80px padding)
Additional class name
When to Use
- Empty lists — Show when a data table, card list, or inbox has no items
- No search results — Guide users to refine their query or clear the search
- No filter matches — Suggest clearing or adjusting active filters
- First-time experience — Encourage users to take their first action (e.g., “Create your first order”)
- Errors or unavailable data — Inform users when data failed to load
Best Practices
Use action-oriented language in the button (“Create Order”, “Browse Catalog”)
Match the illustration to the context (e.g., shopping cart icon for empty cart)
Keep descriptions concise and helpful — explain why it’s empty and what to do next
Use
size="sm" inside tables and cards to avoid excessive whitespaceAccessibility
- Uses semantic heading and text elements
- Illustrations are marked
aria-hidden="true" - Action buttons are fully keyboard-navigable