Patterns
Overview

Patterns

skeletal-ui detects and wires four patterns automatically.

PatternTriggerDocs
RSCasync component inside <SkeletonWrapper>RSC →
CSRnon-async component inside <SkeletonWrapper>CSR →
lazyReact.lazy(() => import('./X'))lazy →
dynamicnext/dynamic(() => import('./X'))dynamic →

Detection

The scanner checks the async keyword on the source function:

  • async functionrsc pattern
  • non-async function → csr pattern
  • React.lazy(...)lazy pattern
  • next/dynamic(...)dynamic pattern

Playwright wait behavior

PatternPlaywright wait
RSCwaits for networkidle (server data needed)
CSRskips networkidle (client-side, no server chunk)
lazywaits for networkidle (chunk load)
dynamicwaits for networkidle (chunk load)