Back to Glossary
Architecture

Block Kind

Block kind is a free-form semantic label assigned to a block in addition to its type. Where type defines what a block fundamentally is (graphic, text, page, audio), kind defines what the block means in the context of a specific product or template.

The reason kind exists: every visual element in CE.SDK is a graphic block. An image is a graphic block. A sticker is a graphic block. A product photo placeholder is a graphic block. The type alone does not distinguish them. Kind is the label that does.

How kind shows up in practice

Kind is set on a block via the Block API. It is used three different ways.

UI behavior. The editor uses kind to decide which inspector controls, canvas menu options, and feature availability apply to a selected block. A block with kind avatar can hide the duplicate and delete buttons in the Canvas Menu regardless of scope or role, just because that is what makes sense for an avatar.

Template targeting. In programmatic workflows, kind is a stable semantic handle for finding specific blocks across sessions. Rather than relying on block names (which may not be unique) or positional assumptions (which break when the template structure shifts), automation code can find every block of a given kind. A template might have several headline text blocks across multiple pages; the find-by-kind method returns them all in one call.

Asset source integration. When blocks are created from an asset source, the kind is specified as part of the asset definition. An Unsplash image asset specifies kind image so CE.SDK applies the correct behavior when the block is dropped onto the canvas. A custom sticker source specifies kind sticker. The kind travels with the asset.

Kind versus name

Both are strings that can be set on blocks, and both support find-by-X queries. The intent is different.

Kind is a semantic category label. One kind may apply to many blocks: every product image placeholder in a template, every avatar across a multi-page document, every headline across a campaign set. Used for UI behavior configuration and batch operations.

Name is intended as a unique identifier for a specific block. Used for precise single-block targeting: this exact headline, that specific logo.

In production templates, both are used. Kinds group similar blocks for bulk operations; names target individual blocks for specific manipulations.

See block-type for the structural classification, block for the block primitive, and template for how kinds drive automated template population.