A+ forms. Would use again
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
test
.babelrc
.eslintrc
.flowconfig
.gitignore
README.md
package.json
rollup.config.js
yarn.lock

README.md

A+ Forms

I love making forms. Forms are fantastic usage of my time

-- Nobody ever

Sick of overly complex form libraries in React? The ones that promise simplicity, but you end up bashing your head against the wall in couple of weeks? Well, allow me introduce you to the A+ forms, a react forms library that you would use again.

What's The Big Idea?

Remember how nice and easy forms were when HTML was static? You'd just have a form tag, and a couple of input tags, and it would simply send your data where it supposed to go. Well, A+ forms gives you exactly that type of development experience back:

import { Form, TextInput, PasswordInput } from 'a-plus-forms';

const signIn = ({ username, password }) => {
  axios.post('/signin', { username, password });
};

<Form onSubmit={signIn}>
  <TextInput name="username" label="Username" />
  <PasswordInput name="password" label="Password" />
  <button type="submit">Sign In</button>
</Form>

The goal of the A+ forms is to be as close to the original HTML forms API and declarative coding style that everyone knows and loves. The idea is to give developers the stability of well known interfaces paired with covering the needs of the modern front end development practices.

Features? Yeah, we have 'em.

  • Simple, standard looking, and stable API (minimal learning curve)
  • A robust and predictable layouts and styling system
  • Custom inputs support, yup with nested fields
  • Custom validation (including async validation)
  • Easy integration with the server side (including server side validation)
  • Built for 100% testability in the apps
  • Small weight, no deps

Documentation? Youbetcha!

Extensions? Totes!

Tell me more! @nemshilov

Copyright & License

All source code in this repository released under the terms of the ISC license.

Copyright (C) 2017 Nikolay Nemshilov