Как создать кастомизируемый вид для alert(), confirm() и prompt() для использования в JavaScript

Я давно думал о кастомизации внешнего вида типовых функций взаимодействия с пользователем в JavaScript — alert(), confirm() и prompt() (далее модальные окна). Действительно, они очень удобны в использовании, но разные в различных браузерах и весьма неприглядны на вид. Наконец руки дошли. В чём проблема? Обычные средства выдачи диалогов (например, bootstrap) ПОДРОБНЕЕ