Toasts are used to show live, time-sensitive feedback to users.
To create a default toast, use .Toast
. Always use the info
icon for default messages.
<div class="p-1"><div class="Toast"><span class="Toast-icon"><!-- <%= octicon "info" %>--><svg width="14" height="16" viewBox="0 0 14 16" class="octicon octicon-info" aria-hidden="true"><pathfill-rule="evenodd"d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg></span><span class="Toast-content">Toast message goes here</span></div></div>
The Toast content is formattable. We recommend keeping your message under 140 characters.
<div class="p-1"><div class="Toast"><span class="Toast-icon"><!-- <%= octicon "info" %> --><svg width="14" height="16" viewBox="0 0 14 16" class="octicon octicon-info" aria-hidden="true"><pathfill-rule="evenodd"d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg></span><span class="Toast-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<strong>Aenean commodo ligula eget dolor.</strong> Aenean massa. Cum sociis <em>natoque</em> penatibus et ma</span></div></div>
Use the success, warning, and error modifiers to communicate different states.
Always use the check
octicon for success states.
<div class="p-1"><div class="Toast Toast--success"><span class="Toast-icon"><!-- <%= octicon "check" %> --><svg width="12" height="16" viewBox="0 0 12 16" class="octicon octicon-check" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z" /></svg></span><span class="Toast-content">Success message goes here.</span></div></div>
Always use the alert
octicon for warning states.
<div class="p-1"><div class="Toast Toast--warning"><span class="Toast-icon"><!-- <%= octicon "alert" %> --><svg width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-alert" aria-hidden="true"><pathfill-rule="evenodd"d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg></span><span class="Toast-content">Warning message goes here.</span></div></div>
Always use the stop
octicon for error states.
<div class="p-1"><div class="Toast Toast--error"><span class="Toast-icon"><!-- <%= octicon "stop" %> --><svg width="14" height="16" viewBox="0 0 14 16" class="octicon octicon-stop" aria-hidden="true"><pathfill-rule="evenodd"d="M10 1H4L0 5v6l4 4h6l4-4V5l-4-4zm3 9.5L9.5 14h-5L1 10.5v-5L4.5 2h5L13 5.5v5zM6 4h2v5H6V4zm0 6h2v2H6v-2z"/></svg></span><span class="Toast-content">Error message goes here</span></div></div>
Use .Toast-dismissButton
to allow a user to explicitly dismiss a Toast.
<div class="p-1"><div class="Toast"><span class="Toast-icon"><!-- <%= octicon "info" %> --><svg width="14" height="16" viewBox="0 0 14 16" class="octicon octicon-info" aria-hidden="true"><pathfill-rule="evenodd"d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg></span><span class="Toast-content">This toast is dismissable.</span><button class="Toast-dismissButton"><!-- <%= octicon "x" %> --><svg width="12" height="16" viewBox="0 0 12 16" class="octicon octicon-x" aria-hidden="true"><pathfill-rule="evenodd"d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg></button></div></div>
Include a link to allow users to take actions within a Toast.
<div class="p-1"><div class="Toast"><span class="Toast-icon"><!-- <%= octicon "info" %> --><svg width="14" height="16" viewBox="0 0 14 16" class="octicon octicon-info" aria-hidden="true"><pathfill-rule="evenodd"d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg></span><span class="Toast-content">Toast message goes here<a href="#">Action.</a></span></div></div>
The Toast--animateIn
and Toast--animateOut
modifier classes can be used to animate the toast in and out from the bottom.
<div class="p-1"><div class="Toast Toast--animateIn"><span class="Toast-icon"><!-- <%= octicon "info" %> --><svg width="14" height="16" viewBox="0 0 14 16" class="octicon octicon-info" aria-hidden="true"><pathfill-rule="evenodd"d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg></span><span class="Toast-content">Toast message goes here.</span></div></div>
Add the Toast--spinner
modifier class on the Toast-icon
svg
to communicate a loading state.
<div class="p-1"><div class="Toast Toast--loading"><span class="Toast-icon"><svg class="Toast--spinner" viewBox="0 0 32 32" width="18" height="18"><pathfill="#959da5"d="M16 0 A16 16 0 0 0 16 32 A16 16 0 0 0 16 0 M16 4 A12 12 0 0 1 16 28 A12 12 0 0 1 16 4"/><path fill="#ffffff" d="M16 0 A16 16 0 0 1 32 16 L28 16 A12 12 0 0 0 16 4z"></path></svg></span><span class="Toast-content">Toast message goes here.</span></div></div>
Use the position-fixed bottom-0 left-0
utility classes on a wrapper element to position Toasts at the bottom left of the viewport.
<div style="height:150px"><div class="position-fixed bottom-0 left-0 mb-3 ml-3"><div class="Toast"><span class="Toast-icon"><!-- <%= octicon "info" %> --><svg width="14" height="16" viewBox="0 0 14 16" class="octicon octicon-info" aria-hidden="true"><pathfill-rule="evenodd"d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg></span><span class="Toast-content">Toast message goes here.</span></div></div></div>