# Spacing
The Spacing field allows the user to specify either padding or margin units to any HTML element or CSS selector that supports them.
Table of Contents
# Arguments
| Name | Type | Default | Description |
|---|---|---|---|
| type | string | spacing | Value identifying the field type. |
| units | array/string | String of a single unit or array of units. Accepts: false, %, in, cm, mm, em, rem, ex, pt, pc, px, vh, vw, vmin, vmax, ch. | |
| units_extended | bool | false | Flag to allow users to select any type of unit. |
| display_units | bool | true | Flag to set the display of the units field when units are specified. |
| top | bool | true | Flag to display the top value input. |
| bottom | bool | true | Flag to display the bottom value input. |
| left | bool | true | Flag to display the left value input. |
| right | bool | true | Flag to display the right value input. |
| all | bool | false | Flag to display all position value inputs. |
| mode | string | padding | Accepts: absolute padding or margin. |
| select2 | array | Array of select2 arguments. Select2 Documentation (opens new window). |
Also See
# Default Options
| Name | Type | Description |
|---|---|---|
| *-top | string | Sets the top spacer value. |
| *-right | string | Sets the right spacer value. |
| *-bottom | string | Sets the bottom spacer value. |
| *-left | string | Sets the left spacer value. |
| units | string | Sets the default unit value in the unit selector. |
Notes
The asterisk at the beginning of these values is a wildcard value to be replaced with the mode name. For example, if the chosen mode is margin, the default names would be specified as margin-top, margin-left, etc. If the chosen mode is padding, the default names would be specified as padding-top, padding-left, etc.
When specifying your own units array, it will override the units-extended argument.
# Build Config
Build a Custom Configuration →
Changes you make to this form will be reflected in the generated code.
Redux::set_field( 'OPT_NAME', 'SECTION_ID', array(
'type' => 'spacing'
) );# Example Config
Redux::set_field( 'OPT_NAME', 'SECTION_ID', array(
'id' => 'opt-spacing',
'type' => 'spacing',
'output' => array('.site-header'),
'mode' => 'margin',
'units' => array('em', 'px'),
'units_extended' => 'false',
'title' => esc_html__('Padding/Margin Option', 'your-textdomain-here'),
'subtitle' => esc_html__('Allow your users to choose the spacing or margin they want.', 'your-textdomain-here'),
'desc' => esc_html__('You can enable or disable any piece of this field. Top, Right, Bottom, Left, or Units.', 'your-textdomain-here'),
'default' => array(
'margin-top' => '1px',
'margin-right' => '2px',
'margin-bottom' => '3px',
'margin-left' => '4px',
'units' => 'em',
)
) );
# Example Usage
This example is based on the example usage provided above. Be sure to change $redux_demo to the value you specified in your opt_name argument.
global $redux_demo;
echo 'Spacing top: ' . $redux_demo['opt-spacing']['margin-top'];
echo 'Spacing bottom: ' . $redux_demo['opt-spacing']['margin-bottom'];
echo 'Spacing left: ' . $redux_demo['opt-spacing']['margin-left'];
echo 'Spacing right: ' . $redux_demo['opt-spacing']['margin-right'];