Configuration
Perfect Autocomplete is configured via HTML attributes. All attributes use kebab-case.
Connection
for
Type: string
The ID of the input element to connect to.
<input id="search" type="search" />
<perfect-autocomplete for="search"></perfect-autocomplete>Data Fetching
url
Type: string
The API endpoint URL for fetching suggestions.
<perfect-autocomplete url="/api/search"></perfect-autocomplete>query-param
Type: stringDefault: "q"
The query parameter name for the search term.
<!-- Results in: /api/search?term=hello -->
<perfect-autocomplete url="/api/search" query-param="term"></perfect-autocomplete>min-chars
Type: numberDefault: 2
Minimum characters before triggering a search.
<perfect-autocomplete min-chars="3"></perfect-autocomplete>debounce
Type: numberDefault: 300
Debounce delay in milliseconds.
<perfect-autocomplete debounce="500"></perfect-autocomplete>Behavior
max-items
Type: numberDefault: 10
Maximum number of items to display.
<perfect-autocomplete max-items="5"></perfect-autocomplete>close-on-select
Type: booleanDefault: true
Whether to close the dropdown after selection.
<perfect-autocomplete close-on-select="false"></perfect-autocomplete>highlight-first
Type: booleanDefault: true
Whether to auto-highlight the first item.
<perfect-autocomplete highlight-first="false"></perfect-autocomplete>Positioning
placement
Type: stringDefault: "bottom-start"
Dropdown placement relative to the input.
Options:
bottom|bottom-start|bottom-endtop|top-start|top-endleft|left-start|left-endright|right-start|right-end
<perfect-autocomplete placement="top-start"></perfect-autocomplete>offset
Type: numberDefault: 4
Distance from the input element in pixels.
<perfect-autocomplete offset="8"></perfect-autocomplete>flip
Type: booleanDefault: true
Whether to flip placement when near viewport edges.
<perfect-autocomplete flip="false"></perfect-autocomplete>shift
Type: booleanDefault: true
Whether to shift position to stay in viewport.
<perfect-autocomplete shift="false"></perfect-autocomplete>Complete Example
<input type="search" id="user-search" placeholder="Search users..." />
<perfect-autocomplete
for="user-search"
url="/api/users"
query-param="name"
min-chars="1"
debounce="250"
max-items="8"
placement="bottom-start"
offset="4"
close-on-select
highlight-first
flip
shift
></perfect-autocomplete>