# Artifact
A container component for displaying generated content like code, documents, or other outputs with built-in actions.
The `Artifact` component provides a structured container for displaying generated content like code, documents, or other outputs with built-in header actions.
See `scripts/artifact.tsx` for this example.
## Installation
```bash
npx ai-elements@latest add artifact
```
## Features
- Structured container with header and content areas
- Built-in header with title and description support
- Flexible action buttons with tooltips
- Customizable styling for all subcomponents
- Support for close buttons and action groups
- Clean, modern design with border and shadow
- Responsive layout that adapts to content
- TypeScript support with proper type definitions
- Composable architecture for maximum flexibility
## Examples
### With Code Display
See `scripts/artifact.tsx` for this example.
## Props
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `...props` | `React.HTMLAttributes` | - | Any other props are spread to the underlying div element. |
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `...props` | `React.HTMLAttributes` | - | Any other props are spread to the underlying div element. |
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `...props` | `React.HTMLAttributes` | - | Any other props are spread to the underlying paragraph element. |
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `...props` | `React.HTMLAttributes` | - | Any other props are spread to the underlying paragraph element. |
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `...props` | `React.HTMLAttributes` | - | Any other props are spread to the underlying div element. |
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `tooltip` | `string` | - | Tooltip text to display on hover. |
| `label` | `string` | - | Screen reader label for the action button. |
| `icon` | `LucideIcon` | - | Lucide icon component to display in the button. |
| `...props` | `React.ComponentProps` | - | Any other props are spread to the underlying shadcn/ui Button component. |
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `...props` | `React.ComponentProps` | - | Any other props are spread to the underlying shadcn/ui Button component. |
### ``
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `...props` | `React.HTMLAttributes` | - | Any other props are spread to the underlying div element. |