Basic message

<button class="mr-2 btn btn-primary message">Basic message</button>

$('.widget-content .message').on('click', function () {
    swal({
        title: 'Saved succesfully',
        padding: '2em'
    })
})

Success message

<button class="mr-2 btn btn-primary success">Success message!</button>

$('.widget-content .success').on('click', function () {
    swal({
        title: 'Good job!',
        text: "You clicked the!",
        type: 'success',
        padding: '2em'
    })
})

Dynamic queue

<button class="mr-2 btn btn-primary dynamic-queue">Dynamic queue</button>

$('.widget-content .dynamic-queue').on('click', function () {
    const ipAPI = 'https://api.ipify.org?format=json'
    swal.queue([{
        title: 'Your public IP',
        confirmButtonText: 'Show my public IP',
        text:
        'Your public IP will be received ' +
        'via AJAX request',
        showLoaderOnConfirm: true,
        preConfirm: function() {
            return fetch(ipAPI)
            .then(function (response) { 
                return response.json();
            })
            .then(function(data) {
                return swal.insertQueueStep(data.ip)
            })
            .catch(function() {
                swal.insertQueueStep({
                    type: 'error',
                    title: 'Unable to get your public IP'
                })
            })
        }
    }])

})

A title with a text under

<button class="mr-2 btn btn-primary  title-text">Title & text</button>

$('.widget-content .title-text').on('click', function () {
    swal({
        title: 'The Internet?',
        text: "That thing is still around?",
        type: 'question',
        padding: '2em'
    })
})

Chaining modals (queue)

<button class="mr-2 btn btn-primary chaining-modals">Chaining modals (queue)</button>

$('.widget-content .chaining-modals').on('click', function () {
    swal.mixin({
        input: 'text',
        confirmButtonText: 'Next →',
        showCancelButton: true,
        progressSteps: ['1', '2', '3'],
        padding: '2em',
    }).queue([
        {
            title: 'Question 1',
            text: 'Chaining swal2 modals is easy'
        },
        'Question 2',
        'Question 3'
    ]).then(function(result) {
        if (result.value) {
            swal({
                title: 'All done!',
                padding: '2em',
                html:
                'Your answers: <pre>' +
                JSON.stringify(result.value) +
                '</pre>',
                confirmButtonText: 'Lovely!'
            })
        }
    })
})

Custom animation

<button class="mr-2 btn btn-primary html-jquery">Custom animation</button>

$('.widget-content .html-jquery').on('click', function () {
    swal({
        title: 'Custom animation with Animate.css',
        animation: false,
        customClass: 'animated tada',
        padding: '2em'
    })
})

Message with auto close timer

<button class="mr-2 btn btn-primary timer">Message timer</button>

$('.widget-content .timer').on('click', function () {
    swal({
        title: 'Auto close alert!',
        text: 'I will close in 2 seconds.',
        timer: 2000,
        padding: '2em',
        onOpen: function () {
            swal.showLoading()
        }
    }).then(function (result) {
        if (
                // Read more about handling dismissals
                result.dismiss === swal.DismissReason.timer
            ) {
            console.log('I was closed by the timer')
        }
    })
})

Message with custom image

<button class="mr-2 btn btn-primary custom-image">Message with custom image</button>

$('.widget-content .custom-image').on('click', function () {
    swal({
        title: 'Sweet!',
        text: 'Modal with a custom image.',
        imageUrl: 'assets/img/thumbs-up.jpg',
        imageWidth: 400,
        imageHeight: 200,
        imageAlt: 'Custom image',
        animation: false,
        padding: '2em'
    })
})

Custom HTML description and buttons

<button class="mr-2 btn btn-primary  html">Custom Description & buttons</button>

$('.widget-content .html').on('click', function () {
    swal({
        title: '<i>HTML</i> <u>example</u>',
        type: 'info',
        html:
        'You can use <b>bold text</b>, ' +
        '<a href="//github.com">links</a> ' +
        'and other HTML tags',
        showCloseButton: true,
        showCancelButton: true,
        focusConfirm: false,
        confirmButtonText:
        '<i class="flaticon-checked-1"></i> Great!',
        confirmButtonAriaLabel: 'Thumbs up, great!',
        cancelButtonText:
        '<i class="flaticon-cancel-circle"></i> Cancel',
        cancelButtonAriaLabel: 'Thumbs down',
        padding: '2em'
    })

})

Warning message, with "Confirm" button

<button class="mr-2 btn btn-primary  warning confirm">Confirm</button>

$('.widget-content .warning.confirm').on('click', function () {
    swal({
        title: 'Are you sure?',
        text: "You won't be able to revert this!",
        type: 'warning',
        showCancelButton: true,
        confirmButtonText: 'Delete',
        padding: '2em'
    }).then(function(result) {
        if (result.value) {
            swal(
            'Deleted!',
            'Your file has been deleted.',
            'success'
        )
    }
    })
})

Execute something else for "Cancel".

<button class="mr-2 btn btn-primary  warning cancel">Addition else for "Cancel".</button>

$('.widget-content .warning.cancel').on('click', function () {
    const swalWithBootstrapButtons = swal.mixin({
        confirmButtonClass: 'btn btn-success btn-rounded',
        cancelButtonClass: 'btn btn-danger btn-rounded mr-3',
        buttonsStyling: false,
    })

    swalWithBootstrapButtons({
        title: 'Are you sure?',
        text: "You won't be able to revert this!",
        type: 'warning',
        showCancelButton: true,
        confirmButtonText: 'Yes, delete it!',
        cancelButtonText: 'No, cancel!',
        reverseButtons: true,
        padding: '2em'
    }).then(function(result) {
        if (result.value) {
            swalWithBootstrapButtons(
            'Deleted!',
            'Your file has been deleted.',
            'success'
            )
        } else if (
            // Read more about handling dismissals
            result.dismiss === swal.DismissReason.cancel
        ) {
            swalWithBootstrapButtons(
                'Cancelled',
                'Your imaginary file is safe :)',
                'error'
            )
        }
    })
})

A message with custom width, padding and background

<button class="mr-2 btn btn-primary  custom-width-padding-background">Custom Message</button>

$('.widget-content .custom-width-padding-background').on('click', function () {
    swal({
        title: 'Custom width, padding, background.',
        width: 600,
        padding: "7em",
        customClass: "background-modal",
        background: '#fff url(assets/img/sweet-bg.jpg) no-repeat 100% 100%',
    })
})

With Footer

<button class="mr-2 btn btn-primary  footer">With Footer</button>

$('.widget-content .footer').on('click', function () {
    swal({
        type: 'error',
        title: 'Oops...',
        text: 'Something went wrong!',
        footer: '<a href>Why do I have this issue?</a>',
        padding: '2em'
    })
})

RTL Support

<button class="mr-2 btn btn-primary  RTL">RTL</button>

$('.widget-content .RTL').on('click', function () {
    swal({
        title: 'هل تريد الاستمرار؟',
        confirmButtonText:  'نعم',
        cancelButtonText:  'لا',
        showCancelButton: true,
        showCloseButton: true,
        padding: '2em',
        target: document.getElementById('rtl-container')
    })

})

Mixin

<button class="mr-2 btn btn-primary  mixin">Mixin</button>

$('.widget-content .mixin').on('click', function () {
    const toast = swal.mixin({
        toast: true,
        position: 'top-end',
        showConfirmButton: false,
        timer: 3000,
        padding: '2em'
    });

    toast({
        type: 'success',
        title: 'Signed in successfully',
        padding: '2em',
    })

})