Simple and Easy Toast Notification Popup With JavaScript

TOASTS is a simple JavaScript and CSS solution to help you make notification popups accessible, popular, and toast on the page.

How to make use of it:

1. Insert predefined toast notifications into the toast container.

<section class="toast__container">
  <div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
    <div class="toast__icon">
      <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="info-circle" class="svg-inline--fa fa-info-circle fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
        <path fill="currentColor" d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"></path>
      </svg>
    </div>
    <div class="toast__content">
      <h2>Information</h2>
      <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Labore cumque nesciunt quod, eius error officiis aut excepturi repellat asperiores cum, neque eveniet voluptatum. Quae necessitatibus velit dolore quidem facere repellat!</p>
    </div>
  </div>
</section>

2. The essential types for the toast popup.

.toast {
  cursor: pointer;
  box-sizing: border-box;
  display: none;
  width: 100%;
  max-width: 640px;
  font-size: 0.825em;
  border-top-right-radius: 5px;
  border-top-left-radius: 5px;
  background: #ffffff;
  box-shadow: 0 2.8px 2.2px rgba(0, 0, 0, 0.02), 0 6.7px 5.3px rgba(0, 0, 0, 0.028), 0 12.5px 10px rgba(0, 0, 0, 0.035), 0 22.3px 17.9px rgba(0, 0, 0, 0.042), 0 41.8px 33.4px rgba(0, 0, 0, 0.05), 0 100px 80px rgba(0, 0, 0, 0.07);
  -webkit-transition: 0.2s ease-in;
  transition: 0.2s ease-in;
}
@media (min-width: 640px) {
  .toast {
    border-radius: 5px;
    margin-bottom: 0.5em;
  }
}
.toast--active {
  display: -webkit-box;
  display: flex;
  -webkit-animation: slidein--bottom 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
          animation: slidein--bottom 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}
.toast__container {
  box-sizing: border-box;
  padding: 0em 1em;
  position: fixed;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
          flex-flow: column;
  bottom: 0;
  left: 0;
  right: 0;
  -webkit-box-align: center;
          align-items: center;
  -webkit-box-pack: center;
          justify-content: center;
}
@media (min-width: 640px) {
  .toast__container {
    padding: 0 1em;
  }
}
@media (min-width: 1024px) {
  .toast__container {
    left: initial;
    right: 0;
  }
}
.toast__icon {
  height: 60px;
  width: 60px;
  box-sizing: border-box;
  padding: 1em;
  display: none;
  -webkit-box-align: center;
          align-items: center;
  -webkit-box-pack: center;
          justify-content: center;
}
.toast__icon svg {
  height: 100%;
}
@media (min-width: 640px) {
  .toast__icon {
    display: -webkit-box;
    display: flex;
  }
}
.toast__icon ~ .toast__content {
  padding: 1em;
}
@media (min-width: 640px) {
  .toast__icon ~ .toast__content {
    padding: 1em 1em 1em 0;
  }
}
.toast__content {
  box-sizing: border-box;
  padding: 1em;
}
.toast__content h2 {
  margin: 0 0 0.25em 0;
  padding: 0;
  font-size: 1.2em;
}
.toast__content p {
  margin: 0;
  padding: 0;
  font-size: 1em;
}
@-webkit-keyframes slidein--bottom {
  0% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes slidein--bottom {
  0% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

3. Create a trigger to show the toast notification.

<button class="toast__trigger">Info Toast</button>

4. Enable the trigger button to toggle the toast notification.

const toasts = document.querySelectorAll(".toast");
const toastTriggers = document.querySelectorAll(".toast__trigger");
toastTriggers.forEach((trigger, index) => {
  let toastTimeout;
  trigger.addEventListener("click", () => {
    toasts[index].classList.add("toast--active");
    toastTimeout = setTimeout(() => {
      toasts[index].classList.remove("toast--active");
    }, 3500);
  });
  toasts[index].addEventListener("click", () => {
    toasts[index].classList.remove("toast--active");
    clearTimeout(toastTimeout);
  });
});

5. Create your personal notification varieties:

<div class="toast toast--warning" role="alert" aria-live="assertive" aria-atomic="true">
  <div class="toast__icon">
    <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="exclamation-circle" class="svg-inline--fa fa-exclamation-circle fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
      <path fill="currentColor" d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"></path>
    </svg>
  </div>
  <div class="toast__content">
    <h2>Danger!</h2>
    <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Labore cumque nesciunt quod, eius error officiis aut excepturi repellat asperiores cum, neque eveniet voluptatum. Quae necessitatibus velit dolore quidem facere repellat!</p>
  </div>
</div>
<div class="toast toast--success" role="alert" aria-live="assertive" aria-atomic="true">
  <div class="toast__icon">
    <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-circle" class="svg-inline--fa fa-check-circle fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
      <path fill="currentColor" d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"></path>
    </svg>
  </div>
  <div class="toast__content">
    <h2>All Clear</h2>
    <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Labore cumque nesciunt quod, eius error officiis aut excepturi repellat asperiores cum, neque eveniet voluptatum. Quae necessitatibus velit dolore quidem facere repellat!</p>
  </div>
</div>
.toast--warning {
  background: #bf360c;
  color: white;
}
.toast--success {
  background: #43a047;
  color: white;
}

Accessible Toast Popup, TOASTS Plugin/Github


See Demo And Download

Official Website(mrtrimble): Click Here

This superior jQuery/javascript plugin is developed by mrtrimble. For extra Advanced usage, please go to the official website.

Related Posts

Interactive Data Table Generator with JS/jQuery and JSON | Tabulator

Tabulator allows you to create interactive tables in seconds from any HTML Table, JavaScript array, AJAX data source, or JSON format data. Just include the library in your…

Simple Alert, Confirm, Prompt Popup Using Vanilla JavaScript Library | attention.js

JavaScript provides various built-in functionality to display popup messages for different purposes. Attention JS is a vanillaJS plugin used to create a custom alert, confirm, or Prompt…

Bootstrap 4 Sidebar Menu Responsive Template | MDB

Bootstrap Side Navbar - Responsive sidebar template based on the Bootstrap 4 framework. An easy-to-use, totally responsive, Google Material Design impressed aspect navigation for modern web app…

Lightweight Bootstrap 4 Toast Notification Plugin | BS4 Advanced Toast

A lightweight Bootstrap 4 Toast Notification plugin integrated with JS/jQuery. bs4-toast.js is a JavaScript library that enhances the native Bootstrap toast component with icons, buttons, callbacks, and…

How to Create Audio Visualizations with JavaScript | Wave.js

Audio Visualizer Library - wave.js is a vanilla javascript audio visualization library that provides 20+ creative audio visualization effects to bring more engagement to your visitor. Contribute…

Bootstrap 5 Treeview Dynamically Collapsible | bs5treeview

Bootstrap 5 Tree View is a very simple plug-in for creating a basic and elegant Treeview using BS5. For use with Bootstrap 5, the attributes have been…

Leave a Reply

Your email address will not be published. Required fields are marked *