---
title: "Field Types"
manual: "Content Blocks"
version: "main"
permalink: "https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-types@main"
source: "YamlReference/FieldTypes/Index.rst"
rendered: "2026-09-22T14:15:39+00:00"
---

# Field Types {#field-types}

These are the Content Blocks Field Types, which you can use out of the box. They
cover mostly basic types. [Custom Field Types](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:extending-field-types@main) can
be developed from scratch. More semantic field types may be added over time.

If you are familiar with [TCA types](https://docs.typo3.org/m/typo3/reference-tca/14.3/en-us/ColumnsConfig/Index.html#columns-types), then you will
probably recognize most of these types. Some types have been renamed for better
clarity.

> [!NOTE]
> The documented field options here are not complete. You are allowed to use
> every option, which you can also find in the [TCA](https://docs.typo3.org/m/typo3/reference-tca/14.3/en-us/ColumnsConfig/Index.html#columns-types)
> documentation. Have a look at the [TCA type mapping](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:type-mapping@main) if
> you are unsure, which field type is the counterpart to the TCA type.

Simple Field Types:

-   [Checkbox](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-checkbox@main)
-   [Color](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-color@main)
-   [Country](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-country@main)
-   [DateTime](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-datetime@main)
-   [Email](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-email@main)
-   [Link](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-link@main)
-   [Number](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-number@main)
-   [Password](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-password@main)
-   [Radio](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-radio@main)
-   [SelectNumber](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-select-number@main)
-   [SelectText](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-select-text@main)
-   [Slug](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-slug@main)
-   [Text](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-text@main)
-   [Textarea](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-textarea@main)
-   [Uuid](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-uuid@main)

Relational Field Types:

-   [Category](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-category@main)
-   [Collection](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-collection@main)
-   [File](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-file@main)
-   [Folder](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-folder@main)
-   [Language](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-language@main)
-   [Relation](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-relation@main)
-   [Select](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-select@main)

Structural Field Types:

-   [FlexForm](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-flexform@main)
-   [Json](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-json@main)

Special field types:

-   [Basic](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-basic@main)
-   [Linebreak](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-linebreak@main)
-   [Palette](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-palette@main)
-   [Pass](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-pass@main)
-   [Tab](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-tab@main)

## Common field options {#yaml-reference-field-properties}

Field options, which can be defined inside the `fields` array.

-   **identifier**

    -   *Type:* string
    -   *Required:* true

    The field's identifier has to be unique within a Content Block. Exception is
    within a collections' field array, as this starts a new scope.

    > [!WARNING]
    > Avoid using dashes "-" inside your identifiers. They are not guaranteed to
    > be escaped in the database. We recommend to always use snake case.

    ```yaml
    fields:
      - identifier: my_identifier
        type: Text
    ```

-   **type**

    -   *Type:* string
    -   *Required:* true

    The field's type. See [Field Types](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-types@main).

    ```yaml
    fields:
      - identifier: my_identifier
        type: Text
    ```

-   **label**

    -   *Type:* string

    By default labels should be defined inside the `labels.xlf` file. But in
    case there is only one language for the backend you may define labels directly
    in the YAML configuration. Translation files have precedence over this.

    ```yaml
    fields:
      - identifier: my_identifier
        type: Text
        label: Static label
    ```

-   **description**

    -   *Type:* string

    The same as for `label` above.

    ```yaml
    fields:
      - identifier: my_identifier
        type: Text
        description: Static description
    ```

-   **useExistingField**

    -   *Type:* bool
    -   *Default:* false

    If set to true, the identifier is treated as an existing field from the Core
    or your own defined field in TCA. To learn more about reusing fields read
    [this article](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:cb-reuse-existing-fields@main).

    ```yaml
    fields:
      - identifier: bodytext
        useExistingField: true
    ```

-   **prefixField**

    -   *Type:* boolean
    -   *Default:* true

    If set to false, the prefixing is disabled for this field. This overrules the
    global option [prefixFields](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:confval-root-prefixfields@main).

    ```yaml
    fields:
      - identifier: my_identifier
        type: Text
        prefixField: false
    ```

    Read more about [prefixing](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:api-prefixing@main).

-   **prefixType**

    -   *Type:* string
    -   *Default:* full

    Determines how to prefix the field if local `prefixField` or global
    `prefixFields` is enabled. Can be either `full` (default) or
    `vendor`.

    ```yaml
    fields:
      - identifier: my_identifier
        type: Text
        prefixField: true
        prefixType: vendor
    ```

    Read more about [prefixing](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:api-prefixing@main).

-   **alias**

    -   *Type:* string

    Defines an alias for the `identifier`. This alias is used in Fluid
    templates and everywhere else you need to access the field value. There is
    no fallback to the identifier. If set, you have to migrate all existing
    occurrences to the new alias.

    ```yaml
    fields:
      - identifier: my_identifier
        type: Text
        alias: myAliasIdentifier
    ```

-   **displayCond**

    -   *Type:* string|array

    Can be used to display the field only under certain conditions.
    Please have a look at the [official documentation](https://docs.typo3.org/m/typo3/reference-tca/14.3/en-us/Columns/Index.html#columns-properties-displaycond)
    for more information.

    ```yaml
    # Simple, only one rule.
    displayCond: 'FIELD:identifier:=:value'
    ```

    ```yaml
    # Multiple rules combined with AND.
    displayCond:
      AND:
        - 'FIELD:identifier:=:value'
        - 'FIELD:another_identifier:=:1'
    ```

    > [!TIP]
    > Fields used in a condition should have the column option `onChange`
    > set to `reload`.

-   **onChange**

    -   *Type:* string

    Can be used to trigger a reload of the Content Type when this specific
    field is changed. Should be used, if a rule of `displayCond` is used
    for this field.

    ```yaml
    onChange: reload
    ```

-   **l10n_mode**

    -   *Type:* string

    Controls how the field behaves in localized records. Possible values are
    `exclude` (the value of the default language record is kept and the
    field is not shown) and `prefixLangTitle` (the value is copied and
    prefixed with the language title on localization). See
    [l10n_mode](https://docs.typo3.org/m/typo3/reference-tca/14.3/en-us/Columns/Index.html#columns-properties-l10n-mode).

    ```yaml
    fields:
      - identifier: my_identifier
        type: Text
        l10n_mode: exclude
    ```

-   **l10n_display**

    -   *Type:* string

    Controls how the field is displayed in localized records. Possible values are
    `hideDiff` (hides the diff view of the default language value) and
    `defaultAsReadonly` (shows the default language value as read-only). See
    [l10n_display](https://docs.typo3.org/m/typo3/reference-tca/14.3/en-us/Columns/Index.html#columns-properties-l10n-display).

    ```yaml
    fields:
      - identifier: my_identifier
        type: Text
        l10n_display: defaultAsReadonly
    ```

-   **exclude**

    -   *Type:* boolean
    -   *Default:* true

    If set, backend users can only edit this field if their backend user group
    explicitly allows it. Content Blocks enables this by default, contrary to
    TCA, where it defaults to `false`. See
    [exclude](https://docs.typo3.org/m/typo3/reference-tca/14.3/en-us/Columns/Index.html#columns-properties-exclude).

    ```yaml
    fields:
      - identifier: my_identifier
        type: Text
        exclude: false
    ```

-   **renderType**

    -   *Type:* string

    Selects an alternative FormEngine element for the field. Only available for
    the field types which document it, as core TCA only defines render types for
    a subset of TCA types. See the [TCA types reference](https://docs.typo3.org/m/typo3/reference-tca/14.3/en-us/ColumnsConfig/Index.html#columns-types) for the render types
    available per TCA type.

    ```yaml
    fields:
      - identifier: my_identifier
        type: Textarea
        renderType: codeEditor
    ```

-   **behaviour**

    -   *Type:* array

    Field behaviour options. The most commonly used one is
    `allowLanguageSynchronization`, which lets editors choose between a
    custom value and the value of the default language record. See
    [allowLanguageSynchronization](https://docs.typo3.org/m/typo3/reference-tca/14.3/en-us/ColumnsConfig/Type/Input/Index.html#tca_property_behaviour_allowLanguageSynchronization).

    ```yaml
    fields:
      - identifier: my_identifier
        type: Text
        behaviour:
          allowLanguageSynchronization: true
    ```

-   **fieldInformation**

    -   *Type:* array

    Renders informational text directly above the field. See
    [TCA fieldInformation](https://docs.typo3.org/m/typo3/reference-tca/14.3/en-us/ColumnsConfig/CommonProperties/FieldInformation/Index.html#tca_property_fieldInformation).

-   **fieldControl**

    -   *Type:* array

    Adds buttons next to the field, for example a link or wizard popup. See
    [TCA fieldControl](https://docs.typo3.org/m/typo3/reference-tca/14.3/en-us/ColumnsConfig/CommonProperties/FieldControl/Index.html#tca_property_fieldControl).

-   **fieldWizard**

    -   *Type:* array

    Renders additional widgets below the field, for example
    `defaultLanguageDifferences` or `localizationStateSelector`. See
    [TCA fieldWizard](https://docs.typo3.org/m/typo3/reference-tca/14.3/en-us/ColumnsConfig/CommonProperties/FieldWizard/Index.html#tca_property_fieldWizard).

> [!NOTE]
> `renderType`, `behaviour`, `fieldControl`,
> `fieldInformation` and `fieldWizard` are only accepted for the
> field types whose page lists them. Core TCA evaluates them per TCA type, so
> the JSON schema mirrors that restriction.

-   [Basic](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:basic@main)
-   [Category](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:category@main)
-   [Checkbox](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:checkbox@main)
-   [Collection](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:collection@main)
-   [Color](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:color@main)
-   [Country](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:country@main)
-   [DateTime](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:datetime@main)
-   [Email](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:email@main)
-   [File](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:file@main)
-   [FlexForm](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:flexform@main)
-   [Folder](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:folder@main)
-   [Json](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:json@main)
-   [Language](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:language@main)
-   [Linebreak](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:linebreak@main)
-   [Link](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:link@main)
-   [Number](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:number@main)
-   [Palette](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:palette@main)
-   [Pass](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:pass@main)
-   [Password](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:password@main)
-   [Radio](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:radio@main)
-   [Relation](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:relation@main)
-   [Select](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:select@main)
-   [SelectNumber](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:selectnumber@main)
-   [SelectText](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:selecttext@main)
-   [Slug](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:slug@main)
-   [Tab](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:tab@main)
-   [Text](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:text@main)
-   [Textarea](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:textarea@main)
-   [Uuid](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:uuid@main)
