Config
The main configuration object describing what Puck can render.
const config = {
components: {
HeadingBlock: {
fields: {
children: {
type: "text",
},
},
render: ({ children }) => {
return <h1>{children}</h1>;
},
},
},
};
Params
Param | Example | Type | Status |
---|---|---|---|
components | components: { HeadingBlock: {{ render: () => <h1 /> } } | Object | Required |
root | root: { render: () => <div /> } | ComponentConfig | - |
categories | categories: { typography: { components: ["HeadingBlock"] } } | Object | - |
Required params
components
An object describing the components available to Puck. Each component definition implements the ComponentConfig
API.
const config = {
components: {
HeadingBlock: {
fields: {
children: {
type: "text",
},
},
render: ({ children }) => {
return <h1>{children}</h1>;
},
},
},
};
Optional params
root
An object describing the root of your component tree. This component wraps the rest of your components. Implements the ComponentConfig
API.
- You must return children to render the internal Puck
DropZone
.
const config = {
root: {
render: ({ children }) => {
return <div>{children}</div>;
},
},
// ...
};
categories
An object describing categories for your components. Will be used to group the components in the left side-bar.
const config = {
categories: {
typography: {
components: ["HeadingBlock"],
},
},
// ...
};
categories[key].components
An array of components in this category.
- Must use names of
components
. - A component can appear in more than one category.
categories[key].title
The user-facing title for the category. Will use the category
key if not provided.
categories[key].visible
A boolean describing whether or not the category should be visible in the side bar. Defaults to true
.
categories[key].defaultExpanded
A boolean describing whether or not the category should be expanded by default in the side bar. Defaults to true
.
categories["other"]
The default category for all uncategorized components. Receives all other categories params.