Preloader

Animated loading screens with multiple style variants

preloader-tw
loadingyourexperience.

Customize

#B19EEF
1500
99
0
10

Props

loadingboolean

Whether the preloader is active

Default:false
variant"stairs" | "percentage" | "circle" | "slide" | "curtain"

Visual variant of the preloader animation

Default:"stairs"
position"fixed" | "absolute"

Position type of the preloader container

Default:"absolute"
durationnumber

Duration of the loading animation in milliseconds

Default:2500
loadingTextstring

Loading text to display (for stairs and circle variants)

Default:"Loading your next level experience"
zIndexnumber

Z-index for the preloader

Default:50
bgColorstring

Background color (overrides default)

Default:undefined
textClassNamestring

CSS classes for the loading text

Default:""
percentagePosition"center" | "bottom-left" | "top-left"

Position of percentage counter (percentage variant only)

Default:"center"
showPercentageSignboolean

Show percentage sign (percentage variant only)

Default:true
percentageTextClassNamestring

CSS classes for percentage text (percentage variant only)

Default:""
showProgressBarboolean

Show progress bar (percentage variant only)

Default:true
progressBarPosition"top" | "bottom"

Progress bar position (percentage variant only)

Default:"bottom"
stairCountnumber

Number of stairs (stairs variant only)

Default:10
stairsRevealFrom"left" | "right" | "center"

Direction stairs reveal from (stairs variant only)

Default:"left"
stairsRevealDirection"up" | "down"

Direction stairs move when revealing (stairs variant only)

Default:"up"
onComplete() => void

Callback function when loading completes

Default:undefined
onLoadingStart() => void

Callback function when loading starts

Default:undefined
onLoadingComplete() => void

Callback function when exit animation completes

Default:undefined
respectReducedMotionboolean

Respect prefers-reduced-motion system setting

Default:false
reducedMotionFallback"fade" | "none"

Fallback behavior when reduced motion is preferred (fade or instant)

Default:"fade"
ariaLabelstring

ARIA label for screen readers

Default:"Loading content"
ariaLive"polite" | "assertive" | "off"

ARIA live region politeness level

Default:"polite"
textFadeThresholdnumber

Progress threshold (0-100) when loading text starts fading out

Default:99
backdropBlurnumber

Backdrop blur amount in pixels

Default:0
customContent(progress: number) => ReactNode

Custom content render function that receives current progress (0-100)

Default:undefined
classNamestring

Additional CSS classes for styling

Default:""
childrenReactNode

Content to show after loading completes

Default:undefined