JavaScripting

The definitive source of the best
JavaScript libraries, frameworks, and plugins.


  • ×

    Toastr

    Simple javascript toast notifications
    Filed under 

    • 🔾80%Overall
    • 11,846
    • 32.6 days
    • 🕩2038
    • 👥31

    toastr

    toastr is a Javascript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.

    Build Status Browser testing provided by BrowserStack.

    Current Version

    2.1.4

    Demo

    CDNs

    cdnjs jsdelivr

    Toastr is hosted at cdnjs and jsdelivr

    Debug

    Minified

    Install

    Install-Package toastr
    

    Bower

    bower install toastr
    

    npm

    npm install --save toastr
    

    yarn

    yarn add toastr
    

    Ruby on Rails

    # Gemfile
    
    gem 'toastr-rails'
    
    # application.coffee
    
    #= require toastr
    
    // application.scss
    
    @import "toastr";
    

    Wiki and Change Log

    Wiki including Change Log

    Breaking Changes

    Animation Changes

    The following animations options have been deprecated and should be replaced:

    • Replace options.fadeIn with options.showDuration
    • Replace options.onFadeIn with options.onShown
    • Replace options.fadeOut with options.hideDuration
    • Replace options.onFadeOut with options.onHidden

    Quick Start

    3 Easy Steps

    For other API calls, see the demo.

    1. Link to toastr.css <link href="toastr.css" rel="stylesheet"/>

    2. Link to toastr.js <script src="toastr.js"></script>

    3. use toastr to display a toast for info, success, warning or error

       // Display an info toast with no title
       toastr.info('Are you the 6 fingered man?')
      

    Other Options

    // Display a warning toast, with no title
    toastr.warning('My name is Inigo Montoya. You killed my father, prepare to die!')
    
    // Display a success toast, with a title
    toastr.success('Have fun storming the castle!', 'Miracle Max Says')
    
    // Display an error toast, with a title
    toastr.error('I do not think that word means what you think it means.', 'Inconceivable!')
    
    // Immediately remove current toasts without using animation
    toastr.remove()
    
    // Remove current toasts using animation
    toastr.clear()
    
    // Override global options
    toastr.success('We do have the Kapua suite available.', 'Turtle Bay Resort', {timeOut: 5000})
    

    Escape HTML characters

    In case you want to escape HTML characters in title and message

    toastr.options.escapeHtml = true;
    

    Close Button

    Optionally enable a close button

    toastr.options.closeButton = true;
    `
    

    Optionally override the close button's HTML.

    toastr.options.closeHtml = '<button><i class="icon-off"></i></button>';
    

    You can also override the CSS/LESS for #toast-container .toast-close-button

    Optionally override the hide animation when the close button is clicked (falls back to hide configuration).

    toastr.options.closeMethod = 'fadeOut';
    toastr.options.closeDuration = 300;
    toastr.options.closeEasing = 'swing';
    

    Display Sequence

    Show newest toast at bottom (top is default)

    toastr.options.newestOnTop = false;
    

    Callbacks

    // Define a callback for when the toast is shown/hidden/clicked
    toastr.options.onShown = function() { console.log('hello'); }
    toastr.options.onHidden = function() { console.log('goodbye'); }
    toastr.options.onclick = function() { console.log('clicked'); }
    toastr.options.onCloseClick = function() { console.log('close button clicked'); }
    

    Animation Options

    Toastr will supply default animations, so you do not have to provide any of these settings. However you have the option to override the animations if you like.

    Easings

    Optionally override the animation easing to show or hide the toasts. Default is swing. swing and linear are built into jQuery.

    toastr.options.showEasing = 'swing';
    toastr.options.hideEasing = 'linear';
    toastr.options.closeEasing = 'linear';
    

    Using the jQuery Easing plugin (http://www.gsgd.co.uk/sandbox/jquery/easing/)

    toastr.options.showEasing = 'easeOutBounce';
    toastr.options.hideEasing = 'easeInBack';
    toastr.options.closeEasing = 'easeInBack';
    

    Animation Method

    Use the jQuery show/hide method of your choice. These default to fadeIn/fadeOut. The methods fadeIn/fadeOut, slideDown/slideUp, and show/hide are built into jQuery.

    toastr.options.showMethod = 'slideDown';
    toastr.options.hideMethod = 'slideUp';
    toastr.options.closeMethod = 'slideUp';
    

    Prevent Duplicates

    Rather than having identical toasts stack, set the preventDuplicates property to true. Duplicates are matched to the previous toast based on their message content.

    toastr.options.preventDuplicates = true;
    

    Timeouts

    Control how toastr interacts with users by setting timeouts appropriately.

    toastr.options.timeOut = 30; // How long the toast will display without user interaction
    toastr.options.extendedTimeOut = 60; // How long the toast will display after a user hovers over it
    

    Prevent from Auto Hiding

    To prevent toastr from closing based on the timeouts, set the timeOut and extendedTimeOut options to 0. The toastr will persist until selected.

    toastr.options.timeOut = 0;
    toastr.options.extendedTimeOut = 0;
    

    Progress Bar

    Visually indicate how long before a toast expires.

    toastr.options.progressBar = true;
    

    rtl

    Flip the toastr to be displayed properly for right-to-left languages.

    toastr.options.rtl = true;
    

    Building Toastr

    To build the minified and css versions of Toastr you will need node installed. (Use Homebrew or Chocolatey.)

    npm install -g gulp karma-cli
    npm install
    

    At this point the dependencies have been installed and you can build Toastr

    • Run the analytics gulp analyze
    • Run the test gulp test
    • Run the build gulp

    Contributing

    For a pull request to be considered it must resolve a bug, or add a feature which is beneficial to a large audience.

    Pull requests must pass existing unit tests, CI processes, and add additional tests to indicate successful operation of a new feature, or the resolution of an identified bug.

    Requests must be made against the develop branch. Pull requests submitted against the master branch will not be considered.

    All pull requests are subject to approval by the repository owners, who have sole discretion over acceptance or denial.

    Authors

    John Papa

    Tim Ferrell

    Hans Fjällemark

    Credits

    Inspired by https://github.com/Srirangan/notifer.js/.

    Copyright © 2012-2015

    License

    toastr is under MIT license - http://www.opensource.org/licenses/mit-license.php

    Show All