skelly reads your rendered UI and generates pixel-accurate loading states for it — components, pages, images, text, tables. Shimmer, pulse, or optimistic. On the server too.
Wrap anything — a button, a table, an entire page.
skelly measures the real layout — shapes, radii, line lengths.
A matching skeleton renders instantly — client or server.
Pick a visual per component or set one globally. All of them respect prefers-reduced-motion.
The core is vanilla — 2.1 kB, framework-agnostic. Thin adapters where you want idioms.
import { Skelly } from 'skelly/react'
<Skelly loading={isLoading} visual="shimmer">
<ProfileCard user={user} />
</Skelly>Bundle size, minified + gzip. Core only; adapters add ~0.4 kB.
Test Skelly's layout-compiling speed on your current browser CPU thread.