Component 36 · Feedback
Empty state
Explain why content is absent and offer a next action.
Overview
Explain why content is absent and offer a next action. It converts domain state into an understandable, traceable and accessible interface contract.
When to use
Use HE/Empty state when you need to explain why content is absent and offer a next action. Keep its role distinct from transport freshness, animal-health severity and model confidence.
Example
◇
No devices yet
Add the first edge device to this farm.
<div class="he-empty-state"><div class="he-empty-state__icon">◇</div><h3>No devices yet</h3><p>Add the first edge device to this farm.</p><button class="he-button">Add device</button></div>Anatomy
1Identity
2Primary value
3State
4Evidence or action
Anatomy stays identical in Pasture and Atlantic. A responsive layout may wrap or stack parts, but reading order and focus order remain equivalent.
Variants and states
Variants
States
Accessibility
Use a real heading, concise explanation, and no more than one primary action.
- Maintain a visible keyboard focus indicator and a logical focus sequence.
- Never rely on colour alone for operational, freshness or severity state.
- Keep touch targets at least 44 × 44 px unless the target is an inline text link.
Cross-platform contract
| Surface | Canonical name | Status |
|---|---|---|
| Figma | HE/Empty state | stable |
| Web | .he-empty-state | implemented |
| Flutter | HeEmptyState | implemented |
| Token root | component.emptystate | generated |