Loader
kai-loader
An animated busy indicator that fits anywhere — buttons, toolbars, empty panels, or standalone skeletons — with twelve visual styles from a single variant attribute.
- Shadow DOM
- 12 variants
- 3 sizes
- Text label support
Preview
Section titled “Preview”All props are plain HTML attributes — no binding layer required:
<kai-loader variant="dots" size="md"></kai-loader>variant—circularfor generic waits,wave/barsfor audio or processing,text-shimmerfor an AI “thinking” state.size—sminside a button,lgas a panel placeholder.text— required for text-based variants (text-blink,text-shimmer,loading-dots); e.g.text="Thinking…".
Examples
Section titled “Examples”Default Spinner
Section titled “Default Spinner”The out-of-the-box circular spinner — no attributes needed.
Three-dot pulse — works well inside buttons or inline next to text.
Rhythmic wave — great for audio processing or streaming output.
Text Shimmer
Section titled “Text Shimmer”Animates a label with a shimmer sweep — ideal for AI “Thinking…” states.
Terminal
Section titled “Terminal”Retro blinking cursor — a good touch for developer tools or code-generation states.
| Property | Type | Default | Notes |
|---|---|---|---|
| variant | LoaderVariant | 'circular' | The animation style: `'circular' | 'classic' | 'pulse' | 'pulse-dot' | 'dots' | 'typing' | 'wave' | 'bars' | 'terminal' | 'text-blink' | 'text-shimmer' | 'loading-dots'`. Defaults to `'circular'`. |
| size | "sm" | "lg" | "md" | 'md' | Loader size: `'sm' | 'md' | 'lg'`. Defaults to `'md'`. |
| text | string | — | Label for the text-based variants. |
Composed from
Section titled “Composed from”This element wraps these SolidJS components — reach for them directly when you need finer control than the props expose.
Loader