A beautiful, responsive, customizable, accessible (WAI-ARIA) replacement for JavaScript's popup boxes. Zero dependencies.
The author of SweetAlert2 (@limonte) is looking for short-term to medium-term working contracts in front-end, preferably OSS.
If you're upgrading from v7.x, please upgrade from v7 to v8 first!
If you're upgrading from v6.x, please upgrade from v6 to v7 first!
Installation
npm install --save sweetalert2
Or grab from jsdelivr CDN :
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@9"></script>
Usage
<script src="sweetalert2/dist/sweetalert2.all.min.js"></script>
<!-- Include a polyfill for ES6 Promises (optional) for IE11 -->
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.js"></script>
You can also include the stylesheet separately if desired:
<script src="sweetalert2/dist/sweetalert2.min.js"></script>
<link rel="stylesheet" href="sweetalert2/dist/sweetalert2.min.css">
Or:
// ES6 Modules or TypeScript
import Swal from 'sweetalert2'
// CommonJS
const Swal = require('sweetalert2')
Or with JS modules:
<link rel="stylesheet" href="sweetalert2/dist/sweetalert2.css">
<script type="module">
import Swal from 'sweetalert2/src/sweetalert2.js'
</script>
It's possible to import JS and CSS separately, e.g. if you need to customize styles:
import Swal from 'sweetalert2/dist/sweetalert2.js'
import 'sweetalert2/src/sweetalert2.scss'
Please note that TypeScript is well-supported, so you don't have to install a third-party declaration file.
Examples
The most basic message:
Swal.fire('Hello world!')
A message signaling an error:
Swal.fire('Oops...', 'Something went wrong!', 'error')
Handling the result of SweetAlert2 modal:
Swal.fire({
title: 'Are you sure?',
text: 'You will not be able to recover this imaginary file!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Yes, delete it!',
cancelButtonText: 'No, keep it'
}).then((result) => {
if (result.value) {
Swal.fire(
'Deleted!',
'Your imaginary file has been deleted.',
'success'
)
// For more information about handling dismissals please visit
// https://sweetalert2.github.io/#handling-dismissals
} else if (result.dismiss === Swal.DismissReason.cancel) {
Swal.fire(
'Cancelled',
'Your imaginary file is safe :)',
'error'
)
}
})
Go here to see the docs and more examples ↗
Browser compatibility
IE11* | Edge | Chrome | Firefox | Safari | Opera | UC Browser |
---|---|---|---|---|---|---|
* ES6 Promise polyfill should be included, see usage example.
Note that SweetAlert2 does not and will not provide support or functionality of any kind on IE10 and lower.
sweetalert2-themes ↗
)
Themes (
Related projects
- ngx-sweetalert2 - Angular 4+ integration
- sweetalert2-react-content - React integration
- sweetalert2-webpack-demo - webpack demo
- sweetalert2-parcel-demo - overriding SCSS variables demo
Related community projects
- avil13/vue-sweetalert2 - Vue.js wrapper
- realrashid/sweet-alert - Laravel 5 Package
- Basaingeal/Razor.SweetAlert2 - Blazor Wrapper
- ElectronAlert - SweetAlert2 for Electron applications (main process)
Collaborators
@gverni | @zenflow | @toverux |
Contributing
If you would like to contribute enhancements or fixes, please do the following:
-
Fork the
sweetalert2
repository and clone it locally. -
When in the SweetAlert2 directory, run
npm install
oryarn install
to install dependencies. -
To begin active development, run
npm start
oryarn start
. This does several things for you:
- Builds the
dist
folder - Serves sandbox.html @ http://localhost:8080/ (browser-sync ui: http://localhost:8081/)
- Re-builds and re-loads as necessary when files change
Big Thanks
- Serena Verni (@serenaperora) for creating the amazing project logo
- Sauce Labs for providing the reliable cross-browser testing platform
Sponsors
Become a sponsor | FlowCrypt | brainbi price monitoring | Tiago de Oliveira Stutz | SebaEBC |
CyberVM Stresser & Booter | WP Reset |
NSFW Sponsors
SexualAlpha | STED | Sextopedia | My Sex Toy Guide | Best Blowjob Machines | YourDoll |
Celebjihad | STC | Bingato | RealSexDoll | DoctorClimax |
Support and Donations
Has SweetAlert2 helped you create an amazing application? You can show your support by making a donation:
- GitHub Sponsors
❤️ - PayPal: USD (US$) | EUR (€) | JPY (¥) | GBP (£) | AUD (A$) | CAD (C$) | CHF (CHF) | HKD (HK$) | NZD (NZ$) | SEK (kr) | SGD (S$) | NOK (kr) | MXN ($) | RUB (₽) | BRL (R$) | TWD (NT$) | DKK (kr) | PLN (zł)
- PayPal.me
- Bitcoin:
16Z7RvFv7PsV3XzFvchYwPnRfw9KeLTZQJ
- Ether:
0x192096161eB2273f12b1cB4E31aBB09Bfc03a7F3
- Bitcoin Cash:
qz28x66hrljtdz3052p8ya3cmkwwva5avy0msz2ej3
- Stellar:
GDUM4VJZYDNRHBTKUQBOPC374AP6MMMVOJDMSHIPEJPEMBCY4ZHH6NDY