Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/devhau/toasti
Simple javascript toast notifications
https://github.com/devhau/toasti
notifications toast toast-library toast-message toast-notifications toastr
Last synced: 5 days ago
JSON representation
Simple javascript toast notifications
- Host: GitHub
- URL: https://github.com/devhau/toasti
- Owner: devhau
- License: mit
- Created: 2023-02-06T17:09:08.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-07T17:41:55.000Z (almost 2 years ago)
- Last Synced: 2024-09-17T11:06:23.548Z (about 2 months ago)
- Topics: notifications, toast, toast-library, toast-message, toast-notifications, toastr
- Language: SCSS
- Homepage:
- Size: 210 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# toasti
**toasti** is a Javascript library for non-blocking notifications and without jQuery. The goal is to create a simple core library that can be customized and extended.## Demo
- Demo can be found at https://toasti.hau.xyz## Install
#### [npm](https://www.npmjs.com/package/toasti)
```
npm install --save toasti
```#### [yarn](https://yarnpkg.com/en/package/toasti)
```
yarn add toasti
```## Wiki and Change Log
[Wiki including Change Log](https://github.com/devhau/toasti/wiki)## 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](https://toasti.hau.xyz).1. Link to toasti.css ``
2. Link to toasti.js ``
3. use toasti to display a toast for info, success, warning or error
```js
// Display an info toast with no title
toasti.info('Are you the 6 fingered man?')
```### Other Options
```js
// Display a warning toast, with no title
toasti.warning('My name is Inigo Montoya. You killed my father, prepare to die!')// Display a success toast, with a title
toasti.success('Have fun storming the castle!', 'Miracle Max Says')// Display an error toast, with a title
toasti.error('I do not think that word means what you think it means.', 'Inconceivable!')// Immediately remove current toasts without using animation
toasti.remove()// Remove current toasts using animation
toasti.clear()// Override global options
toasti.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 messagetoasti.options.escapeHtml = true;
### Close Button
Optionally enable a close button
```js
toasti.options.closeButton = true;
````Optionally override the close button's HTML.
```js
toasti.options.closeHtml = '';
```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).
```js
toasti.options.closeMethod = 'fadeOut';
toasti.options.closeDuration = 300;
toasti.options.closeEasing = 'swing';
```### Display Sequence
Show newest toast at bottom (top is default)
```js
toasti.options.newestOnTop = false;
```### Callbacks
```js
// Define a callback for when the toast is shown/hidden/clicked
toasti.options.onShown = function() { console.log('hello'); }
toasti.options.onHidden = function() { console.log('goodbye'); }
toasti.options.onclick = function() { console.log('clicked'); }
toasti.options.onCloseClick = function() { console.log('close button clicked'); }
```### Animation Options
toasti 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.
```js
toasti.options.showEasing = 'swing';
toasti.options.hideEasing = 'linear';
toasti.options.closeEasing = 'linear';
```Using the jQuery Easing plugin (http://www.gsgd.co.uk/sandbox/jquery/easing/)
```js
toasti.options.showEasing = 'easeOutBounce';
toasti.options.hideEasing = 'easeInBack';
toasti.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.
```js
toasti.options.showMethod = 'slideDown';
toasti.options.hideMethod = 'slideUp';
toasti.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.
```js
toasti.options.preventDuplicates = true;
```### Timeouts
Control how toasti interacts with users by setting timeouts appropriately.
```js
toasti.options.timeOut = 30; // How long the toast will display without user interaction
toasti.options.extendedTimeOut = 60; // How long the toast will display after a user hovers over it
```### Prevent from Auto Hiding
To prevent toasti from closing based on the timeouts, set the `timeOut` and `extendedTimeOut` options to `0`. The toasti will persist until selected.```js
toasti.options.timeOut = 0;
toasti.options.extendedTimeOut = 0;
```### Progress Bar
Visually indicate how long before a toast expires.
```js
toasti.options.progressBar = true;
```### rtl
Flip the toasti to be displayed properly for right-to-left languages.
```js
toasti.options.rtl = true;
```## Building toasti
To build the minified and css versions of toasti you will need [node](http://nodejs.org) 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 toasti
- 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.
## License
toasti is under MIT license