# Message
**Also known as:** Alert, MessageBar
## Description
An inline message that reports an error, a warning, or something worth knowing - a failed upload, an expiring licence, a saved draft - in place and without interrupting the page. It carries a color and a matching icon for its severity, an optional title, action buttons, a fold that holds a long text to one line or to a set number of them, and a dismiss button that can take the message off the page by itself, on a timer or on demand, and it announces itself to screen readers with the urgency its color implies.
## Parameters
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| Actions | `RenderFragment?` | null | The content of the action to show on the message. |
| Alignment | `BitAlignment?` | null | Determines the alignment of the content section of the message. |
| AutoDismissTime | `TimeSpan?` | null | Enables the auto-dismiss feature and sets the time to automatically dismiss the message. It runs wherever dismissing would do something - an OnDismiss handler, Dismissible, or a Dismissed binding - and is held while the pointer is over the message, the focus is inside it, or PauseAutoDismiss was called. |
| AutoFocus | `bool` | false | Moves the focus to the message as soon as it is rendered. The root is made focusable (tabindex="-1") while no explicit TabIndex is given. |
| ChildContent | `RenderFragment?` | null | The content of message. |
| Classes | `BitMessageClassStyles?` | null | Custom CSS classes for different parts of the BitMessage. |
| CollapseAriaLabel | `string` | "Collapse" | The aria-label and the tooltip of the expander button of the message in Truncate mode while it is expanded. |
| CollapseIcon | `BitIconInfo?` | null | Gets or sets the icon for the collapse button in Truncate mode using custom CSS classes for external icon libraries. Takes precedence over CollapseIconName when both are set. |
| CollapseIconName | `string?` | null | Gets or sets the name of the collapse icon in Truncate mode from the built-in Fluent UI icons. |
| Color | `BitColor?` | null | The general color of the message. |
| Content | `RenderFragment?` | null | The alias for ChildContent. |
| DelayedAnnouncement | `bool` | false | Holds the content of the message back for one render, so its live region is already on the page when the text lands in it, which is what makes the announcement reliable. |
| DismissAriaLabel | `string` | "Dismiss" | The aria-label and the tooltip of the dismiss button of the message. |
| Dismissed | `bool` | false | Determines whether the message has been dismissed, which is two-way bindable. A dismissed message renders nothing, and setting it back to false brings the message back and re-arms its AutoDismissTime countdown. The message only sets it itself while Dismissible is set or the parameter is bound. |
| DismissedChanged | `EventCallback<bool>` | null | The callback that is called when the Dismissed value changes, for subscribing to the change without binding to Dismissed. |
| Dismissible | `bool` | false | Renders the dismiss button and lets the message dismiss itself by setting Dismissed, without an OnDismiss handler having to take it off the page. |
| DismissIcon | `BitIconInfo?` | null | Gets or sets the icon for the dismiss button using custom CSS classes for external icon libraries. Takes precedence over DismissIconName when both are set. |
| DismissIconName | `string?` | null | Gets or sets the name of the dismiss icon from the built-in Fluent UI icons. If unset, default will be the Fluent UI Cancel icon. |
| DismissOnEscape | `bool` | false | Dismisses the message when the Escape key is pressed while the focus is inside it. Only wired up while dismissing would do something - that is, while OnDismiss has a handler, Dismissible is set, or Dismissed is bound. |
| Elevation | `int?` | null | Determines the elevation of the message, a scale from 1 to 24. |
| ExpandAriaLabel | `string` | "Expand" | The aria-label and the tooltip of the expander button of the message in Truncate mode while it is collapsed. |
| Expanded | `bool` | false | Determines whether the truncated content of the message is expanded, which is two-way bindable. Only meaningful together with Truncate. |
| ExpandedChanged | `EventCallback<bool>` | null | The callback that is called when the Expanded value changes, for subscribing to the change without binding to Expanded. |
| ExpandIcon | `BitIconInfo?` | null | Gets or sets the icon for the expand button in Truncate mode using custom CSS classes for external icon libraries. Takes precedence over ExpandIconName when both are set. |
| ExpandIconName | `string?` | null | Gets or sets the name of the expand icon in Truncate mode from the built-in Fluent UI icons. |
| HideIcon | `bool` | false | Prevents rendering the icon of the message. |
| Icon | `BitIconInfo?` | null | Gets or sets the icon to display using custom CSS classes for external icon libraries. Takes precedence over IconName when both are set. |
| IconAriaLabel | `string?` | null | The text that says out loud what the icon of the message means, rendered invisibly at the start of the announced region. Set it where the text of the message does not already say what kind of message it is. |
| IconName | `string?` | null | Gets or sets the name of the icon to display from the built-in Fluent UI icons. If unset, the icon will be selected automatically based on Color. |
| IconTemplate | `RenderFragment?` | null | The custom template to render in place of the icon of the message, which takes precedence over Icon and IconName. |
| MaxLines | `int?` | null | Caps how many lines the content of the message may wrap over in Multiline mode, ending the last of them in an ellipsis. Pair it with Truncate to give the reader the expander button that unfolds the rest. |
| Multiline | `bool` | false | Determines if the message is multi-lined. If false, and the text overflows over buttons or to another line, it is clipped. |
| OnDismiss | `EventCallback` | | Reports that the message was dismissed - by its button, the Escape key, the countdown or a DismissAsync call - and renders the dismiss button that does it. Taking the message off the page is left to this callback; use Dismissible to have the message do that itself. |
| OnDismissing | `EventCallback<BitMessageDismissArgs>` | | Callback invoked before the message is dismissed, letting the dismissal be cancelled. Set Cancel on the provided args to keep the message where it is, and read its Reason to tell the dismiss button, the Escape key, the countdown and a DismissAsync call apart. Refusing a countdown gives the message its AutoDismissTime over again. |
| Politeness | `BitPoliteness?` | null | How urgently the message interrupts a screen reader (aria-live), independently of the role it is announced under. Left unset, the role carries the urgency on its own: alert interrupts, status waits its turn. |
| Role | `string?` | null | Custom role to apply to the message text. If unset, Warning, SevereWarning and Error announce as "alert" and every other color as "status". Set it to "none" for a message that should not be announced at all. |
| ShowAutoDismissProgress | `bool` | false | Renders a bar along the bottom edge of the message that runs down as its AutoDismissTime does, holding wherever the countdown holds. It only renders where there is a countdown to show. |
| Size | `BitSize?` | null | The size of Message, Possible values: Small | Medium | Large. |
| Square | `bool` | false | Removes the rounded corners of the message so it can sit flush against the edges of its container as a banner. |
| Styles | `BitMessageClassStyles?` | null | Custom CSS styles for different parts of the BitMessage. |
| Title | `string?` | null | The title (heading) of the message, rendered above the content in multiline mode and ahead of it otherwise. |
| TitleElement | `string?` | null | The HTML element the title of the message is rendered as. The default is a div; set it to a heading (h2 ... h6) where the message is a part of the page a reader should be able to jump to. |
| TitleTemplate | `RenderFragment?` | null | The custom template to render as the title (heading) of the message, which takes precedence over Title. |
| Truncate | `bool` | false | Determines if the message text is truncated. If true, the content is clipped to a single line and a button renders to unfold it, for a message that has to fit in a tight space. On a Multiline message it unfolds the content past the MaxLines cap instead, and does nothing without one. |
| Variant | `BitVariant?` | null | The variant of the message. |
| AriaLabel | `string?` | null | Gets or sets the accessible label for the component, used by assistive technologies. |
| Class | `string?` | null | Gets or sets the CSS class name(s) to apply to the rendered element. |
| Dir | `BitDir?` | null | Gets or sets the text directionality for the component's content. |
| ForceAnimation | `bool` | false | Gets or sets a value indicating whether the component's animations play at their full duration even when reduced motion is requested. |
| HtmlAttributes | `Dictionary<string, object>` | new Dictionary<string, object>() | Captures additional HTML attributes to be applied to the rendered element, in addition to the component's parameters. |
| Id | `string?` | null | Gets or sets the unique identifier for the component's root element. |
| IsEnabled | `bool` | true | Gets or sets a value indicating whether the component is enabled and can respond to user interaction. |
| Style | `string?` | null | Gets or sets the CSS style string to apply to the rendered element. |
| TabIndex | `string?` | null | Gets or sets the tab order index for the component when navigating with the keyboard. |
| Visibility | `BitVisibility` | BitVisibility.Visible | Gets or sets the visibility state (visible, hidden, or collapsed) of the component. |
## Public Members
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| CollapseAsync | `Task` | | Folds the truncated content of the message back into a single line, the way its expander button does. |
| DismissAsync | `Task` | | Dismisses the message the same way its dismiss button does: the countdown is stopped, the message takes itself off the page while it owns its dismissal, and OnDismiss is invoked. |
| ExpandAsync | `Task` | | Unfolds the truncated content of the message, the way its expander button does. |
| FocusAsync | `ValueTask` | | Moves the focus to the message, which has to be focusable for the focus to land: either give it a TabIndex or set AutoFocus. |
| PauseAutoDismiss | `void` | | Holds the AutoDismissTime countdown where it is, the way hovering the message does, for holding it over something the message cannot see. |
| ResumeAutoDismiss | `void` | | Lets the AutoDismissTime countdown spend its time again after a PauseAutoDismiss, from wherever it was held. |
| ToggleExpandAsync | `Task` | | Turns the truncated content of the message over: unfolds it while it is folded, folds it while it is not. |
| UniqueId | `Guid` | Guid.NewGuid() | Gets the readonly unique identifier for the component's root element, assigned when the component instance is constructed. |
| RootElement | `ElementReference` | | Gets the reference to the root HTML element associated with this component. |
## Enums
### BitColor Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Primary | 0 | 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. |
### BitVariant Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Fill | 0 | Fill styled variant. |
| Outline | 1 | Outline styled variant. |
| Text | 2 | Text styled variant. |
### BitAlignment Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Start | 0 | |
| End | 1 | |
| Center | 2 | |
| SpaceBetween | 3 | |
| SpaceAround | 4 | |
| SpaceEvenly | 5 | |
| Baseline | 6 | |
| Stretch | 7 | |
### BitPoliteness Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Off | 0 | The region is not a live region: nothing in it is announced as it changes (aria-live="off"). |
| Polite | 1 | The change waits its turn and is announced once the screen reader has finished what it was saying (aria-live="polite"). |
| Assertive | 2 | The change interrupts the screen reader and is announced right away (aria-live="assertive"). |
### BitMessageDismissReason Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Button | 0 | The dismiss button of the message was pressed. |
| Escape | 1 | The Escape key was pressed while the focus was inside the message. |
| AutoDismiss | 2 | The AutoDismissTime countdown of the message ran out. |
| Programmatic | 3 | The DismissAsync method of the message was called. |
### BitSize Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Small | 0 | The small size message. |
| Medium | 1 | The medium size message. |
| Large | 2 | The large size message. |
### 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. |
## Sub Classes
### BitMessageClassStyles Properties
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| Root | `string?` | null | Custom CSS classes/styles for the root element of the BitMessage. |
| RootContainer | `string?` | null | Custom CSS classes/styles for the root container of the BitMessage. |
| Container | `string?` | null | Custom CSS classes/styles for the icon and content container of the BitMessage. |
| IconContainer | `string?` | null | Custom CSS classes/styles for the icon container of the BitMessage. |
| Icon | `string?` | null | Custom CSS classes/styles for the icon element of the BitMessage. |
| IconLabel | `string?` | null | Custom CSS classes/styles for the visually hidden icon label of the BitMessage. |
| ContentContainer | `string?` | null | Custom CSS classes/styles for the content container of the BitMessage. |
| ContentWrapper | `string?` | null | Custom CSS classes/styles for the content wrapper element of the BitMessage. |
| Title | `string?` | null | Custom CSS classes/styles for the title element of the BitMessage. |
| Content | `string?` | null | Custom CSS classes/styles for the content element of the BitMessage. |
| Actions | `string?` | null | Custom CSS classes/styles for the actions element of the BitMessage. |
| ExpanderButton | `string?` | null | Custom CSS classes/styles for the truncate expander button of the BitMessage. |
| ExpanderIcon | `string?` | null | Custom CSS classes/styles for the truncate expander icon of the BitMessage. |
| DismissButton | `string?` | null | Custom CSS classes/styles for the dismiss button of the BitMessage. |
| DismissIcon | `string?` | null | Custom CSS classes/styles for the dismiss icon of the BitMessage. |
| AutoDismissProgress | `string?` | null | Custom CSS classes/styles for the auto-dismiss progress track of the BitMessage. |
| AutoDismissProgressBar | `string?` | null | Custom CSS classes/styles for the auto-dismiss progress bar of the BitMessage. |
### BitMessageDismissArgs Properties
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| Reason | `BitMessageDismissReason` | | What made the message dismiss: its dismiss button, the Escape key, the auto-dismiss countdown, or a call to the DismissAsync method. |
| Cancel | `bool` | false | Set to true to cancel the dismissal and keep the message where it is. |
### BitIconInfo Properties
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| Name | `string?` | null | Gets or sets the name of the icon. |
| BaseClass | `string?` | null | Gets or sets the base CSS class for the icon. For built-in Fluent UI icons, this defaults to "bit-icon". For external icon libraries like FontAwesome, you might set this to "fa" or leave empty. |
| Prefix | `string?` | null | Gets or sets the CSS class prefix used before the icon name. For built-in Fluent UI icons, this defaults to "bit-icon--". For external icon libraries, you might set this to "fa-" or leave empty. |
## Examples
\n**Basic**:
```razor
This is a Message.
```
\n**Title**:
```razor
Your session expires in 5 minutes.
The file report-2024.xlsx could not be uploaded because it exceeds the 25 MB limit.
Compress the file or split it into parts and try again.
Saved to your workspace
Everyone with access to the workspace can see this version now.
Rendered as an h3, so it shows up in the heading list of a screen reader.
```
\n**Variant**:
```razor
Filled
Outlined
Texted
```
\n**Alignment**:
```razor
Start
Center
End
```
\n**Elevation**:
```razor
Elevated Message
```
```csharp
private double elevation = 7;
```
\n**Multiline**:
```razor
In the beginning, there is silence-a blank canvas yearning to be filled, a quiet space where creativity waits
to awaken. These words are temporary, standing in place of ideas yet to come, a glimpse into the infinite
possibilities that lie ahead. Think of this text as a bridge, connecting the empty spaces of now with the
vibrant narratives of tomorrow. It whispers of the stories waiting to be told, of the thoughts yet to be
shaped into meaning, and the emotions ready to resonate with every reader.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new, an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
Your workspace is using 19.4 GB of its 20 GB. New uploads will start to fail once the limit is
reached, and shared links to files already in the workspace will keep working. Remove the files you
no longer need, or move them to an archive, to free the space back up.
Fourteen of the 320 rows could not be imported because their Email column was empty or held a
value the address parser did not recognize. Every other row was imported and is already visible in
the contacts list. Download the report to see which rows were left out, fix them in place, and run
the import again - the rows that went through the first time are skipped rather than duplicated.
```
\n**Truncate**:
```razor
In the beginning, there is silence-a blank canvas yearning to be filled, a quiet space where creativity waits
to awaken. These words are temporary, standing in place of ideas yet to come, a glimpse into the infinite
possibilities that lie ahead. Think of this text as a bridge, connecting the empty spaces of now with the
vibrant narratives of tomorrow. It whispers of the stories waiting to be told, of the thoughts yet to be
shaped into meaning, and the emotions ready to resonate with every reader.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
Driven by its methods rather than by a binding. In the beginning, there is silence-a blank canvas
yearning to be filled, a quiet space where creativity waits to awaken. These words are temporary,
standing in place of ideas yet to come, a glimpse into the infinite possibilities that lie ahead.
Expand
Collapse
Toggle
```
```csharp
private bool isTruncateExpanded;
private BitMessage? truncatedMessage;
```
\n**Dismiss**:
```razor
Self-dismissing message: Dismissible needs no handler to disappear.
@if (isSelfDismissed)
{
Dismissed, click to bring it back
}
@if (isDismissed is false)
{
Dismiss option enabled by adding OnDismiss parameter.
}
else
{
Dismissed, click to reset
}
@if (isEscapeDismissed is false)
{
Focus me (or the dismiss button) and press Escape to dismiss.
}
else
{
Dismissed by Escape, click to reset
}
Guarded by OnDismissing: the first attempt is refused, the second one goes through.
Attempts so far: @dismissAttempts@(lastDismissReason is null ? "" : $" (last reason: {lastDismissReason})").
@if (isGuardedDismissed)
{
Dismissed, click to reset
}
Dismissed from the outside by DismissAsync, which goes through
OnDismissing and stops the countdown just as the button does.
@if (isMethodDismissed)
{
Dismissed, click to bring it back
}
else
{
Dismiss the message above
}
```
```csharp
private bool isDismissed;
private bool isSelfDismissed;
private bool isEscapeDismissed;
private bool isMethodDismissed;
private BitMessage? dismissableMessage;
private int dismissAttempts;
private bool isGuardedDismissed;
private BitMessageDismissReason? lastDismissReason;
private void HandleDismissing(BitMessageDismissArgs args)
{
dismissAttempts++;
lastDismissReason = args.Reason;
// The first attempt is refused; the next one goes through.
args.Cancel = dismissAttempts < 2;
}
private void ResetGuardedMessage()
{
dismissAttempts = 0;
lastDismissReason = null;
isGuardedDismissed = false;
}
```
\n**Auto-dismiss**:
```razor
@if (isAutoDismissed is false)
{
Auto-Dismiss option enabled by adding the AutoDismissTime parameter alongside OnDismiss.
Hover me to hold the countdown.
}
else
{
Auto-Dismissed, click to reset
}
Ten seconds, drawn along the bottom edge. Hover me and the bar stops with the countdown.
@if (isProgressDismissed)
{
Auto-Dismissed, click to restart
}
Fifteen seconds, and no dismiss button: a message bound through Dismissed alone
counts down all the same. Hold it from outside with the buttons below.
@if (isPausedDismissed)
{
Auto-Dismissed, click to restart
}
else
{
Pause
Resume
}
```
```csharp
private bool isAutoDismissed;
private bool isProgressDismissed;
private bool isPausedDismissed;
private BitMessage? pausableMessage;
```
\n**Actions**:
```razor
A draft of this page was recovered from your last session.
Restore
The last three changes could not be saved because the server could not be reached. They are
kept on this device and will be sent as soon as the connection is back.
Retry now
Work offline
Message with single line and icon-only action buttons.
```
\n**HideIcon**:
```razor
Icon hidden
```
\n**Icons**:
```razor
Message with a custom icon.
Message with a custom dismiss icon.
Message with a spinner in place of its icon, through IconTemplate.
In the beginning, there is silence-a blank canvas yearning to be filled, a quiet space where creativity waits
to awaken. These words are temporary, standing in place of ideas yet to come, a glimpse into the infinite
possibilities that lie ahead. Think of this text as a bridge, connecting the empty spaces of now with the
vibrant narratives of tomorrow. It whispers of the stories waiting to be told, of the thoughts yet to be
shaped into meaning, and the emotions ready to resonate with every reader.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
```
\n**Square**:
```razor
```
\n**Advanced**:
```razor
@if (isWarningDismissed is false)
{
In the beginning, there is silence-a blank canvas yearning to be filled, a quiet space where creativity waits
to awaken. These words are temporary, standing in place of ideas yet to come, a glimpse into the infinite
possibilities that lie ahead. Think of this text as a bridge, connecting the empty spaces of now with the
vibrant narratives of tomorrow. It whispers of the stories waiting to be told, of the thoughts yet to be
shaped into meaning, and the emotions ready to resonate with every reader.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
Retry
Details
}
else
{
Dismissed, click to reset
}
@if (isErrorDismissed is false)
{
In the beginning, there is silence-a blank canvas yearning to be filled, a quiet space where creativity waits
to awaken. These words are temporary, standing in place of ideas yet to come, a glimpse into the infinite
possibilities that lie ahead. Think of this text as a bridge, connecting the empty spaces of now with the
vibrant narratives of tomorrow. It whispers of the stories waiting to be told, of the thoughts yet to be
shaped into meaning, and the emotions ready to resonate with every reader.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
Yes
No
}
else
{
Dismissed, click to reset
}
```
```csharp
private bool isErrorDismissed;
private bool isWarningDismissed;
```
\n**Announcement**:
```razor
The payment could not be authorized. Announced as "Error: The payment could not be authorized."
An error-colored message that reports no error, announced politely as a status.
Part of the page rather than news about it: not announced at all.
An error worth reporting but not worth interrupting for: still an alert, announced politely.
A success the reader has to hear about at once: still a status, announced assertively.
Show a delayed-announcement message
Announced reliably: the live region reached the page one render before this text landed in it.
```
```csharp
private bool isDelayedDismissed = true;
```
\n**Focus**:
```razor
Show an auto-focused message
This message took the focus when it appeared. Press Tab to reach its dismiss button.
A message with a TabIndex can be focused on demand.
Focus the message above
```
```csharp
private BitMessage? focusableMessage;
private bool isAutoFocusDismissed = true;
```
\n**Disabled**:
```razor
Your licence runs out in 14 days. Renew it before then to keep the shared workspaces open to
everyone who is using them today.
@if (isDisabledSampleDismissed)
{
Dismissed, click to bring it back
}
```
```csharp
private bool isMessageEnabled = true;
private bool isDisabledSampleDismissed;
```
\n**Color**:
```razor
Primary.
Secondary.
Tertiary.
Info (default).
Success.
Warning.
SevereWarning.
Error.
PrimaryBackground.
SecondaryBackground.
TertiaryBackground.
PrimaryForeground.
SecondaryForeground.
TertiaryForeground.
PrimaryBorder.
SecondaryBorder.
TertiaryBorder.
```
\n**External Icons**:
```razor
FontAwesome message
FontAwesome success
FontAwesome dismiss icon
Bootstrap message
Bootstrap success
In the beginning, there is silence-a blank canvas yearning to be filled, a quiet space where creativity waits
to awaken. These words are temporary, standing in place of ideas yet to come, a glimpse into the infinite
possibilities that lie ahead. Think of this text as a bridge, connecting the empty spaces of now with the
vibrant narratives of tomorrow. It whispers of the stories waiting to be told, of the thoughts yet to be
shaped into meaning, and the emotions ready to resonate with every reader.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
```
\n**Size**:
```razor
Small
Medium
Large
```
\n**Style & Class**:
```razor
Styled Message.
In the beginning, there is silence-a blank canvas yearning to be filled, a quiet space where creativity waits
to awaken. These words are temporary, standing in place of ideas yet to come, a glimpse into the infinite
possibilities that lie ahead. Think of this text as a bridge, connecting the empty spaces of now with the
vibrant narratives of tomorrow. It whispers of the stories waiting to be told, of the thoughts yet to be
shaped into meaning, and the emotions ready to resonate with every reader.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
Classed Message.
In the beginning, there is silence-a blank canvas yearning to be filled, a quiet space where creativity waits
to awaken. These words are temporary, standing in place of ideas yet to come, a glimpse into the infinite
possibilities that lie ahead. Think of this text as a bridge, connecting the empty spaces of now with the
vibrant narratives of tomorrow. It whispers of the stories waiting to be told, of the thoughts yet to be
shaped into meaning, and the emotions ready to resonate with every reader.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
Styles.
In the beginning, there is silence-a blank canvas yearning to be filled, a quiet space where creativity waits
to awaken. These words are temporary, standing in place of ideas yet to come, a glimpse into the infinite
possibilities that lie ahead. Think of this text as a bridge, connecting the empty spaces of now with the
vibrant narratives of tomorrow. It whispers of the stories waiting to be told, of the thoughts yet to be
shaped into meaning, and the emotions ready to resonate with every reader.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
Ok
Cancel
Classes.
In the beginning, there is silence-a blank canvas yearning to be filled, a quiet space where creativity waits
to awaken. These words are temporary, standing in place of ideas yet to come, a glimpse into the infinite
possibilities that lie ahead. Think of this text as a bridge, connecting the empty spaces of now with the
vibrant narratives of tomorrow. It whispers of the stories waiting to be told, of the thoughts yet to be
shaped into meaning, and the emotions ready to resonate with every reader.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
```
\n**RTL**:
```razor
پیام خبری (پیش فرض). به وبسایت ما سر بزنید.
پیام موفق. به وبسایت ما سر بزنید.
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است.
چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است
و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد.
کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد تا با نرم افزارها
شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد.
به وبسایت ما سر بزنید.
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد. کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد.
پیام هشدار شدید. به وبسایت ما سر بزنید.
پیام خطا. به وبسایت ما سر بزنید.
```
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new, an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
In this space, potential reigns supreme. It is a moment suspended in time, where imagination dances freely and each word has the power to transform into something extraordinary. Here lies the start of something new-an opportunity to craft, inspire, and create. Whether it's a tale of adventure, a reflection of truth, or an idea that sparks change, these lines are yours to fill, to shape, and to make uniquely yours. The journey begins here, in this quiet moment where everything is possible.
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد. کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد.