BaseControl is a low-level component used to generate labels and help text for components handling user inputs.
import { BaseControl } from '@wordpress/components';
LinksPermalink to this section
PropsPermalink to this section
| Name | Default | Description |
|---|---|---|
__nextHasNoMarginBottom |
Start opting into the new margin-free styles that will become the default in a future version. | |
id |
The HTML The recommended way is to use the | |
help |
Additional description for the control. Only use for meaningful description or instructions for the control. An element containing the description will be programmatically associated to the BaseControl by the means of an | |
label |
If this property is added, a label will be generated using label property as the content. | |
hideLabelFromVision | false |
If true, the label will only be visible to screen readers. |
className |
| |
children Required |
The content to be displayed within the | |
as |
The HTML element or React component to render the component as. |
ExamplesPermalink to this section
DefaultPermalink to this section
const Default = ( props ) => {
const { baseControlProps, controlProps } = useBaseControlProps( props );
return (
<BaseControl { ...baseControlProps }>
<textarea style={ { display: 'block' } } { ...controlProps } />
</BaseControl>
);
};
With Help TextPermalink to this section
const WithHelpText = ( props ) => {
const { baseControlProps, controlProps } = useBaseControlProps( props );
return (
<BaseControl { ...baseControlProps }>
<textarea style={ { display: 'block' } } { ...controlProps } />
</BaseControl>
);
};
With Visual LabelPermalink to this section
BaseControl.VisualLabel is used to render a purely visual label inside a BaseControl component.
It should only be used in cases where the children being rendered inside BaseControl are already accessibly labeled,
e.g., a button, but we want an additional visual label for that section equivalent to the labels BaseControl would
otherwise use if the label prop was passed.
const WithVisualLabel = ( props ) => {
BaseControl.VisualLabel.displayName = 'BaseControl.VisualLabel';
return (
<BaseControl { ...props }>
<BaseControl.VisualLabel>Visual label</BaseControl.VisualLabel>
<div>
<Button __next40pxDefaultSize variant="secondary">
Select an author
</Button>
</div>
</BaseControl>
);
};