Toast Component
A lightweight toast notification component built with Tailwind CSS for non-intrusive user feedback. Display temporary success, error, warning, and info messages with configurable positions. Supports stacking, icons, and action buttons for clear, accessible notification patterns.
Toast components display brief, non-intrusive notifications positioned at the edges of the screen. Built with fixed positioning and alert components, toasts communicate system feedback like success confirmations, error messages, or status updates. The Frutjam toast system supports six placement positions—ideal for form submissions, async operations, and real-time notifications.
| Class | Type | Description |
|---|---|---|
| toast | Base | Fixed-position notification container |
| toast-top | Modifier | Anchors to the top of the viewport |
| toast-bottom | Modifier | Anchors to the bottom of the viewport (default) |
| toast-start | Modifier | Anchors to the left |
| toast-center | Modifier | Horizontally centered |
| toast-end | Modifier | Anchors to the right (default) |
| toast-middle | Modifier | Vertically centered |
Basic Usage
New message arrived.
1 2 3 4 5 | <div class="toast"> <div class="alert alert-info"> <span>New message arrived.</span> </div> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import { useToast } from 'frutjam/react' export default function ToastDemo() { const toast = useToast() return ( <> <button className="btn" onClick={() => toast.info('New message arrived.')}>Show Toast</button> <div className="toast"> {toast.toasts.map(t => ( <div key={t.id} className={`alert${t.type ? ` alert-${t.type}` : ''}`}> <span>{t.message}</span> </div> ))} </div> </> ) } |
Toast Positions
Top Positions
Top Start
Top Center
Top End
html
1 2 3 4 5 6 7 8 9 10 11 | <div class="toast toast-top toast-start"> <div class="alert alert-info"><span>Top Start</span></div> </div> <div class="toast toast-top toast-center"> <div class="alert alert-info"><span>Top Center</span></div> </div> <div class="toast toast-top toast-end"> <div class="alert alert-info"><span>Top End</span></div> </div> |
Bottom Positions
Bottom Start
Bottom Center
Bottom End
html
1 2 3 4 5 6 7 8 9 10 11 | <div class="toast toast-bottom toast-start"> <div class="alert alert-info"><span>Bottom Start</span></div> </div> <div class="toast toast-bottom toast-center"> <div class="alert alert-info"><span>Bottom Center</span></div> </div> <div class="toast toast-bottom toast-end"> <div class="alert alert-info"><span>Bottom End</span></div> </div> |
Toast Colors
File saved successfully.
Storage is almost full.
Connection failed.
Update available.
html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <div class="toast toast-top toast-end"> <div class="alert alert-success"> <span>File saved successfully.</span> </div> <div class="alert alert-warning"> <span>Storage is almost full.</span> </div> <div class="alert alert-error"> <span>Connection failed.</span> </div> <div class="alert alert-info"> <span>Update available.</span> </div> </div> |
Multiple Toasts
Profile updated.
2 new notifications.
html
1 2 3 4 5 6 7 8 | <div class="toast toast-top toast-end"> <div class="alert alert-success"> <span>Profile updated.</span> </div> <div class="alert alert-info"> <span>2 new notifications.</span> </div> </div> |