Toasts JS Required
Temporary notification messages with auto-dismiss functionality and flexible positioning. See JavaScript implementation →
Basic Toast
Simple toast notification with icon, title, and message.
Notification
HTML
<div class="focus-toast">
<i class="focus-toast-icon fa fa-info-circle"></i>
<div class="focus-toast-content">
<div class="focus-toast-title">Notification</div>
<div class="focus-toast-message">This is a toast message.</div>
</div>
<button class="focus-toast-close">×</button>
</div>
Toast Variants
Contextual color variants for different notification types.
Success!
Error!
Warning!
Info
HTML
<div class="focus-toast focus-toast-success">
<i class="focus-toast-icon fa fa-check-circle"></i>
<div class="focus-toast-content">
<div class="focus-toast-title">Success!</div>
<div class="focus-toast-message">Your changes have been saved.</div>
</div>
<button class="focus-toast-close">×</button>
</div>
<div class="focus-toast focus-toast-danger">...</div>
<div class="focus-toast focus-toast-warning">...</div>
<div class="focus-toast focus-toast-info">...</div>
Positioning
Control toast position using container classes. Toasts appear in a container that determines their position.
HTML
<!-- Top Right (default) -->
<div class="focus-toast-container">
<div class="focus-toast">...</div>
</div>
<!-- Bottom Right -->
<div class="focus-toast-container focus-toast-container-bottom-right">
<div class="focus-toast">...</div>
</div>
<!-- Bottom Left -->
<div class="focus-toast-container focus-toast-container-bottom-left">
<div class="focus-toast">...</div>
</div>
<!-- Top Left -->
<div class="focus-toast-container focus-toast-container-top-left">
<div class="focus-toast">...</div>
</div>
<!-- Top Center -->
<div class="focus-toast-container focus-toast-container-top-center">
<div class="focus-toast">...</div>
</div>
<!-- Bottom Center -->
<div class="focus-toast-container focus-toast-container-bottom-center">
<div class="focus-toast">...</div>
</div>
Toast with Progress Bar
Add a progress bar to indicate auto-dismiss timing.
Download Started
HTML
<div class="focus-toast focus-toast-primary">
<i class="focus-toast-icon fa fa-download"></i>
<div class="focus-toast-content">
<div class="focus-toast-title">Download Started</div>
<div class="focus-toast-message">Your file is being downloaded...</div>
</div>
<button class="focus-toast-close">×</button>
<div class="focus-toast-progress">
<div class="focus-toast-progress-bar" style="animation-duration: 5s;"></div>
</div>
</div>
JavaScript Implementation
Use JavaScript to create, show, and auto-dismiss toasts. This code works with the toast examples above.
JavaScript
// Create toast notification function
function showToast(type, title, message, duration = 3000) {
// Create or get toast container
let container = document.querySelector('.focus-toast-container');
if (!container) {
container = document.createElement('div');
container.className = 'focus-toast-container';
document.body.appendChild(container);
}
// Create toast element
const toast = document.createElement('div');
toast.className = `focus-toast focus-toast-${type}`;
// Select icon based on type
const icons = {
success: 'fa-check-circle',
danger: 'fa-times-circle',
warning: 'fa-exclamation-triangle',
info: 'fa-info-circle'
};
toast.innerHTML = `
<i class="focus-toast-icon fa ${icons[type] || 'fa-info-circle'}"></i>
<div class="focus-toast-content">
<div class="focus-toast-title">${title}</div>
<div class="focus-toast-message">${message}</div>
</div>
<button class="focus-toast-close">×</button>
`;
// Add to container
container.appendChild(toast);
// Close button handler
const closeBtn = toast.querySelector('.focus-toast-close');
closeBtn.addEventListener('click', () => removeToast(toast));
// Auto dismiss
if (duration > 0) {
setTimeout(() => removeToast(toast), duration);
}
}
function removeToast(toast) {
toast.classList.add('focus-toast-exit');
setTimeout(() => toast.remove(), 300);
}
// Usage examples
showToast('success', 'Success!', 'Operation completed successfully.');
showToast('danger', 'Error!', 'Something went wrong.');
showToast('warning', 'Warning!', 'Please review your input.');
showToast('info', 'Info', 'Here is some information.');
CSS Classes Reference
| Class | Description |
|---|---|
.focus-toast-container |
Toast container (top-right by default) |
.focus-toast-container-bottom-right |
Bottom-right positioning |
.focus-toast-container-bottom-left |
Bottom-left positioning |
.focus-toast-container-top-left |
Top-left positioning |
.focus-toast-container-top-center |
Top-center positioning |
.focus-toast-container-bottom-center |
Bottom-center positioning |
.focus-toast |
Individual toast element |
.focus-toast-success |
Success variant |
.focus-toast-danger |
Danger variant |
.focus-toast-warning |
Warning variant |
.focus-toast-info |
Info variant |
.focus-toast-primary |
Primary variant |
.focus-toast-icon |
Toast icon element |
.focus-toast-content |
Toast content container |
.focus-toast-title |
Toast title |
.focus-toast-message |
Toast message text |
.focus-toast-close |
Close button |
.focus-toast-progress |
Progress bar container |
.focus-toast-progress-bar |
Progress bar element |
.focus-toast-exit |
Exit animation class |