RetailysUI

Form Components

Input fields, selects, checkboxes, toggles, sliders, and more — everything needed to build accessible, interactive forms.

Input

Single-line text fields with optional icons, hints, validation, and tooltips.

Basic Inputs

With Hint & Validation

Public display name.
Invalid email address.

With Tooltip

Sizes

Disabled

PropTypeDefaultDescription
labelstring-Label displayed above the input field.
placeholderstring-Placeholder text shown when the input is empty.
iconFC-Leading icon component rendered inside the input.
hintReactNode-Helper or validation text displayed below the input.
tooltipstring-Tooltip text shown next to the label on hover.
size"sm" | "md""sm"Controls the height and text size of the input.
isInvalidbooleanfalseDisplays the input in an error state with red border.
isDisabledbooleanfalseDisables the input and prevents interaction.
typestring"text"HTML input type attribute (text, password, email, number, etc.).
shortcutstring | boolean-Keyboard shortcut indicator shown inside the input.

TextArea

Multi-line text input for longer-form content.

Examples

Max 500 characters
PropTypeDefaultDescription
labelstring-Label displayed above the textarea.
placeholderstring-Placeholder text shown when the textarea is empty.
hintReactNode-Helper text displayed below the textarea.
tooltipstring-Tooltip text shown next to the label.
rowsnumber-Number of visible text lines.
colsnumber-Visible width of the textarea in average character widths.
hideRequiredIndicatorbooleanfalseHides the required asterisk even when field is required.

Select

Dropdown select built on React Aria with keyboard navigation and search.

Example

Country
PropTypeDefaultDescription
labelstring-Label displayed above the select.
placeholderstring-Placeholder text when no option is selected.
items*SelectItemType[]-Array of selectable items with id and label.
size"sm" | "md""sm"Controls the height and text size of the select.
hintReactNode-Helper text displayed below the select.
tooltipstring-Tooltip text shown next to the label.
children*(item) => ReactNode-Render function for each select item. Required.

MultiSelect

Tag-based multi-select with typeahead filtering.

Example

React

Vue

PropTypeDefaultDescription
labelstring-Label displayed above the multi-select.
selectedItems*useListData-List data instance managing selected items (from react-stately useListData).
items*SelectItemType[]-Array of all available selectable items.
onItemInserted(key: Key) => void-Callback when an item is selected / added.
onItemCleared(key: Key) => void-Callback when a selected item tag is removed.
children*(item) => ReactNode-Render function for each dropdown item.

ComboBox

Searchable dropdown with typeahead filtering and supporting text.

Example

PropTypeDefaultDescription
labelstring-Label displayed above the combobox.
placeholderstring-Placeholder text in the search input.
items*ComboBoxItemType[]-Array of items with optional supportingText.
children*(item) => ReactNode-Render function for each dropdown item.

NativeSelect

Browser-native select element for maximum compatibility.

Example

InputGroup

Inputs with leading/trailing addons or a shared-box prefix.

With Prefix

https://

With Addons

$
USD

PaymentInput

Specialized input for credit card numbers with automatic formatting and card brand detection.

Example

Checkbox

Accessible checkbox built on React Aria with label and hint text.

Basic

With Hint

PropTypeDefaultDescription
labelstring-Label text displayed next to the checkbox.
hintstring-Helper text displayed below the label.
size"sm" | "md""sm"Controls the size of the checkbox icon.
isDisabledbooleanfalseDisables the checkbox.
defaultSelectedboolean-Whether the checkbox is initially checked (uncontrolled).

Radio Buttons

Radio group for single-choice selection with label and hint per option.

Example

Toggle

Switch control built on React Aria with optional slim variant.

Basic

Slim

PropTypeDefaultDescription
labelstring-Label text displayed next to the toggle.
hintstring-Helper text displayed below the label.
size"sm" | "md""sm"Controls the size of the toggle switch.
slimbooleanfalseRenders a compact, slim variant of the toggle.
isDisabledbooleanfalseDisables the toggle.
defaultSelectedboolean-Initial checked state (uncontrolled).
isSelectedboolean-Controlled checked state.
onChange(isSelected: boolean) => void-Callback fired when the toggle state changes.

ThemeToggle

Light / dark / system theme toggle with segmented button and switch variants.

Sizes

Switch Variant

With Label

Slider

Range slider with configurable label position and value formatting.

Controlled

50%

Floating Label

30%
PropTypeDefaultDescription
valuenumber[]-Controlled slider value.
defaultValuenumber[]-Initial value (uncontrolled).
onChange(value: number | number[]) => void-Callback fired on value change. Receives number or number[].
minValuenumber0Minimum allowed value.
maxValuenumber100Maximum allowed value.
labelPosition"default" | "bottom" | "top-floating""default"Position of the value label relative to the thumb.
labelFormatter(value: number) => string-Custom formatter for the displayed value label.

DatePicker

Calendar-based date selection with single date and date range variants.

Single Date

Date Range

PinInput

One-time-code and verification PIN input with auto-advance.

Basic

0
0
0
0

4-digit code sent to your email

With Separator

0
0
0
0
0
0

FileUpload

Drop zone, file trigger, and progress list items for file uploads.

Drop Zone

or drag and drop

SVG, PNG, JPG or GIF (max. 800x400px)

File Trigger

File List Items

  • design-mockup.fig

    1 MB


    Complete

    100%
  • presentation.pdf

    4 MB


    Uploading...

    65%
  • failed-upload.png

    1000 KB


    Failed