⚡️ The easiest way to build forms with Vue.

Overview

VueFormulate

npm GitHub

Documentation Website

What is Vue Formulate?

Vue Formulate is the easiest way to build forms with Vue. Please read the comprehensive documentation for live code examples and guidance on using Vue Formulate in your own projects.

Key features

😎 Developer happiness

Forms are everywhere, yet surprisingly tedious to author — well, not anymore. Vue Formulate provides a powerful and flexible API to developers that makes complex form creation a breeze.

☝️ A single input element

With Vue Formulate you don't need to remember the names of a dozen components — all form elements are created with a single component. Easy!

💪 Grouped fields

Vue Formulate ships with repeatable field groups out of the box. Create complex UIs such as multi-person booking forms with ease.

🎯 Built-in validation

Ridiculously easy validation out-of-the-box to handle 95% of use-cases. Help text, validation rules, and validation messages are simple props. Need more? You can add custom validations too.

🔌 Plugin system

Extend Vue Formulate's functionality or reuse custom inputs, validation rules, and messages across projects by tapping into the plugin system. Make your plugin open source to share with others!

Generate forms

Generate an entire form from JSON. Vue Formulate includes a schema to allow you to render complex forms from JSON with groups, wrappers, and custom components.

🎨 Styling Control

With provided class props you can add your own set of style classes globally or on a case-by-case basis. Tailwind? No problem. Bootstrap? You're covered. Roll your own? Right on, it’s supported.

🔍 Scoped Slots

Need even more control over your form’s markup? Vue Formulate ships with full scoped slots support so that you can globally or selectively provide your own markup.

🌐 Internationalization

Thanks to the wonderfully collaborative Vue community, Vue Formulate ships with support for over a dozen languages which are selectively importable to keep bundle size light.

These features and many more are covered thoroughly at the documentation website.

Contributing

Vue Formulate is and always will be free and open source. There are many ways available for you to contribute to Vue Formulate.

Core Codebase Contributors

This project exists thanks to all the people who volunteer their time to contribute

Localization Contributors

Vue Formulate is translated into different languages by volunteer native language speakers. Localizations are located in the Vue Formulate Internationalization repo.

License

MIT

Copyright (c) 2020-present, Braid LLC

Comments
  • Proposal: a class map for easy class manipulation.

    Proposal: a class map for easy class manipulation.

    Describe the new feature you'd like Proposed solution for allowing classes to be overriden on any sub-element of vue-formulate:

    The default would be something like:

    Vue.use(VueFormulate, {
      classmap: context => ({
        "outer": `formulate-input`,
        "outer-wrapper": `formulate-input-wrapper`,
        "element-wrapper": `formulate-input-element formulate-input-element--${context.type}`,
        "element": '',
        "help": "formulate-input-help",
        "errors": "formulate-input-errors",
        "error": "formulate-input-error"
      })
    }
    

    The idea is that classMap function would be defined globally for all inputs, and then each sub-type could override it, and then as granular as individual input fields could also override each:

    <FormulateInput
      type="text"
      classmap-element="form-input block w-full sm:text-sm sm:leading-5"
    />
    

    The idea is that the above solution would allow a developer to setup their own fields using a class-based ui framework and handle 90% of a project's form styles globally for all FormulateInput elements, and then on a case by case basis easily override the styles on a per-element basis, and lastly scoped slots as a nuclear option.

    I'll reiterate the goal of Vue Formulate is to make high quality form building fast and easy, so I we want to provide that 90% solution as painlessly as possible. 90% of inputs shouldn't require any additional configuration, scoped slot usage, etc.

    What percentage of vue-formulate users would benefit? Probably about 20%


    I'm looking for feedback from users of frameworks like Tailwind, Tachyons, or Bootstrap.

    suggestions welcome future 
    opened by justin-schroeder 35
  • Emit @keyup, @keydown, @click, @focus, @blur on FormulateInput from native inputs

    Emit @keyup, @keydown, @click, @focus, @blur on FormulateInput from native inputs

    Describe the new feature you'd like I would like to be able to listen for keypress events on a FormulateInput component. Perhaps I'm doing something wrong, but

    <FormulateInput
            type="text"
            placeholder="Test"
            v-model="test"
           @keyup.tab="someFunction"
    />
    

    does not trigger someFunction when the tab key is pressed. This is not limited to this key, I have tried other keys as well.

    What percentage of vue-formulate users would benefit? I don't know if this is a common use case, but in my case, I want to be able to trigger the creation of a new item when tab is pressed.

    future 
    opened by soullpoint 18
  • Can't submit form

    Can't submit form

    Hello Vue Formulate developers,

    I have the feeling that I miss something: I created a form with Vue Formulate and everything works fine except that if I click on submit button nothing happens.

    `

     <formulate-form
         action="https://api.staticforms.xyz/submit"
         method="post"
     >
     
         <formulate-input
          type="hidden"
          name="accessKey"
          value="[secret key]"
        >
        </formulate-input>
    
         <formulate-input
          type="hidden"
          name="redirectTo"
          value="[private address]"
        >
        </formulate-input>
    
        <formulate-input
          id="honeypot"
          type="text"
          name="honeypot"
        >
        </formulate-input>
     
        <formulate-input
          type="text"
          name="name"
          label="Naam"
          placeholder="Voer hier uw voor- en achternaam in"
          validation="required|max:50,length"
          :validation-messages="{
              required: 'Voer hier uw voor- en achternaam in.',
              max: 'De voor- en achternaam mogen samen niet langer zijn dan 50 tekens.'
          }"
        >
        </formulate-input>
    
        <formulate-input
          type="email"
          name="email"
          label="E-mailadres"
          placeholder="Voer hier uw e-mailadres in"
          validation="email|max:50,length"
          :validation-messages="{              
              email: 'Voer een geldig e-mailadres in.',
              max: 'Het e-mailadres mag niet langer zijn dan 50 karakters.'
          }"
        >
        </formulate-input>
    
        <formulate-input
          type="textarea"
          name="message"
          label="Bericht"
          placeholder="Voer hier uw bericht in"
          validation="required|max:1000,length"
          :validation-messages="{              
              required: 'Voer hier uw bericht in.',
              max: 'Het bericht mag niet langer zijn dan 1000 karakters.'
          }"
        >
        </formulate-input>
    
         <formulate-input
          type="submit"
          name="Verzenden"          
        >
        </formulate-input>
                       
    </formulate-form> 
    
    `

    For privacy concerns I removed the access key and private address in the code.

    Is there something missing in the above code? Is there something that I should add?

    I guess the action attribute should just work?

    opened by Verhoeckx 18
  • Array as options for select input

    Array as options for select input

    Is there an option to give an array as the input for the select input?

    For example, something like this

    FormulateInput v-model="value" :options="{Name 1, Name 2, Name 3, Name 4}" type="select" placeholder="Select a Name from the list"

    Basically the usecase is, I have a list of names fetched from database which is in an array format and user has to select a name from only that list. How can I use vueformulate in this case?

    feature request 
    opened by leokyohan 14
  • Events for a FormulateForm generated by a schema

    Events for a FormulateForm generated by a schema

    Describe the new feature you'd like Capture @click from type button in a FormulateForm generated by a schema. Alternatively be able to use multiple submit buttons in a schema and differentiate between the one @clicked. The @click is not processed by the FormulateForm and have tried looking for ways for adding the event listeners on mounted() but all looks messy. If I use multiple 'submits' the $event payload does not enable me to differentiate between the different submit buttons. I could clone the FormulateForm and add some functions - but would be great if I could capture a button click and read/process the properties from that. I am not sure if I am missing anything but dont see a way of doing this without ending up with a subpar solution.

    btw - love the library! tried a number but this seems the best with good documentation.

    What percentage of vue-formulate users would benefit? 80% - well all those wanting to use the FormuateForm with a schema.

    feature request future 
    opened by johnha 14
  • Theming and Field Groups

    Theming and Field Groups

    I worked through the documentation, and I have the following questions (in case I've missed something in the docs):

    • Field Groups: Is there an option to group fields together on a form? E.g. on a user profile form having a section for person details (fields for name, last name, etc), a section for profile (fields for user name, avatar image), section with contact details (fields for phone, email, etc)

    • Theming: the theming section in the docs mention that you can style the field elements using SCSS variables. Is it possible to use components from another UI library, e.g. Vue Ant Design?

    feature request help wanted question suggestions welcome 
    opened by go4cas 14
  • TypeScript support

    TypeScript support

    Any plans to support TypeScript?

    I see typescript in dependencies: https://github.com/wearebraid/vue-formulate/blob/master/package.json#L80

    But don't see any declarations 🙂

    P.S. Formulate looks like a great solution for building forms. Well documented, customizable, friendly API... I totally want to try it in my next application.

    feature request help wanted 
    opened by slavarazum 14
  • date format

    date format

    Is there an option to give the date format for vue-formulate? If it is not there it would be a really good option to give it. I was trying to give date format MM-DD-YYYY. But by default it i coming in DD-MM-YYYY format.

    feature request 
    opened by leokyohan 13
  • Add array support for storing values in form data

    Add array support for storing values in form data

    Add array support for storing lists/arrays

    Something like this whereby the index is used for storing in the correct index

    <div class="border border-black p-6">
          <FormulateInput
            v-for="(item, index) in items"
            :key="index + 1"
            type="text"
            :name="item"
            :index="index+1"
            :value="item"
            placeholder="Add item"
            class="mb-1"
            element-class="w-full"
          />
    </div>
    

    This wil now store data in the form like

    item[1]='input1'
    item[2]='input2'
    item[3]='input3'
    
    feature request suggestions welcome 
    opened by Rednas83 13
  • Add a new `optional` validation rule

    Add a new `optional` validation rule

    Describe the bug I am trying to create a form with an optional URL field. When applying the URL validation rule to this field, it automatically fails validation if the field remains empty. This occurs because isUrl rejects if passed an empty string. Note this occurs on both type="text" and type="url" fields. Because of this, optional text fields cannot be used in a form with URL validation.

    Link to the URL validation function, which rejects if passed an empty string (I tested this with that npm package): https://github.com/wearebraid/vue-formulate/blob/c6ffe1995be0df608c9c735186f4158662449fc8/src/libs/rules.js#L283

    You can actually see this bug on the validation documentation page. Upon page load, the URL validation field already has an error message because the field starts empty: https://vueformulate.com/guide/validation/#url

    To Reproduce https://codepen.io/mjlehrke/pen/jOWyyrq

    1. Create a URL or text field with FormulateInput
    2. Add URL validation with validation="url"
    3. Attempt to submit form with empty field
    4. It will fail validation

    Reproduction Submit empty fields in this codepen. It will automatically fail validation. https://codepen.io/mjlehrke/pen/jOWyyrq

    Expected behavior An optional text field with URL validation should not automatically fail validation if that optional field is empty. Bigger picture, any Formulate field should only go through validation if it is not empty or it has the 'required' rule.

    Thinking about this further, maybe there should be an 'optional' validation rule that bails out of validation if the field is empty? This would allow you to add validation to a field, but make that field optional, and only validate anything if it is not empty. (I can make a new feature request if needed)

    Screenshots Formulate Documentation

    If I duplicate a repeatable input group, it automatically fails validation Validation failure

    Device information:

    • Device: PC
    • OS: Windows 10
    • Browser: Firefox & Chrome
    • Version 2.4.0 (it was also happening in 2.3.8)
    feature request future 
    opened by mjlehrke 13
  • Add an event when FormulateForm is intialized/mounted

    Add an event when FormulateForm is intialized/mounted

    Currently you can only guess when the form is initialized.

    I think there are 2 possible solutions for this

    Solution 1: Trigger the input event after the form is fully loaded

      <FormulateForm
        v-model="data"
        :schema="items"
        @input="update($event)" // Emitted on change (only after mounted event and when the form is fully initialized!) 
    />
    

    Solution 2: Add an additional event

      <FormulateForm
        v-model="data"
        :schema="items"
        @input="update($event)" //  Emitted on change (only after mounted!)
        @mounted="update($event)" //  Emitted when the form is fully initialized/mounted
      />
    

    Actual behaviour

      <FormulateForm
        v-model="data"
        :schema="items"
        @input="update($event)" // Emitted on change (also during mount/initialization! Why is this necessary?)
       />
    
    feature request 
    opened by Rednas83 12
  • Bump express from 4.17.1 to 4.18.2

    Bump express from 4.17.1 to 4.18.2

    Bumps express from 4.17.1 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump qs from 6.5.2 to 6.5.3

    Bump qs from 6.5.2 to 6.5.3

    Bumps qs from 6.5.2 to 6.5.3.

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • textarea emits false immediately after value when wrapped in conditional statement in tsx template

    textarea emits false immediately after value when wrapped in conditional statement in tsx template

    Describe the bug When conditionally rendering a textarea component using tsx templates it first emits the character typed followed by the value false

    To Reproduce Steps to reproduce the behavior:

    Given a component like this:

    import type { VNode } from "vue";
    import { Component, Vue } from "vue-property-decorator";
    
    const typeOptions = [
        { value: "text", label: "Text" },
        { value: "select", label: "Dropdown" }
    ];
    
    @Component
    export class MyForm extends Vue {
    
        private values: any = {};
    
        public render(): VNode {
            return (
                <formulate-form
                    v-model={this.values}
                >
                    <formulate-input
                        name="type"
                        label="Type"
                        type="select"
                        options={typeOptions}
                        validation="required"
                    />
    
                    {this.values?.type === "select" && (
                        <formulate-input
                            name="selectOptions"
                            label="Options"
                            type="textarea"
                            help="Enter a new line for each option"
                            onInput={this.onOptionsInput}
                            validation="required"
                        />
                    )}
                </formulate-form>
            );
        }
    
        private onOptionsInput(value) {
            console.log("options: ", value);
        }
    }
    
    1. Select the select/dropdown type
    2. Type something in the newly shown options text area

    Expected behavior It should show the value you typed in the textarea It should only log once for each key press and it should log only what was typed

    Actual behaviour It logs twice:

    • the key initially pressed
    • the value false

    Screenshots image

    Device information:

    • Device: Laptop
    • OS: Windows 11
    • Browser Chrome
    • Version 107.0.5304.107

    Notes:

    • I tried reproducing this in the code sandbox but was unable to so have assumed this is only reproducible in tsx rather than more traditional SFC.
    • In my own code I have removed and added the conditional statement wrapping the component to verify this is part of the problem
    • I tried adding the keep-model-data prop to the input but this did not resolve the issue
    bug report 
    opened by hisuwh 1
  • Need to get the name of the file Input in uploader

    Need to get the name of the file Input in uploader

    NOTE: If you have a question about how to use Vue Formulate, please do not file a bug report. Instead checkout the community page of the documentation for details on the best places to ask those questions.

    https://vueformulate.com/guide/community/

    Describe the bug

    • While using uploader option, how to track the removal of file in ith input. Also in case of multiple file uploads, i am not getting the entire file list instaed uploader is invoking for each file upload.
    • Upload function is executed twice when the file is being uploaded and when the form is being submitted. How to avoid this, I tried using upload-behaviour="delayed" but it is not working.
    • It will be very useful for me, i tried few things but couldn't get it.
    • Please help. I am not sure where to post my question so created a bug for it.
    • It will be good if a community forum is avalable to discuss/clear things as i could find any slack issues/yuoutube tutorials regardin vue-formulate.
    Screenshot 2022-10-14 at 7 22 45 PM

    To Reproduce Steps to reproduce the behavior:

    1. Go to '...'
    2. Click on '....'
    3. Type '....'
    4. See error

    Reproduction It's hugely helpful if you can isolate the bug in a CodePen or CodeSandbox. You can use VueFormulate via CDN to show the issue. This isn't a requirement just a big productivity boost. To help, we've produce starters you can easily fork:

    CodePen:

    CodePen is perfect for simple reproductions. Vue Formulate is already loaded and ready to use:

    https://codepen.io/boyd/pen/YzyJPor

    CodeSandbox

    This is better for occasions when you need to show issues with registering Vue Formulate or configuring base options.

    https://codesandbox.io/s/vue-formulate-reproduction-template-p5c1i?file=/src/components/Reproduction.vue

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Device information:

    • Device: [e.g. iPhone6, 1997 Dell]
    • OS: [e.g. iOS8.1]
    • Browser [e.g. stock browser, safari]
    • Version [e.g. 22]
    bug report 
    opened by Tharun-coder 0
Owner
Braid
Open source tools written by the team at Braid LLC.
Braid
Create conversational conditional-logic forms with Vue.js.

Vue Flow Form Create conversational conditional-logic forms with Vue.js. Live Demos Questionnaire example Support page example Quiz example Project Do

DITDOT 633 Jan 4, 2023
A template repository / quick start to build Azure Static Web Apps with a Node.js function. It uses Vue.js v3, Vue Router, Vuex, and Vite.js.

Azure Static Web App Template with Node.js API This is a template repository for creating Azure Static Web Apps that comes pre-configured with: Vue.js

Marc Duiker 6 Jun 25, 2022
:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin

English | 简体中文 | 日本語 | Spanish SPONSORED BY 活动服务销售平台 客户消息直达工作群 Introduction vue-element-admin is a production-ready front-end solution for admin inter

花裤衩 80.1k Dec 31, 2022
:eyes: Vue in React, React in Vue. Seamless integration of the two. :dancers:

vuera NOTE: This project is looking for a maintainer! Use Vue components in your React app: import React from 'react' import MyVueComponent from './My

Aleksandr Komarov 4k Dec 30, 2022
🎉 基于 vite 2.0 + vue 3.0 + vue-router 4.0 + vuex 4.0 + element-plus 的后台管理系统vue3-element-admin

vue3-element-admin ?? 基于 Vite 2.0 + Vue3.0 + Vue-Router 4.0 + Vuex 4.0 + element-plus 的后台管理系统 简介 vue3-element-admin 是一个后台前端解决方案,它基于 vue3 和 element-plu

雪月欧巴 84 Nov 28, 2022
Jenesius vue modal is simple library for Vue 3 only

Jenesius Vue Modal Jenesius vue modal is simple library for Vue 3 only . Site Documentation Installation npm i jenesius-vue-modal For add modals in yo

Архипцев Евгений 63 Dec 30, 2022
Mosha-vue-toastify - A light weight and fun Vue 3 toast or notification or snack bar or however you wanna call it library.

Mosha Vue Toastify A lightweight and fun Vue 3 toast or notification or snack bar or however you wanna call it library. English | 简体中文 Talk is cheap,

Baidi Liu 187 Jan 2, 2023
A plugin that can help you create project friendly with Vue for @vue/cli 4.5

vue-cli-plugin-patch A plugin that can help you create project friendly with Vue for @vue/cli 4.5. Install First you need to install @vue/cli globally

null 2 Jan 6, 2022
Veloce: Starter template that uses Vue 3, Vite, TypeScript, SSR, Pinia, Vue Router, Express and Docker

Veloce Lightning-fast cold server start Instant hot module replacement (HMR) and dev SSR True on-demand compilation Tech Stack Vue 3: UI Rendering lib

Alan Morel 10 Oct 7, 2022
@auth0/auth0-spa-js wrapper in the "Vue way", with full TS support

vue-auth0 This is a wrapper around @auth0/auth0-spa-js meant to ease the usage into Vue projects. This is heavily inspired by the snippet into Auth0 o

Dreamonkey S.r.l. 5 Oct 18, 2022
VGENT – Vue Agent, that helps you to develop in a more effective way

VGENT is a CLI tool that generates boilerplate files for components, pages in your Nuxt.js or Vue.js project.A file generator for Nuxt.js

Arman Kuanysh 20 Dec 29, 2022
:necktie: :briefcase: Build fast :rocket: and easy multiple beautiful resumes and create your best CV ever! Made with Vue and LESS.

best-resume-ever ?? ?? Build fast ?? and easy multiple beautiful resumes and create your best CV ever! Made with Vue and LESS. Cool Creative Green Pur

Sara Steiert 15.8k Jan 9, 2023
Vue Native is a framework to build cross platform native mobile apps using JavaScript

Vue Native Visit our website at vue-native.io or read the official documentation here. Build native mobile apps using Vue Vue Native is a framework to

GeekyAnts 8.4k Jan 6, 2023
:bento: Full-Stack solution to quickly build PWA applications with Vue.js and Firebase

Welcome to bento-starter ?? ?? bento-starter is an Open-Source Full-Stack solution that helps you to build fast and maintainable web applications usin

Franck Abgrall 1.5k Dec 24, 2022
Build performant, native and cross-platform desktop applications with native Vue + powerful CSS like styling.🚀

Vue NodeGui Build performant, native and cross-platform desktop applications with Vue. ?? Vue NodeGUI is powered by Vue ?? and Qt5 ?? which makes it C

NodeGui 765 Dec 30, 2022
📓 The UI component explorer. Develop, document, & test React, Vue, Angular, Web Components, Ember, Svelte & more!

Build bulletproof UI components faster Storybook is a development environment for UI components. It allows you to browse a component library, view the

Storybook 75.9k Jan 9, 2023
A Vue.js 2.0 UI Toolkit for Web

A Vue.js 2.0 UI Toolkit for Web. Element will stay with Vue 2.x For Vue 3.0, we recommend using Element Plus from the same team Links Homepage and doc

饿了么前端 53k Jan 3, 2023
The Intuitive Vue Framework

Build your next Vue.js application with confidence using Nuxt: a framework making web development simple and powerful. Links ?? Documentation: https:/

Nuxt 41.8k Jan 5, 2023
🐉 Material Component Framework for Vue

Supporting Vuetify Vuetify is a MIT licensed project that is developed and maintained full-time by John Leider and Heather Leider; with support from t

vuetify 36.2k Jan 3, 2023