Feedback
Skeleton
A vertical-column shimmer that mirrors real reader metrics while content loads.
Design question
How should loading state look in a column-based vertical reader without layout shift?
Column skeleton
The skeleton mirrors the real column geometry — same width, same cell height, same RTL column order — so text lands exactly where the ghosts were. It pulses (opacity) rather than sweeping a horizontal shimmer.
Guidance
Do
- ✓Match skeleton column width and cell height to actual rendered values
- ✓Use RTL column order in the skeleton — columns flow right-to-left
- ✓Vary glyph-level density slightly for visual realism
Don't
- ✗Use horizontal paragraph skeletons in a vertical reader
- ✗Animate skeleton with a horizontal shimmer — use pulse opacity instead
- ✗Show skeletons for less than 200ms — content loads too fast to need them
Accessibility
aria-busy='true' on the container. aria-label describing what's loading. Remove when content appears.
Open Question
Should the skeleton shimmer animate top-to-bottom (following reading direction) or use a simple pulse? Does directionality in the loading animation matter?