Chat Component Documentation
A comprehensive guide to implementing and customizing the chat component in your application.
Quick Start
Basic Implementation
Add a floating chat button with a single configuration:
---
import Layout from '../layouts/Layout.astro';
const chatConfig = {
mode: 'icon',
provider: 'openai',
model: 'gpt-4',
modeConfig: {
icon: {
position: 'bottom-right',
badge: 1,
pulse: true
}
}
};
---
<Layout title="Your Page" chat={chatConfig}>
Your content here...
</Layout> Display Modes
Icon Mode
Displays as a floating button that expands into a chat window.
- Customizable position
- Badge notifications
- Pulse animation
- Responsive transitions
modeConfig: {
icon: {
position: 'bottom-right',
badge: 1,
pulse: true,
launchMode: 'floating'
}
}
Floating Mode
A draggable and resizable chat window.
- Customizable dimensions
- Default position
- Draggable window
- Resizable bounds
modeConfig: {
floating: {
minWidth: 380,
maxWidth: 500,
defaultPosition: { x: 20, y: 20 },
draggable: true
}
}
Embedded Mode
Integrates directly into your page layout.
- Fixed dimensions
- Theme inheritance
- Custom container styles
- Seamless integration
modeConfig: {
embedded: {
width: '100%',
height: '500px',
inheritTheme: true,
containerClassName: 'rounded-lg'
}
}
Fullscreen Mode
Expands to fill the entire viewport.
- Custom header
- Navigation options
- Smooth transitions
- Mobile-optimized
modeConfig: {
fullscreen: {
showHeader: true,
showNavigation: true,
transitionDuration: 300
}
}
Implementation Examples
Features & Customization
Appearance
- ✨ Three built-in themes
- 🎨 Custom color schemes
- 📱 Responsive design
- 🔄 Smooth transitions
- 🖼️ Custom icons & badges
Functionality
- 📝 Markdown support
- 🔊 Audio messages
- 🖼️ Image uploads
- ✏️ Message editing
- 📋 Copy functionality
Integration
- 🔌 Custom API endpoints
- 🤖 Multiple AI providers
- 💾 Session persistence
- 🔄 State management
- 🎯 Event callbacks
Configuration Reference
Available Options
| Option | Type | Description |
|---|---|---|
| mode | ChatMode | Display mode: 'icon' | 'floating' | 'fullscreen' | 'embedded' | 'split' |
| provider | string | AI provider: 'openai' | 'anthropic' | custom |
| model | string | Model identifier (e.g., 'gpt-4', 'claude-2') |
| theme | string | Theme name: 'light' | 'dark' | 'earth' |
| modeConfig | ModeConfig | Mode-specific configuration options |
| title | string | Chat window title |
| description | string | Chat description or subtitle |
| systemPrompt | string | Initial system message for the AI |
| welcome | string | Welcome message shown to users |
| apiEndpoint | string | Custom API endpoint URL |
Best Practices
- Always provide a clear welcome message and description
- Use starter messages to guide users
- Consider mobile users when choosing default dimensions
- Test different modes for your use case
- Implement proper error handling
- Use appropriate system prompts for context
- Enable features based on user needs
- Consider accessibility in your configuration
