Dynamic Form Built With
React
&CSS Grid
layout
Folio
has two major bases Cells
for data and Grid
for layout. With these components, making a form should be easier than ever. See full examples of folio 👉 https://jalal246.github.io/folio/.
Run locally:
git clone https://github.com/jalal246/folio.git
npm install
npm run storybook
- Go to http://localhost:6006/
Using npm:
npm install --save folio-forms
folio depends on
react
andprop-types
. Please make sure you have those installed as well.
unpkg
https://unpkg.com/folio-forms/dist/
const myForm = ({ mySubmitFunc }) => (
<Folio>
<Form onSubmit={mySubmitFunc}>
<Grid>
<GridItem row={1} col={1}>
<Cell valueKey="myFullName" type="text" />
</GridItem>
<GridItem row={2} col={1}>
<Cell valueKey="myEmail" type="email" />
</GridItem>
<button type="submit">submit</button>
</Grid>
</Form>
</Folio>
);
// mySubmitFunc will return: (event, {myFullName: "" myEmail: ""})
import Folio, { Form, Grid, Cell, CellItem, GridItem } from "folio-forms";
All components accept custom props + children which is required in all except Cell
property | type | description | default |
---|---|---|---|
component | node/function | custom render-component | form |
onSubmit | function | submit function returns values in all cells (event, {...values}) | () {} |
property | type | description | default |
---|---|---|---|
component | node/function | custom render-component | div |
col | number | number of columns in grid | |
colWidth | string | fixed column width | |
colMinWidth | string | column minimum width | auto |
colMaxWidth | string | column maximum width | 1fr |
row | number | number of rows in grid | |
rowWidth | string | fixed row width | |
rowMinWidth | string | row minimum width | auto |
rowMaxWidth | string | row maximum width | 1fr |
Used for implicit grid layout.
property | type | description | default |
---|---|---|---|
component | node/function | custom render-component | div |
row | number | number of columns in grid | |
toRow | number | column width | |
col | number | column minimum width | 0 |
toCol | number | column maximum width | |
isCenter | Boolean | number of rows in grid | false |
isHorizontal | Boolean | true |
Essential to register values in the store, return values it when submit.
property | type | description | default |
---|---|---|---|
component | node/function | custom render-component | div |
valueKey | string | key used to store value in values object | type + id + groupname (if any) |
id | string | auto generated by function | |
value | string | if type not button | "" |
checked | Boolean | if type button | false |
type | Boolean | text | |
groupName | string | only for button toggle |
Used with list to wrap children.
property | type | description | default |
---|---|---|---|
component | node/function | custom render-component | option |
Enable end-user to create, design and shape forms.
This project is licensed under the MIT License