Toast notification portaled to the viewport.
Introduction
Snackbars (also known as toasts) appear temporarily and float above the UI to provide brief, non-critical updates—saved successfully, message sent, or undo available.
Snackbar vs Alert: Snackbars have a fixed viewport position, a high stacking order, and auto-dismiss by default—they break out of the document flow. Alert messages are usually inline, part of the page layout, and remain visible until removed. Use Snackbar for transient process feedback; use Alert for persistent status on a form, page section, or settings panel. You can nest an Alert inside a Snackbar when you need both toast behavior and semantic severity styling.
Import
import { Snackbar } from "@bridge-ui/vue/Components/Snackbar";import { Snackbar } from "@bridge-ui/react/Components/Snackbar";Basic usage
Control visibility with v-model or :model-value with @show-change. Pair with a trigger such as a Button to open the snackbar.
Control visibility with show and onShowChange. Pair with a trigger such as a Button to open the snackbar.
Colors
Use the color prop to tint the default icon and progress bar. Available colors: primary, secondary, success, info, warning, error, and dark.
Positions
Anchor the snackbar on the viewport with the position prop. Available positions: top-start, top-center, top-end, bottom-start, bottom-center (default), and bottom-end. Ignored when teleportTo={false}.
Duration
Set duration (in milliseconds) to auto-dismiss the snackbar. Pass false to disable the timer. Enable progressbar to show a countdown indicator while the timer is active.
Transitions
Set transition to slide (default), fade, or none for enter/leave animation.
Rounded
Use the rounded prop to control border radius. Available values: none, xs, sm, md, lg, xl, 2xl, 3xl, 4xl, and full (default: lg).
Slots
Override icon, title, and description with slots for custom content.
Related components
Accessibility
- Snackbar sets role="status" and aria-live="polite" by default so screen readers announce messages without interrupting current tasks.
- Users can dismiss the snackbar with the close button when closeButton is enabled (default).
- Provide enough duration for users to read the message before auto-dismiss.
- Keep titles and descriptions concise. Avoid relying on color alone to convey meaning—pair color with clear text.
Anatomy
<div> <!-- root (portaled, role="status") -->
<div> <!-- content -->
<svg> <!-- icon or img -->
<div> <!-- title -->
<div> <!-- description -->
<div> <!-- actions slot (optional) -->
<button> <!-- close button -->
</div>
<div> <!-- progressbar (when duration is set) -->
</div>Target internal parts with the classes prop and override slots for custom icon, title, description, or action content.
API
| Prop / event | Type | Default | Description |
|---|---|---|---|
| v-model | boolean | — | Two-way binding for visibility. |
| @close | — | — | Emitted when the snackbar requests to close (close button, Escape, or timer). Not emitted when the parent sets v-model to false directly. |
| @show-change | (show: boolean) => void | — | Emitted when visibility should change. Use with :model-value for controlled state. |
| @leave-complete | — | — | Emitted after the leave transition when v-model is already false. Used internally by BridgeSnackbarHost. |
| Prop | Type | Default | Description |
|---|---|---|---|
| show | boolean | — | Whether the overlay is visible. Use with onShowChange for controlled state. |
| onShowChange | (show: boolean) => void | — | Called when visibility changes. |
| onClose | () => void | — | Called when the snackbar requests to close (close button, Escape, or timer). Not called when the parent sets show={false} directly. |
| Prop | Type | Default | Description |
|---|---|---|---|
| title | string | — | Headline text. |
| description | string | — | Body text below the title. |
| color | SnackbarColor | "primary" | Tint color for the default icon. |
| position | SnackbarPosition | "bottom-center" | Viewport anchor when portaled. |
| duration | number | false | 5000 | Auto-dismiss delay in ms. false disables the timer. |
| progressbar | boolean | true | Show countdown progress bar when duration is set. |
| closeButton | boolean | true | Whether to show the close button. |
| icon | IconSource | null | — | Custom icon or null to hide. |
| img | string | — | Avatar image URL (shown instead of icon when set). |
| padding | SnackbarPadding | "medium" | Padding for the content area. |
| rounded | SnackbarRounded | "lg" | Border radius of the snackbar panel. |
| transition | SnackbarTransition | "slide" | Enter/leave animation preset. |
| teleportTo | string | false | "body" | Portal target. false renders inline. |
| classes | SnackbarClasses | — | Classes for internal parts. |
| customProps | SnackbarCustomProps | — | Props forwarded to internal parts. |
| slots | SnackbarSlots | — | React slots: icon, title, description, actions. |