---
title: "Block Type - CE.SDK Glossary"
description: "The fundamental classification of a block in CE.SDK. Type is assigned at creation, cannot change, and determines which APIs apply to the block."
url: "https://img.ly/glossary/block-type/"
type: "page"
---

> This is the markdown version of [Block Type - CE.SDK Glossary](https://img.ly/glossary/block-type/). For all pages in one file, see [llms-full.txt](https://img.ly/llms-full.txt). For an index of all available pages, see [llms.txt](https://img.ly/llms.txt).

---

# Block Type

Also known as: DesignBlockType

Block type is the fundamental classification of a block in CE.SDK. It is assigned when the block is created, cannot be changed after, and determines what properties the block has, which APIs apply to it, and how the engine renders it.

Type is what tells the engine: "this is text, route text operations to it" or "this is a graphic, give it shape and fill." Different types support different APIs.

## The block types

CE.SDK has eight block types.

- **`scene`** is the root of the hierarchy. There is always exactly one scene block in the engine. It is created by the Scene API, not the Block API.
- **`page`** is a canvas inside a scene. Pages hold the blocks that make up the design. In video mode each page also has duration and timeline properties.
- **`graphic`** is the unified type for any visual content: images, videos, shapes, stickers. A graphic block is built from a shape that defines its outline and a fill that defines what renders inside. This is the most common block type in active scenes.
- **`text`** is editable text with font, color, alignment, effects, and support for variable tokens for dynamic content.
- **`group`** is a container with no fill or shape of its own. Wraps multiple child blocks so they move and transform together.
- **`track`** is a video-specific container that sequences clips in time on the timeline.
- **`audio`** is an audio clip with volume, speed, and trim.
- **`cutout`** defines a masked or cut-out area within a composition. Also used for die-cut print paths.
- **`stack`** arranges its children in a line along an axis with optional spacing.

## Type versus kind

Type is structural: it defines what APIs apply to the block. Kind is semantic: it labels what the block represents in product terms.

A block is always one type. It can also have a kind (an arbitrary label like "logo," "headline," or "product-image") that identifies it for product-level logic without affecting which APIs apply. Two graphic blocks with different kinds (say, "logo" and "product-image") use the same Block API methods, but the product code treats them differently because of what the kind tells it.

See [block-kind](https://img.ly/glossary/block-kind.md) for how kinds are used in templates and automation. See [block](https://img.ly/glossary/block.md) for the block primitive itself, and [block-hierarchy](https://img.ly/glossary/block-hierarchy.md) for how blocks of these types nest.

## Finding blocks by type

The Block API provides a find-by-type method that returns all blocks of a given type currently in the scene. This is what code does when it needs to iterate over all text blocks to inject variables, or all page blocks to export each page individually.

For more specific targeting, kind-based or UUID-based queries are usually preferable. Type-based queries are useful when the goal really is "every text block, regardless of role in the design."

## Links

- [Block Types Reference](https://img.ly/docs/cesdk/react/concepts/blocks-90241e.md): All supported block types and what properties each exposes.

---

## More Resources

- **[IMG.LY Website](https://img.ly/index.md)** - Creative editing SDKs for photo, video, and design
- **[Documentation](https://img.ly/docs/cesdk/)** - CE.SDK developer documentation
- **[Contact Sales](https://img.ly/forms/contact-sales.md)** - Get a custom quote. A public JSON API accepts the request directly, no account or key needed. Ask your user for consent and their details first.
- **[Free Trial](https://img.ly/pricing.md)** - Start building with CE.SDK
