# Formisch > The lightweight, schema-first and fully type-safe form library for Angular, Preact, Qwik, React, Solid, Svelte and Vue. ## Angular ## Guides ### Get started - [Introduction](https://formisch.dev/angular/guides/introduction.md) - [Installation](https://formisch.dev/angular/guides/installation.md) - [Coding agents](https://formisch.dev/angular/guides/coding-agents.md) - [Comparison](https://formisch.dev/angular/guides/comparison.md) ### Main concepts - [Define your form](https://formisch.dev/angular/guides/define-your-form.md) - [Create your form](https://formisch.dev/angular/guides/create-your-form.md) - [Add form fields](https://formisch.dev/angular/guides/add-form-fields.md) - [Input components](https://formisch.dev/angular/guides/input-components.md) - [Handle submission](https://formisch.dev/angular/guides/handle-submission.md) - [Form methods](https://formisch.dev/angular/guides/form-methods.md) ### Advanced guides - [Validation](https://formisch.dev/angular/guides/validation.md) - [Special inputs](https://formisch.dev/angular/guides/special-inputs.md) - [Controlled fields](https://formisch.dev/angular/guides/controlled-fields.md) - [Nested fields](https://formisch.dev/angular/guides/nested-fields.md) - [Dirty fields](https://formisch.dev/angular/guides/dirty-fields.md) - [Field arrays](https://formisch.dev/angular/guides/field-arrays.md) - [TypeScript](https://formisch.dev/angular/guides/typescript.md) - [Architecture](https://formisch.dev/angular/guides/architecture.md) ### Migration guides - [From Reactive Forms](https://formisch.dev/angular/guides/migrate-from-reactive-forms.md) - [From TanStack Form](https://formisch.dev/angular/guides/migrate-from-tanstack-form.md) ## API reference ### Functions - [injectForm](https://formisch.dev/angular/api/injectForm.md) - [injectField](https://formisch.dev/angular/api/injectField.md) - [injectFieldArray](https://formisch.dev/angular/api/injectFieldArray.md) ### Directives - [formischForm](https://formisch.dev/angular/api/formischForm.md) - [formischField](https://formisch.dev/angular/api/formischField.md) - [formischFieldArray](https://formisch.dev/angular/api/formischFieldArray.md) - [formischControl](https://formisch.dev/angular/api/formischControl.md) ### Methods - [focus](https://formisch.dev/methods/api/focus.md) - [getDeepErrorEntries](https://formisch.dev/methods/api/getDeepErrorEntries.md) - [getDeepErrors](https://formisch.dev/methods/api/getDeepErrors.md) - [getDirtyInput](https://formisch.dev/methods/api/getDirtyInput.md) - [getDirtyPaths](https://formisch.dev/methods/api/getDirtyPaths.md) - [getErrors](https://formisch.dev/methods/api/getErrors.md) - [getInput](https://formisch.dev/methods/api/getInput.md) - [handleSubmit](https://formisch.dev/methods/api/handleSubmit.md) - [insert](https://formisch.dev/methods/api/insert.md) - [isDirty](https://formisch.dev/methods/api/isDirty.md) - [isEdited](https://formisch.dev/methods/api/isEdited.md) - [isTouched](https://formisch.dev/methods/api/isTouched.md) - [isValid](https://formisch.dev/methods/api/isValid.md) - [move](https://formisch.dev/methods/api/move.md) - [pickDirty](https://formisch.dev/methods/api/pickDirty.md) - [remove](https://formisch.dev/methods/api/remove.md) - [replace](https://formisch.dev/methods/api/replace.md) - [reset](https://formisch.dev/methods/api/reset.md) - [setErrors](https://formisch.dev/methods/api/setErrors.md) - [setInput](https://formisch.dev/methods/api/setInput.md) - [submit](https://formisch.dev/methods/api/submit.md) - [swap](https://formisch.dev/methods/api/swap.md) - [validate](https://formisch.dev/methods/api/validate.md) ### Types - [DeepErrorEntry](https://formisch.dev/methods/api/DeepErrorEntry.md) - [DeepPartial](https://formisch.dev/core/api/DeepPartial.md) - [EmptyInput](https://formisch.dev/core/api/EmptyInput.md) - [FieldArrayStore](https://formisch.dev/angular/api/FieldArrayStore.md) - [FieldElement](https://formisch.dev/core/api/FieldElement.md) - [FieldStore](https://formisch.dev/angular/api/FieldStore.md) - [FocusFieldConfig](https://formisch.dev/methods/api/FocusFieldConfig.md) - [FormConfig](https://formisch.dev/angular/api/FormConfig.md) - [FormischFieldArrayContext](https://formisch.dev/angular/api/FormischFieldArrayContext.md) - [FormischFieldContext](https://formisch.dev/angular/api/FormischFieldContext.md) - [FormSchema](https://formisch.dev/core/api/FormSchema.md) - [FormStore](https://formisch.dev/angular/api/FormStore.md) - [GetFieldDeepErrorEntriesConfig](https://formisch.dev/methods/api/GetFieldDeepErrorEntriesConfig.md) - [GetFieldDeepErrorsConfig](https://formisch.dev/methods/api/GetFieldDeepErrorsConfig.md) - [GetFieldDirtyInputConfig](https://formisch.dev/methods/api/GetFieldDirtyInputConfig.md) - [GetFieldDirtyPathsConfig](https://formisch.dev/methods/api/GetFieldDirtyPathsConfig.md) - [GetFieldErrorsConfig](https://formisch.dev/methods/api/GetFieldErrorsConfig.md) - [GetFieldInputConfig](https://formisch.dev/methods/api/GetFieldInputConfig.md) - [GetFormDeepErrorEntriesConfig](https://formisch.dev/methods/api/GetFormDeepErrorEntriesConfig.md) - [GetFormDeepErrorsConfig](https://formisch.dev/methods/api/GetFormDeepErrorsConfig.md) - [GetFormDirtyInputConfig](https://formisch.dev/methods/api/GetFormDirtyInputConfig.md) - [GetFormDirtyPathsConfig](https://formisch.dev/methods/api/GetFormDirtyPathsConfig.md) - [GetFormErrorsConfig](https://formisch.dev/methods/api/GetFormErrorsConfig.md) - [GetFormInputConfig](https://formisch.dev/methods/api/GetFormInputConfig.md) - [InjectFieldArrayConfig](https://formisch.dev/angular/api/InjectFieldArrayConfig.md) - [InjectFieldConfig](https://formisch.dev/angular/api/InjectFieldConfig.md) - [InsertConfig](https://formisch.dev/methods/api/InsertConfig.md) - [IsFieldDirtyConfig](https://formisch.dev/methods/api/IsFieldDirtyConfig.md) - [IsFieldEditedConfig](https://formisch.dev/methods/api/IsFieldEditedConfig.md) - [IsFieldTouchedConfig](https://formisch.dev/methods/api/IsFieldTouchedConfig.md) - [IsFieldValidConfig](https://formisch.dev/methods/api/IsFieldValidConfig.md) - [IsFormDirtyConfig](https://formisch.dev/methods/api/IsFormDirtyConfig.md) - [IsFormEditedConfig](https://formisch.dev/methods/api/IsFormEditedConfig.md) - [IsFormTouchedConfig](https://formisch.dev/methods/api/IsFormTouchedConfig.md) - [IsFormValidConfig](https://formisch.dev/methods/api/IsFormValidConfig.md) - [PartialValues](https://formisch.dev/core/api/PartialValues.md) - [Path](https://formisch.dev/core/api/Path.md) - [PathKey](https://formisch.dev/core/api/PathKey.md) - [PickDirtyConfig](https://formisch.dev/methods/api/PickDirtyConfig.md) - [MoveConfig](https://formisch.dev/methods/api/MoveConfig.md) - [RemoveConfig](https://formisch.dev/methods/api/RemoveConfig.md) - [ReplaceConfig](https://formisch.dev/methods/api/ReplaceConfig.md) - [RequiredPath](https://formisch.dev/core/api/RequiredPath.md) - [ResetFieldConfig](https://formisch.dev/methods/api/ResetFieldConfig.md) - [ResetFormConfig](https://formisch.dev/methods/api/ResetFormConfig.md) - [Schema](https://formisch.dev/core/api/Schema.md) - [SetFieldErrorsConfig](https://formisch.dev/methods/api/SetFieldErrorsConfig.md) - [SetFieldInputConfig](https://formisch.dev/methods/api/SetFieldInputConfig.md) - [SetFormErrorsConfig](https://formisch.dev/methods/api/SetFormErrorsConfig.md) - [SetFormInputConfig](https://formisch.dev/methods/api/SetFormInputConfig.md) - [SignalOrValue](https://formisch.dev/angular/api/SignalOrValue.md) - [SubmitEventHandler](https://formisch.dev/core/api/SubmitEventHandler.md) - [SubmitHandler](https://formisch.dev/core/api/SubmitHandler.md) - [SwapConfig](https://formisch.dev/methods/api/SwapConfig.md) - [ValidArrayPath](https://formisch.dev/core/api/ValidArrayPath.md) - [ValidateFormConfig](https://formisch.dev/methods/api/ValidateFormConfig.md) - [ValidationMode](https://formisch.dev/core/api/ValidationMode.md)