NEURALNG
FEEDBACKBETA

Skeleton

Decorative loading placeholders with CSS-native dimensions, three geometries, calm motion and complete headless ownership.

Decorative semanticsReduced-motion safeSSR safe

GET STARTED

Import

Import the canonical standalone component from its granular entry point.

app.ts TypeScript
import { NeuralSkeleton } from '@neural-ng/core/skeleton';

@Component({ imports: [NeuralSkeleton] })

Basic text placeholders

The rounded default fills its container. Width and height accept CSS length strings instead of framework-specific size shortcuts.

Shapes and dimensions

Circle uses one size value; rectangle and rounded variants use independent dimensions. borderRadius can override any chosen shape.

Pulse, wave and none

Pulse is the calm default, wave communicates active fetching and none creates a completely static placeholder.

Pulse

Wave

None

Content-aware composition

Match the final layout to avoid content shift. The surrounding region—not each decorative bar—owns aria-busy and its stable name.

Static placeholders

Use animation="none" in dense views, snapshots or products where motion would distract. Dimensions and theme surface remain unchanged.

Unstyled and typed slots

Structural clipping and explicit dimensions remain while consumer classes own the root and effect.

Usage boundaries

Skeleton

Represents visual geometry while content is unavailable.

Region

Owns aria-busy, a stable accessible name and replacement timing.

LoadingOverlay

Blocks interaction when the entire surface must wait.