> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://contentful.com/developers/docs/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://contentful.com/_mcp/server. # Editor Interfaces > An editor interface represents the look and feel of content type fields in the web app | Settings | Custom widgets | Sidebar | Default configuration An editor interface represents the look and feel of the entry editor in the web app. They are tightly coupled to a content type and define which widgets are rendered in both content fields and the sidebar. For example, the following content type describes a typical blog post data structure. It has a title, a body, and a category that can be either "General", "iOS" or "Android". ```json { "fields": [ { "id": "title", "name": "Title", "type": "Symbol" }, { "id": "body", "name": "Body", "type": "Text" }, { "id": "category", "name": "Category", "type": "Symbol", "validations": [{ "in": ["General", "iOS", "Android"] }] } ] } ``` An editor interface could, for example, define that the `title` field should be rendered as an input field (the widget ID is `singleLine` and it comes from a `builtin` widget the web app provides). It could then define that the `body` should be a normal text area (the widget id is `multipleLine`), and that the `category` should be rendered as a dropdown field (the widget id is `dropdown`). The editor interface would look like this: ```json { "controls": [ { "fieldId": "title", "widgetNamespace": "builtin", "widgetId": "singleLine" }, { "fieldId": "body", "widgetNamespace": "builtin", "widgetId": "multipleLine" }, { "fieldId": "category", "widgetNamespace": "builtin", "widgetId": "dropdown" } ] } ``` There are sets of compatible `builtin` widgets per content type field type: | Widget ID | Applicable field types | Description | | ------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------- | | assetLinkEditor | Asset | Search, attach, and preview an asset. | | assetLinksEditor | Asset (array) | Search, attach, reorder, and preview multiple assets. | | assetGalleryEditor | Asset (array) | Search, attach, reorder, and preview multiple assets in a gallery layout | | boolean | Boolean | Radio buttons with customizable labels. | | datePicker | Date | Select date, time, and timezon. | | entryLinkEditor | Entry | Search and attach another entry. | | entryLinksEditor | Entry (array) | Search and attach multiple entries. | | entryCardEditor | Entry | Search, attach, and preview another entry. | | entryCardsEditor | Entry (array) | Search, attach and preview multiple entries. | | numberEditor | Integer, Number | A simple input for numbers. | | rating | Integer, Number | Uses stars to select a number. | | locationEditor | Location | A map to select or find coordinates from an address. | | objectEditor | Object | A code editor for JSON | | urlEditor | Symbol | A text input that also shows a preview of the given URL. | | slugEditor | Symbol | Automatically generates a slug and validates its uniqueness across entries. | | listInput | Symbol (array) | Text input that splits values on `,` and stores them as an array. | | checkbox | Symbol (array) | A group of checkboxes. One for each value from the `in` validation on the content type field | | tagEditor | Symbol (array) | A text input to add a string to the list. Shows the items as tags and allows to remove them. | | multipleLine | Text | A simple `