{%- extends "theming/base_component.html" -%} {%- set parametrized = parametrized or [ "form", "form_errors", "fieldset", "input", "range_input", "file_input", "checkbox", "radio", "textarea", "markdown", "select", "select_box", "select_option" ] -%} {%- block overview -%}

The form component creates complete form containers that organize all form elements into a cohesive unit. This component provides the overall structure for forms and handles form-level functionality such as submission handling and validation management.

The form component works with several related components including form_start, form_end, form_actions, and form_errors to create complete form experiences.

The input component creates general text input fields for collecting user text input. This is one of the most fundamental form components, used for collecting various types of text data including names, email addresses, search terms, and other textual information.

Input components handle various input types such as text, email, password, and number fields, providing appropriate validation and formatting for each type.

There are also specialized input components built on top of the base input component, such as checkbox, file_input, and range_input, which provide additional context-specific behavior and attributes to ensure proper handling of specific types of input data.

The select component creates select input element that allow users to choose from a predefined list of options. Select components handle option display, selection management, and accessibility requirements.

More complex scenarios may require using select_option and select_box components. They separate rendering of the select input from producing all its options and normally used when options are represented via non-standard source.

The textarea component creates multi-line text input fields that allow users to enter longer text content.

The markdown component creates a special version of textarea with explanation of markdown syntax and, optionally, WYSIWYG capabilities or syntax highlighting.

{%- endblock %}