Skip to content

Roll out PageSkeleton to primary list/detail pages (replace bare spinners) #2843

Description

@atomantic

Problem

Most primary pages (Dashboard, Wiki, Goals, Messages, MeatSpace, ~15 more) render a bare BrailleSpinner/animate-spin loading state with no reserved layout dimensions, causing an above-the-fold layout pop when content arrives. The purpose-built client/src/components/ui/PageSkeleton.jsx (reserves header + card-grid dims) is wired into only 3 pages (DataDog, GitHub, Jira).

Approach (decided)

Extend PageSkeleton (or a small generalized variant) to the other primary list/detail pages in place of the centered spinner. Do it incrementally, verifying each page's first-paint reserves the right dimensions.

Acceptance

  • Primary index/detail pages use a dimension-reserving skeleton on first paint; no CLS pop on navigation.

Found by the /do:better audit (2026-07-21). Deferred from auto-remediation because it touches ~15 pages and each needs per-page dimension tuning.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

planTracked by /do:replanseverity:highuxProposed from a UX/design audit

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions