Stacks API

Come build with us.
Stacks API v11 for Stacks 4.0


Color — color

This content is open source. You can edit it and submit a pull request on GitHub.
This page is generated from this file.

© . YourHead Software all rights reserved.

Color — color

Available: Stacks API v8

A color well.

When clicked the RapidWeaver shared color pallet is displayed. The selected color is converted to RGB and returned as a hex string or rgba color value.


The color control now allows you to enable opacity when selecting colors. To ensure backward compatability it defaults to being disabled.

Colors that include an opacity will be output (in templates) as rgba color values. Colors without an opacity will be output as HTML hex colors.

Specifying defaults

Default values can be supplied for color controls useing HTML hex values, rgb values, or rgba values. Rgb and rgba color components can use 0-255 (rgb values equivalent to the HTML hex value) or percentages 0% - 100%. The opacity component in rgba can use either percentages 0% - 100% or decimal notation 0.0 - 1.0

An HTML hex color for red:


An rgb color for green:

rgb(0, 255, 0)

An rgba color for translucent blue:

rgba(0, 0, 50%, 0.5)

Color Array

Color controls can be used in arrays. Each has its own subtitle and default, all other values are shared.

NB: color-3 requires Stacks API v8 (Stacks v3.1+), 2 & 4 require v7 (Stacks v3.0+), single control requires v1.

Color array types are:

In arrayed color controls default values for the default key can either be a single color (applied to all controls in the array) or an array of colors.

Opacity Enable

Enable the opacity slider on the color selection box.


The default prefix for the returned string is #, this means that if no prefix is specified then the returned color string will be a standard HTML RGB Hex string (e.g. #1F2F3F).

For some applications such as Flash the raw hex value is needed without the hash character prefix. Setting the prefix to the empty-string "" will return the six character hex value without any prefix (a format commonly used in Flash).

Default Value

The color the color well will be set to by default. If no color is provided light gray will be used.


The ID for this control. This ID must be unique within this stack. The ID is used to refer to control’s property. IDs should be alpha-numeric (dashes and underscores are allowed), but should not contain special characters.


The title displayed next to the control. Long titles will be truncated, so keep it short.


Hide or show the control based on the value of another property.

Enables allow a stack to show only the controls needed by the user to achieve a specific task.

The enable dictionary defines the ID of another control and the value that other control must equal. When the other control’s value is not equal to the provided value, this control is hidden.

Enable Dictionary

Enable Operations

Warning: creating infinite loops in enable dependencies has undefined behavior. It will likely result in a RapidWeaver crash.

NB: macOS does not specify the wildcard characters available or how they function. * and ? clearly work as they do in a UNIX shell. you’ll just have to guess at the rest.

Tool Tip

The tooltip value is used to display hints for the user on the use of each control. If the function of the control is obvious, then a tooltip should be avoided. Simply re-displaying redundant information like the title has no value to the user.


Subtitles are displayed under the control. Subtitles are unique for each item in a control array. You should provide one for each item in the control array. In the plist the subtitles should be an array of Subtitle strings. Note that some controls have very little space, so only very short subtitles can be used.



The scope of a property can be set to bind to the page instead of each stack. Binding a property to the page-scope means that the values set by this control will be shared between all stack-instances on the page.



Inheritance allows one stack to pull in the controls and properties of another stack. All of the controls from the specified stack are pulled in to the current stack. The inherited controls will be ordered as if they were they were first in the plist customItems array. The value should be the ID of the stack to inherit from.

© . YourHead Software all rights reserved.