# Snippet
Lightweight inline code display for terminal commands and short code references.
The `Snippet` component provides a lightweight way to display terminal commands and short code snippets with copy functionality. Built on top of InputGroup, it's designed for brief code references in text.
See `scripts/snippet.tsx` for this example.
## Installation
```bash
npx ai-elements@latest add snippet
```
## Features
- Composable architecture with InputGroup
- Optional prefix text (e.g., `$` for terminal commands)
- Built-in copy button
- Compact design for chat/markdown
## Examples
### Without Prefix
See `scripts/snippet-plain.tsx` for this example.
## Props
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `code` | `string` | Required | The code content to display. |
| `children` | `React.ReactNode` | - | Child elements like SnippetAddon, SnippetInput, etc. |
| `...props` | `React.ComponentProps` | - | Spread to the InputGroup component. |
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `...props` | `React.ComponentProps` | - | Spread to the InputGroupAddon component. |
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `...props` | `React.ComponentProps` | - | Spread to the InputGroupText component. |
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `...props` | `Omit, ` | - | Spread to the InputGroupInput component. Value and readOnly are set automatically. |
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `onCopy` | `() => void` | - | Callback fired after a successful copy. |
| `onError` | `(error: Error) => void` | - | Callback fired if copying fails. |
| `timeout` | `number` | `2000` | How long to show the copied state (ms). |
| `children` | `React.ReactNode` | - | Custom button content. |
| `...props` | `React.ComponentProps` | - | Spread to the InputGroupButton component. |