# Loader

> DotsLoader

- Skill: `reaviz/loader` (Agent Skill)
- Install (CLI): `npx skillmds@latest add reaviz/loader`
- Raw SKILL.md: https://api.skillmd.com/api/skills/reaviz/loader/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: reaviz (https://skillmd.com/u/reaviz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/reaviz/loader

---

# DotsLoader

Animated loading indicator with three pulsing dots. Each dot animates opacity and scale with staggered timing using Framer Motion.

## Import

```tsx
import { DotsLoader } from 'reablocks';
```

## DotsLoader Props

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Dot size variant |
| `speed` | `number` | `0.2` | Animation speed (lower = faster) |
| `className` | `string` | — | Additional CSS classes |
| `theme` | `DotsLoaderTheme` | — | Per-instance theme override |

## Basic Usage

```tsx
<DotsLoader />
```

## Sizes

```tsx
<DotsLoader size="small" />
<DotsLoader size="medium" />
<DotsLoader size="large" />
```

Dot dimensions: small = `w-1 h-1`, medium = `w-1.5 h-1.5`, large = `w-2 h-2`.

## Custom Speed

```tsx
<DotsLoader speed={0.1} />  {/* Faster */}
<DotsLoader speed={0.5} />  {/* Slower */}
```

## DotsLoaderTheme Interface

```typescript
interface DotsLoaderTheme {
  base: string;    // Container (flex)
  dot: string;     // Dot element (rounded, color)
  sizes: {
    small: string;
    medium: string;
    large: string;
    [key: string]: string;
  };
}
```

