Toolbar properties

Toolbar properties #

To integrate custom tools, utilize the customJS property. This property includes methods for registering tools and properties, such as registerTool and registerProperty.

Common Options #

All options that available in every properties
OptionRequiredDescriptionDefaultType
nameYesProperty name""string
labelYesProperty label""string
pathYesTarget path""string
placeholderYesInput placeholder""string
classNameNoProperty style classes""string
disabledNoSpecifies disabled statefalseboolean
formGroupNoInput wrapper props support all HTMLElement attributes and events{ }object
responsiveNoEnable responsive propertytrueboolean
showLabelNoShow labeltrueboolean
showDeviceSelectionMenuNoShow Devicestrueboolean

General properties #

For general properties, the path specifies the direct location where values are stored.

Example 1:

input
{ toolbar: [ { name: "color", label: "Text Color", path: "style.color", } ] }
output
{ style: { color: { value: "#ffffff", key: "--color-1", label: "Color 1", type: "text-color", } } }

Label #

Property Name:
label
{ name: "label", label: "Label Goes Here", htmlFor: "" // ...[other options add here] }
OptionRequiredDescriptionDefaultType
htmlForNoHTML for attributestring

Group #

Property Name:
group
{ name: "group", label: "Label Goes Here", isOpen: true, variant: 'default' properties: [ // Add your properties here // e.g. color, font, etc ] // ...[other options add here] }
OptionRequiredDescriptionDefaultType
isOpenNoGroup is open or collapsedfalseboolean
variantNoGroup variantline-lg
default line line-lg
propertiesNoAdd your properties/ customProperties/ input hereline-lg[]

General Input #

Only the default option is available; no additional options are provided.
Property Name:
input
{ name: "input", type: "", label: "Label Goes Here", path: "", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }

Datetime #

Only the default option is available; no additional options are provided.
Property Name:
datetime
{ name: "datetime", label: "Label Goes Here", path: "", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }

AI Writing #

Property Name:
aiWriting
{ name: "aiWriting", path: "", initialValue: "", responsive: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
initialValueNoInitial value of propertyany
alignNoAI writing is a dropdown, align defined the dropdown menu alignmentcenter
left right left-top right-top center
showIconNoShow AI stick icontrueboolean
caretNoDropdown caret icontrueboolean
showCardNoEnable or disable dropdown wrapper cardfalseboolean

Color #

Property Name:
color
{ name: "color", label: "Label Goes Here", path: "", responsive: true, showLabel: true, showDeviceSelectionMenu: true, initialColorType: "global", // ...[other options add here] }
OptionRequiredDescriptionDefaultType
initialColorTypeNoInitial active color typeglobal
input recent global
showCloseBtnNoColor input clear buttontrueboolean
enableGlobalColorButtonNoShow global colorstrueboolean
onCompletedNoEvent is trigger after color selectionFunction

Number #

Property Name:
number
{ name: "number", label: "Label Goes Here", path: "", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
unitNoInput value unitpx
null % px deg ms rem em
minNoSpecifies the minimum value allowed0number
maxNoSpecifies the maximum value allowed100number
stepNoSpecifies the legal number intervals1number
initialValueNoSpecifies initial valuestring
showClearButtonNoInput clear buttontrueboolean

Range #

Property Name:
range
{ name: "range", label: "Label Goes Here", path: "", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
unitNoInput value unitpx
null % px deg ms rem em
minNoSpecifies the minimum value allowed0number
maxNoSpecifies the maximum value allowed100number
stepNoSpecifies the legal number intervals1number
initialValueNoSpecifies initial valuestring
showClearButtonNoInput clear buttontrueboolean

Select #

Property Name:
select
{ name: "select", label: "Label Goes Here", path: "", options: [{label: "", value: ""}], responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
optionsYesOptions is a array of object like [ {label: "", value: ""} ]array[]
noWrapperNoSpecifies wrapper is enabledfalseboolean

Select With Search #

Property Name:
selectSearchable
{ name: "selectSearchable", label: "Label Goes Here", path: "", options: [{label: "", value: ""}], responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
optionsYesOptions is a array of object like [ {label: "", value: ""} ]array[]
noWrapperNoSpecifies wrapper is enabledfalseboolean

Grid #

Property Name:
grid
{ name: "grid", label: "Label Goes Here", path: "", options: [{label: "", value: "", tooltip: ""}], numberOfColumns: 2, responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
optionsYesOptions is a array of object like [ {label: "", value: ""} ]array[]
numberOfColumnsNoSpecifies the number of columns1number
noWrapperNoSpecifies wrapper is enabledfalseboolean

Switch #

Property Name:
switch
{ name: "switch", label: "Label Goes Here", path: "", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
onLabelNoSpecifies switch on labelONstring
offLabelNoSpecifies switch off labelOFFstring

Tab #

Property Name:
tab
{ name: "switch", label: "Label Goes Here", path: "", tabs: [ { value: "", label: "", icon: () => {} } ], responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
tabsYesTabs is a array of object like [ { value: "", label: "", icon: ReactIcon } ][ ]array[]
variantNoSpecifies tab variantradioButton
line button radioButton tab tabColored
initialActiveTabNoSpecifies initial tab""string

Checkbox #

Property Name:
checkbox
{ name: "checkbox", label: "Label Goes Here", path: "", options: [ { value: "", label: "" } ], initialValue: "", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
optionsYesOptions is a array of object like [ {label: "", value: ""} ]array[]
initialValueNoSpecifies initial valuestring | number | boolean
noWrapperNoSpecifies wrapper is enabledfalseboolean

Editor #

Only the default option is available; no additional options are provided.
Property Name:
editor
{ name: "editor", label: "Label Goes Here", path: "", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }

Image Uploader #

Property Name:
imageUploader
{ name: "imageUploader", label: "Label Goes Here", path: "", mediaType: "image", showAltInput: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
mediaTypeNoSpecifies media typeimage
image icon
showAltInputNoSpecifies show alt inputtrueboolean

CSS Properties #

In CSS properties, either a single input or multiple inputs can be accepted. Each CSS property prefers a path that points to the closest object, and some properties also use a propertyKey to specify where the data is stored. For example, the "alignment" CSS property is a single input. If we want to store all CSS properties in a style object, the path would be styleand the propertyKey would be textAlign. The allowed keys for this property aretextAlign and align.

Example 1:

input
{ toolbar: [ { name: "alignment", label: "Text Alignment", path: "style", responsive: true, propertyKey: "textAlign" } ] }
output
{ style: { textAlign: 'left' } }

Example 2:

input
{ toolbar: [ { name: "font", label: "Font", path: "style", responsive: true, } ] }
output
{ style: { fontFamily: 'Arial, sans-serif' fontWeight: '400' } }

Example 3:

input
{ toolbar: [ { name: "border", label: "Border", path: "style", responsive: true, propertyKey: "border" } ] }
output
{ style: { border: { borderLeft: { width: "1px", style: "solid", color: "#ddd", }, borderRight: { width: "1px", style: "solid", color: "#ddd", }, borderTop: { width: "1px", style: "solid", color: "#ddd", }, borderBottom: { width: "1px", style: "solid", color: "#ddd", } } } }

Alignment #

Property Name:
alignment
{ name: "alignment", label: "Label Goes Here", path: "", propertyKey: "textAlign", hasJustifyMode: true, responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
initialValueNoSpecifies the initial valueleftstring
hasJustifyModeNoSpecifies justify mode is enabledtrueboolean
propertyKeyNoSpecifies property keytextAlign
textAlign align

Border #

Property Name:
border
{ name: "border", label: "Label Goes Here", path: "", propertyKey: "border", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
propertyKeyNoSpecifies property keyborderstring

Border Radius #

Property Name:
borderRadius
{ name: "borderRadius", label: "Label Goes Here", path: "", propertyKey: "borderRadius", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
propertyKeyNoSpecifies property keyborderRadiusstring

Box Shadow #

Property Name:
boxShadow
{ name: "boxShadow", label: "Label Goes Here", path: "", propertyKey: "boxShadow", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
propertyKeyNoSpecifies property keyboxShadowstring

Font #

Only the default option is available; no additional options are provided.
Property Name:
font
{ name: "font", label: "Label Goes Here", path: "", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }

Font Weight #

Property Name:
fontWeight
{ name: "fontWeight", label: "Label Goes Here", path: "", propertyKey: "fontWeight", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
propertyKeyNoSpecifies property keyfontWeightstring

Align Items #

Property Name:
itemsAlignment
{ name: "itemsAlignment", label: "Label Goes Here", path: "", propertyKey: "align", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
initialValueNoSpecifies the initial valueleftstring
propertyKeyNoSpecifies property keyalign
textAlign align justifyContent

Margin #

Property Name:
margin
{ name: "margin", label: "Label Goes Here", path: "", propertyKey: "margin", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
propertyKeyNoSpecifies property keymarginstring

Padding #

Property Name:
padding
{ name: "padding", label: "Label Goes Here", path: "", propertyKey: "padding", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
propertyKeyNoSpecifies property keypaddingstring

Text Decoration #

Property Name:
textDecoration
{ name: "textDecoration", label: "Label Goes Here", path: "", propertyKey: "textDecoration", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
initialValueNoSpecifies the initial valuestring
propertyKeyNoSpecifies property keytextDecorationstring

Text Shadow #

Property Name:
textShadow
{ name: "textShadow", label: "Label Goes Here", path: "", propertyKey: "textShadow", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
initialValueNoSpecifies the initial valuenonestring
propertyKeyNoSpecifies property keytextShadowstring

Text Spacing #

Only the default option is available; no additional options are provided.
Property Name:
textSpacing
{ name: "textSpacing", label: "Label Goes Here", path: "", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }

Text Transform #

Property Name:
textTransform
{ name: "textTransform", label: "Label Goes Here", path: "", propertyKey: "textTransform", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
initialValueNoSpecifies the initial valuenonestring
propertyKeyNoSpecifies property keytextTransformstring

Align X & Y #

Property Name:
verticalHorizontalAlignment
{ name: "verticalHorizontalAlignment", label: "Label Goes Here", path: "", responsive: true, showLabel: true, showDeviceSelectionMenu: true, // ...[other options add here] }
OptionRequiredDescriptionDefaultType
initialValueNoSpecifies the initial value {vertical: "top", horizontal: "align"}{vertical: "top", horizontal: "align"}object
propertyKeyNoSpecifies property key for {vertical: "valign", horizontal: "valign"}{vertical: "valign", horizontal: "align"}object

Explore Our Email Builder