Vueform | Open-Source Form Framework for Vue
Vueform | Open-Source Form Framework for Vue 图标

Vueform | Open-Source Form Framework for Vue

vueform.com

Build your forms 10x faster with the most powerful open-source form framework for Vue. Easy to learn, extensible and supports Tailwind CSS.

收录于 1 年前更新于 1 年前正常收录
Vueform | Open-Source Form Framework for Vue 网站预览

详细内容

NEW — Expressions display form data in fields

Open-Source Form Framework for Vue

Vueform is a comprehensive form framework for Vue that makes form development a breeze.

npm

create vueform@latest

Star on GitHub

Vueform | Form Builder for Vue.js

Used by companies worldwide

Vueform | Vue Form Builder and GeneratorVueform | Vue Form Builder and GeneratorVueform | Vue Form Builder and GeneratorVueform | Vue Form Builder and GeneratorVueform | Vue Form Builder and Generator

New AI Tool

Drag and drop

form builder

Build forms at extreme speed or integrate it into your project to allow users creating dynamic forms without technical knowledge. Based on Vueform.

Start building Integrate

Free on localhost during development. No credit card.

Vueform | Vue Form Builder and GeneratorVueform | Vue Form Builder and Generator

An advanced tool for developing forms in Vue.js

Vueform supercharges and standardizes the entire form building process and takes care of everything from rendering to validation and processing.

Vue form | Build the best vue forms with our vueform generatorVue form | Build the best vue forms with our vueform generator

Advanced elements

All the elements you need at your fingertips

File uploads? Date pickers? Tagging or slider? We've got you covered! No more need to hunt for elements on Github and trying to make them work. With Vueform you get everything out of the box that can be easily customized.

Check out all elements

TailwindVueCLI

  • Bootstrap
  • Bulma
  • Nuxt
  • Laravel

Tailwind, VueCLI

$450.00

$450.00 - $550.00

JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember

SunMonTueWedThuFriSat

301234567891011121314151617181920212223242526272829303112345678910

Receive notifications

Upload files

Vueform | Vue Form Builder and Generator

image3.webp

Vueform | Vue Form Builder and Generator

image2.webp

Vueform | Vue Form Builder and Generator

image1.webp

Form

Data

vue

<template>
  <Vueform>
    <TagsElement name="tags"
      :search="true"
      :items="['Tailwind', 'Bootstrap', 'Bulma', '...']"
    />
    <SliderElement name="slider"
      :max="1000"
      :merge="100"
      :format="{ prefix: '$', decimals: 2 }"
    />
    <PhoneElement name="phone"
      allow-incomplete
    />
    <DatesElement name="dates"
      mode="range"
    />
    <ToggleElement name="toggle">
      Receive notifications
    </ToggleElement>
    <MultifileElement name="multifile"
      view="image"
      :file="{ softRemove: true }"
    />
  </Vueform>
</template>
{
  "tags": [\
    "Tailwind",\
    "VueCLI"\
  ],
  "slider": [\
    450,\
    550\
  ],
  "phone": "+1234",
  "dates": [\
    "2025-11-30",\
    "2025-12-07"\
  ],
  "toggle": true,
  "multifile": [\
    "images/image3.webp",\
    "images/image2.webp",\
    "images/image1.webp"\
  ]
}

Nested elements

Handle nested data structures with ease

Creating nested data structures in forms can be cumbersome. Vueform provides elements that can handle infinite nesting which guarantees you will be able to handle even the most complex use cases.

More about nested elements

Work history

Address

Skills used

TaxationDriving

  • Administrative
  • Nursing
  • Investments
  • Fashion
  • Healthcare
  • Analytical skills
  • Sales
  • Catering
  • Translation
  • Photography
  • Graphic Design
  • Pharmaceutical
  • HR
  • Writing skills
  • Legal
  • Management
  • Marketing
  • Mathematic
  • Engineering
  • Technical
  • Art
  • Teaching
  • Online Marketing
  • Grant Writing
  • Finance
  • Financial Analysis
  • Market Research
  • Presenting
  • Project management
  • Event Planning
  • Social Media
  • Accounting
  • Consulting
  • Telecommunications
  • Recruiting
  • Journalism
  • Customer Support
  • Hospitality
  • Video Editing
  • Video

Taxation, Driving

JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember

SunMonTueWedThuFriSat

262728293031123456789101112131415161718192021222324252627282930123456

JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember

SunMonTueWedThuFriSat

262728293031123456789101112131415161718192021222324252627282930123456

Working here

+ Add

Form

Data

vue

<template>
  <Vueform>
    <h3>Work history</h3>
    <ListElement name="history">
      <template #default="{ index }">
        <ObjectElement :name="index" :replaceClasses="{ ElementLayout: { outerWrapper: 'flex-1 rounded-lg pt-8 px-4 pb-4 mb-4 shadow-box' } }">
          <TextElement name="name" placeholder="Company name" />
          <LocationElement name="address" placeholder="Address" />
          <TagsElement name="skills" placeholder="Skills used" :search="true" :items="[...]" />
          <DateElement name="from" placeholder="From" :columns="4" />
          <DateElement name="to" placeholder="To" :columns="4" :conditions="[['history.*.present', false]]" />
          <CheckboxElement name="present" :columns="4">
            Working here
          </CheckboxElement>
        </ObjectElement>
      </template>
    </ListElement>
  </Vueform>
</template>
{
  "history": [\
    {\
      "name": null,\
      "address": {\
        "country": "Turkey",\
        "country_code": "TR",\
        "state": null,\
        "state_code": null,\
        "city": "Bursa",\
        "zip": null,\
        "address": null,\
        "formatted_address": "Bursa, Turkey",\
        "lat": 40.1885281,\
        "lng": 29.0609636\
      },\
      "skills": [\
        "Taxation",\
        "Driving"\
      ],\
      "from": null,\
      "to": null,\
      "present": false\
    }\
  ]
}

Database support

Convert forms to JSON and JSON to forms

Everything in Vueform, including elements, validation rules or steps and be stored as a JSON string. This enables rendering dynamic forms and storing even complex forms in databases. With Vueform you can create your own form builder tool!

Learn different uses of Vueform

Survey

Please fill in this survey

Your name

Your age

Your gender

MaleFemaleX

How likely are you to recommend our services?

12345678910

1 means very unlikely, 10 means very likely

Submit

Form

Data

vue

<template>
  <Vueform v-bind="$data" />
</template>
<script>
export default {
  data: () => ({
    endpoint: '/submit/survey/489432',
    schema: {
      title: { type: 'static', content: `<div class='font-semibold text-2xl'>Survey</div><p class='text-gray-500 m-0'>Please fill in this survey</p>` },
      question1: { type: 'text', label: 'Your name' },
      question2: { type: 'text', label: 'Your age', columns: 6 },
      question3: { type: 'select', label: 'Your gender', items: ['Male', 'Female', 'X'], columns: 6 },
      question4: { type: 'select', label: 'How likely are you to recommend our services?', default: 10, items: [1,2,3,4,5,6,7,8,9,10], description: '1 means very unlikely, 10 means very likely' },
      button: { type: 'button', buttonLabel: 'Submit', submits: true, },
    }
  })
}
</script>
{
  "question1": null,
  "question2": null,
  "question3": null,
  "question4": 10
}

Easy validation

50+ built-in validation rules, ready to use

Vueform provides a nice set of built-in validation rules but you can create custom ones just as easily. Validators can watch each other's value, run asynchronously or even be tied to conditions.

Check out all the rules

The Text field is required.

Url

The Url format is invalid.

Email

Date

JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember

SunMonTueWedThuFriSat

262728293031123456789101112131415161718192021222324252627282930123456

The Date must be a date after 2025-11-30.

Password

The Password confirmation does not match.

Password again

I accept the Terms of Use

The Terms must be accepted.

Form

Data

vue

<template>
  <Vueform>
    <TextElement name="text" placeholder="Text"
      rules="required"
    />
    <TextElement name="url" placeholder="Url"
      rules="url"
    />
    <TextElement name="email" placeholder="Email"
      rules="exists:users"
    />
    <DateElement name="date" placeholder="Date"
      rules="after:today"
    />
    <TextElement name="password" placeholder="Password"
      rules="confirmed"
    />
    <TextElement name="password_confirmation" placeholder="Password again"
    />
    <CheckboxElement name="terms"
      rules="accepted"
    >I accept the Terms of Use</CheckboxElement>
  </Vueform>
</template>
{
  "required": null,
  "url": "htp://vueform.com",
  "async": "john@doe.com",
  "after": "2025-11-30",
  "password": "vueform",
  "password_confirmation": "veuform",
  "accepted": false
}

Conditions

Conditional rendering

Using v-if to render certain elements conditionally is no magic. Handling that on a data level is a different thing. Vueform removes all the struggle of creating conditional forms so you can focus on the important parts.

Learn more about conditions

Answer all questions!

Answer three very simple questions to see what's in the end.

First question:

YesNoDo you want the next field to appear?

Second question:

YesNoHow about the next one?

Third question:

YesNoAnd the next one...?

You've made it!

A mini meIron man suitStarfighterCongratulations! Choose your prize:

We're sorry :( You've almost made it.

Form

Data

vue

<template>
  <Vueform>
    <SelectElement name="question1" :items="['Yes', 'No']" placeholder="..."/>
    <SelectElement name="question2" :items="['Yes', 'No']" placeholder="..."
      :conditions="[['question1', 'Yes']]"
    />
    <SelectElement name="question3" :items="['Yes', 'No']" placeholder="..."
      :conditions="[['question2', 'Yes']]"
    />
    <SelectElement name="prize" :items="[...]" placeholder="..."
      :conditions="[['question3', 'Yes']]"
    />
    <StaticElement name="no_prize" :conditions="[\
      function(form$) {\
        return form$.data.question1 === 'No' ||\
              form$.data.question2 === 'No' ||\
              form$.data.question3 === 'No'\
      }\
    ]">We're sorry :( You've almost made it.</StaticElement>
  </Vueform>
</template>
{
  "question1": null
}

Form wizard

Break forms into steps

Everybody hates filling in long forms. They might not even get started if all they see is an endless list of fields. Vueform makes it easy to break forms into steps helping your users to have a more convenient experience when using your product.

Learn more about steps

Name

Bio

Email

Password

Facebook

Twitter

PreviousNext

Form

Data

vue

<template>
  <Vueform>
    <template #empty>
      <FormSteps>
        <FormStep name="personal" :elements="['name', 'bio']"
        />Personal</FormStep>
        <FormStep name="account" :elements="['email', 'password']"
        />Account</FormStep>
        <FormStep name="social" :elements="['facebook', 'twitter']"
        />Social</FormStep>
      </FormSteps>
      <FormElements>
        <TextElement name="name" label="Name" />
        <TextareaElement name="bio" label="bio" rows="8" />
        <TextElement name="email" label="Email" />
        <TextElement input-type="password" name="password" label="Password" />
        <TextElement name="facebook" label="Facebook" />
        <TextElement name="twitter" label="Twitter" />
      </FormElements>
      <FormStepsControls />
    </template>
  </Vueform>
</template>
{
  "name": "John Doe",
  "bio": null,
  "email": null,
  "password": null,
  "facebook": null,
  "twitter": null
}

I18n support

Available in 19 languages, translate contents

It can be convenient for websites operating in multiple languages to translate different parts of the published content easily. Vueform supports this by providing translatable input fields that have multiple outputs in different languages.

Learn more about i18n

Title

Content

BoldItalicStrikethroughLinkHeadingQuoteCodeBulletsNumbersDecrease LevelIncrease LevelAttach FilesUndoRedo

Form

Data

vue

<template>
  <Vueform multilingual>
    <TTextEelement
      name="title"
      label="Title"
    />
    <TEditorElement
      name="content"
      label="Content"
    />
  </Vueform>
</template>
{
  "title": {
    "en": null,
    "zh": null
  },
  "content": {
    "en": null,
    "zh": null
  }
}

Vueform | Vue form generator | Tailwind Integration

Vueform | Vue form generator | Bootstrap Integration

Vueform | Vue form generator | Material Integration

Integrate Vueform into any existing (design) system

Vueform works with the most popular frameworks, including Tailwind CSS, Bootstrap or Material and even has different setup guides for Vite, Nuxt and Laravel.

Get started

Vueform | Vue form generator | Vite Integration

Vueform | Vue form generator | Nuxt Integration

Vueform | Vue form generator | Laravel Integration

Case Studies

Don't Take Our Word For It

Discover the stories and experiences shared by our clients who've leveraged the full potential of Vueform in their projects.

\
Vueform\
\
Empowering Users to Create Unique Forms with an Easy-to-Use Interface
\
Vueform\
\
Streamlining Real Estate Operations with Vueform SDK
\
Vueform Builder\
\
Medical Software Development with Vueform Builder

"The extensibility surprised us. We have been able to create our custom components fairly easily. Vueform and the framework it provides lets us build things on top of it quite easily. Even if the requirement is quite different from the base component that we are working on."

— Saideep Talari, CTO, SenseHawk

Read SenseHawk's story

See all Case Studies

Vueform is Open-Source

Ready to unlock

maximum productivity?

Get started in a few minutes.

npm

create vueform@latest

Star on GitHub

Vueform | Vue Form Builder and Generator

Vueform | Vue Form Builder and Generator

Vueform | Vue Form Builder and Generator

👋 Hire Vueform team for form customizations and development

Visit site

Vueform | Vue Form Builder and GeneratorVueform | Vue Form Builder and Generator

Copyright © 2025 FormTools Ltd.

All rights reserved.

Vueform | Join to discord - Form Builder for Vue.jsJoin our\
\
Vueform | Vue.js based form builder - join to our discord chanel

Learn

Legal & contact

Subscribe to our newsletter

Subscribe

We uses cookies for the best user experience

Allow all Allow essentials only

A2A

网站信息

域名
vueform.com
收录路径
vueform