skeleton
a placeholder in the first ink at 18.75 percent, on whole-pixel bars. it holds still: no shimmer, no pulse.
bunx --bun shadcn@latest add @mk/skeletonloading rows
a bar is 12 px tall and square unless you size it. size each one to the words it stands in for.
the rows take shape before their words arrive
in a table
a table keeps its header and its rules while its rows load. mark the loading region with aria-busy.
| ship | runs | median | last run |
|---|---|---|---|
| ship | runs | median | last run |
|---|---|---|---|
empty
with nothing to load, the list prints the empty wedge in crop marks and says what lands there.
no runs yet the first run lands here when an agent picks up a task.
no runs yet the first run lands here when an agent picks up a task.