Back to Components
Screen States
Empty, loading, error, denied and populated: every screen owes all five.
CrystalStates
One switch for the five states. Loading and populated share a ghost, so the list lands in the same place it was drawn.
Mademoiselle storefront
Updated today
Ops Center
Updated today
Crystal docs
Updated today
Retries: 0
CrystalGhost
A ghost loader and the real content share one grid cell and cross-fade. The space is reserved from the first paint, so nothing jumps.
ErrorState and Denied
An error says what went wrong and how to fix it. A denied state says why, who can change it, and what to do next.
Payment didn't go through
Your card was declined. Try another card or contact your bank.
Billing is read-only for you
Only account owners can change the plan.
Ask an owner to make the change.
CrystalDevChip
A build or environment marker pinned to a screen corner, outside the layout. Dashed, so it never reads as part of the app.