FieldLabel
Description
The FieldLabel component represents the label for a field in a form. This component can also be used to better explain an input field and to guide the user to fill a form.
Installation
yarn add @commercetools-uikit/field-label
npm --save install @commercetools-uikit/field-label
Additionally install the peer dependencies (if not present)
yarn add react
npm --save install react
Usage
import { defineMessage, FormattedMessage } from 'react-intl';
import FlatButton from '@commercetools-uikit/flat-button';
import FieldLabel from '@commercetools-uikit/field-label';
import { WarningIcon } from '@commercetools-uikit/icons';
const messages = defineMessage();
const Example = () => (
<FieldLabel
title={<FormattedMessage {...messages.title} />}
hasRequiredIndicator={true}
onInfoButtonClick={() => {}}
hint={<FormattedMessage {...messages.hint} />}
hintIcon={<WarningIcon />}
description={<FormattedMessage {...messages.description} />}
badge={<FlatButton tone="primary" label="show" />}
htmlFor="sampleInput"
horizontalConstraint={7}
/>
);
export default Example;
Properties
Props | Type | Required | Default | Description |
---|
title | union Possible values:
string , ReactNode | ✅ | | Title of the label |
hint | union Possible values:
string , ReactNode | | | Hint for the label. Provides a supplementary but important information regarding the behaviour of the input (e.g warn about uniqueness of a field, when it can only be set once), whereas description can describe it in more depth. Can also receive a hintIcon. |
description | union Possible values:
string , ReactNode | | | Provides a description for the title. |
onInfoButtonClick | Function See signature. | | | Function called when info button is pressed. Info button will only be visible when this prop is passed. |
tone | union Possible values:
'primary' , 'inverted' | | | Indicates the tone to be applied to the label |
hintIcon | ReactElement | | | Icon to be displayed beside the hint text. Will only get rendered when hint is passed as well. |
badge | ReactNode | | | Badge to be displayed beside the label. Might be used to display additional information about the content of the field (E.g verified email) |
hasRequiredIndicator | boolean | | | Indicates if the labeled field is required in a form |
htmlFor | string | | | The for HTML attribute, used to reference form elements with the related attribute id or aria-labelledby. |
id | string | | | The id HTML attribute, used to reference non-form elements with the related attribute aria-labelledby. |
horizontalConstraint | union Possible values:
, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 'scale', 'auto' | | 'scale' | Horizontal size limit of the label. |
Signatures
Signature onInfoButtonClick
(
event: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>
) => void
hintIcon
The hintIcon
also accepts a custom color
while defaulting to warning
in the case above. The hintIcon
does not support the size
prop, and will always be rendered in the size medium
.
<FieldLabel
title={<FormattedMessage {...messages.title} />}
hasRequiredIndicator={true}
onInfoButtonClick={() => {}} />}
hint={<FormattedMessage {...messages.hint} />}
- hintIcon={<WarningIcon />}
+ hintIcon={<WarningIcon color="primary" />}
description={<FormattedMessage {...messages.description} />}
badge={<FlatButton tone="primary" label="show" />}
htmlFor="sampleInput"
horizontalConstraint={7}
/>
hint
vs description
Most fields will only use the description
which provides more information about what the entered value will be used for.
The hint
however is used to show additional information about the value the user enters. It can show the allowed characters. It can also show whether the entered value has errors (like a reference no longer existing in an attribute) when the form is loaded for the first time.
Neither of them should be used for form validation.
Dos and don'ts
Recommended to be used in vertical forms. (E.g input field below the label, and not besides).