Lead: Shani Laendler (Unlicensed)
Description
Live search (aka "active search ", “incremental search” or “search-as-you-type”) is a search type in which of Search where each character that the user enters or deletes runs the search query. This type of search is usually suitable for small-medium databases.
Live search is also known as Active search, Incremental search or Search-as-you-type.
Usage and
...
Behavior
General Guidelines
Internal Logic
...
The searched string will be highlighted in bold within the textlist of results.
The results are displayed in the results list area according to the existing sort method.
In case Where the items list area is arranged in an a hierarchical tree view :
may either or as a simple list. See 'Best Practices' section for guidelines on selecting the appropriate approach. Example for hierarchical view in the search results:
Image Removed | Image Removed |
If the results are presented in
...
...
sections will be auto-expanded to
...
...
In larger or more complex result setsitems.
Example of a hierarchical view in the results list:
Image Added | Image Added |
Where needed (and possible), consider presenting the number of results in a prominent area. Try adding that in any case when possible: , particularly for larger or more complex results lists.
...
Results Loading Time
The system should mitigate long loading times.
Less than 0.1 secondseconds: no loader is needed.
0.1 - 5 second: loading spinner seconds: use a circular Progress Indicator with the text "Searching <Categories>..."
...
More than 5 seconds: this loading time is too long for “Live Search”. Use Live Search → use Search with Auto-Suggest instead.
(Optional) Delay trigger of initial search until at least 3 characters have been entered to improve performance.
...
Interaction
Step | Visual Example | Description |
---|
Initial state | Image Modified |
Hint Hover over the search field | Image Removed | Boarder colour changes text field Hint Text mark is flickering
Suggestions: presented (optional) |
Enter first letter | Image Modified | |
Searched query all ("x") is presented letter/sletters | Image Modified | |
Click on item in the list | Image Removed | Focus is moved away from the search field |
Clear all | Image Removed | Click on the “x”: (1) clears all characters (2) focus |
Clear all (either manually or clicking the X button) | Image Added | |
"x" disappears when the text is cleared (both manually or using the "x" button)Validations and errors
There are no validations on syntaxthe search string.
No results found
...
The results area will clearly state that no results were found.
The text will say "no No <items> were found" (e.g. no . For example No categories were found, no or No employees were found).
Best Practice
Use when:
- The
the database is small-medium
and size.
the results can be filtered immediately
(, with no need to retrieve the data from the
back-end)The results area backend.
the results list is located below and near the search field.
Don’t use when
...
the query is applied
...
to a complex or
...
large database that will cause a long loading time
...
→ use Search with Auto-Suggest
...
Automatic focus: use auto-focus on the search field to aid the user in conducting a fast search (and reduce clicks). Make sure to use it under these conditions:
...
(coming soon).
General
In case the list is the main component presented in the area or section of the interface (e.g. in a filter panel or in a modal window)
...
,
...
Display results in an hierarchical tree view vs. simple list: the results may be presented in both list types. Select the most appropriate type:
Is the search expected to produce a single or multiple results? (if single than list is probably good enough)
If the search is expected to produce a single result - a flat list may be sufficient
If the search is expected to produce multiple results - tend to select the tree view
If several results may have a similar name and the root may help in differentiating between results - select a tree view
If the root may be searched by itself - select the tree view
Future Version (TBD)
Search on a simple list with multi-select
Search on a tree view with multi-select
Code
Html macro |
---|
|
<link rel="stylesheet" href="https://ux.verint.com/bootstrap-4.0.0/dist/fonts/css/verint_lux.css">
<link rel="stylesheet" href="https://ux.verint.com/bootstrap-4.0.0/dist/css/bootstrap.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://ux.verint.com/bootstrap-4.0.0/dist/js/bootstrap.bundle.js"></script>
<script src="https://ux.verint.com/bootstrap-4.0.0/dist/other/bootstrap-tooltip-custom-class.js"></script>
<script src="https://ux.verint.com/bootstrap-4.0.0/dist/other/accessibility.js"></script>
<script src="https://ux.verint.com/bootstrap-4.0.0/dist/other/prism.min.js"></script>
<link rel="stylesheet" href="https://ux.verint.com/bootstrap-4.0.0/dist/other/prism-coy.min.css">
<script>
$(function () {
$('.form-control[type="search"] + .search-button').click(function()
{
if( $(this).prev().val() ) {
$(this).prev().val('');
}
});
});
$(function () {
$('[data-toggle="tooltip"]').tooltip({trigger: 'hover', delay: { "show": 100, "hide": 0 }});
$('.is-invalid, .is-warning').on('shown.bs.tooltip', function () {
var x = $(this).offset().left + $(this).width();
var y = $(this).offset().top;
$('.bs-tooltip-right').css('transform', 'translate3d('+x+'px, '+y+'px, 0px)');
});
});
</script>
<div class="card">
<div class="card-header">Search Field <button id="toggleMarkup" type="button" class="btn btn-sm btn-outline-primary btn btn-fixed-width float-right m-0" onclick="$('pre' ).toggle()">Toggle Markup</button></div>
<div class="card-body">
<form>
<div class="form-group row">
<label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Regular</label>
<div class="col-lg-4">
<input type="search" class="form-control form-control-sm" placeholder="Search">
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1">
<i class="icon-search"></i>
</button>
</div>
<div class="col-lg-6">
<pre class="language-html"><code><script type="prism-html-markup"><input type="search" class="form-control form-control-sm" placeholder="Search">
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1">
<i class="icon-search"></i>
</button></script></code></pre>
</div>
</div>
<div class="form-group row">
<label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm"></label>
<div class="col-lg-4">
<input type="search" class="form-control form-control-sm" placeholder="Search" value="Filled">
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1">
<i class="icon-search"></i>
</button>
</div>
<div class="col-lg-6">
<pre class="language-html"><code><script type="prism-html-markup"><input type="search" class="form-control form-control-sm" placeholder="Search" value="Filled">
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1">
<i class="icon-search"></i>
</button></script></code></pre>
</div>
</div>
<div class="form-group row">
<label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Disabled</label>
<div class="col-lg-4">
<input type="search" class="form-control form-control-sm" placeholder="Search" disabled>
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1" disabled>
<i class="icon-search"></i>
</button>
</div>
<div class="col-lg-6">
<pre class="language-html"><code><script type="prism-html-markup"><input type="search" class="form-control form-control-sm" placeholder="Search" disabled>
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1" disabled>
<i class="icon-search"></i>
</button></script></code></pre>
</div>
</div>
<div class="form-group row">
<label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm"></label>
<div class="col-lg-4">
<input type="search" class="form-control form-control-sm" placeholder="Search" value="Filled" disabled>
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1" disabled>
<i class="icon-search"></i>
</button>
</div>
<div class="col-lg-6">
<pre class="language-html"><code><script type="prism-html-markup"><input type="search" class="form-control form-control-sm" placeholder="Search" value="Filled" disabled>
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1" disabled>
<i class="icon-search"></i>
</button></script></code></pre>
</div>
</div>
<div class="form-group row">
<label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Error</label>
<div class="col-lg-4">
<input type="search" class="form-control form-control-sm is-invalid" placeholder="Search" data-toggle="tooltip" data-custom-class="input-error" data-placement="right" title="There is an Error on the Search Field">
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1">
<i class="icon-search"></i>
</button>
</div>
<div class="col-lg-6">
<pre class="language-html"><code><script type="prism-html-markup"><input type="search" class="form-control form-control-sm is-invalid" placeholder="Search">
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1">
<i class="icon-search"></i>
</button></script></code></pre>
</div>
</div>
<div class="form-group row">
<label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Error</label>
<div class="col-lg-4">
<input type="search" class="form-control form-control-sm is-invalid" placeholder="Search" value="Filled" data-toggle="tooltip" data-custom-class="input-error" data-placement="right" title="There is an Error on the Search Field">
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1">
<i class="icon-search"></i>
</button>
</div>
<div class="col-lg-6">
<pre class="language-html"><code><script type="prism-html-markup"><input type="search" class="form-control form-control-sm is-invalid" placeholder="Search" value="Filled">
<button class="btn icon-btn icon-btn-light btn-sm search-button" type="button" tabindex="-1">
<i class="icon-search"></i>
</button></script></code></pre>
</div>
</div>
</form>
</div>
</div>the focus will be set to the search field automatically to aid the user in conducting a fast search. Accessibility compliance
Unless otherwise specified, see our general compliance information in Fundamentals - Accessibility.
Design
See Search
Code
See Search