# Standardize Loading States on Skeleton — Design **Date:** 2026-06-08 **Status:** Approved (brainstorming) — ready for implementation planning. **Issue:** #53. ## Context Loading is rendered three incompatible ways: good `Skeleton` (objects-table, object-detail, search-panel, field-list); bare "…" text in a `
  • ` (vocabulary-list, vocabulary-terms, authorities-page) — looks half-rendered; and empty `role="status"` divs (require-auth → blank app on first load; object-edit-form → blank form pane). Plus the lazy-route `FormFallback` renders full-pane "Loading…" text → flash + layout shift on first nav to `/objects/new`, `/objects/:id/edit`, `/fields`. `Skeleton` (`ui/skeleton.tsx`) is a simple `animate-pulse rounded-md bg-muted` div. No shared skeleton recipes or Spinner exist. No tests assert loading markup (they `findBy` content), so retiring the placeholders won't break tests. The three "…" sites render a `
  • ` inside a `