{"id":13824486,"url":"https://github.com/Mini-ghost/vorms","last_synced_at":"2025-07-08T19:32:06.811Z","repository":{"id":37321597,"uuid":"486269705","full_name":"Mini-ghost/vorms","owner":"Mini-ghost","description":"Vue Form Validation with Composition API","archived":false,"fork":false,"pushed_at":"2024-03-04T01:54:03.000Z","size":734,"stargazers_count":584,"open_issues_count":14,"forks_count":22,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-11-01T19:39:35.818Z","etag":null,"topics":["composition-api","form","form-validation","forms","validation","vue","vuejs3"],"latest_commit_sha":null,"homepage":"https://vorms.mini-ghost.dev","language":"TypeScript","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/Mini-ghost.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-27T16:26:30.000Z","updated_at":"2024-11-01T16:55:15.000Z","dependencies_parsed_at":"2024-01-06T10:29:11.592Z","dependency_job_id":"edae3161-a851-41e2-9a47-c87ec6fcfcb9","html_url":"https://github.com/Mini-ghost/vorms","commit_stats":{"total_commits":171,"total_committers":4,"mean_commits":42.75,"dds":0.07017543859649122,"last_synced_commit":"2c2c8e34616aa6a15224f01d2a51851b1584ac21"},"previous_names":["mini-ghost/vue-composition-form"],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mini-ghost%2Fvorms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mini-ghost%2Fvorms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mini-ghost%2Fvorms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mini-ghost%2Fvorms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mini-ghost","download_url":"https://codeload.github.com/Mini-ghost/vorms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225457796,"owners_count":17477356,"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":["composition-api","form","form-validation","forms","validation","vue","vuejs3"],"created_at":"2024-08-04T09:01:03.537Z","updated_at":"2024-11-20T02:30:46.698Z","avatar_url":"https://github.com/Mini-ghost.png","language":"TypeScript","funding_links":[],"categories":["Packages","TypeScript","Components \u0026 Libraries"],"sub_categories":["UI Utilities"],"readme":"\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/Mini-ghost/vorms\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/Mini-ghost/vorms/main/docs/public/logo.svg\" alt=\"Vorms - Vue Form Validation with Composition API\" width=\"240\"\u003e\n\u003c/a\u003e\n\u003cbr\u003e\nVue Form Validation with Composition API\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://www.npmjs.com/package/@vorms/core\" target=\"__blank\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@vorms/core?color=34A88C\u0026label=\" alt=\"NPM version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://vorms.mini-ghost.dev/\" target=\"__blank\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=\u0026message=docs\u0026color=3D957F\" alt=\"Documentations\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.npmjs.com/package/@vorms/core\" target=\"__blank\"\u003e\u003cimg alt=\"NPM Downloads\" src=\"https://img.shields.io/npm/dm/@vorms/core?color=00629E\u0026label=\"\u003e\u003c/a\u003e\n\u003cbr\u003e\n\u003ca href=\"https://github.com//Mini-ghost/vorms\" target=\"__blank\"\u003e\u003cimg alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/Mini-ghost/vorms?style=social\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Feature\n\n- **Type Strong**: Written in TypeScript, with TSDoc.\n- **[Lightweight](https://bundlephobia.com/package/@vorms/core@latest)**: Only 12kb compressed (4kb compressed + gzip compressed) and fully tree-shaking.\n- **Easiest**: Vorm uses the [Composition API](https://vuejs.org/guide/extras/composition-api-faq.html) to give you a very seamless development experience.\n- **Flexible**: [Yup](https://github.com/jquense/yup), [Zod](https://github.com/colinhacks/zod), [Valibot](https://github.com/fabian-hiller/valibot) and self-def validation are supported.\n\n## Install\n\n```bash\nnpm install @vorms/core\n```\n\n## CDN\n\n```html\n\u003cscript src=\"https://unpkg.com/@vorms/core\"\u003e\u003c/script\u003e\n```\n\nIt will be exposed to global as `window.Vorms`\n\n## Usage\n\n**setup script**\n\n```ts\nimport { useForm } from '@vorms/core'\n\nconst sugarOptions = ['no', 'light', 'half', 'standard']\n\nconst { register, handleSubmit, handleReset } = useForm({\n  initialValues: {\n    drink: '',\n    sugar: 'light',\n  },\n  onSubmit(data) {\n    console.log(data)\n  }\n})\n\nconst { value: drink, attrs: drinkFieldAttrs } = register('drink')\nconst { value: sugar, attrs: sugarFieldAttrs } = register('sugar')\n```\n\n**template**\n\n```html\n\u003cform @submit=\"handleSubmit\" @reset=\"handleReset\"\u003e\n  \u003clabel\u003eDrink\u003c/label\u003e\n  \u003cinput v-model=\"drink\" type=\"text\" v-bind=\"drinkFieldAttrs\"\u003e\n\n  \u003clabel\u003eSugar level\u003c/label\u003e\n  \u003cselect v-model=\"sugar\" v-bind=\"sugarFieldAttrs\"\u003e\n    \u003coption v-for=\"item in sugarOptions\" :key=\"item\" :value=\"item\"\u003e\n      {{ item }}\n    \u003c/option\u003e\n  \u003c/select\u003e\n\n  \u003cbutton type=\"reset\"\u003eReset\u003c/button\u003e\n  \u003cbutton type=\"submit\"\u003eSubmit\u003c/button\u003e\n\u003c/form\u003e\n```\n\nRefer [documentations](https://vorms.mini-ghost.dev/) for more details.\n\n## Examples\n\n- [Login](https://stackblitz.com/edit/vorms-login?file=src%2FApp.vue)\n- [Field Array](https://stackblitz.com/edit/vorms-field-array?file=src%2FApp.vue)\n- [Cross Field Validate](https://stackblitz.com/edit/vorms-corss-field-validate?file=src%2FApp.vue)\n- [Wizard Form](https://stackblitz.com/edit/vorms-wizard-form?file=src%2FApp.vue)\n- [Custom Components](https://stackblitz.com/edit/vorms-custom-components?file=src%2FApp.vue)\n- [UI Library - Vuetify](https://stackblitz.com/edit/vorms-vuetify?file=src%2FApp.vue)\n- [UI Library - Element Plus](https://stackblitz.com/edit/vorms-with-element-plus?file=src%2FApp.vue)\n- [Validate With Yup](https://stackblitz.com/edit/vorms-validate-with-yup?file=src%2FApp.vue)\n- [Validate With Zod](https://stackblitz.com/edit/vorms-validate-with-zod?file=src%2FApp.vue)\n\n## Thanks\n\nThis project is heavily inspired by the following awesome projects.\n\n- [Formik](https://github.com/jaredpalmer/formik)\n- [React Hook Form](https://github.com/react-hook-form/react-hook-form)\n- [VeeValidate](https://github.com/logaretm/vee-validate)\n\n## Contributors\n\nThanks to the wonderful people who have already contributed to Vorms!\n\n\u003ca href=\"https://github.com/mini-ghost/vorms/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=mini-ghost/vorms\" /\u003e\n\u003c/a\u003e\n\nMade with [contrib.rocks](https://contrib.rocks).\n\n## License\n\n[MIT License](https://github.com/Mini-ghost/vorms/blob/main/LICENSE) © 2022-PRESENT [Alex Liu](https://github.com/Mini-ghost)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMini-ghost%2Fvorms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMini-ghost%2Fvorms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMini-ghost%2Fvorms/lists"}