Component

BOBInputTextArea

Multi-line text input with auto-resize, character limits, and the full InputText API surface.

API reference ↗

Basic usage

Keep it short.
RAZOR
<BOBInputTextArea @bind-Value="_basic" Label="Description" HelperText="Keep it short." />

Variants

RAZOR
<BOBInputTextArea @bind-Value="_outlined" Variant="BOBInputVariant.Outlined" Label="Outlined" />
<BOBInputTextArea @bind-Value="_filled" Variant="BOBInputVariant.Filled" Label="Filled" />
<BOBInputTextArea @bind-Value="_standard" Variant="BOBInputVariant.Standard" Label="Standard" />

Sizes

RAZOR
<BOBInputTextArea @bind-Value="_small" Size="BOBSize.Small" Label="Small" />
<BOBInputTextArea @bind-Value="_medium" Size="BOBSize.Medium" Label="Medium (Default)" />
<BOBInputTextArea @bind-Value="_large" Size="BOBSize.Large" Label="Large" />

Color & Background

RAZOR
<BOBInputTextArea @bind-Value="_colorValue" Label="Custom Color & Background" Color="@PaletteColor.Secondary" BackgroundColor="@PaletteColor.SecondaryContrast" />

Auto-resize

Grows with its content — no scrollbar until needed.

RAZOR
<BOBInputTextArea @bind-Value="_auto" Label="Notes" AutoResize="true" Rows="2" />

Rows & max length

0/200
RAZOR
<BOBInputTextArea @bind-Value="_rows" Label="Bio" Rows="5" MaxLength="200" HelperText="@($"{_rows.Length}/200")" />

Resize behavior

RAZOR
<BOBInputTextArea @bind-Value="_resizeNone" Label="No resize" Resize="TextAreaResize.None" />
<BOBInputTextArea @bind-Value="_resizeBoth" Label="Both axes" Resize="TextAreaResize.Both" />

Shadow

RAZOR
<BOBInputTextArea @bind-Value="_shadowValue" Variant="BOBInputVariant.Outlined" Label="Elevation Shadow" Shadow="@BOBShadowPresets.Elevation(2)" />
<BOBInputTextArea @bind-Value="_shadowValue" Variant="BOBInputVariant.Outlined" Label="Custom Shadow" Shadow="@(ShadowStyle.Create(5, 10, 0.14f, color: "purple"))" />

States

Invalid content
RAZOR
<BOBInputTextArea @bind-Value="_required" Label="Required" Required="true" />
<BOBInputTextArea @bind-Value="_readonly" Label="Read-only" ReadOnly="true" />
<BOBInputTextArea @bind-Value="_disabled" Label="Disabled" Disabled="true" />
<BOBInputTextArea @bind-Value="_error" Label="Error" Error="true" HelperText="Invalid content" />

Properties

25 rows.
PropertyTypeDefaultDescription
SizeBOBSizeBOBSize.MediumVisual size of the textarea.
LoadingboolWhen , the textarea shows a loading indicator.
LoadingIndicatorVariantBOBLoadingIndicatorVariantBOBLoadingIndicatorVariant.CircularProgressVariant of the loading indicator shown when is .
DensityBOBDensityBOBDensity.StandardVertical density (gap) of the textarea.
ShadowShadowStyle?Shadow style applied to the textarea container.
BackgroundColorstring?Background color of the textarea. Accepts any valid CSS color value.
Colorstring?Text color of the textarea. Accepts any valid CSS color value.
PrefixTextstring?Text displayed before the textarea value.
PrefixIconIconKey?Material icon name for the Prefix.
PrefixColorstring?Prefix color. Accepts any valid CSS color value.
PrefixBackgroundColorstring?PrefixBackground color. Accepts any valid CSS color value.
SuffixTextstring?Text displayed after the textarea value.
SuffixIconIconKey?Material icon name for the Suffix.
SuffixColorstring?Suffix color. Accepts any valid CSS color value.
SuffixBackgroundColorstring?SuffixBackground color. Accepts any valid CSS color value.
Labelstring?Floating label displayed above the textarea when it has a value or focus.
Placeholderstring?Placeholder text shown when the component is empty.
HelperTextstring?Helper text displayed below the component for additional context.
Rowsint3Number of visible text rows.
MaxLengthint?/// Browser-enforced character cap, emitted as the maxlength HTML attribute. /// UI hint only — a malicious client (devtools, direct fetch, modified WASM) can /// bypass it. Always re-validate on the server before persisting the value. ///
AutoResizeboolWhen , the textarea grows vertically as content is added.
ResizeTextAreaResizeTextAreaResize.VerticalDirection the user is allowed to resize the textarea via the corner grip.
UpdateOnInputboolWhen , the bound value updates on every keystroke instead of on blur.
OnInputEventCallback<string>Raised on every keystroke when is enabled.
OnInputDebounceMsint/// Trailing-edge debounce delay applied to only. When /// greater than 0, the callback fires after this many milliseconds of /// keyboard inactivity, coalescing burst keystrokes into a single invocation. /// 0 disables debouncing (default). is /// unaffected: when enabled, the bound /// still propagates immediately per keystroke. ///