Skip to content

Inputs

SearchBox

Bit.BlazorUI

A search box (SearchBox) provides an input field for searching content within a site or app to find specific items. On top of a plain text input it adds a search icon, a clear button, an optional search button, and an optional suggest (auto-complete) callout backed either by an in-memory list or by an async, cancellable items provider. The input follows the WAI-ARIA combobox pattern: it exposes the suggest list to screen readers, announces the outcome of every search through its own live region, and supports full keyboard navigation with the arrow keys, Page Up/Page Down, Home/End, Enter and Escape.

Usage

Every example is live. Open its code to see exactly what produced the component running underneath.

Basic

The simplest usage only needs a Placeholder. The search icon is rendered by default and animates away as soon as the input is focused, and a clear button shows up as soon as the input has a value.

ReadOnly keeps the value visible and selectable but blocks editing, clearing and picking suggestions, while Disabled renders the disabled state which additionally takes the whole component out of the tab order. Required renders the required html attribute on the input element.




Label & Description

A Label renders a real html label element tied to the input, so clicking it focuses the search box and screen readers announce it as the accessible name of the field. Prefer it over a placeholder-only design: the placeholder disappears as soon as the user starts typing. LabelTemplate takes custom markup instead.

Description (or DescriptionTemplate) renders a hint under the field and points the input at it through aria-describedby, so it is read after the label rather than being decoration only a sighted user benefits from. AriaDescription is referenced the same way but is visually hidden, for what only a screen reader user needs to be told.



Searches component names, parameters and guides.

Order number, customer name or email.
Results update as you type. Use the up and down arrow keys to review them.

Variants

Three parameters decide how the box around the field is painted. Underlined drops it and keeps only a bottom border, which lets the search box blend into a dense toolbar or a header; the focus indicator becomes an underline ring with it. NoBorder removes every border but keeps that indicator, so the field stays identifiable for keyboard users. Background switches the surface between the primary, secondary and tertiary tokens of the theme, or makes it Transparent so the field inherits whatever is painted behind it. NoBorder over a colored Background is what builds the filled, borderless field.








Icon

By default the leading icon collapses with an animation when the field is focused or hovered while it holds a value, to give the text more room. FixedIcon keeps it permanently visible, DisableAnimation keeps the collapsing behavior but removes the transition, IconName (or Icon for external icon libraries) replaces the magnifier, and HideIcon removes it altogether.




Search Button

ShowSearchButton appends an explicit submit affordance to the field, which is the recommended pattern for a site-wide search where the user may not know that pressing enter runs the search. Clicking it closes the suggest callout and invokes OnSearch with the current value, exactly like pressing enter does.

Its glyph is customizable through SearchButtonIconName, SearchButtonIcon or a full SearchButtonTemplate, and its accessible name through SearchButtonAriaLabel. SearchButtonText puts a visible label next to the glyph and widens the button to fit it, which is the clearer affordance where the search is the point of the page; the label then names the button itself, so no aria-label is rendered on top of it.

Loading shows a spinner where the clear button sits and marks the input busy while the search the app itself started is still running. It is not the callout's own progress, which an async SuggestItemsProvider drives through LoadingText - the two can be on at the same time.











Clear Button

The clear button appears as soon as the field holds any text and is hidden in the read-only state. It reacts to what is actually typed rather than to the bound value, so it shows up on the first keystroke even without Immediate, when the model is only updated on blur. Clicking it empties the value, returns focus to the input and invokes OnClear. It is kept out of the tab order on purpose, because the escape key already clears the field for keyboard users.

Use HideClearButton to remove it, ClearButtonIconName / ClearButtonIcon / ClearButtonTemplate to restyle it, ClearButtonAriaLabel to localize its accessible name, and NoClearOnEscape to keep the value when escape is pressed.




Prefix & Suffix

A Prefix and a Suffix render static adornments inside the field, before and after the input. They are purely decorative: their text is never part of the bound value, so a search box with a https:// prefix still returns only what the user typed.

For anything richer than text, PrefixTemplate and SuffixTemplate take arbitrary markup and replace the plain-text variants entirely.

https://

.com

https://
.com

Input Behavior

MaxLength caps the number of characters the browser accepts, and Trim strips the leading and trailing white-spaces while parsing the typed text so the bound value never carries stray spaces.

Three attributes tune the on-screen keyboard of a touch device: InputMode picks which virtual keyboard to bring up (BitInputMode.Search shows the layout optimized for search terms), EnterKeyHint picks the label of its return key and already defaults to BitEnterKeyHint.Search here because pressing enter always runs a search, and SpellCheck turns the red squiggles on or off, AutoCorrect="false" stops a mobile browser from rewriting a term its dictionary does not know, and AutoCapitalize="none" keeps the virtual keyboard from capitalizing it - the three usually belong together in a search field, whose terms are rarely dictionary words.

SelectTextOnFocus selects whatever is already in the field every time it takes the focus, so that typing replaces the previous term instead of appending to it - the behavior a search box the user keeps coming back to needs.

FullWidth stretches the search box to fill the width of its container, which is required when the component sits inside a flex layout that would otherwise shrink it to its content.


Value: []



Value: []






Binding

By default the value is committed on the change event (that is, when the input loses focus). Adding Immediate switches the binding to the input event so the value updates on every keystroke, and DebounceTime / ThrottleTime keep that from firing too often.

OnChange is raised whenever the value changes, while OnSearch is raised only when the user actually asks for a search: pressing enter, clicking the search button, or picking a suggest item. Use DefaultValue instead of Value for the uncontrolled mode where the component owns its own state.

Two-way





Immediate





OnChange


Search Value:



OnSearch (Search by Enter)


Search Value:



DefaultValue (uncontrolled)


Search Value:

Events

Besides OnChange and OnSearch, the search box surfaces the full set of input events: OnFocusIn, OnFocus, OnFocusOut, OnClick, OnKeyDown, OnKeyUp, OnEscape (raised on every escape key press, whether it closes the callout or clears the value) and OnClear (raised by the clear button, by escape and by the public Clear method).

Type, click, tab away and press escape in the field below to watch the event log fill up.


Suggestion (AutoComplete)

SuggestItems (an in-memory list) or SuggestItemsProvider (an async, cancellable function) turns the search box into a combobox with an auto-complete callout. The suggestions react to the bound value, so searching as the user types needs Immediate.

SuggestFilterFunction replaces the default case-insensitive "contains" matching; SuggestIgnoreDiacritics keeps it but folds the accents away on both sides, so "Jose" finds "José". MinSuggestTriggerChars (3) sets how many characters are needed before searching, MaxSuggestCount (5) caps the rendered suggestions, and DebounceTime keeps the search from running on every keystroke, which is what a remote provider needs. A superseded provider call is cancelled through the CancellationToken of its request, so a slow response can never overwrite a newer one.

Modeless removes the invisible overlay that captures the first outside click, and FixedCalloutWidth pins the callout to the width of the component instead of letting it grow with the longest suggestion.

Picking a suggestion writes it into the field, leaves the caret at its end so the term can be refined right away, and raises OnSuggestItemSelect followed by OnSearch.

SuggestItems


SearchValue:



SuggestFilterFunction (starts-with)




SuggestIgnoreDiacritics (type "jose" or "muller")




MinSuggestTriggerChars, MaxSuggestCount & DebounceTime




SuggestItemsProvider & OnSuggestItemSelect


Selected item:



Modeless & FixedCalloutWidth

Suggest Callout

Everything inside the suggest callout is customizable. HighlightSuggestItems emphasizes the matched part of every suggestion, falling back to each word of a term that does not appear in the item as a whole - what a multi-word term or a server-side match usually produces. SuggestItemTemplate takes over a whole row, and CalloutHeaderTemplate / CalloutFooterTemplate pin content above and below the scrollable list.

Three outcomes otherwise look the same - a callout with nothing in it - so each gets its own message: NoResultsText / NoResultsTemplate for a search that found nothing, SuggestFailedText / SuggestFailedTemplate for one that could not run at all (OnSuggestFailed hands the exception to the log), and MinSuggestTriggerCharsText for a term still shorter than MinSuggestTriggerChars - a composite format receiving how many characters are missing. LoadingText / LoadingTemplate show progress while an async SuggestItemsProvider is running. Each text also replaces the built-in sentence announced to screen readers.

AutoSelectSuggestItem pre-highlights the first suggestion so enter picks it right away. AutoFillSuggestItem completes the typed term with it in place and selects the added part - the inline completion of a browser's address bar: typing on replaces it, backspace removes it, escape puts the typed term back, and the bound value only takes the completion once enter, the search button or tab accepts it. ShowSuggestItemsOnFocus with MinSuggestTriggerChars="0" opens the list on focus, which is how default or recent searches are surfaced.

HighlightSuggestItems




SuggestItemTemplate




NoResultsText




SuggestFailedText (the provider throws)


Logged:



MinSuggestTriggerCharsText (type one character)




LoadingText (async provider)




CalloutHeaderTemplate & CalloutFooterTemplate

Top matches



AutoSelectSuggestItem (press enter right away)




AutoFillSuggestItem (type "ap")




ShowSuggestItemsOnFocus (recent searches)

Keyboard & Screen Readers

The search box implements the WAI-ARIA combobox pattern, so the whole suggest list is reachable without a mouse: down / up move the highlight (wrapping at both ends), alt + down opens the list and alt + up closes it, page down / page up jump five items and stop at the edges, home / end jump to the first and the last suggestion, enter accepts the highlighted one, tab and escape dismiss the list, and a second escape clears the field. While the list is open these keys no longer move the caret, scroll the page or submit the surrounding form - and while an input method editor is composing (Chinese, Japanese, Korean) none of them reach the list at all, so enter commits the composition and the arrows walk the candidate window. NoWrapNavigation stops the wrapping, which in a long list reads more like the highlight having been lost than like a deliberate jump.

FocusShortcut puts the focus into the field from anywhere on the page. It takes the syntax of the aria-keyshortcuts attribute it also renders on the input, so the shortcut is announced rather than left for whoever guessed it, and a space-separated list covers a Windows and a macOS keyboard at once. A combination with no modifier only fires while the focus is outside of a field, so it never steals a character from something being typed elsewhere. Render it in a SuffixTemplate to make it discoverable with the eyes too.

The search box in the header of this page is one: it asks for FocusShortcut="Control+K Meta+K /", so ctrl/cmd + K jumps into it from anywhere and a bare / does the same while you are not typing. It already owns those three, so the two below take Alt combinations instead - a shortcut is a page-wide claim, and two controls claiming the same keys both answer.

A screen reader never sees the list appear, so the component owns a visually hidden live region that reports the outcome of every search: how many suggestions were found, that there were none, or that the term is still shorter than MinSuggestTriggerChars. AnnouncementProvider replaces those built-in English sentences, which is the hook to localize them; returning null keeps the region silent.

FocusShortcut (press alt + K, or alt + S, anywhere on this page)

AltK

AltS



Default announcements




AnnouncementProvider (localized)


Announced:



NoWrapNavigation (the arrows stop at both ends)

Programmatic Control

Capturing the component with @ref gives access to its public API: FocusAsync moves the focus into the input, Clear empties the value and raises OnClear exactly like the clear button does, ShowSuggestItems runs the search for the current value and opens the callout even when the field is not focused, and HideSuggestItems dismisses it again. IsSuggestItemsOpen reads back whether the callout is open, and OnSuggestItemsToggle is raised with true when it opens and false when it closes. InputElement exposes the underlying ElementReference.


The suggest callout is closed.

Validation

Inside an EditForm the search box behaves like any other bit input: it registers itself with the cascading EditContext, reports its changes to it, renders the aria-invalid attribute and an error state when the field is invalid, and works with ValidationMessage. Set NoValidate to opt out of that integration.

Outside a form, ErrorMessage (or ErrorMessageTemplate) reports a rejection the app itself knows about: a server response, or a rule spanning two fields. It marks the field invalid on its own, is referenced by the input through aria-describedby, and is announced by the live region of the component the moment it shows up rather than only on the next focus.




Cascading parameters

BitParams carries a BitSearchBoxParams down to every search box under it, so a toolbar, a filter panel or a whole page sets the shared look and the shared suggest behavior once instead of at every field. What it carries is a default and not an override: a search box that writes a parameter for itself keeps its own value, and only what it left unset is filled in from the cascade. Each parameter is filled in on its own, so a field can take its Size from the cascade and its Underlined from its own markup. What belongs to one field alone - the value, the label, the suggest source, the templates and the callbacks - stays in its own markup.




Color

Offering a range of specialized color variants with Primary being the default, providing visual cues for specific actions or states within your application.





































































Disabled:


















































External Icons

Use icons from external libraries like FontAwesome, Material Icons, and Bootstrap Icons with the Icon, SearchButtonIcon and ClearButtonIcon parameters.


FontAwesome (Icon):







Bootstrap (Icon):







Search button with external icons (ShowSearchButton + SearchButtonIcon):





Clear button with external icons (ClearButtonIcon):


Size

The Size parameter scales the height, the font size and the icons of the search box in one go, so the component can match a compact toolbar or a prominent hero search. Medium is the default when no size is specified.







Style & Class

Style and Class apply to the root element, while Styles and Classes reach every internal part of the component (the label, the wrapper, the input container, the icon, the clear and search buttons, the callout, the suggest items and the highlighted text). The Focused key of both objects is applied to the root only while the input holds the focus, which makes it easy to build custom focus visuals.

For a re-skin that follows every state on its own, set the public CSS variables listed in the API section instead: on :root they re-skin every search box of the app, on Style they re-skin one. The suggest callout is rendered outside the root element, so its own variables are set through the Callout key of Styles.


Component's Style & Class:





Styles & Classes:





Suggest callout parts:




CSS variables:

RTL

Use the BitSearchBox component in right-to-left (RTL).




CSS variables

The public custom properties this component reads off its root, for what no parameter covers.

Every variable is read with a fallback and never declared by the component, so it inherits like any other custom property: set one on :root (or in a [bit-theme] block) to restyle every instance, on any ancestor to restyle the ones inside it, or on the Style of one instance to restyle that one alone. Leave a variable unset and the component falls back to the theme token beside it.

BitSearchBox CSS variables

Name Default value Description
--bit-SearchBox-color $clr-fg-pri Text color of the input, the prefix and the suffix.
--bit-SearchBox-placeholder-color $clr-fg-sec Text color of the placeholder.
--bit-SearchBox-background Per Background kind ($clr-bg-pri by default) Background of the field.
--bit-SearchBox-border-color $clr-brd-pri Border color of the field at rest.
--bit-SearchBox-border-width $shp-border-width Border thickness of the field and of the search button.
--bit-SearchBox-radius $shp-radius-control Corner radius of the field, its buttons and its focus ring.
--bit-SearchBox-height Per Size ($siz-ctrl-md by default) Height of the field, and the width of its square icon and button slots.
--bit-SearchBox-padding spacing(1) Inline padding of the text input.
--bit-SearchBox-font-size Per Size (from the type ramp) Text size of the label, the field, its affixes, the description and the error message.
--bit-SearchBox-icon-size Per Size ($siz-icon-md by default) Glyph size of the leading icon and of the buttons.
--bit-SearchBox-icon-color The Color role's main color Color of the leading icon.
--bit-SearchBox-hover-border-color $clr-brd-pri-hover Border color while the field is hovered.
--bit-SearchBox-hover-icon-color The Color role's hover color Color of the leading icon while the field is hovered.
--bit-SearchBox-focus-color The Color role's focus color Focus ring color of the field, the clear button and the search button.
--bit-SearchBox-disabled-color The Color role's disabled text color Text, icon and affix color when the search box is disabled.
--bit-SearchBox-disabled-background The Color role's disabled color Background and border color when the search box is disabled.
--bit-SearchBox-invalid-color $clr-err Border and icon color of a rejected field, and the color of its error message.
--bit-SearchBox-label-color $clr-fg-pri Color of the label.
--bit-SearchBox-label-font-weight $tg-field-label-font-weight Weight of the label.
--bit-SearchBox-required-color $clr-req Color of the asterisk next to the label of a required field.
--bit-SearchBox-description-color $clr-fg-sec Color of the description under the field.
--bit-SearchBox-affix-color $clr-fg-pri Text color of the prefix and of the suffix.
--bit-SearchBox-affix-background $clr-bg-sec Background of the prefix and of the suffix.
--bit-SearchBox-clear-button-color $clr-fg-sec Glyph color of the clear button.
--bit-SearchBox-clear-button-icon-size Three quarters of --bit-SearchBox-icon-size Glyph size of the clear button, which is drawn smaller than the leading icon.
--bit-SearchBox-clear-button-hover-color $clr-fg-pri-hover Glyph color of the hovered clear button.
--bit-SearchBox-clear-button-active-background $clr-bg-pri-active Background of the pressed clear button.
--bit-SearchBox-clear-button-hover-background $clr-bg-pri-hover Background of the hovered clear button.
--bit-SearchBox-search-button-color The Color role's on-color Glyph color of the search button.
--bit-SearchBox-search-button-background The Color role's main color Background and border color of the search button.
--bit-SearchBox-search-button-hover-background The Color role's hover color Background of the hovered search button.
--bit-SearchBox-search-button-active-background The Color role's active color Background of the pressed search button.
--bit-SearchBox-search-button-width The height of the field, or its content when SearchButtonText is set Width of the search button.
--bit-SearchBox-search-button-padding Per Size ($siz-ctrl-pad-x-md by default) Inline padding of a search button that carries a SearchButtonText.
--bit-SearchBox-search-button-gap spacing(0.5) Room between the glyph and the label of the search button.
--bit-SearchBox-callout-background $clr-bg-pri Background of the suggest callout. Set through the Callout key of Styles.
--bit-SearchBox-callout-radius $shp-radius-popup Corner radius of the callout, on the two corners away from the field. Set through the Callout key of Styles.
--bit-SearchBox-callout-shadow $box-shadow-popup Elevation of the callout. Set through the Callout key of Styles.
--bit-SearchBox-callout-max-height $siz-popup-max-height Tallest the suggest list grows before it scrolls. Set through the Callout key of Styles.
--bit-SearchBox-callout-border-color $clr-brd-pri The hairlines under the callout header and above the callout footer.
--bit-SearchBox-callout-text-color $clr-fg-pri / $clr-fg-sec Color of the callout header and footer, and of the loading, empty and too-short messages.
--bit-SearchBox-callout-failed-color $clr-err Color of the message a failing suggest items provider is reported with.
--bit-SearchBox-spinner-color The Color role's main color Arc color of the loading spinner, in the field and in the callout.
--bit-SearchBox-spinner-size Per Size ($siz-icon-md by default) Diameter of the loading spinner, in the field and in the callout.
--bit-SearchBox-item-color $clr-fg-pri Text color of a suggest item.
--bit-SearchBox-item-min-height Per Size ($siz-item-md by default) Smallest height of a suggest item.
--bit-SearchBox-item-padding spacing(0.5) spacing(1) Padding of a suggest item.
--bit-SearchBox-item-font-size Per Size (from the type ramp) Text size of everything inside the callout.
--bit-SearchBox-item-hover-background $clr-bg-pri-hover Background of a hovered suggest item.
--bit-SearchBox-item-hover-color The item color Text color of a hovered suggest item, which a hover background dark enough to need its own text color has to be paired with.
--bit-SearchBox-item-selected-background $clr-bg-sec Background of the suggest item the arrow keys highlight.
--bit-SearchBox-item-selected-color The item color Text color of the suggest item the arrow keys highlight.
--bit-SearchBox-item-selected-border-color The Color role's focus color Ring drawn inside the suggest item the arrow keys highlight, which is the only thing that says where the keyboard is (the focus itself never leaves the input).
--bit-SearchBox-highlight-color Inherited from the item Text color of the matched part of a suggest item.
--bit-SearchBox-highlight-background transparent Background of the matched part of a suggest item.
--bit-SearchBox-highlight-font-weight $tg-fw-semibold Weight of the matched part of a suggest item.

API

Every parameter, public member, sub-class and enum this component exposes.

BitSearchBox parameters

Name Type Default value Description
AnnouncementProvider Func<BitSearchBoxAnnouncementArgs, string?>? null Builds the text that the screen reader announces through the live region of the search box whenever the suggest items change, in place of the built-in English announcements. Returning null or an empty string announces nothing.
AriaDescription string? null Detailed description of the search box for the benefit of screen readers, rendered into a visually hidden element that the input references through its aria-describedby attribute.
AutoCapitalize string? null Sets the autocapitalize html attribute of the input element, which tells a virtual keyboard whether and how to capitalize what is typed.
AutoCorrect bool? null Sets the autocorrect html attribute of the input element. Turning it off stops a mobile browser from rewriting a search term its dictionary does not know.
AutoFillSuggestItem bool false Completes what is being typed with the first suggest item that starts with it, appending the rest of that item into the field and selecting the appended part. The completion is written into the input element only: the bound value keeps following what the user typed until enter, the search button or tabbing out accepts it, and escape puts the typed term back.
AutoSelectSuggestItem bool false Automatically highlights the first suggest item as soon as the suggest list opens, so pressing enter selects it without pressing the arrow keys first.
Background BitColorKind? null The background color kind of the search box.
CalloutFooterTemplate RenderFragment? null The custom template rendered at the bottom of the suggest items callout.
CalloutHeaderTemplate RenderFragment? null The custom template rendered at the top of the suggest items callout.
Classes BitSearchBoxClassStyles? null Custom CSS classes for different parts of the search box.
ClearButtonAriaLabel string Clear The accessible label (aria-label) of the clear button.
ClearButtonIcon BitIconInfo? null Gets or sets the icon to display on the clear button using custom CSS classes for external icon libraries. Takes precedence over ClearButtonIconName when both are set.
ClearButtonIconName string? Cancel Gets or sets the name of the icon to display on the clear button from the built-in Fluent UI icons.
ClearButtonTemplate RenderFragment? null The custom template for clear button icon.
Color BitColor? null The general color of the search box, used for colored parts like icons.
Description string? null The hint rendered under the field, referenced by the input through its aria-describedby attribute so a screen reader reads it after the label.
DescriptionTemplate RenderFragment? null The custom content of the description under the field, which replaces the plain Description text and is referenced by the input in the same way.
DisableAnimation bool false Whether or not to animate the search box icon on focus.
EnterKeyHint BitEnterKeyHint? BitEnterKeyHint.Search Sets the enterkeyhint html attribute of the input element, which tells virtual keyboards which action label to render on their enter key. It defaults to Search because pressing enter always runs a search here.
ErrorMessage string? null The message shown under the field when the value was rejected. It marks the field invalid on its own, is referenced by the input through its aria-describedby attribute, and is announced by the live region of the component.
ErrorMessageTemplate RenderFragment? null The custom content of the error message, which replaces the plain ErrorMessage text and marks the field invalid in the same way.
FixedCalloutWidth bool false Forces the suggest callout width to be always fixed at the component's width.
FixedIcon bool false Whether or not to make the icon be always visible (it hides by default when the search box is focused).
FocusShortcut string? null The keyboard shortcut that moves the focus into the search box from anywhere on the page, written in the syntax of the aria-keyshortcuts attribute the input is given (e.g. "Control+K Meta+K"). A combination with no modifier only fires while the focus is outside of a field.
FullWidth bool false Expands the search box to fill the available width of its container.
HideClearButton bool false Whether to hide the clear button when the search box has value.
HideIcon bool false Whether or not the icon is visible.
HighlightSuggestItems bool false Highlights the part of each suggest item that matches the current search term.
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.
IconName string? Search Gets or sets the name of the icon to display from the built-in Fluent UI icons.
InputMode BitInputMode? null Sets the inputmode html attribute of the input element.
Label string? null The text of the label of the search box, rendered as a real label element tied to the input.
LabelTemplate RenderFragment? null The custom template for the label of the search box.
Loading bool false Shows a spinner in the trailing slot of the field and marks the input busy, for a search the app itself is running. It is not the progress of the suggest callout, which LoadingText and LoadingTemplate drive.
LoadingAriaLabel string Searching What the live region of the component announces while Loading is on.
LoadingTemplate RenderFragment? null The custom template rendered in place of the default spinner in the suggest callout while the SuggestItemsProvider is resolving the suggest items.
LoadingText string? null The text rendered next to the loading indicator while the SuggestItemsProvider is resolving the suggest items.
MaxLength int -1 Sets the maxlength html attribute of the input element. A negative value means no limit.
MaxSuggestCount int 5 The maximum number of items or suggestions that will be displayed. A value of zero or less means no limit.
MinSuggestTriggerChars int 3 The minimum character requirement for doing a search in suggest items. Setting it to zero also enables searching with an empty search term which is useful for showing default or recent items.
MinSuggestTriggerCharsText string? null The composite format of the hint the callout shows while the typed term is still shorter than MinSuggestTriggerChars, which receives the number of characters that are still missing, for example "Type {0} more characters to search". The hint is never shown while the field is empty, and it replaces the built-in English sentence announced to screen readers as well.
Modeless bool false Removes the overlay of suggest items callout.
NoBorder bool false Removes the default border of the search box.
NoClearOnEscape bool false Prevents clearing the value of the search box when the user presses the escape key.
NoResultsTemplate RenderFragment? null The custom template rendered in the callout when the search finds no suggest item.
NoResultsText string? null The text rendered in the callout when the search finds no suggest item.
NoWrapNavigation bool false Stops the up and down arrows from cycling between the two ends of the suggest list, so that the highlight stops at the first and the last item instead of jumping from one to the other.
OnClear EventCallback Callback executed when the user clears the search box by either clicking 'X' or hitting escape.
OnClick EventCallback<MouseEventArgs> Callback executed when the user clicks on the input of the search box.
OnEscape EventCallback Callback executed when the user presses escape in the search box.
OnFocus EventCallback<FocusEventArgs> Callback executed when the input of the search box gets focused.
OnFocusIn EventCallback<FocusEventArgs> Callback executed when the input of the search box gets focused in.
OnFocusOut EventCallback<FocusEventArgs> Callback executed when the input of the search box loses focus.
OnKeyDown EventCallback<KeyboardEventArgs> Callback executed on each key down of the input of the search box.
OnKeyUp EventCallback<KeyboardEventArgs> Callback executed on each key up of the input of the search box.
OnSearch EventCallback<string?> Callback executed when the user presses enter in the search box, clicks the search button, or picks one of the suggest items.
OnSuggestFailed EventCallback<Exception> Callback executed with the exception a SuggestItemsProvider threw. A cancelled call is not a failure and never raises it.
OnSuggestItemSelect EventCallback<string> Callback executed when the user selects one of the suggest items either by clicking on it or by pressing enter while it is highlighted.
OnSuggestItemsToggle EventCallback<bool> Callback executed with true when the suggest items callout opens and with false when it closes.
Placeholder string? null Placeholder for the search box.
Prefix string? null Prefix text displayed before the search box input. This is not included in the value.
PrefixTemplate RenderFragment? null The custom template for the prefix of the search box.
SearchButtonAriaLabel string Search The accessible label (aria-label) of the search button.
SearchButtonIcon BitIconInfo? null Gets or sets the icon to display on the search button using custom CSS classes for external icon libraries. Takes precedence over SearchButtonIconName when both are set.
SearchButtonIconName string? ChromeBackMirrored Gets or sets the name of the icon to display on the search button from the built-in Fluent UI icons.
SearchButtonTemplate RenderFragment? null The custom template for search button icon.
SearchButtonText string? null The label rendered on the search button next to its icon. The button widens to fit it, and the label names the button for a screen reader, so SearchButtonAriaLabel is no longer rendered while it is set.
SelectTextOnFocus bool false Selects the text already in the search box whenever the input takes the focus, so that typing replaces the previous term instead of appending to it. It does nothing while the field is empty.
ShowSearchButton bool false Whether to show the search button.
ShowSuggestItemsOnFocus bool false Opens the suggest items callout as soon as the input gets focused, without waiting for the user to type. Combine it with a zero MinSuggestTriggerChars to implement default or recent search items.
Size BitSize? null The size of the search box.
SpellCheck bool? null Sets the spellcheck html attribute of the input element. Leaving it null keeps the default behavior of the browser, setting it to false removes the red squiggles from search terms that are not real words.
Styles BitSearchBoxClassStyles? null Custom CSS styles for different parts of the search box.
Suffix string? null Suffix text displayed after the search box input. This is not included in the value.
SuffixTemplate RenderFragment? null The custom template for the suffix of the search box.
SuggestFailedTemplate RenderFragment? null The custom content rendered in the callout when the SuggestItemsProvider throws, which replaces the plain SuggestFailedText.
SuggestFailedText string? null The text rendered in the callout when the SuggestItemsProvider throws, which is what tells a search that could not run apart from one that found nothing. It replaces the built-in sentence announced to screen readers as well.
SuggestFilterFunction Func<string?, string?, bool>? null Custom search function to be used in place of the default search algorithm. The first argument is the current search term and the second one is the suggest item to examine.
SuggestIgnoreDiacritics bool false Matches the search term against the suggest items with the diacritics of both removed, so that "Jose" finds "José" and "Muller" finds "Müller". The item text itself is left untouched, and so is the part of it that HighlightSuggestItems emphasizes. Ignored when a SuggestFilterFunction is provided, but still applied to the highlight.
SuggestItems IEnumerable<string>? null The list of suggest items to display in the callout.
SuggestItemsAriaLabel string Suggestions The accessible label (aria-label) of the suggest items list.
SuggestItemsProvider BitSearchBoxSuggestItemsProvider? null The item provider function providing suggest items.
SuggestItemTemplate RenderFragment<string>? null The custom template for rendering the suggest items of the search box.
Trim bool false Trims the leading and trailing white-spaces of the value of the search box.
Underlined bool false Whether or not the search box is underlined.

BitSearchBox public members

Name Type Default value Description
InputElement ElementReference The ElementReference to the input element of the BitSearchBox.
FocusAsync ValueTask Gives focus to the input element of the BitSearchBox.
IsSuggestItemsOpen bool false Whether the callout of the suggest items is currently open.
Clear Task Clears the value of the BitSearchBox and invokes the OnClear callback.
ShowSuggestItems Task Runs the suggest items search of the current value and opens the callout of the suggest items.
HideSuggestItems Task Closes the callout of the suggest items.

BitTextInputBase parameters

Name Type Default value Description
AutoComplete string? null Specifies the value of the autocomplete attribute of the input component.
AutoFocus bool false Determines if the text input is auto focused on first render.
DebounceTime int 0 The debounce time in milliseconds.
Immediate bool false Change the content of the input field when the user write text (based on 'oninput' HTML event).
ThrottleTime int 0 The throttle time in milliseconds.

BitInputBase parameters

Name Type Default value Description
DefaultValue TValue? null The default value of the input to be used in uncontrolled mode (i.e. when the Value is not bound), typically used alongside the OnChange callback.
DisplayName string? null Gets or sets the display name for this field.
InputHtmlAttributes IReadOnlyDictionary<string, object>? null Gets or sets a collection of additional attributes that will be applied to the created element.
Name string? null Gets or sets the name of the element. Allows access by name from the associated form.
NoValidate bool false Disables the validation of the input.
OnChange EventCallback<TValue?> Callback for when the input value changes.
ReadOnly bool false Makes the input read-only.
Required bool false Makes the input required.
Value TValue? null Gets or sets the value of the input. This should be used with two-way binding.

BitInputBase public members

Name Type Default value Description
InputElement ElementReference The ElementReference of the input element.
FocusAsync() () => ValueTask Gives focus to the input element.
FocusAsync(bool preventScroll) (bool preventScroll) => ValueTask Gives focus to the input element.

BitComponentBase parameters

Name Type Default value Description
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.
Disabled bool false Gets or sets a value indicating whether the component is disabled and cannot respond to user interaction.
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.
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.

BitComponentBase public members

Name Type Default value Description
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.

BitSearchBoxClassStyles properties

Name Type Default value Description
Root string? null Custom CSS classes/styles for the root element of the search box.
Focused string? null Custom CSS classes/styles for the focus state of the search box.
Label string? null Custom CSS classes/styles for the search box's label.
Wrapper string? null Custom CSS classes/styles for the wrapper of the input container and the search button of the search box.
InputContainer string? null Custom CSS classes/styles for the search box's input container.
IconWrapper string? null Custom CSS classes/styles for the search box's icon wrapper.
Icon string? null Custom CSS classes/styles for the search box's search icon.
PrefixContainer string? null Custom CSS classes/styles for the search box's search prefix container.
Prefix string? null Custom CSS classes/styles for the search box's search prefix.
Input string? null Custom CSS classes/styles for the search box's Input.
SuffixContainer string? null Custom CSS classes/styles for the search box's search suffix container.
Suffix string? null Custom CSS classes/styles for the search box's search suffix.
ClearButton string? null Custom CSS classes/styles for the search box's clear button.
ClearButtonIcon string? null Custom CSS classes/styles for the search box's clear button icon.
SearchButton string? null Custom CSS classes/styles for the search box's search button.
SearchButtonIcon string? null Custom CSS classes/styles for the search box's search button icon.
SearchButtonText string? null Custom CSS classes/styles for the search box's search button text.
LoadingSpinner string? null Custom CSS classes/styles for the spinner slot shown in the field while the search box is Loading. The spinner of the suggest callout is Loading instead.
ErrorMessageContainer string? null Custom CSS classes/styles for the container of the search box's error message.
ErrorMessage string? null Custom CSS classes/styles for the search box's error message.
DescriptionContainer string? null Custom CSS classes/styles for the container of the search box's description.
Description string? null Custom CSS classes/styles for the search box's description.
Overlay string? null Custom CSS classes/styles for the search box's overlay.
Callout string? null Custom CSS classes/styles for the search box's callout.
CalloutHeader string? null Custom CSS classes/styles for the header of the search box's callout.
CalloutFooter string? null Custom CSS classes/styles for the footer of the search box's callout.
Loading string? null Custom CSS classes/styles for the loading container of the search box's suggest callout.
NoResults string? null Custom CSS classes/styles for the no-results container of the search box's callout.
SuggestFailed string? null Custom CSS classes/styles for the container the search box's callout reports a failing suggest items provider in.
Hint string? null Custom CSS classes/styles for the too-short-term hint of the search box's callout.
ScrollContainer string? null Custom CSS classes/styles for the search box's scroll container.
SuggestItemWrapper string? null Custom CSS classes/styles for the search box's suggest item wrapper.
SuggestItemButton string? null Custom CSS classes/styles for the search box's suggest item button.
SuggestItemText string? null Custom CSS classes/styles for the search box's suggest item text.
SuggestItemHighlight string? null Custom CSS classes/styles for the highlighted part of the search box's suggest item text.

BitSearchBoxSuggestItemsProviderRequest properties

The context passed to the SuggestItemsProvider delegate on every search.

Name Type Default value Description
SearchTerm string? null The current value of the search box that the suggest items must be resolved for.
Take int 0 The value of the MaxSuggestCount parameter, so the provider can only fetch as many items as will be rendered.
CancellationToken CancellationToken A token that is cancelled as soon as a newer search starts, so an outdated request can be aborted and can never overwrite a newer result.

BitSearchBoxAnnouncementArgs properties

The state of the suggest items at the moment the screen reader announcement is built, passed to the AnnouncementProvider.

Name Type Default value Description
SearchTerm string? null The current value of the search box that the suggest items were resolved for.
SuggestItems IReadOnlyList<string> [] The suggest items that are about to be rendered in the callout.
IsLoading bool false Whether an asynchronous SuggestItemsProvider is still resolving the suggest items.
IsSearchTermTooShort bool false Whether the search term is still shorter than the MinSuggestTriggerChars, so no search was performed at all.
MinSuggestTriggerChars int 3 The value of the MinSuggestTriggerChars parameter.
HasFailed bool false Whether the SuggestItemsProvider threw, so the suggest items are empty because the search could not run rather than because nothing matched.

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.

BitColorKind enum

Name Value Description
Primary 0 The primary color kind.
Secondary 1 The secondary color kind.
Tertiary 2 The tertiary color kind.
Transparent 3 The transparent color kind.

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.

BitSize enum

Name Value Description
Small 0 The small size.
Medium 1 The medium size.
Large 2 The large size.

BitEnterKeyHint enum

Name Value Description
Enter 0 Typically inserting a new line.
Done 1 Typically meaning there is nothing more to input and the input method editor will be closed.
Go 2 Typically meaning to take the user to the target of the text they typed.
Next 3 Typically taking the user to the next field that will accept text.
Previous 4 Typically taking the user to the previous field that will accept text.
Search 5 Typically taking the user to the results of searching for the text they have typed.
Send 6 Typically delivering the text to its target.

BitInputMode enum

Name Value Description
None 0 The input expects text characters.
Text 1 Standard input keyboard for the user's current locale.
Decimal 2 Fractional numeric input keyboard containing the digits and decimal separator for the user's locale.
Numeric 3 Numeric input keyboard, but only requires the digits 0–9.
Tel 4 A telephone keypad input, including the digits 0–9, the asterisk (*), and the pound (#) key
Search 5 A virtual keyboard optimized for search input.
Email 6 A virtual keyboard optimized for entering email addresses.
Url 7 A keypad optimized for entering URLs.

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

Found a mistake, a gap, or something that could be clearer? Every page and every component is one click from its source.