> ## Documentation Index
> Fetch the complete documentation index at: https://docs.attio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# <Form />

> A component that wraps your workspace settings inputs.

<img className="dark:hidden" width="720" height="440" noZoom src="https://mintcdn.com/attio/4Fh2EPa8-SlLTNAV/images/form.png?fit=max&auto=format&n=4Fh2EPa8-SlLTNAV&q=85&s=3962fbf8ea86242a271fc592ae65bf15" data-path="images/form.png" />

<img className="hidden dark:block" width="720" height="440" noZoom src="https://mintcdn.com/attio/4Fh2EPa8-SlLTNAV/images/form-dark.png?fit=max&auto=format&n=4Fh2EPa8-SlLTNAV&q=85&s=d0f9a10ca04ecf88c8cf1b32ae76faec" data-path="images/form-dark.png" />

<Note>
  This component is returned by
  [`Settings.useForm()`](../../settings/use-form).
</Note>

<Warning>
  You are required to render one – ***and only one*** – of these to make your workspace settings work.

  All inputs must be inside of the `<Form />`.
</Warning>

## Example

```tsx src/app/settings/page.tsx theme={"system"}
import React from "react"
import {Settings} from "attio/client"

import schema from "./schema"

export default Settings.defineWorkspacePage(schema, () => {
  const {Form, TextInput} = Settings.useForm(schema)

  return (
    <Form>
      <TextInput label="Display name" name="display_name" />
      <TextInput label="Webhook URL" name="webhook_url" type="url" />
    </Form>
  )
})
```

## Props

<ParamField path="children" type="React.ReactNode" required>
  The contents of your workspace settings form, usually layout and input components.
</ParamField>

<Note>
  Unlike regular forms, the `<Form />` component from
  [`Settings.useForm()`](../../settings/use-form) does **not** have an
  `onSubmit` prop. Settings are automatically saved.
</Note>
