---
title: CopilotChatSuggestionView
description: "Clickable suggestion chips component"
---
`CopilotChatSuggestionView` is the default component used by [CopilotChat](/reference/copilot-chat) to render clickable suggestion chips. These chips provide quick actions that users can click to send predefined messages.
## What is CopilotChatSuggestionView?
The CopilotChatSuggestionView component:
- Renders a list of clickable suggestion chips
- Supports loading states for individual suggestions
- Handles click events to trigger message sending
- Displays suggestions in a flexible wrapped layout
- Built on the [slot system](/reference/slot-system) for deep customization
## Component Architecture
CopilotChatSuggestionView provides slots for customizing the container and individual chips:
```mermaid
graph LR
SV[CopilotChatSuggestionView] --> container
SV --> suggestion
```
### Slot Descriptions
| Slot | Description |
| ------------ | --------------------------------------------------- |
| `container` | The outer container that holds all suggestion chips |
| `suggestion` | Individual suggestion chip (pill button) |
## Basic Usage
Customize suggestions through the `suggestionView` prop on [CopilotChat](/reference/copilot-chat):
```tsx
```
## How Suggestions Work
Suggestions are managed through the `useSuggestions` hook, which:
1. Receives suggestions from the AI agent
2. Displays them as clickable chips
3. Triggers message sending when clicked
4. Shows loading states during processing
You don't need to manage suggestions manually - CopilotChat handles this automatically.
## Slot Customization
CopilotChatSuggestionView uses the [slot system](/reference/slot-system). Each slot accepts four types of values:
1. **Tailwind class string** - Add or override CSS classes
2. **Props object** - Pass additional props to the default component
3. **Custom component** - Replace the component entirely
4. **Nested sub-slots** - Drill down to customize child components
### Container Customization
Style the suggestions container:
```tsx
```
### Suggestion Chip Customization
Style individual suggestion chips:
```tsx
```
Or with a props object:
```tsx
```
## Replacing the Component
To completely replace the suggestion view with your own component:
```tsx
import { CopilotChatSuggestionView } from "@copilotkit/react-core";
function CustomSuggestionView({ suggestions, onSelectSuggestion, ...props }) {
return (
);
}
;
```
### Using the Render Function
For full layout control, use the children render function:
```tsx
function CustomSuggestionView(props) {
return (
{({ suggestions, onSelectSuggestion }) => (
{suggestions.map((suggestion, index) => (
))}
)}
);
}
;
```
The render function receives:
| Property | Type | Description |
| -------------------- | ----------------------------- | ---------------------------------------- |
| `container` | `ReactElement` | The bound container element |
| `suggestion` | `ReactElement` | A sample bound suggestion chip |
| `suggestions` | `Suggestion[]` | Array of suggestion objects |
| `onSelectSuggestion` | `(suggestion, index) => void` | Callback when suggestion is clicked |
| `loadingIndexes` | `ReadonlyArray` | Indexes of suggestions currently loading |
## Loading States
Individual suggestions can show loading states when clicked:
```tsx
// Suggestions automatically show loading states when:
// 1. The suggestion is clicked and processing
// 2. The suggestion has isLoading: true in its data
```
The loading state is indicated by a spinner or visual feedback on the chip.
## Examples
### Pill-Style Suggestions
```tsx
```
### Card-Style Suggestions
```tsx
```
### Colorful Gradient Chips
```tsx
```
### Minimal Style
```tsx
```
### Centered Suggestions
```tsx
```
## Related
- [CopilotChat](/reference/copilot-chat) - Parent component that uses CopilotChatSuggestionView
- [CopilotChatWelcomeScreen](/reference/copilot-chat-welcome-screen) - Welcome screen that displays suggestions
- [Slot System](/reference/slot-system) - Deep dive into slot customization