# Vue Form Overview

Kendo UI for Vue Form is a small and fast package for form state management with zero dependencies.

The component [integrates with all Kendo UI for Vue components](https://www.telerik.com/kendo-vue-ui-develop/components/form/custom-components). The content of the Form should be defined in a separate component. The "content" component then should be nested inside the Form. With this nesting, the Form will provide all needed properties to the nested "content" component.

To use the provided Form functionality, the [KendoFrom Injected Property](https://www.telerik.com/kendo-vue-ui-develop/components/form/api/fieldinjectedprops) should be [injected](https://v3.vuejs.org/guide/component-provide-inject.html) in the child "content" component using the below code.

```jsx
    inject: {
        kendoForm: { default: {} },
    }
```

For creating form layouts the `Form package` provides the:

* [Kendo UI for Vue FormElement component](https://www.telerik.com/kendo-vue-ui-develop/components/form/api/formelementprops)
* [Kendo UI for Vue FieldWrapper component](https://www.telerik.com/kendo-vue-ui-develop/components/form/api/fieldwrapperprops)

<CtaPanelOverview></CtaPanelOverview>

## Basic Usage

The following example demonstrates the Form and Field components in action. You will see the way the `FormContent` custom component defines the Form fields.

[Demo Source](https://demos.telerik.com/kendo-vue-ui/form/overview/source.txt)

## Functionality and Features

* [Custom components](https://www.telerik.com/kendo-vue-ui-develop/components/form/custom-components)
* [Advanced configuration](https://www.telerik.com/kendo-vue-ui-develop/components/form/advanced-scenarios)
* [Validation](https://www.telerik.com/kendo-vue-ui-develop/components/form/validation)
* [Layout](https://www.telerik.com/kendo-vue-ui-develop/components/form/layout)
* [Labels](https://www.telerik.com/kendo-vue-ui-develop/components/form/labels)

## Installation

To initialize the Form, either:

* [Use the CDN service](https://www.telerik.com/kendo-vue-ui-develop/components/form#using-cdn), or
* [Use Webpack](https://www.telerik.com/kendo-vue-ui-develop/components/form#initializing-with-webpack).

### Using CDN

To use the Kendo UI for Vue Form with CDN, follow the below steps:

1. Reference the `form` package.

```sh
  <script src="https://unpkg.com/@progress/kendo-vue-form@latest/dist/cdn/js/kendo-vue-form.js"></script>
```

2. Reference one of the Kendo UI themes to style your components.

```sh
    // Load the Kendo Meridian Theme
    <link rel="stylesheet" href="https://unpkg.com/@progress/kendo-theme-meridian@latest/dist/all.css">

    // Load the Kendo Bootstrap Theme
    <link rel="stylesheet" href="https://unpkg.com/@progress/kendo-theme-bootstrap@latest/dist/all.css">
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">

    // To load the Kendo Material Theme
    <link rel="stylesheet" href="https://unpkg.com/@progress/kendo-theme-material@latest/dist/all.css">

    // To load the Kendo Fluent Theme
    <link rel="stylesheet" href="https://unpkg.com/@progress/kendo-theme-fluent@latest/dist/all.css">

    // Load the Kendo Default Theme
    <link rel="stylesheet" href="https://unpkg.com/@progress/kendo-theme-default@latest/dist/all.css">
```

3. Follow the instructions in [this article](https://www.telerik.com/kendo-vue-ui-develop/components/my-license#installing-or-updating-the-license-key) to activate your product license. You can skip this step if your application already contains a license key.

### Initializing with Webpack

1. Download and install the package. Use Node.js v5.0.0 or later.

   ```sh
      npm install --save @progress/kendo-vue-form @progress/kendo-licensing @progress/kendo-svg-icons
   ```

2. Once installed, import the package module.

   ```jsx
    // ES2015 module syntax
    import { Form, Field } from '@progress/kendo-vue-form';
   ```

   ```jsx
   // CommonJS format
   const { Form, Field } = require('@progress/kendo-vue-form');
   ```

3. You are required to install one of the Kendo UI for Vue themes to style your components. For more information on how to add the styles, refer to the article on [getting started](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/javascript-composition-api#5-import-the-kendo-ui-for-vue-css-styles).

4. Follow the instructions on the Kendo UI for Vue [My License page](https://www.telerik.com/kendo-vue-ui-develop/components/my-license) to activate your license. You can skip this step if your application already contains a Kendo UI for Vue license file.

## Dependencies

The Form package requires the following [peer dependencies](https://nodejs.org/en/blog/npm/peer-dependencies/) that have to be installed by your application:

* vue 3.0.0\*
* @progress/kendo-licensing
* @progress/kendo-svg-icons

## Support and Learning Resources

* [Form Homepage](https://www.telerik.com/kendo-vue-ui/vue-form)
* [API Reference of the Form Component](https://www.telerik.com/kendo-vue-ui-develop/components/form/api/formprops)
* [Getting Started with Kendo UI for Vue - JavaScript (Online Guide)](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/javascript-composition-api)
* [Getting Started with Kendo UI for Vue - TypeScript (Online Guide)](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/typescript-composition-api)
* [Getting Started with Kendo UI for Vue - JavaScript + Options API (Online Guide)](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/javascript-options-api)
* [Getting Started with Kendo UI for Vue - TypeScript + Options API (Online Guide)](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/typescript-options-api)
* [Getting Started with Kendo UI for Vue - Nuxt 3 (Online Guide)](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/get-started-nuxt-3)
* [Virtual Classroom (Training Course for Registered Users)](https://learn.telerik.com/learn/course/internal/view/elearning/45/kendo-ui-for-vue-with-typescript)
* [Form Forum](https://www.telerik.com/forums/kendo-ui-vue?searchText=form)
* [Knowledge Base](https://www.telerik.com/kendo-vue-ui/components/knowledge-base/)
* [Kendo UI Productivity Tools extension for VS Code](https://www.telerik.com/kendo-vue-ui-develop/components/vscode-extension)

## Additional Resources

* [Vue Blogs](https://www.telerik.com/blogs/tag/kendo-ui-for-vue)
* [Kendo UI for Vue Roadmap](https://www.telerik.com/support/whats-new/kendo-vue-ui/roadmap)
