Banner
A floating top-of-viewport notification for global, non-blocking feedback. Supports semantic states, optional action, dismiss behavior, and timed or persistent visibility.
All states
Each example starts closed and is opened explicitly by a button, matching production behavior patterns.
<diwa-button-pure id="open-banner">Open Banner</diwa-button-pure>
<diwa-banner id="banner" state="info" heading="Some heading" description="Some description."></diwa-banner>
<script>
const button = document.getElementById('open-banner');
const banner = document.getElementById('banner');
button.addEventListener('click', () => (banner.open = !banner.open));
banner.addEventListener('dismiss', () => (banner.open = false));
</script><diwa-button-pure id="open-banner">Open Banner</diwa-button-pure>
<diwa-banner id="banner" state="info" heading="Some heading" description="Some description."></diwa-banner>
<script>
const button = document.getElementById('open-banner');
const banner = document.getElementById('banner');
button.addEventListener('click', () => (banner.open = !banner.open));
banner.addEventListener('dismiss', () => (banner.open = false));
</script><diwa-button-pure id="open-banner">Open Banner</diwa-button-pure>
<diwa-banner id="banner" state="info" heading="Some heading" description="Some description."></diwa-banner>
<script>
const button = document.getElementById('open-banner');
const banner = document.getElementById('banner');
button.addEventListener('click', () => (banner.open = !banner.open));
banner.addEventListener('dismiss', () => (banner.open = false));
</script><diwa-button-pure id="open-banner">Open Banner</diwa-button-pure>
<diwa-banner id="banner" state="info" heading="Some heading" description="Some description."></diwa-banner>
<script>
const button = document.getElementById('open-banner');
const banner = document.getElementById('banner');
button.addEventListener('click', () => (banner.open = !banner.open));
banner.addEventListener('dismiss', () => (banner.open = false));
</script>With action + dismiss
Use action + dismiss when users need an immediate next step.
<diwa-button-pure id="open-banner">Open Banner</diwa-button-pure>
<diwa-banner id="banner" state="info" heading="Some heading" description="Some description."></diwa-banner>
<script>
const button = document.getElementById('open-banner');
const banner = document.getElementById('banner');
button.addEventListener('click', () => (banner.open = !banner.open));
banner.addEventListener('dismiss', () => (banner.open = false));
</script>Timed banner
Timed banners open on demand and auto-close after the configured duration.
<diwa-button-pure id="open-banner">Open Banner</diwa-button-pure>
<diwa-banner id="banner" state="info" heading="Some heading" description="Some description."></diwa-banner>
<script>
const button = document.getElementById('open-banner');
const banner = document.getElementById('banner');
button.addEventListener('click', () => (banner.open = !banner.open));
banner.addEventListener('dismiss', () => (banner.open = false));
</script>Persistent banner
Persistent banners remain visible until dismissed or manually closed.
<diwa-button-pure id="open-banner">Open Banner</diwa-button-pure>
<diwa-banner id="banner" state="info" heading="Some heading" description="Some description."></diwa-banner>
<script>
const button = document.getElementById('open-banner');
const banner = document.getElementById('banner');
button.addEventListener('click', () => (banner.open = !banner.open));
banner.addEventListener('dismiss', () => (banner.open = false));
</script>