Skip to main content

Column

Element type: Dictionary
Availability: 3.1.0+

Stacks its children vertically as a single block. A column is mostly used inside a Row, to put several components in one cell, but it is also useful at the top level to group components that should share a Condition, a Margins or a Border.

Keys

NameTypePossible valuesRequired
TypeStringColumnRequired
ComponentsArray-Required
MarginsDictionary (Margins)-
BorderDictionary (Border)-
Condition PROString (Condition)-

Detail

Type Required

Type: String
Explanation: The type of the component which has to be Column.

Components Required

Type: Array
Explanation: The components stacked from top to bottom. The array cannot be empty.

The following components are accepted as children: Text, Button, Image, SFSymbol, Video, Input and Spacer.

warning

Web, PDF, MonitorsDisplay, Carousel, Row, Card and a nested Column are not accepted as children, and neither is any child with ShouldFillSpace set to true. A Spacer child must declare an explicit Height. Using one of these makes the configuration fail to load, with an error naming the offending key path.

info

A column adds no spacing between its children. Use the Margins key on a child, or a Spacer with an explicit Height, to separate them.

Margins

Type: Dictionary (Margins)
Explanation: Add padding to the component's sides. Applied to the column as a whole.

Border

Type: Dictionary (Border)
Explanation: Add a top or bottom border to a component.

Condition PRO

Type: String (Condition)
Explanation: Allows to hide or show the component using a boolean expression. Hiding a column hides all of its children, which makes it a convenient way to show or hide a whole group of components with a single condition.

Examples

A symbol on the left, with a title and a description stacked on the right.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- ... -->
<key>Components</key>
<array>
<dict>
<key>Type</key>
<string>Row</string>
<key>Components</key>
<array>
<dict>
<key>Type</key>
<string>SFSymbol</string>
<key>Name</key>
<string>lightbulb.fill</string>
<key>Size</key>
<real>26</real>
<key>WidthRatio</key>
<real>0.1</real>
</dict>
<dict>
<key>Type</key>
<string>Column</string>
<key>WidthRatio</key>
<real>0.9</real>
<key>Components</key>
<array>
<dict>
<key>Type</key>
<string>Text</string>
<key>Text</key>
<string>**Tip**</string>
</dict>
<dict>
<key>Type</key>
<string>Text</string>
<key>Text</key>
<string>You can reopen this window from the menu bar at any time.</string>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<!-- ... -->
</dict>
</plist>

A group of components hidden altogether by a single condition.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- ... -->
<key>Components</key>
<array>
<dict>
<key>Type</key>
<string>Column</string>
<key>Condition</key>
<string>SHOW_BONUS == 'yes'</string>
<key>Components</key>
<array>
<dict>
<key>Type</key>
<string>Text</string>
<key>Text</key>
<string>**Optional software**</string>
</dict>
<dict>
<key>Type</key>
<string>Text</string>
<key>Text</key>
<string>These applications are not required, but recommended.</string>
</dict>
</array>
</dict>
</array>
<!-- ... -->
</dict>
</plist>