Widgets

Available widget partials and their parameters

Instead of writing raw CMS-specific YAML or JSON, you call a widget partial and pass a standardized dict. The widget internally handles the output format for each supported CMS (Decap, Sveltia, CloudCannon, Pages CMS, TinaCMS…), so the same field definition works across all of them without any change.

Widgets are Hugo partials that generate CMS field configuration. Each widget is called with a dict of parameters.

{{- $args := dict
  "label" (i18n "admin.fields.title.label")
  "name"  "title"
  -}}
{{ partial "admin/widgets/string.js" $args }}

Parameters marked required must always be provided.

Blocks

Variable-type list field for page builder blocks.

{{ partial "admin/widgets/blocks.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
blocksarrayyesArray of block type definitions
collapsedbooleanCollapse items by default (default: true)
hintstringHelp text
i18nboolean or stringi18n mode
label_singularstringSingular label
maxnumberMaximum number of blocks
minnumberMinimum number of blocks
requiredbooleanMark as required

Boolean

Toggle / checkbox field.

{{ partial "admin/widgets/boolean.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
defaultboolean or stringDefault value
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
nameOverridestringOverride the name in output
requiredbooleanMark as required

Code

Code editor field with optional syntax highlighting.

{{ partial "admin/widgets/code.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
defaultboolean or stringDefault value
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
languagestringSyntax language (e.g. html, css, javascript)
nameOverridestringOverride the name in output
requiredbooleanMark as required

Color

Color picker.

{{ partial "admin/widgets/color.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
defaultboolean or stringDefault value
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
requiredbooleanMark as required

Datetime

Date and time picker.

{{ partial "admin/widgets/datetime.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
defaultdate or stringDefault value
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
nameOverridestringOverride the name in output
requiredbooleanMark as required

File

File upload field. Use type to restrict to a specific media category.

{{ partial "admin/widgets/file.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
typestringyesMedia category: audio, document, file, video
extensionsarrayAllowed file extensions
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
label_singularstringSingular label
maxnumberMaximum number of files
minnumberMinimum number of files
multiplebooleanAllow multiple files
nameOverridestringOverride the name in output
requiredbooleanMark as required

Image

Image upload field.

{{ partial "admin/widgets/image.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
maxnumberMaximum number of images
max_file_sizenumberMaximum file size in bytes
media_folderstringUpload folder
minnumberMinimum number of images
multiplebooleanAllow multiple images
nameOverridestringOverride the name in output
public_folderstringPublic path for images
requiredbooleanMark as required

List

Repeatable list of fields (an array of objects).

{{ partial "admin/widgets/list.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
fieldsarrayyesArray of field definitions
collapsedbooleanCollapse items by default (default: true)
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
label_singularstringSingular label
maxnumberMaximum number of items
minnumberMinimum number of items
nameOverridestringOverride the name in output
requiredbooleanMark as required
summarystringSummary template for collapsed view

Map

Map / geolocation field. Not available with CloudCannon, Pages and TinaCMS

{{ partial "admin/widgets/map.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
defaultstringDefault value
hintstringHelp text
i18nboolean or stringi18n mode

Markdown

Rich text / markdown editor.

{{ partial "admin/widgets/markdown.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
buttonsarrayToolbar buttons to show
defaultstringDefault value
editor_componentsarrayEditor components to enable
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
minimalbooleanMinimal toolbar (default: true)
modesarrayEditor modes (default: ['rich_text'])
nameOverridestringOverride the name in output
patternobjectValidation pattern
requiredbooleanMark as required

Number

Numeric input or range slider.

{{ partial "admin/widgets/number.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
defaultstringDefault value
hintstringHelp text
i18nboolean or stringi18n mode
maxnumberMaximum value
minnumberMinimum value
nameOverridestringOverride the name in output
rangebooleanRender as a range slider
requiredbooleanMark as required
stepnumberStep increment

Object

Groups multiple fields into a collapsible object.

{{ partial "admin/widgets/object.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
fieldsarrayyesArray of field definitions
collapsedbooleanCollapse by default (default: true)
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
label_singularstringSingular label
nameOverridestringOverride the name in output
requiredbooleanMark as required
summarystringSummary template for collapsed view

Relation

Relation field — links to another collection entry.

{{ partial "admin/widgets/relation.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
collectionstringyesTarget collection name
value_fieldstringyesField used as the stored value
display_fieldsarrayFields shown in the picker
filtersarrayFilter entries by field values
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
label_singularstringSingular label
multiplebooleanAllow multiple relations (default: true)
nameOverridestringOverride the name in output
requiredbooleanMark as required
search_fieldsarrayFields to search in the picker

Select

Dropdown select field.

{{ partial "admin/widgets/select.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
optionsarray or objectyesAvailable options
defaultstringDefault selected value
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
label_optionsstringi18n key prefix for option labels
multiplebooleanAllow multiple selections
nameOverridestringOverride the name in output
requiredbooleanMark as required

String

Single-line text input.

{{ partial "admin/widgets/string.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
defaultstringDefault value
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
nameOverridestringOverride the name in output
patternobjectValidation pattern
requiredbooleanMark as required

Text

Multi-line plain text input.

{{ partial "admin/widgets/text.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
defaultstringDefault value
hintstringHelp text
i18nboolean or stringi18n mode
nameOverridestringOverride the name in output
patternobjectValidation pattern
requiredbooleanMark as required

UUID

Auto-generated UUID field, read-only in the editor.

{{ partial "admin/widgets/uuid.js" $args }}
ParameterTypeRequiredDescription
labelstringyesField label
namestringyesField name
hiddenbooleanHide from the editor
hintstringHelp text
i18nboolean or stringi18n mode
nameOverridestringOverride the name in output