Color-picker properties
Note: This feature is considered EXPERIMENTAL and may be subject to change or be removed in future releases.
The color-picker definition property template can be used to add a custom color-picker property. When defining a color-picker property, the following fields can be used:
Definition properties
Field | Description |
---|---|
type | This field is mandatory and should always be “integer” or “object” for a color-picker property type definition. Defining type: "object" allows usage of custom colors from outside the standard palette and it also supports custom theme palettes.Note: The color-picker effect is achieved by defining the component field to color-picker ; see below. |
component | Used for defining how the property is visualized in the property panel. Used to override the default component that comes with the type setting. This field is mandatory for a color-picker property and should always be color-picker . |
ref | Name or ID used to reference a property. |
defaultValue | Used for defining the default value of your custom property. |
label | Used for defining the label of the item. |
Examples
Defining a color-picker as an integer
Defining a custom property of color-picker type can look like below when defined as an integer.
Note: Customization of properties always starts with items
.
define( [],
( ) => {
const palette = [
"#b0afae",
"#7b7a78",
"#545352",
"#4477aa",
"#7db8da",
"#b6d7ea",
"#46c646",
"#f93f17",
"#ffcf02",
"#276e27",
"#ffffff",
"#000000"
];
return {
definition : {
type : "items",
component : "accordion",
items: {
settings: {
uses: "settings",
items: {
MyColorPicker: {
label:"My color-picker",
component: "color-picker",
ref: "myColor",
type: "integer",
defaultValue: 3
}
}
}
}
},
paint: ($element, layout) => {
//add your rendering code here
$element.css("background-color", palette[layout.myColor]);
}
};
} );
This is what it looks like in the property panel
Defining a color-picker as an object
Defining a custom property of color-picker type can look like below when defined as an object.
Note: Customization of properties always starts with items
.
define( [],
( ) => {
return {
definition : {
type : "items",
component : "accordion",
items: {
settings: {
uses: "settings",
items: {
MyColorPicker: {
label:"My color-picker",
component: "color-picker",
ref: "myColor",
type: "object",
defaultValue: {
color: "ff5866",
index: "-1"
}
}
}
}
}
},
paint: ($element, layout) => {
//add your rendering code here
$element.css("background-color", layout.myColor.color);
}
};
} );
This is what it looks like in the property panel