Snackbar
Placement
Code
<mdc-snackbar-host id="host-center" placement="bottom-center"></mdc-snackbar-host>
<div style="display: flex; gap: 8px; flex-wrap: wrap;">
<button onclick="document.querySelector('#host-center').show({ message: 'Single line message', action: 'Action' })">
Show Bottom Center
</button>
<button onclick="document.querySelector('#host-center').show({ message: 'Error message occurred', variant: 'error', hasCloseIcon: true })">
Show Error Snackbar
</button>
<button onclick="document.querySelector('#host-center').show({ message: 'First in queue', duration: 'short' }); document.querySelector('#host-center').show({ message: 'Second in queue (auto-sequential)', duration: 'short' });">
Trigger 2 Queued Snackbars
</button>
</div>Action
Code
<style>
.demo-container {
position: relative;
height: 300px;
padding: 16px;
}
</style>
<div class="demo-container">
<mdc-snackbar open duration="indefinite">
<span>Message with action</span>
<button slot="action">Undo</button>
</mdc-snackbar>
</div>Animation Mode
Code
<style>
.demo-container {
position: relative;
height: 400px;
padding: 16px;
}
</style>
<div class="demo-container">
<mdc-snackbar open animation-mode="slide" duration="indefinite">
<span>Slide animation mode</span>
<button slot="action">Action</button>
</mdc-snackbar>
</div>Duration
Code
<style>
.demo-container {
position: relative;
height: 300px;
padding: 16px;
}
</style>
<div class="demo-container">
<mdc-snackbar open duration="indefinite">
<span>Short duration snackbar</span>
</mdc-snackbar>
</div>Multiline
Code
<style>
.demo-container {
position: relative;
height: 400px;
padding: 16px;
}
</style>
<div class="demo-container">
<mdc-snackbar open multiline duration="indefinite">
<span>This is a multiline snackbar message that can wrap to multiple lines when the content is too long for a single line. It supports longer text content.</span>
<button slot="action">Action</button>
</mdc-snackbar>
</div>Variant
Code
<style>
.demo-container {
display: flex;
flex-direction: column;
gap: 16px;
padding: 16px;
}
.demo-item {
position: relative;
}
</style>
<div class="demo-container">
<div class="demo-item">
<mdc-snackbar open variant="surface" duration="indefinite">
<span>surface</span>
</mdc-snackbar>
</div>
<div class="demo-item">
<mdc-snackbar open variant="inverse-surface" duration="indefinite">
<span>inverse-surface</span>
</mdc-snackbar>
</div>
<div class="demo-item">
<mdc-snackbar open variant="primary" duration="indefinite">
<span>primary</span>
</mdc-snackbar>
</div>
<div class="demo-item">
<mdc-snackbar open variant="secondary" duration="indefinite">
<span>secondary</span>
</mdc-snackbar>
</div>
<div class="demo-item">
<mdc-snackbar open variant="tertiary" duration="indefinite">
<span>tertiary</span>
</mdc-snackbar>
</div>
<div class="demo-item">
<mdc-snackbar open variant="error" duration="indefinite">
<span>error</span>
</mdc-snackbar>
</div>
<div class="demo-item">
<mdc-snackbar open variant="primary-container" duration="indefinite">
<span>primary-container</span>
</mdc-snackbar>
</div>
<div class="demo-item">
<mdc-snackbar open variant="secondary-container" duration="indefinite">
<span>secondary-container</span>
</mdc-snackbar>
</div>
<div class="demo-item">
<mdc-snackbar open variant="tertiary-container" duration="indefinite">
<span>tertiary-container</span>
</mdc-snackbar>
</div>
<div class="demo-item">
<mdc-snackbar open variant="error-container" duration="indefinite">
<span>error-container</span>
</mdc-snackbar>
</div>
</div>