> ## Documentation Index > Fetch the complete documentation index at: https://www.canva.dev/docs/apps/llms.txt > Use this file to discover all available pages before exploring further. # Forms Guidelines for creating user-friendly forms. ## Use the pre-built form components For user-friendly, consistent forms, your best bet is to use and combine our App UI Kit form components, which have a lot of common accessibility features built in. These include: * Form controls: * `Select` * `Checkbox` * `RadioGroup` * `SegmentedControl`. * `FormField` (can be combined with any form input or control to provide consistent layout and accessibility features). * Inputs: * `TextInput` * `NumberInput` * `MultilineInput`. * `FileInput` (form component supporting file upload). ## Don't rely on placeholders Placeholders can be a useful way to indicate expected values, but: * They aren't as prominent as labels. * They aren't visible when inputs have focus. Always use placeholders in addition to labels. ## Correctly assign labels to inputs It's not enough to visually associate a label with an input. You must add an `id` to the input and the `for` (in HTML) or `htmlFor` (in JSX) attribute to the label: ```tsx ``` This ensures that: * Clicking the label will focus the field. * Screen readers can understand the form. ## Use checkboxes and radio buttons appropriately Checkboxes and radio buttons appear similar, but they serve different purposes: * Use checkboxes when the user should be able to select **any combination** of options. * Use radio buttons when the user should only be able to select **one** option. ## Show error states If the user enters or submits an invalid value, show the input in an error state. If it's not obvious *why* an error is occurring, show an error message beneath the input. To learn how to write effective error messages, see [Errors & messaging](https://www.canva.dev/docs/apps/design-guidelines/errors/).