Inputs
SearchBox
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
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
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.
Variants
Icon
Search Button
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
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
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.
Input Behavior
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.
Binding
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.
Events
Type, click, tab away and press escape in the field below to watch the event log fill up.
Suggestion (AutoComplete)
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.
Suggest Callout
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.
Keyboard & Screen Readers
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.
Programmatic Control
ElementReference.
Validation
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
Color
External Icons
Size
Style & Class
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.
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. |
| 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.