# Docyrus Icon
URL: /docs/web/components/docyrus-icon
Docyrus Icon component with multiple variants and sizes.
**Demo:**
```tsx
'use client';
// @custom-demo
import { useState } from 'react';
import { DocyrusIcon } from '@docyrus/ui/components/docyrus-icon';
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue
} from '@docyrus/ui/primitives/ui/select';
import { cn } from '@docyrus/ui/primitives/lib/utils';
export function DocyrusIconDemo() {
type Size = 'xs' | 'sm' | 'default' | 'lg' | 'xl';
const [size, setSize] = useState
Animation
);
}
```
## Installation
```bash
pnpm dlx @docyrus/cli add @docyrus/ui-docyrus-icon
```
**Dependencies:**
- [react-inlinesvg](https://www.npmjs.com/package/react-inlinesvg)
- [class-variance-authority](https://www.npmjs.com/package/class-variance-authority)
## Usage
```tsx
import {
DocyrusIcon
} from "@docyrus/ui/components/docyrus-icon";
```
## Sizes
| Size | Description |
|------|-------------|
| `xs` | Extra small — `size-3` |
| `sm` | Small — `size-4` |
| `default` | Default — `size-5` |
| `lg` | Large — `size-6` |
| `xl` | Extra large — `size-8` |
## Animation
| Animation | Description |
|-----------|-------------|
| `none` | Default (no animation) |
| `spin` | Spin — `animate-spin` |
| `pulse` | Pulse — `animate-pulse` |
| `bounce` | Bounce — `animate-bounce` |
| `ping` | Ping — `animate-ping` |
## API Reference
| Prop | Type | Default |
|------|------|---------|
| `size` | `"xs"` \| `"sm"` \| `"default"` \| `"lg"` \| `"xl"` | `"default"` |
| `animation` | `"none"` \| `"spin"` \| `"pulse"` \| `"bounce"` \| `"ping"` | `"default"` |
| `icon` | `string` | — |
| `lib` | `string` | — |
| `group` | `string \| null` | — |
| `className` | `string` | — |