Svelte 5 library for creating forms based on JSON schema. Unofficial port of react-jsonschema-form.
Installation
Install as a community add-on using the Svelte CLI.
npx sv add @sjsf
Usage
<script lang="ts"> import { createForm, BasicForm, type Schema } from "@sjsf/form"; import { resolver } from "@sjsf/form/resolvers/basic"; import { translation } from "@sjsf/form/translations/en"; import { createFormMerger } from "@sjsf/form/mergers/modern"; import { createFormIdBuilder } from "@sjsf/form/id-builders/modern"; import { createFormValidator } from "@sjsf/ajv8-validator"; import { theme } from "@sjsf/basic-theme"; import "@sjsf/basic-theme/css/basic.css"; const schema: Schema = { title: "Tasks", type: "array", items: { type: "object", properties: { name: { type: "string", title: "Name", }, description: { type: "string", title: "Description", }, }, required: ["name"], }, }; const form = createForm({ theme, schema, resolver, translation, merger: createFormMerger, validator: createFormValidator, idBuilder: createFormIdBuilder, onSubmit: console.log, }); </script> <BasicForm {form} />
Supported Themes
- Basic
- daisyUI v5
- Flowbite Svelte
- Skeleton v5
- shadcn-svelte
- shadcn-svelte-extras (experimental)
- SVAR (experimental)
- Beer CSS (experimental)
Supported Validators
- Ajv v8
- Zod v4
- Valibot
- @cfworker/json-schema
- @exodus/schemasafe
- Standard Schema
- ata-validator
- @hyperjump/json-schema (experimental)
Integrations
- Generic backend
- Form actions
- Remote functions (experimental)
License
This project includes modifications of code from react-jsonschema-form, which is licensed under the Apache License, Version 2.0. The rest of the project is under the MIT license.
See LICENSE-MIT and LICENSE-APACHE for details.