SnackBar
                Toast
Toast
SnackBars provide brief notifications. The component is also known as a toast.
Usage
Basic
<BitSnackBar @ref="basicRef" /> <BitButton OnClick="OpenBasicSnackBar">Open SnackBar</BitButton>@code { private BitSnackBar basicRef = default!; private async Task OpenBasicSnackBar() { await basicRef.Info("This is title", "This is body"); } }
Customization
<BitSnackBar @ref="basicSnackBarRef" Dir="direction" Position="@basicSnackBarPosition" AutoDismiss="@basicSnackBarAutoDismiss" AutoDismissTime="TimeSpan.FromSeconds(basicSnackBarDismissSeconds)" /> <BitButton OnClick="OpenBasicSnackBar">Show</BitButton> <BitChoiceGroup @bind-Value="basicSnackBarColor" Label="Type" TItem="BitChoiceGroupOption<BitColor>" TValue="BitColor"> <BitChoiceGroupOption Text="Primary" Value="BitColor.Primary" /> <BitChoiceGroupOption Text="Secondary" Value="BitColor.Secondary" /> <BitChoiceGroupOption Text="Tertiary" Value="BitColor.Tertiary" /> <BitChoiceGroupOption Text="Info" Value="BitColor.Info" /> <BitChoiceGroupOption Text="Success" Value="BitColor.Success" /> <BitChoiceGroupOption Text="Warning" Value="BitColor.Warning" /> <BitChoiceGroupOption Text="SevereWarning" Value="BitColor.SevereWarning" /> <BitChoiceGroupOption Text="Error" Value="BitColor.Error" /> <BitChoiceGroupOption Text="PrimaryBackground" Value="BitColor.PrimaryBackground" /> <BitChoiceGroupOption Text="SecondaryBackground" Value="BitColor.SecondaryBackground" /> <BitChoiceGroupOption Text="TertiaryBackground" Value="BitColor.TertiaryBackground" /> <BitChoiceGroupOption Text="PrimaryForeground" Value="BitColor.PrimaryForeground" /> <BitChoiceGroupOption Text="SecondaryForeground" Value="BitColor.SecondaryForeground" /> <BitChoiceGroupOption Text="TertiaryForeground" Value="BitColor.TertiaryForeground" /> <BitChoiceGroupOption Text="PrimaryBorder" Value="BitColor.PrimaryBorder" /> <BitChoiceGroupOption Text="SecondaryBorder" Value="BitColor.SecondaryBorder" /> <BitChoiceGroupOption Text="TertiaryBorder" Value="BitColor.TertiaryBorder" /> </BitChoiceGroup> <BitChoiceGroup @bind-Value="basicSnackBarPosition" Label="Position" TItem="BitChoiceGroupOption<BitSnackBarPosition>" TValue="BitSnackBarPosition"> <BitChoiceGroupOption Text="TopStart" Value="BitSnackBarPosition.TopStart" /> <BitChoiceGroupOption Text="TopCenter" Value="BitSnackBarPosition.TopCenter" /> <BitChoiceGroupOption Text="TopEnd" Value="BitSnackBarPosition.TopEnd" /> <BitChoiceGroupOption Text="BottomStart" Value="BitSnackBarPosition.BottomStart" /> <BitChoiceGroupOption Text="BottomCenter" Value="BitSnackBarPosition.BottomCenter" /> <BitChoiceGroupOption Text="BottomEnd" Value="BitSnackBarPosition.BottomEnd" /> </BitChoiceGroup> <BitChoiceGroup @bind-Value="direction" Label="Direction" TItem="BitChoiceGroupOption<BitDir>" TValue="BitDir"> <BitChoiceGroupOption Text="LTR" Value="BitDir.Ltr" /> <BitChoiceGroupOption Text="RTL" Value="BitDir.Rtl" /> <BitChoiceGroupOption Text="Auto" Value="BitDir.Auto" /> </BitChoiceGroup> <BitToggle @bind-Value="basicSnackBarAutoDismiss" Label="Auto Dismiss" /> <BitNumberField @bind-Value="basicSnackBarDismissSeconds" Step="1" Min="1" Label="Dismiss Time (based on second)" /> <BitToggle @bind-Value="basicSnackBarMultiline" Label="Multiline" Inline /> <BitTextField @bind-Value="basicSnackBarTitle" Label="Title" DefaultValue="Title" /> <BitTextField @bind-Value="basicSnackBarBody" Label="Body" Multiline Rows="6" DefaultValue="This is a body!" />@code { private BitDir direction; private bool basicSnackBarMultiline; private bool basicSnackBarAutoDismiss; private int basicSnackBarDismissSeconds = 3; private BitSnackBar customizationRef = default!; private string basicSnackBarBody = "This is body"; private string basicSnackBarTitle = "This is title"; private BitColor basicSnackBarColor = BitColor.Info; private BitSnackBarPosition basicSnackBarPosition = BitSnackBarPosition.BottomEnd; private async Task OpenBasicSnackBar() { await basicSnackBarRef.Show(basicSnackBarTitle, basicSnackBarBody, basicSnackBarColor); } }
Persistent
<BitSnackBar @ref="persistentRef" Persistent /> <BitButton OnClick="OpenPersistentSnackBar">Open SnackBar</BitButton> <BitButton OnClick="ClosePersistentSnackBar">Close SnackBar</BitButton>@code { private BitSnackBarItem? persistentItem; private BitSnackBar persistentRef = default!; private async Task OpenPersistentSnackBar() { await ClosePersistentSnackBar(); persistentItem = await persistentRef.Info("This is persistent title", "This is persistent body"); } private async Task ClosePersistentSnackBar() { if (persistentItem is not null) { await persistentRef.Close(persistentItem); persistentItem = null; } } }
Templates
<BitSnackBar @ref="dismissIconNameRef" DismissIconName="@BitIconName.Go" /> <BitButton OnClick="OpenDismissIconName">Dismiss Icon Name</BitButton> <BitSnackBar @ref="titleTemplateRef" AutoDismiss="false"> <TitleTemplate Context="title"> <div style="display: flex; flex-direction: row; gap: 10px;"> <span>@title</span> <BitProgress Thickness="20" Style="width: 40px;" Indeterminate /> </div> </TitleTemplate> </BitSnackBar> <BitButton OnClick="OpenTitleTemplate">Title Template</BitButton> <BitSnackBar @ref="bodyTemplateRef" AutoDismiss="false"> <BodyTemplate Context="body"> <div style="display: flex; flex-flow: column nowrap; gap: 5px;"> <span style="font-size: 12px; margin-bottom: 5px;">@body</span> <div style="display: flex; gap: 10px;"> <BitButton OnClick="@(() => bodyTemplateAnswer = "Yes")">Yes</BitButton> <BitButton OnClick="@(() => bodyTemplateAnswer = "No")">No</BitButton> </div> <span>Answer: @bodyTemplateAnswer</span> </div> </BodyTemplate> </BitSnackBar> <BitButton OnClick="OpenBodyTemplate">Body Template</BitButton>@code { private string? bodyTemplateAnswer; private BitSnackBar bodyTemplateRef = default!; private BitSnackBar titleTemplateRef = default!; private BitSnackBar dismissIconNameRef = default!; private async Task OpenDismissIconName() { await dismissIconNameRef.Success("This is title", "This is body"); } private async Task OpenTitleTemplate() { await titleTemplateRef.Warning("This is title", "This is body"); } private async Task OpenBodyTemplate() { await bodyTemplateRef.Error("This is title", "This is body"); } }
Style & Class
Item's Style & Class:
Styles & Classes:
<style> .custom-class { background-color: tomato; box-shadow: gold 0 0 1rem; } .custom-container { border: 1px solid gold; } .custom-progress { background-color: red; } </style> <BitSnackBar @ref="snackBarStyleRef" /> <BitButton OnClick="OpenSnackBarStyle">Custom style</BitButton> <BitSnackBar @ref="snackBarClassRef" /> <BitButton OnClick="OpenSnackBarClass">Custom style</BitButton> <BitSnackBar @ref="snackBarStylesRef" Styles="@(new() { Container = "width: 16rem; background-color: purple;", Header = "background-color: rebeccapurple; padding: 0.2rem;" })" /> <BitButton OnClick="OpenSnackBarStyles">Custom styles</BitButton> <BitSnackBar @ref="snackBarClassesRef" AutoDismiss Classes="@(new() { Container = "custom-container", ProgressBar = "custom-progress" })" /> <BitButton OnClick="OpenSnackBarClasses">Custom classes</BitButton>@code { private BitSnackBar snackBarStyleRef = default!; private BitSnackBar snackBarClassRef = default!; private BitSnackBar snackBarStylesRef = default!; private BitSnackBar snackBarClassesRef = default!; private async Task OpenSnackBarStyle() { await snackBarClassRef.Show("This is title", "This is body", cssStyle: "background-color: dodgerblue; border-radius: 0.5rem;"); } private async Task OpenSnackBarClass() { await snackBarStyleRef.Show("This is title", "This is body", cssClass: "custom-class"); } private async Task OpenSnackBarStyles() { await snackBarStylesRef.Show("This is title", "This is body"); } private async Task OpenSnackBarClasses() { await snackBarClassesRef.Show("This is title", "This is body"); } }
API
BitSnackBar parameters
| Name | Type | Default value | Description | 
|---|---|---|---|
| AutoDismiss | bool | false | Whether or not automatically dismiss the snack bar. | 
| AutoDismissTime | TimeSpan? | null | How long does it take to automatically dismiss the snack bar (default is 3 seconds). | 
| BodyTemplate | RenderFragment<string>? | null | Used to customize how the content inside the body is rendered. | 
| Classes | BitSnackBarClassStyles? | null | Custom CSS classes for different parts of the snack bar. | 
| DismissIconName | string? | null | The icon name of the dismiss button. | 
| Multiline | bool | false | Enables the multiline mode of both title and body. | 
| OnDismiss | EventCallback | Callback for when any snack bar is dismissed. | |
| Persistent | bool | false | Makes the snack bar non-dismissible in UI and removes the dismiss button. | 
| Position | BitSnackBarPosition? | null | The position of the snack bars to show. | 
| Styles | BitSnackBarClassStyles? | null | Custom CSS styles for different parts of the snack bar. | 
| TitleTemplate | RenderFragment<string>? | null | Used to customize how content inside the title is rendered. | 
BitSnackBar public members
BitComponentBase parameters
| Name | Type | Default value | Description | 
|---|---|---|---|
| AriaLabel | string? | null | The aria-label of the control for the benefit of screen readers. | 
| Class | string? | null | Custom CSS class for the root element of the component. | 
| Dir | BitDir? | null | Determines the component direction. | 
| HtmlAttributes | Dictionary<string, object> | new Dictionary<string, object>() | Capture and render additional attributes in addition to the component's parameters. | 
| Id | string? | null | Custom id attribute for the root element. if null the UniqueId will be used instead. | 
| IsEnabled | bool | true | Whether or not the component is enabled. | 
| Style | string? | null | Custom CSS style for the root element of the component. | 
| Visibility | BitVisibility | BitVisibility.Visible | Whether the component is visible, hidden or collapsed. | 
BitComponentBase public members
| Name | Type | Default value | Description | 
|---|---|---|---|
| UniqueId | Guid | Guid.NewGuid() | The readonly unique id of the root element. it will be assigned to a new Guid at component instance construction. | 
| RootElement | ElementReference | The ElementReference of the root element. | 
BitSnackBarClassStyles properties
| Name | Type | Default value | Description | 
|---|---|---|---|
| Root | string? | null | Custom CSS classes/styles for the root element of the BitSnackBar. | 
| Container | string? | null | Custom CSS classes/styles for the main container of the BitSnackBar. | 
| Header | string? | null | Custom CSS classes/styles for the header of the BitSnackBar. | 
| DismissButton | string? | null | Custom CSS classes/styles for the dismiss button of the BitSnackBar. | 
| DismissIcon | string? | null | Custom CSS classes/styles for the dismiss icon of the BitSnackBar. | 
| Title | string? | null | Custom CSS classes/styles for the title of the BitSnackBar. | 
| Body | string? | null | Custom CSS classes/styles for the body of the BitSnackBar. | 
| ProgressBar | string? | null | Custom CSS classes/styles for the progress bar of the BitSnackBar. | 
BitSnackBarItem properties
A class to represent each snack bar item.
| Name | Type | Default value | Description | 
|---|---|---|---|
| Id | Guid | Guid.NewGuid() | The unique identifier of the snack bar item. | 
| Title | string | null | The title text of the snack bar item. | 
| Body | string? | null | The body text of the snack bar item. | 
| Color | BitColor? | null | The color theme of the snack bar item. | 
| CssClass | string? | null | Custom CSS class to apply to the snack bar item. | 
| CssStyle | string? | null | Custom CSS style to apply to the snack bar item. | 
| Persistent | bool | false | Makes this specific snack bar item non-dismissible and removes its dismiss button. | 
BitSnackBarPosition enum
| Name | Value | Description | 
|---|---|---|
| TopStart | 0 | |
| TopCenter | 1 | |
| TopEnd | 2 | |
| BottomStart | 3 | |
| BottomCenter | 4 | |
| BottomEnd | 5 | 
BitColor enum
| Name | Value | Description | 
|---|---|---|
| Primary | 0 | Info Primary general color. | 
| Secondary | 1 | Secondary general color. | 
| Tertiary | 2 | Tertiary general color. | 
| Info | 3 | Info general color. | 
| Success | 4 | Success general color. | 
| Warning | 5 | Warning general color. | 
| SevereWarning | 6 | SevereWarning general color. | 
| Error | 7 | Error general color. | 
| PrimaryBackground | 8 | Primary background color. | 
| SecondaryBackground | 9 | Secondary background color. | 
| TertiaryBackground | 10 | Tertiary background color. | 
| PrimaryForeground | 11 | Primary foreground color. | 
| SecondaryForeground | 12 | Secondary foreground color. | 
| TertiaryForeground | 13 | Tertiary foreground color. | 
| PrimaryBorder | 14 | Primary border color. | 
| SecondaryBorder | 15 | Secondary border color. | 
| TertiaryBorder | 16 | Tertiary border color. | 
BitVisibility enum
| Name | Value | Description | 
|---|---|---|
| Visible | 0 | The content of the component is visible. | 
| Hidden | 1 | The content of the component is hidden, but the space it takes on the page remains (visibility:hidden). | 
| Collapsed | 2 | The component is hidden (display:none). | 
BitDir enum
| Name | Value | Description | 
|---|---|---|
| Ltr | 0 | Ltr (left to right) is to be used for languages that are written from the left to the right (like English). | 
| Rtl | 1 | Rtl (right to left) is to be used for languages that are written from the right to the left (like Arabic). | 
| Auto | 2 | Auto lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then applies that directionality to the whole element. | 
Feedback
You can give us your feedback through our GitHub repo by filing a new Issue or starting a new Discussion.
Or you can review / edit this page on GitHub.
Or you can review / edit this component on GitHub.
- On this page