> For the complete documentation index, see [llms.txt](https://docs.notionapps.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.notionapps.com/screens-and-components/type-of-components.md).

# Type of Components

Canonical index for every shipped component family. The old bullet list is not coverage. Each family page below is the long reference. This page stays an index plus the controls that apply to **every** component.

How-tos (Metric Card, Media Gallery, Status Timeline, Unique ID Chip, sections/stepper, validation, prefill) stay short and link here or to the family page.

## What this is / when to use it

A component is one block on a screen: a heading, a field, a button, a comments thread. Pick the family from the job, not from the Notion property name.

| Job                                            | Family       | Page                                                                                                                           |
| ---------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| Show a value                                   | View         | [View data components](https://docs.notionapps.com/screens-and-components/type-of-components/view-data-components)             |
| Collect or edit a value                        | Inputs       | [Add/Update data components](https://docs.notionapps.com/screens-and-components/type-of-components/add-update-data-components) |
| Open a URL, phone, email, SMS                  | Button       | [Button component](https://docs.notionapps.com/screens-and-components/type-of-components/button-component)                     |
| After submit: write, go to screen, or redirect | Form actions | [Form submit redirection](https://docs.notionapps.com/screens-and-components/form-submit-redirection-and-other-submit-actions) |
| Show or hide a block                           | Visibility   | [Component visibility](https://docs.notionapps.com/screens-and-components/component-visibility)                                |
| Threaded discussion                            | Comments     | [Comments](https://docs.notionapps.com/screens-and-components/type-of-components/comments)                                     |

When **not** to add a component: if the user needs a different **screen** (a list, a queue, a content page), add a screen. Components do not replace Select Items or Work Queue.

## Before you start

1. You are on a details, form, update list, or content screen. Native automation screens use their own builder sections, not this palette.
2. The Notion property exists if the component reads or writes data. See [Notion property types](https://docs.notionapps.com/databases/notion-property-types).
3. You know whether the block is view-only or an input.

## Build it (shared)

1. Open the screen.
2. **Add component**. Choose a type. You can switch types later with the type switcher when the new type accepts the same property.
3. Bind **Input property** / **View property** when the block is data-backed.
4. Set required, default, disable editing, and visibility (tables below).
5. Copy/paste logic if you need the same visibility or default on another field.
6. Preview, then publish.

## Every control (shared)

These appear on almost every data component. Family pages list type-specific enums.

| Control            | Options                                          | What it does                                                                                                                         |
| ------------------ | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| Label              | Text                                             | User-visible name.                                                                                                                   |
| Property           | Sheet field                                      | Notion property the component reads or writes.                                                                                       |
| Required           | On / off                                         | Empty value blocks submit. Independent of format validation.                                                                         |
| Disable editing    | On / off                                         | Show the value without allowing change (update forms / update lists).                                                                |
| Default value      | `NONE` / `EXACT` / `DYNAMIC` (`CURRENT_USER`)    | Prefills create forms. Exact is a literal. Dynamic current user writes the logged-in user into a people/user/text field.             |
| URL prefill param  | Name                                             | Create forms only. See [Prefill Create Forms from a URL](https://docs.notionapps.com/how-to-guides/prefill-create-forms-from-a-url). |
| Validate input     | Off / Email / Phone                              | Text fields. See [Validate Email and Phone](https://docs.notionapps.com/how-to-guides/validate-email-and-phone-on-form-fields).      |
| Visibility         | `NONE` / `ROW` / `USER_INPUT` / `LOGGED_IN_USER` | [Component visibility](https://docs.notionapps.com/screens-and-components/component-visibility).                                     |
| Copy / paste logic | Clipboard in builder                             | Copies visibility and related logic, not the property binding.                                                                       |
| Type switcher      | Compatible types                                 | Change Text → Long text without losing the property when the field type allows it.                                                   |

Section + stepper (form layout) lives on [Form (Add Item)](https://docs.notionapps.com/screens-and-components/types-of-screens/add-new-item-form#sections-and-stepper). The how-to stays a short job.

## What users see

View components render the current Notion value (or empty). Input components render a control; on submit they write the property if it is writable. Hidden components are not shown and do not collect input.

## Limits and plans

* One component per property is the usual pattern. Two inputs bound to the same property fight on submit.
* Read-only Notion types still accept a **view** component. An **input** bound to formula/rollup will not write. See the field map.
* Comments, HTML block, and page content have their own plan/moderation notes on those pages.

## Example

A Create Form **Add request** uses: Heading, Text (title, required), Long text (details), Options dropdown (priority), User (assignee, default `CURRENT_USER`), File upload (attachment), Button (cancel URL), and submit actions documented on the form-actions page.

## Fix problems

| Symptom                          | Likely cause                           | What to do                                                                                                       |
| -------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Property missing in the picker   | Not synced, or type unsupported        | [Reload and sync](https://docs.notionapps.com/databases/reload-and-sync). Check the field map.                   |
| Required error on a hidden field | Visibility hides it but required is on | Unset required, or keep the field visible.                                                                       |
| Prefill ignored                  | Update form, or param name mismatch    | Prefill is Create Form only. Match the param.                                                                    |
| Save failed in the builder       | Component points at a deleted property | [Save failed / field missing](https://docs.notionapps.com/troubleshooting/save-failed-field-missing-after-sync). |

## Related

Open the family page that matches the component you are adding. Next on the maker path after fields: [Component visibility](https://docs.notionapps.com/screens-and-components/component-visibility) and [Screen Actions](https://docs.notionapps.com/screens-and-components/customize-a-screen/screen-actions).
