Вы можете создать (перезаписать) alert (), а затем обновить стиль шаблона.
Но это неправильный способ!
alert('Your alert message.');
<script>
window.alert = function(text = '') {
const d = document;
const alertId = 'custom-alert';
const hostname = window.location.hostname;
const style = `<style id="${alertId}-style">
#${alertId} {
--padding:16px;
position:fixed;
top:0;
left:50%;
transform:translateX(-50%);
width:450px;
min-height:132px;
padding:var(--padding);
font-family:Arial,sans-serif;
box-shadow:0 0 20px 1px rgba(0,0,0,0.4);
border-radius:5px;
font-size:12px;
color:#000
}
#${alertId} span {
display:block
}
#${alertId} span:first-of-type {
font-size:var(--padding);
padding-bottom:var(--padding)
}
#${alertId} span:first-of-type::after {
content:attr(data-host)
}
#${alertId} span:last-of-type {
color:#666
}
#${alertId} div {
position:absolute;
bottom:var(--padding);
right:var(--padding);
min-width:60px;
background:#3F86F4;
color:#fff;
text-align:center;
padding:10px
}
#${alertId} div::before {
content:attr(data-ok)
}
#${alertId} div:active {
background:#6ba0f4
}
</style>`;
const template = `<div id="${alertId}">
<span data-host="${hostname.length ? hostname : 'localhost'} says"></span>
<span>${text}</span>
<div data-ok="OK"></div>
</div>`;
d.body.insertAdjacentHTML('beforeend', style + template);
const alertModal = d.querySelector('#' + alertId);
alertModal.querySelector('div').addEventListener('click', () => {
const alertStyle = d.querySelector(`#${alertId}-style`);
alertStyle.parentNode.removeChild(alertStyle);
alertModal.parentNode.removeChild(alertModal);
});
};
</script>