Skip to Content
✨ QuickCode UI keeps growing! More components, more features, and more ways to make your projects shine. Stay tuned & maybe… hire me or sponsor me 😉 
DocumentationFilter

Filter

A comprehensive filtering system with 17 different input types. Built with compound component pattern for maximum flexibility and composability.

Install Dependencies

npx
quickcode-ui add Filter

Example

Complete Filter with All Components

Product Filters

All filter types in one place

Price Filters
Description
Stock Status
Categories
Sort By
Shipping Options

Show only items with free shipping

Brand
Tags
Keywords
You can add 10 more items.
Discount
0%
Price Range
$0 - $5000
Release Date
Promotion Period

Props

Filter

PropTypeDefaultDescription
onClear() => voidundefinedCallback when clear filters button is clicked
onApply() => voidundefinedCallback when apply filters button is clicked
classNamestringundefinedAdditional CSS classes
childrenReact.ReactNodeFilter components to render

Filter.Header

PropTypeDefaultDescription
titlestring"Filters"Header title text
descriptionstringundefinedOptional description below title
showCountbooleantrueShow active filter count badge
classNamestringundefinedAdditional CSS classes

Filter.Search

PropTypeDefaultDescription
valuestringundefinedControlled search value
onChange(value: string) => voidundefinedSearch change handler
placeholderstring"Search..."Input placeholder text
classNamestringundefinedAdditional CSS classes

Filter.Group

PropTypeDefaultDescription
titlestringundefinedGroup title
collapsiblebooleanfalseEnable collapse/expand functionality
defaultCollapsedbooleanfalseInitial collapsed state
classNamestringundefinedAdditional CSS classes
childrenReact.ReactNodeGroup content

Filter.Input

PropTypeDefaultDescription
valuestringundefinedInput value
onChange(value: string) => voidundefinedChange handler
placeholderstringundefinedPlaceholder text
labelstringundefinedInput label
typestring"text"Input type
classNamestringundefinedAdditional CSS classes

Filter.Textarea

PropTypeDefaultDescription
valuestringundefinedTextarea value
onChange(value: string) => voidundefinedChange handler
placeholderstringundefinedPlaceholder text
labelstringundefinedTextarea label
rowsnumber3Number of rows
classNamestringundefinedAdditional CSS classes

Filter.Checkbox

PropTypeDefaultDescription
checkedbooleanundefinedCheckbox checked state
onChange(checked: boolean) => voidundefinedChange handler
labelstringundefinedCheckbox label
idstringUnique identifier
classNamestringundefinedAdditional CSS classes

Filter.CheckboxGroup

PropTypeDefaultDescription
valuestring[]undefinedSelected checkbox values
onValueChange(value: string[]) => voidundefinedChange handler
labelstringundefinedGroup label
classNamestringundefinedAdditional CSS classes
childrenReact.ReactNodeCheckboxGroup.Item components

Filter.RadioGroup

PropTypeDefaultDescription
valuestringundefinedSelected radio value
onValueChange(value: string) => voidundefinedChange handler
labelstringundefinedGroup label
classNamestringundefinedAdditional CSS classes
childrenReact.ReactNodeRadioGroupItem components

Filter.Switch

PropTypeDefaultDescription
checkedbooleanundefinedSwitch checked state
onCheckedChange(checked: boolean) => voidundefinedChange handler
labelstringundefinedSwitch label
descriptionstringundefinedHelper text
idstringUnique identifier
classNamestringundefinedAdditional CSS classes

Filter.Select

PropTypeDefaultDescription
valuestringundefinedSelected value
onValueChange(value: string) => voidundefinedChange handler
placeholderstring"Select option"Placeholder text
labelstringundefinedInput label
classNamestringundefinedAdditional CSS classes
childrenReact.ReactNodeSelectItem components

Filter.MultiSelect

PropTypeDefaultDescription
valuesstring[]undefinedSelected values
onValuesChange(values: string[]) => voidundefinedChange handler
placeholderstring"Select options"Placeholder text
labelstringundefinedInput label
classNamestringundefinedAdditional CSS classes
childrenReact.ReactNodeMultiSelectItem components

Filter.MultiInput

PropTypeDefaultDescription
valuestring[]undefinedInput values
onChange(values: string[]) => voidundefinedChange handler
labelstringundefinedInput label
placeholderstringundefinedPlaceholder text
maxnumberundefinedMaximum number of items
classNamestringundefinedAdditional CSS classes

Filter.Slider

PropTypeDefaultDescription
valuenumberundefinedSlider value
onChange(value: number) => voidundefinedChange handler
minnumber0Minimum value
maxnumber100Maximum value
stepnumber1Step increment
labelstringundefinedSlider label
showValuebooleantrueDisplay current value
formatValue(value: number) => string(v) => v.toString()Format value display
classNamestringundefinedAdditional CSS classes

Filter.Range

PropTypeDefaultDescription
value[number, number]undefinedRange values [min, max]
onChange(value: [number, number]) => voidundefinedChange handler
minnumber0Minimum value
maxnumber100Maximum value
stepnumber1Step increment
labelstringundefinedRange label
showValuesbooleantrueDisplay current values
formatValue(value: number) => string(v) => v.toString()Format value display
classNamestringundefinedAdditional CSS classes

Filter.Date

PropTypeDefaultDescription
valueDate | nullundefinedSelected date
onChange(date: Date | null) => voidundefinedChange handler
labelstringundefinedInput label
placeholderstring"Select date"Placeholder text
includeTimebooleanfalseInclude time picker
classNamestringundefinedAdditional CSS classes

Filter.DateRange

PropTypeDefaultDescription
valueDateRangeundefinedSelected date range
onChange(range: DateRange) => voidundefinedChange handler
labelstringundefinedInput label
placeholderstring"Select date range"Placeholder text
classNamestringundefinedAdditional CSS classes

Filter.Actions

PropTypeDefaultDescription
showClearbooleantrueShow clear button
showApplybooleantrueShow apply button
clearLabelstring"Clear Filters"Clear button text
applyLabelstring"Apply Filters"Apply button text
classNamestringundefinedAdditional CSS classes
showCountOnClearbooleanfalseShow active filter count badge on clear button
showCountOnApplybooleanfalseShow active filter count badge on apply button

Filter.Separator

Renders a horizontal separator line. Accepts all standard div props including className.

Last updated on