Skip to content
← writing

Skeletons that don't shift: build the skeleton from the real content

css
loading
performance
frontend

Ask your agent to implement this

Read the full writeup at https://seangeng.com/writing/skeletons-that-dont-shift.md and implement it in my project.

It covers: Skeletons that don't shift: build the skeleton from the real content. Most loading skeletons are hand-sized grey boxes that don't quite match the content, so the page jumps when data lands. Keep the real content mounted, shimmer it in place, and wipe it in with a mask. Zero layout shift, pure CSS.

Requirements:
- Follow the technique/approach exactly as described in the writeup.
- Adapt names, colors, and styling to my project's existing conventions.
- If it's a component, make it reusable with sensible props and TypeScript types.
- Keep it accessible: semantic HTML, keyboard support, and respect prefers-reduced-motion.
- When done, tell me which files you created or changed and how to use it.

Paste into Claude Code, Codex, Cursor, or any agent. view raw .md download source .zip