DimensionControl
is a component designed to provide a UI to control spacing and/or dimensions.
Usage
import { useState } from 'react';
import { __experimentalDimensionControl as DimensionControl } from '@wordpress/components';
export default function MyCustomDimensionControl() {
const [ paddingSize, setPaddingSize ] = useState( '' );
return (
<DimensionControl
__nextHasNoMarginBottom
__next40pxDefaultSize
label={ 'Padding' }
icon={ 'desktop' }
onChange={ ( value ) => setPaddingSize( value ) }
value={ paddingSize }
/>
);
}
Note: by default, if you do not provide an initial value
prop for the current dimension value, then no value will be selected (ie: there is no default dimension set).
Props
label
- Type:
string
- Required: Yes
The human readable label for the control.
value
- Type:
string
- Required: No
The current value of the dimension UI control. If provided the UI with automatically select the value.
sizes
- Type:
{ name: string; slug: string }[]
- Default: See
packages/block-editor/src/components/dimension-control/sizes.ts
- Required: No
An optional array of size objects in the following shape:
[
{
name: __( 'Small' ),
slug: 'small',
},
{
name: __( 'Medium' ),
slug: 'small',
},
// ...etc
]
By default a set of relative sizes (small
, medium
…etc) are provided. See packages/block-editor/src/components/dimension-control/sizes.js
.
icon
- Type:
string
- Required: No
An optional dashicon to display before to the control label.
onChange
- Type:
( value?: string ) => void;
- Required: No
- Arguments::
size
– a string representing the selected size (eg:medium
)
A callback which is triggered when a spacing size value changes (is selected/clicked).
className
- Type:
string
- Default:
''
- Required: No
A string of classes to be added to the control component.
__next40pxDefaultSize
- Type:
Boolean
- Required: No
- Default:
false
Start opting into the larger default height that will become the default size in a future version.
__nextHasNoMarginBottom
- Type:
Boolean
- Required: No
- Default:
false
Start opting into the new margin-free styles that will become the default in a future version.