{"id":13516492,"url":"https://github.com/wearebraid/vue-formulate","last_synced_at":"2025-05-14T09:07:13.620Z","repository":{"id":38680101,"uuid":"213401804","full_name":"wearebraid/vue-formulate","owner":"wearebraid","description":"⚡️ The easiest way to build forms with Vue.","archived":false,"fork":false,"pushed_at":"2023-05-06T23:19:06.000Z","size":3771,"stargazers_count":2250,"open_issues_count":128,"forks_count":240,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-05-04T05:28:35.811Z","etag":null,"topics":["error-handling","form","forms","generation","input","inputs","v-model","validation","vue"],"latest_commit_sha":null,"homepage":"https://vueformulate.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wearebraid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-10-07T14:13:30.000Z","updated_at":"2025-04-29T08:46:29.000Z","dependencies_parsed_at":"2023-09-23T14:36:32.796Z","dependency_job_id":null,"html_url":"https://github.com/wearebraid/vue-formulate","commit_stats":{"total_commits":468,"total_committers":21,"mean_commits":"22.285714285714285","dds":0.2799145299145299,"last_synced_commit":"3fdd6fdc2ed82113e6a78dfeec800b36763d7f95"},"previous_names":[],"tags_count":92,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wearebraid%2Fvue-formulate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wearebraid%2Fvue-formulate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wearebraid%2Fvue-formulate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wearebraid%2Fvue-formulate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wearebraid","download_url":"https://codeload.github.com/wearebraid/vue-formulate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253093458,"owners_count":21853005,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["error-handling","form","forms","generation","input","inputs","v-model","validation","vue"],"created_at":"2024-08-01T05:01:22.748Z","updated_at":"2025-05-14T09:07:13.570Z","avatar_url":"https://github.com/wearebraid.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","Components \u0026 Libraries","UI Utilities [🔝](#readme)"],"sub_categories":["UI Utilities"],"readme":"\u003cp align=\"center\"\u003e\u003ca href=\"https://vueformulate.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg width=\"100\" src=\"https://assets.wearebraid.com/vue-formulate/logo.png\" alt=\"VueFormulate\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://travis-ci.org/wearebraid/vue-formulate\"\u003e\u003cimg src=\"https://travis-ci.org/wearebraid/vue-formulate.svg?branch=master\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@braid/vue-formulate\"\u003e\u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/v/@braid/vue-formulate\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/wearebraid/vue-formulate\"\u003e\u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/wearebraid/vue-formulate\"\u003e\u003c/a\u003e\n  \u003ca href=\"\"\u003e\u003cimg src=\"https://img.badgesize.io/wearebraid/vue-formulate/master/dist/formulate.esm.js.svg?compression=gzip\u0026label=gzip\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://vueformulate.com\"\u003eDocumentation Website\u003c/a\u003e\n\u003c/p\u003e\n\n\n#### 🚀 Looking for Vue 3 support? Checkout [FormKit](https://www.formkit.com) — the best way to build forms with Vue 3.\n\n## What is Vue Formulate?\n\nVue Formulate is the easiest way to build forms with Vue. Please read the [comprehensive documentation](https://vueformulate.com) for live code examples and guidance on using Vue Formulate in your own projects.\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://vueformulate.com\"\u003e\u003cimg src=\"https://assets.wearebraid.com/vue-formulate/read-the-docs.png\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\n\n\u003ctable style=\"width: 100%;\"\u003e\n\t\u003ctr\u003e\n\t\t\u003cth colspan=\"2\"\u003e\n\t\t\t\u003ch3\u003eKey features\u003c/h3\u003e\n\t\t\u003c/th\u003e\n\t\u003ctr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd style=\"width: 50%; vertical-align: top;\"\u003e\n\t\t\t\u003ch4 style=\"margin-top: 0.25em\"\u003e😎 Developer happiness\u003c/h4\u003e\n\t\t\t\u003cp\u003eForms are everywhere, yet surprisingly tedious to author — well, not anymore. Vue Formulate provides a \u003ca href=\"https://vueformulate.com/guide/inputs/#all-options\"\u003epowerful and flexible API\u003c/a\u003e to developers that makes complex form creation a breeze.\u003c/p\u003e\n\t\t\u003c/td\u003e\n\t\t\u003ctd style=\"width: 50%; vertical-align: top;\"\u003e\n\t\t\t\u003ch4 style=\"margin-top: 0.25em;\"\u003e☝️ A single input element\u003c/h4\u003e\n\t\t\t\u003cp\u003eWith Vue Formulate you don't need to remember the names of a dozen components — all form elements are created with a \u003ca href=\"https://vueformulate.com/guide/#inputs\"\u003esingle component\u003c/a\u003e. Easy!\u003c/p\u003e\n\t\t\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd style=\"width: 50%; vertical-align: top;\"\u003e\n\t\t\t\u003ch4 style=\"margin-top: 0.25em\"\u003e💪 Grouped fields\u003c/h4\u003e\n\t\t\t\u003cp\u003eVue Formulate ships with \u003ca href=\"https://vueformulate.com/guide/inputs/types/group/#repeatable-groups\"\u003erepeatable field groups\u003c/a\u003e out of the box. Create complex UIs such as multi-person booking forms with ease.\u003c/p\u003e\n\t\t\u003c/td\u003e\n\t\t\u003ctd style=\"width: 50%; vertical-align: top;\"\u003e\n\t\t\t\u003ch4 style=\"margin-top: 0.25em;\"\u003e🎯 Built-in validation\u003c/h4\u003e\n\t\t\t\u003cp\u003eRidiculously easy \u003ca href=\"https://vueformulate.com/guide/validation\"\u003evalidation\u003c/a\u003e 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.\u003c/p\u003e\n\t\t\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd style=\"width: 50%; vertical-align: top;\"\u003e\n\t\t\t\u003ch4 style=\"margin-top: 0.25em\"\u003e🔌 Plugin system\u003c/h4\u003e\n\t\t\t\u003cp\u003eExtend Vue Formulate's functionality or reuse custom inputs, validation rules, and messages across projects by tapping into the \u003ca href=\"https://vueformulate.com/guide/plugins/#creating-a-new-plugin\"\u003eplugin system\u003c/a\u003e. Make your plugin open source to share with others!\u003c/p\u003e\n\t\t\u003c/td\u003e\n\t\t\u003ctd style=\"width: 50%; vertical-align: top;\"\u003e\n\t\t\t\u003ch4 style=\"margin-top: 0.25em;\"\u003e✨ Generate forms\u003c/h4\u003e\n\t\t\t\u003cp\u003e\u003ca href=\"https://vueformulate.com/guide/forms/#generating-forms\"\u003eGenerate an entire form\u003c/a\u003e from JSON. Vue Formulate includes a schema to allow you to render complex forms from JSON with groups, wrappers, and custom components.\u003c/p\u003e\n\t\t\u003c/td\u003e\n\t\u003c/tr\u003e\n  \u003ctr\u003e\n\t\t\u003ctd style=\"width: 50%; vertical-align: top;\"\u003e\n\t\t\t\u003ch4 style=\"margin-top: 0.25em\"\u003e🎨 Styling Control\u003c/h4\u003e\n\t\t\t\u003cp\u003eWith provided \u003ca href=\"https://vueformulate.com/guide/theming/customizing-classes/\"\u003eclass props\u003c/a\u003e 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.\u003c/p\u003e\n\t\t\u003c/td\u003e\n\t\t\u003ctd style=\"width: 50%; vertical-align: top;\"\u003e\n\t\t\t\u003ch4 style=\"margin-top: 0.25em;\"\u003e🔍 Scoped Slots\u003c/h4\u003e\n\t\t\t\u003cp\u003eNeed even more control over your form’s markup? Vue Formulate ships with full \u003ca href=\"https://vueformulate.com/guide/inputs/slots/\"\u003escoped slots\u003c/a\u003e support so that you can globally or selectively provide your own markup.\u003c/p\u003e\n\t\t\u003c/td\u003e\n\t\u003c/tr\u003e\n  \u003ctr\u003e\n\t\t\u003ctd style=\"width: 50%; vertical-align: top;\"\u003e\n\t\t\t\u003ch4 style=\"margin-top: 0.25em\"\u003e🌐 Internationalization\u003c/h4\u003e\n\t\t\t\u003cp\u003eThanks to the wonderfully collaborative Vue community, Vue Formulate ships with support for \u003ca href=\"https://vueformulate.com/guide/internationalization/\"\u003eover a dozen languages\u003c/a\u003e which are selectively importable to keep bundle size light.\u003c/p\u003e\n\t\t\u003c/td\u003e\n\t\t\u003ctd style=\"width: 50%; vertical-align: top;\"\u003e\n\t\t\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n\nThese features and many more are covered thoroughly at the [documentation website](https://vueformulate.com).\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://vueformulate.com\"\u003e\u003cimg src=\"https://assets.wearebraid.com/vue-formulate/read-the-docs.png\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\n\n## Contributing\nVue Formulate is and always will be _free_ and _open source_. There are many ways available for you to [contribute to Vue Formulate](https://vueformulate.com/guide/contributing/).\n\n#### Core Codebase Contributors\n\nThis project exists thanks to all the people who volunteer their time to [contribute](https://vueformulate.com/guide/contributing/)\n\n\u003ca href=\"https://github.com/wearebraid/vue-formulate/graphs/contributors\"\u003e\u003cimg src=\"https://contributors-img.web.app/image?repo=wearebraid/vue-formulate\" /\u003e\u003c/a\u003e\n\n#### Localization Contributors\n\nVue Formulate is translated into different languages by volunteer native language speakers. Localizations are located in the [Vue Formulate Internationalization repo](https://github.com/wearebraid/vue-formulate-i18n).\n\n\u003ca href=\"https://github.com/wearebraid/vue-formulate-i18n/graphs/contributors\"\u003e\u003cimg src=\"https://contributors-img.web.app/image?repo=wearebraid/vue-formulate-i18n\" /\u003e\u003c/a\u003e\n\n## License\n\n[MIT](https://opensource.org/licenses/MIT)\n\nCopyright (c) 2020-present, [Braid LLC](https://www.wearebraid.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwearebraid%2Fvue-formulate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwearebraid%2Fvue-formulate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwearebraid%2Fvue-formulate/lists"}