Ariakit
/

FormLabel

Renders a label associated with a form field, even if the field is not a native input.

If the field is a native input, select or textarea element, this component will render a native label element and rely on its htmlFor prop. Otherwise, it'll render a span element and rely on the aria-labelledby attribute on the form field instead. Clicking on the label will move focus to the field even if it's not a native input.

Code examples

const form = useFormStore({
email: "",
},
});
<Form store={form}>
<FormLabel name={form.names.email}>Email</Role>
<FormInput name={form.names.email} />
</Form>

Required Props


name

StringLike

Name of the field labeled by this element. This can either be a string or a reference to a field name from the names object in the store, for type safety.

Code examples

<FormLabel name="email">Email</FormLabel>

Optional Props


getItem

((props: CollectionStoreItem) => CollectionStoreItem) | undefined

A memoized function that returns props to be passed with the item during its registration in the store.

Code examples

const getItem = useCallback((data) => ({ ...data, custom: true }), []);
<CollectionItem getItem={getItem} />

id

string | undefined

The unique ID of the item. This will be used to register the item in the store and for the element's id attribute. If not provided, a unique ID will be automatically generated.

Live examples


render

RenderProp<React.HTMLAttributes<any> & { ref?: React.Ref<any> | undefined; }> | React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined

Allows the component to be rendered as a different HTML element or React component. The value can be a React element or a function that takes in the original component props and gives back a React element with the props merged.

Check out the Composition guide for more details.


shouldRegisterItem

boolean | undefined = true

Whether the item should be registered as part of the collection.


store

FormStore<FormStoreValues> | undefined

Object returned by the useFormStore hook. If not provided, the closest Form or FormProvider components' context will be used.

Stay tuned

Join 1,000+ subscribers and receive monthly tips & updates on new Ariakit content.

No spam. Unsubscribe anytime. Read latest issue