Property columns

The property columns is a nested property that is used inside a columns block. It expects a JSON array as value, with a list of JSON objects. Each object in this array describes the contents of a single column.

    {
        "from" : "info@example.com",
        "subject" : "Email with two text blocks side by side",
        "content" : {
            "blocks" : [ {
                "type" : "columns",
                "columns" : [ {
                    "size" : 6,
                    "blocks" : [
                        {
                            "type" : "text",
                            "content" : "I'm just a text block within a column."
                        }
                    ]
                }, {
                    "size" : 6,
                    "blocks" : [
                        {
                            "type" : "text",
                            "content" : "I'm another text block within a column, I'm next to the other text block."
                        }
                    ]
                } ]
            } ]
        }
    }

The above example holds an email with a single block. This block happens to be a columns block, that splits the mail in two columns. Each column contains a single text block.

Supported properties

The columns property itself holds an array of JSON objects, with every object representing a single column. The following table shows the nested properties that can be set for each column.

Columns [ { ... }, { ... } ] properties

Property Value Desc.
blocks array An array with objects, each one representing any other block type, such as button and text blocks.
size integer The size of the column. Supported values are 1 up to 12.
container object Get access to the container element
background object The background of the column.

The most important property is the blocks property. You can use it to assign an array of other blocks that are placed inside the column. To keep the examples readable, we normally show this property with only a single block in it (in the example on this page, we show it twice with a single text block), but nothing forbids you from using it for much longer arrays.

The other important property is the size property. All the columns together are placed in a twelve columns wide fluid grid. You can assign each column a size from 1 to 12, as long as the total of all sizes is 12. Thus, if you want to create a mail with two small side columns, and a wider column in the middle, you could use column sizes 2-8-2.

{
    "from" : "info@example.com",
    "subject" : "Email with two small columns on the side",
    "content" : {
        "blocks" : [ {
            "type" : "columns",
            "columns" : [ {
                "size" : 2,
                "blocks" : [

                    /* array of small blocks in the left column */

                ]
            }, {
                "size" : 8,
                "blocks" : [

                    /* array of wide blocks in the center column */
                ]
            }, {
                "size" : 2,
                "blocks" : [

                    /* array of small blocks in the right column */
                ]
            } ]
        }, {
            "type" : "text",
            "source" : "text that spans all three columns"
        } ]
    }
}

Found a typo?

You can find this documentation page on GitHub.
Propose a change