@streamline-pulse/formkrafter-vue

Vue bindings for FormKrafter web components
7,067 4
Install
npm install @streamline-pulse/formkrafter-vue
Latest Version:0.33.0
Vue:3
License:MIT
Last Updated:Oct 21, 2026
Links: GitHub  ·  npm
Maintainer: datagnikan

@streamline-pulse/formkrafter-vue

Vue 3 components for FormKrafter — generated at build time from the Web Components.

Install & use

<script setup lang="ts">
import { ref } from 'vue'
import { FkFormBuilder, FkFormRender } from '@streamline-pulse/formkrafter-vue'
import '@streamline-pulse/formkrafter-wc/styles.css'
import type { BrickSpec } from '@streamline-pulse/formkrafter-core'
import type { SpecChangeDetail, DataChangeDetail } from '@streamline-pulse/formkrafter-wc'

const spec = ref<BrickSpec>()
const renderEl = ref<InstanceType<typeof FkFormRender>>()

const onSpecChange = (detail: SpecChangeDetail) => { spec.value = structuredClone(detail.spec) }
const onSubmit = (detail: DataChangeDetail) => post(detail.data)

const validate = async () => {
  const result = await renderEl.value?.$el.validate()
  console.log(result?.valid, result?.errors)
}
</script>

<template>
  <FkFormBuilder :locales="['en', 'fr']" @spec-change="onSpecChange" />

  <FkFormRender
    v-if="spec"
    ref="renderEl"
    :spec="spec"
    locale="fr"
    @form-submit="onSubmit"
  />

  <button @click="validate">Validate</button>
</template>

Conventions: events use kebab-case (@spec-change, @form-data-change, @form-submit); complex props bind directly (:spec, :data, :locales); element methods (validate()) are reached through the component ref's $el.

For SSR (Nuxt), mount FormKrafter components client-side only (<ClientOnly>), and revalidate submissions server-side with validateFormData from @streamline-pulse/formkrafter-core.

Related Packages

former-ui

Former is a headless library for building and handling forms for Vue using an UI...

3,214 7
@usefillo/dom

Framework-agnostic DOM renderer and web component for embedding Fillo forms.

7,902 0
@bimetal/forms-vue-components

Default Vue 3 form builder + renderer — edits the schema (add/reorder/edit field...

2,180
zerocodejs

Simple editing UI. Framework-agnostic CMS frontend library.

3,953 0
@erag/inertia-forms-vue

Vue 3 renderer for erag/inertia-forms. Render Laravel-defined forms with one com...

879 24

Version History

Version Released Vue License
0.33.0 ^3.0.0 MIT
0.32.1 ^3.0.0 MIT
0.32.0 ^3.0.0 MIT
0.31.1 ^3.0.0 MIT
0.31.0 ^3.0.0 MIT