Skip to content

QuickFormsJSON Schema Form Generator

Vue 3 forms with sensible defaults and reasonable escape hatches

QuickForms

See It In Action

QuickForms with Quasar
QuickForms with Plain Vue

Quick Example ​

Quasar ​

If you're using Quasar, you get beautiful pre-styled components out of the box:

vue
<script setup lang="ts">
import { ref } from 'vue'
import { DynamicForm } from '@quickflo/quickforms-vue'
import { createQuasarRegistry } from '@quickflo/quickforms-quasar'
import type { JSONSchema } from '@quickflo/quickforms'

const registry = createQuasarRegistry()

const schema: JSONSchema = {
  type: 'object',
  properties: {
    name: { 
      type: 'string', 
      title: 'Full Name',
      minLength: 2 
    },
    email: { 
      type: 'string', 
      format: 'email', 
      title: 'Email' 
    },
    age: {
      type: 'number',
      title: 'Age',
      minimum: 18
    }
  },
  required: ['name', 'email']
}

const formData = ref({})

// formData updates automatically as user types!
// Use it however you want: display, send to API, etc.
</script>

<template>
  <DynamicForm 
    :schema="schema" 
    v-model="formData"
    :options="{ registry }"
  />
</template>

See Quasar Package Docs for all Quasar-specific options.

Plain Vue ​

Use the plain Vue package with your own styling:

vue
<script setup lang="ts">
import { ref } from 'vue'
import { DynamicForm } from '@quickflo/quickforms-vue'
import type { JSONSchema } from '@quickflo/quickforms'

const schema: JSONSchema = { /* same schema as above */ }
const formData = ref({})
</script>

<template>
  <DynamicForm 
    :schema="schema" 
    v-model="formData"
  />
</template>

See Vue Package Docs for plain Vue options.

Installation ​

sh
pnpm add @quickflo/quickforms @quickflo/quickforms-vue @quickflo/quickforms-quasar
sh
npm install @quickflo/quickforms @quickflo/quickforms-vue @quickflo/quickforms-quasar
sh
yarn add @quickflo/quickforms @quickflo/quickforms-vue @quickflo/quickforms-quasar

Why QuickForms? ​

JSON Schema form libraries are powerful but often rigid. QuickForms provides escape hatches at common pain points:

  • βœ… Don't like the default placeholder? Override it globally or per-field
  • βœ… Need custom validation? Add sync/async validators alongside JSON Schema rules
  • βœ… Enum values too technical? Map them to friendly labels with x-enum-labels
  • βœ… Want dynamic hints? Use hintRenderer for full control

Sensible defaults, clear customization paths. No rebuilding components.

Released under the MIT License.