# Configuring fields for content-types
The Content-type Builder is only accessible to create and update content-types when your Strapi application is in a development environment, else it will be in a read-only mode in other environments.
Content-types are composed of one or several fields. Each field is designed to contain specific kind of data, filled up in the Content Manager (see Writing content).
In the Content-type Builder, fields can be added at the creation of a new content-type or component, or afterward when a content-type or component is edited or updated. The following documentation lists all existing regular fields but also tackles the specificities of components and dynamic zones. For each, you will find a definition, explanation of the form they take once in the Content Manager, and instructions to configure them.
Depending on what content-type or component is being created or edited, not all fields -including components and dynamic zones- are always available.
# Regular fields
The Text field displays a textbox that can contain small text. This field can be used for titles, descriptions, etc.
# Rich Text
The Rich Text field displays an editor with formatting options to manage rich text. This field can be used for long written content.
The Number field displays a field for any kind of number: integer, decimal and float.
The Date field can display a date (year, month, day), time (hour, minute, second) or datetime (year, month, day, hour, minute, and second) picker.
The Boolean field displays a toggle button to manage boolean values (e.g. Yes or No, 1 or 0, True or False).
The Relation field allows to establish a relation with another content-type, that must be a collection type.
There are 6 different types of relations:
- One way: Content-type A has one Content-type B
- One-to-one: Content-type A has and belong to one Content-type B
- One-to-many: Content-type A belongs to many Content-type B
- Many-to-one: Content-type B has many Content-type A
- Many-to-many: Content-type A has and belongs to many Content-type B
- Many way: Content-type A has many Content-type B
The Email field displays an email address field with format validation to ensure the email address is valid.
The Password field displays a password field that is encrypted.
The Enumeration field allows to configure a list of values displayed in a drop-down list.
Since Strapi v4.1.3, enumeration values should always have an alphabetical character preceding any number as it could otherwise cause the server to crash without notice when the GraphQL plugin is installed.
The Media field allows to choose one or more media files (e.g. image, video) from those uploaded in the Media Library of the application.
The JSON field allows to configure data in a JSON format, to store JSON objects or arrays.
The UID field displays a field that sets a unique identifier, optionally based on an existing other field from the same content-type.
Components are a combination of several fields. Components allow to create reusable sets of fields, that can be quickly added to content-types, dynamic zones but also nested into other components.
When configuring a component through the Content-type Builder, it is possible to either:
- create a new component by clicking on Create a new component (see Creating a new component),
- or use an existing one by clicking on Use an existing component.
# Dynamic zones
Dynamic zones are a combination of components that can be added to content-types. They allow a flexible content structure as once in the Content Manager, administrators have the choice of composing and rearranging the components of the dynamic zone how they want.
After configuring the settings of the dynamic zone, its components must be configured as well. It is possible to either choose an existing component or create a new one.
When using dynamic zones, different components cannot have the same field name with different types (or with enumeration fields, different values).