{"id":13532272,"url":"https://github.com/pablo-abc/felte","last_synced_at":"2025-05-13T22:07:58.642Z","repository":{"id":38027431,"uuid":"333547090","full_name":"pablo-abc/felte","owner":"pablo-abc","description":"An extensible form library for Svelte, Solid and React","archived":false,"fork":false,"pushed_at":"2024-11-05T19:46:01.000Z","size":6617,"stargazers_count":1046,"open_issues_count":72,"forks_count":42,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-09T23:13:13.352Z","etag":null,"topics":["form","form-validation","forms","javascript","react","solidjs","svelte","typescript","validation"],"latest_commit_sha":null,"homepage":"https://felte.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/pablo-abc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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":"2021-01-27T20:12:14.000Z","updated_at":"2025-04-05T15:55:51.000Z","dependencies_parsed_at":"2023-02-12T16:15:58.028Z","dependency_job_id":"1f10dca4-ac53-4205-b95f-760ffd58d618","html_url":"https://github.com/pablo-abc/felte","commit_stats":{"total_commits":817,"total_committers":27,"mean_commits":30.25925925925926,"dds":0.03549571603427171,"last_synced_commit":"cff4935b0ed048776317aad367e4637cf2c12f56"},"previous_names":[],"tags_count":762,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pablo-abc%2Ffelte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pablo-abc%2Ffelte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pablo-abc%2Ffelte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pablo-abc%2Ffelte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pablo-abc","download_url":"https://codeload.github.com/pablo-abc/felte/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248125589,"owners_count":21051770,"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":["form","form-validation","forms","javascript","react","solidjs","svelte","typescript","validation"],"created_at":"2024-08-01T07:01:09.654Z","updated_at":"2025-04-09T23:13:31.275Z","avatar_url":"https://github.com/pablo-abc.png","language":"TypeScript","readme":"![Felte](./packages/site/public/felte-logo-thin.png)\n\n# Felte: A form library for Svelte, Solid and React\n\n[![Tests](https://github.com/pablo-abc/felte/workflows/Tests/badge.svg)](https://github.com/pablo-abc/felte/actions/workflows/test.yml)\n[![Bundle size](https://img.shields.io/bundlephobia/min/felte)](https://bundlephobia.com/result?p=felte)\n[![NPM Version](https://img.shields.io/npm/v/felte)](https://www.npmjs.com/package/felte)\n[![codecov](https://codecov.io/gh/pablo-abc/felte/branch/main/graph/badge.svg?token=T73OJZ50LC)](https://codecov.io/gh/pablo-abc/felte)\n[![Follow Felte on Twitter](https://img.shields.io/twitter/follow/feltejs?style=social)](https://twitter.com/feltejs)\n[![Follow Pablo on Twitter](https://img.shields.io/twitter/follow/Pablo_ABC?style=social)](https://twitter.com/Pablo_ABC)\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-31-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\nFelte is a simple to use form library for Svelte, Solid and React. No `Field` or `Form` components are needed, just plain stores and actions to build your form however you like. You can see it in action in this [CodeSandbox demo](https://codesandbox.io/s/felte-demo-wce2h?file=/App.svelte)!\n\n## Features\n\n- Single action to make your form reactive.\n- Use HTML5 native elements to create your form. (Only the `name` attribute is necessary).\n- Provides stores and helper functions to handle more complex use cases.\n- No assumptions on your validation strategy. Use any validation library you want or write your own strategy.\n- Handles addition and removal of form controls during runtime.\n- Official solutions for error reporting using `reporter` packages.\n- Well tested. Currently at [99% code coverage](https://app.codecov.io/gh/pablo-abc/felte) and constantly working on improving test quality.\n- Supports validation with [yup](./packages/validator-yup), [zod](./packages/validator-zod), [superstruct](./packages/validator-superstruct) and [vest](./packages/validator-vest).\n- Easily [extend its functionality](https://felte.dev/docs/svelte/extending-felte).\n\n## Simple usage example\n\n### Svelte\n\n```html\n\u003cscript\u003e\n  import { createForm } from 'felte';\n\n  const { form } = createForm({\n    onSubmit: async (values) =\u003e {\n      /* call to an api */\n    },\n  });\n\u003c/script\u003e\n\n\u003cform use:form\u003e\n  \u003cinput type=\"text\" name=\"email\" /\u003e\n  \u003cinput type=\"password\" name=\"password\" /\u003e\n  \u003cbutton type=\"submit\"\u003eSign In\u003c/button\u003e\n\u003c/form\u003e\n```\n\n### Solid\n\n```jsx\nimport { createForm } from '@felte/solid';\n\nfunction Form() {\n  const { form } = createForm({\n    onSubmit: async (values) =\u003e {\n      /* call to an api */\n    },\n  });\n\n  return (\n    \u003cform use:form={form}\u003e\n      \u003cinput type=\"text\" name=\"email\" /\u003e\n      \u003cinput type=\"password\" name=\"password\" /\u003e\n      \u003cbutton type=\"submit\"\u003eSign In\u003c/button\u003e\n    \u003c/form\u003e\n  );\n}\n```\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e To use the `use-*` directive on **Solid**. [You need to extend the JSX namespace](https://docs.solidjs.com/reference/jsx-attributes/use#use). For example:\n\n```typescript\n// src/global.d.ts\ndeclare global {\n  declare module \"solid-js\" {\n    namespace JSX {\n      interface Directives {\n        form: (node: HTMLFormElement) =\u003e void;\n      }\n    }\n  }\n}\n```\n\n### React/Preact\n\n```jsx\nimport { useForm } from '@felte/react';\n// if using preact, use `@felte/preact`\n\nfunction Form() {\n  const { form } = useForm({\n    onSubmit: async (values) =\u003e {\n      /* call to an api */\n    },\n  });\n\n  return (\n    \u003cform ref={form}\u003e\n      \u003cinput type=\"text\" name=\"email\" /\u003e\n      \u003cinput type=\"password\" name=\"password\" /\u003e\n      \u003cbutton type=\"submit\"\u003eSign In\u003c/button\u003e\n    \u003c/form\u003e\n  );\n}\n```\n\n### Vue\n\n```html\n\u003cscript setup\u003e\n  import { useForm } from '@felte/vue';\n\n  const { vForm } = useForm({\n    onSubmit: async (values) =\u003e {\n      /* call to an api */\n    },\n  });\n\u003c/script\u003e\n\u003ctemplate\u003e\n  \u003cform v-form\u003e\n    \u003cinput type=\"text\" name=\"email\" /\u003e\n    \u003cinput type=\"password\" name=\"password\" /\u003e\n    \u003cbutton type=\"submit\"\u003eSign In\u003c/button\u003e\n  \u003c/form\u003e\n\u003c/template\u003e\n```\n\n### VanillaJS with Web Components\n\n```html\n\u003cscript type=\"module\"\u003e\n  import 'https://unpkg.com/@felte/element@0.4.0/dist/min/felte-form.js';\n  const felteForm = document.querySelector('felte-form');\n\n  felteForm.configuration = {\n    onSubmit: async (values) =\u003e {\n      console.log(values);\n    },\n  };\n\u003c/script\u003e\n\n\u003cfelte-form\u003e\n  \u003cform\u003e\n    \u003cinput type=\"text\" name=\"email\" /\u003e\n    \u003cinput type=\"password\" name=\"password\" /\u003e\n    \u003cbutton type=\"submit\"\u003eSign In\u003c/button\u003e\n  \u003c/form\u003e\n\u003c/felte-form\u003e\n```\n\n\u003e This example works without a bundler! Copy its contents to an HTML file and open it on your browser. A more complete example like this, with validation and error reporting, can be found [here](./examples/web-component/cdn).\n\n## More examples\n\nYou can find fully functional examples on the [/examples](./examples) directory of this repository. You should be able to open them on CodeSandbox by replacing github's url to `githubbox`. E.g. Replace `https://github.com/pablo-abc/felte/tree/main/examples/svelte/basic` with `https://githubbox.com/pablo-abc/felte/tree/main/examples/svelte/basic`.\n\n## Packages\n\nThis repository is a mono-repo containing multiple packages located in the `packages` directory. Maintained using [pnpm](https://pnpm.io) and [Changesets](https://github.com/atlassian/changesets).\n\n### Svelte\n\nWe provide two packages that are specific to Svelte:\n\n#### [felte](./packages/felte)\n\nThis is the core package that contains all the basic functionality you need to handle your forms in Svelte. Felte optionally allows you to use error reporters (see them as plugins) to prevent you from needing to find a way to display your errors on your form manually. For this we provide already some reporter packages contained in this same repo.\n\n#### [@felte/reporter-svelte](./packages/reporter-svelte)\n\nA reporter package that uses a Svelte component to pass the validation messages for you to display. This provides an API that might feel the most familiar to most developers.\n\n### Solid\n\nWe provide two packages that are specific to Solid:\n\n#### [@felte/solid](./packages/solid)\n\nThis is the core package that contains all the basic functionality you need to handle your forms in Solid. Same as `felte` but specifically made for Solid.\n\n#### [@felte/reporter-solid](./packages/reporter-solid)\n\nA reporter package that uses a Solid component to pass the validation messages for you to display. This provides an API that might feel the most familiar to most developers.\n\n### React\n\nWe provide two packages that are specific to React:\n\n#### [@felte/react](./packages/react)\n\nThis is the main package that contains the basic functionality you need to handle your forms in React. Same as `felte` but specifically made for React.\n\n#### [@felte/reporter-react](./packages/reporter-react)\n\nA reporter packages that uses a React component to pass the validation messages for you to display. This provides an API that might feel the most familiar to most developers.\n\n### Preact\n\nWe provide two packages that are specific to Preact:\n\n#### [@felte/preact](./packages/preact)\n\nThis is the main package that contains the basic functionality you need to handle your forms in Preact. Same as `felte` but specifically made for Preact. The API is the same as `@felte/react` so you can refer to the same documentation.\n\n#### [@felte/reporter-preact](./packages/reporter-preact)\n\nA reporter packages that uses a Preact component to pass the validation messages for you to display. This provides an API that might feel the most familiar to most developers. The API is the same as `@felte/react` so you can refer to the same documentation.\n\n### Vue\n\nWe provide (experimental) support for [Vue](https://vuejs.org) with the following package:\n\n#### [@felte/vue](./packages/vue)\n\nThis is package contains the basic functionality you need to handle your forms in Vue. Same as `felte` but specifically made for Vue. The API is similar to that of `felte` but using a custom directive to register your form _and_ returning \"accessors\" (similar to the react/preact/solid packages) that resolve into reactive `ref`s.\n\nThere's no documentation for this right now so use at your own risk.\n\n### VanillaJS\n\nWe provide three packages that can be used with only VanillaJS. Two of them using [Web Components](https://www.webcomponents.org/introduction). These elements do not use the shadow DOM since there is no reason to isolate styles.\n\n#### [@felte/element](./packages/element)\n\nThis is the main package that contains the basic functionality you need to handle your forms in vanilla JS using a custom element. Similar to `felte` but specifically made to be used as a custom element. This is the recommended way to handle your forms when using Vanilla JS. Web components are [well supported by all major browsers](https://caniuse.com/custom-elementsv1) so this should be a safe option unless you need to support legacy browsers.\n\n#### [@felte/reporter-element](./packages/reporter-element)\n\nA reporter packages that uses a custom element to display validation messages on the DOM. This the recommended way to display your validation messages when using vanilla JS.\n\n#### [@felte/vanilla](./packages/vanilla)\n\nThis is the main package that contains the basic functionality you need to handle your forms in vanilla JS. Similar to `felte` and other integrations but with all code related to frameworks removed. This requires a bit more work to use, since you'll be the one in charge of cleaning up subscribers and listeners on it. It's API is basically the same as `felte` (Svelte's integration) so you _can_ use Svelte's documentation as a reference. This can be used as a starting point to create your own integration/package for other environments. When it comes to vanilla JS we'd recommend using `@felte/element` using web components.\n\n### Validators\n\nThe following packages can be used with any of the framework specific `felte` wrappers:\n\n#### [@felte/validator-yup](./packages/validator-yup)\n\nA utility package to help you validate your form with [Yup](https://github.com/jquense/yup).\n\n#### [@felte/validator-zod](./packages/validator-zod)\n\nA utility package to help you validate your form with [Zod](https://github.com/colinhacks/zod).\n\n#### [@felte/validator-superstruct](./packages/validator-superstruct)\n\nA utility package to help you validate your form with [Superstruct](https://docs.superstructjs.org).\n\n#### [@felte/validator-vest](./packages/validator-vest)\n\nA utility package to help you validate your form with [Vest](https://vest.vercel.app).\n\n### Reporters\n\nThe following packages can be used with any of the framework specific `felte` wrappers:\n\n#### [@felte/reporter-tippy](./packages/reporter-tippy)\n\nA reporter that uses [Tippy.js](https://atomiks.github.io/tippyjs/) to display your validation messages without needing any extra work.\n\n#### [@felte/reporter-cvapi](./packages/reporter-cvapi)\n\nA reporter that uses the browser's [constraint validation API](https://developer.mozilla.org/en-US/docs/Web/API/Constraint_validation) to display your validation messages.\n\n#### [@felte/reporter-dom](./packages/reporter-dom)\n\nA reporter that displays the error messages in the DOM, either as a single element or a list of elements.\n\n## Contributing\n\nIf you want to contribute to this project you may check [`CONTRIBUTING.md`](./CONTRIBUTING.md) for general guidelines on how to do so.\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/pablo-abc\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/40573613?v=4?s=100\" width=\"100px;\" alt=\"Pablo Berganza\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePablo Berganza\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=pablo-abc\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/pablo-abc/felte/commits?author=pablo-abc\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#ideas-pablo-abc\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#maintenance-pablo-abc\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/pablo-abc/felte/commits?author=pablo-abc\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/loremaps\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/18003912?v=4?s=100\" width=\"100px;\" alt=\"Panagiotis Kapros\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePanagiotis Kapros\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=loremaps\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://codepoet.de/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/462455?v=4?s=100\" width=\"100px;\" alt=\"Benjamin Bender\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBenjamin Bender\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=benbender\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-benbender\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/pablo-abc/felte/commits?author=benbender\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/abhijit-kar\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/25662120?v=4?s=100\" width=\"100px;\" alt=\"Abhijit Kar ツ\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAbhijit Kar ツ\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/issues?q=author%3Aabhijit-kar\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"#ideas-abhijit-kar\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://convertpack.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/741969?v=4?s=100\" width=\"100px;\" alt=\"Hugo Maestá\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHugo Maestá\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=hmaesta\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-hmaesta\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/websocket98765\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/41795874?v=4?s=100\" width=\"100px;\" alt=\"websocket98765\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ewebsocket98765\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/issues?q=author%3Awebsocket98765\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/avimar\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/314077?v=4?s=100\" width=\"100px;\" alt=\"avimar\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eavimar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=avimar\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://umanggalaiya.in/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5698706?v=4?s=100\" width=\"100px;\" alt=\"Umang Galaiya\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eUmang Galaiya\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=umanghome\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/pablo-abc/felte/issues?q=author%3Aumanghome\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/djhi\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1122076?v=4?s=100\" width=\"100px;\" alt=\"Gildas Garcia\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGildas Garcia\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=djhi\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/pablo-abc/felte/issues?q=author%3Adjhi\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/basaran\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/30809170?v=4?s=100\" width=\"100px;\" alt=\"basaran\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ebasaran\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=basaran\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/pablo-abc/felte/issues?q=author%3Abasaran\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://ealush.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11255103?v=4?s=100\" width=\"100px;\" alt=\"Evyatar\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eEvyatar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=ealush\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/schurhammer\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2063443?v=4?s=100\" width=\"100px;\" alt=\"Julian Schurhammer\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJulian Schurhammer\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=schurhammer\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/KoichiKiyokawa\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/40315079?v=4?s=100\" width=\"100px;\" alt=\"Koichi Kiyokawa\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKoichi Kiyokawa\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=KoichiKiyokawa\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/rschristian\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/33403762?v=4?s=100\" width=\"100px;\" alt=\"Ryan Christian\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRyan Christian\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=rschristian\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://bandism.net/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/22633385?v=4?s=100\" width=\"100px;\" alt=\"Ikko Ashimine\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eIkko Ashimine\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=eltociear\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/pasqui23\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6931743?v=4?s=100\" width=\"100px;\" alt=\"pasqui23\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003epasqui23\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=pasqui23\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://icalvin.de/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/40042006?v=4?s=100\" width=\"100px;\" alt=\"Immanuel Calvin Herchenbach\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eImmanuel Calvin Herchenbach\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=icalvin102\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/dawidmachon\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/44931854?v=4?s=100\" width=\"100px;\" alt=\"dawidmachon\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003edawidmachon\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=dawidmachon\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ecelustka\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/46893289?v=4?s=100\" width=\"100px;\" alt=\"Emil Celustka\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eEmil Celustka\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=ecelustka\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://www.callum-macdonald.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/690997?v=4?s=100\" width=\"100px;\" alt=\"Callum Macdonald\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCallum Macdonald\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=chmac\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/jasongitmail\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/50032291?v=4?s=100\" width=\"100px;\" alt=\"Jason\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJason\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=jasongitmail\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/winston0410\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/59228178?v=4?s=100\" width=\"100px;\" alt=\"John Winston\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJohn Winston\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=winston0410\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.timowilhelm.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/22396907?v=4?s=100\" width=\"100px;\" alt=\"Timo Wilhelm\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTimo Wilhelm\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=TimoWilhelm\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/jfreyheit\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/26486071?v=4?s=100\" width=\"100px;\" alt=\"jfreyheit\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ejfreyheit\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=jfreyheit\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/uhon\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/778583?v=4?s=100\" width=\"100px;\" alt=\"Urs Honegger\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eUrs Honegger\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=uhon\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/BradLewis\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/22850972?v=4?s=100\" width=\"100px;\" alt=\"Bradley Lewis\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBradley Lewis\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=BradLewis\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/SirbyAlive\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1277737?v=4?s=100\" width=\"100px;\" alt=\"Julien Tome\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJulien Tome\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=SirbyAlive\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/xvenge00\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/22448115?v=4?s=100\" width=\"100px;\" alt=\"xvenge00\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003exvenge00\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=xvenge00\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.alfredomm.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/20406650?v=4?s=100\" width=\"100px;\" alt=\"Alfredo Maria Milano\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAlfredo Maria Milano\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=alfredomariamilano\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Blankeos\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/38070918?v=4?s=100\" width=\"100px;\" alt=\"Carlo Taleon\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCarlo Taleon\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=Blankeos\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/calvo-jp\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/86353187?v=4?s=100\" width=\"100px;\" alt=\"John Paul Calvo\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJohn Paul Calvo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/pablo-abc/felte/commits?author=calvo-jp\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n## License\n\nMIT\n\n## Browser support\n\nWhile further testing would be needed to provide an accurate answer, Felte should work in all evergreen browsers. Polyfills might be needed if you target older browsers such as IE 11 for, at least, `Promise.all`, `Element.closest`, `URLSearchParams`, `fetch`, `CustomEvent` and iterators.\n","funding_links":[],"categories":["📦 Components \u0026 Libraries","TypeScript"],"sub_categories":["Form"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpablo-abc%2Ffelte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpablo-abc%2Ffelte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpablo-abc%2Ffelte/lists"}