Shards React is a useful UI library that lets us add many components easily into our React app.
In this article, we’ll look at how to use it to add components to our React app.
Form
Shards React comes with the Form component to let us add forms into our React app.
For instance, we can write:
import React from "react";
import { Form, FormInput, FormGroup } from "shards-react";
import "bootstrap/dist/css/bootstrap.min.css";
import "shards-ui/dist/css/shards.min.css";
export default function App() {
return (
<div className="App">
<Form className="p-1">
<FormGroup>
<label htmlFor="#username">Username</label>
<FormInput id="#username" placeholder="Username" />
</FormGroup>
<FormGroup>
<label htmlFor="#password">Password</label>
<FormInput type="password" id="#password" placeholder="Password" />
</FormGroup>
</Form>
</div>
);
}
to add the Form component with FormGroup s and FormInput s to add input fields into our app.
Checkbox
We can add a checkbox with the FormCheckox component.
For example, we can write:
import React, { useState } from "react";
import { FormCheckbox } from "shards-react";
import "bootstrap/dist/css/bootstrap.min.css";
import "shards-ui/dist/css/shards.min.css";
export default function App() {
const [selected, setSelected] = useState({});
const { orange, lemon } = selected;
const handleChange = (e, fruit) => {
setSelected((fruits) => ({ ...fruits, [fruit]: !selected[fruit] }));
};
return (
<div className="App">
<FormCheckbox
checked={orange}
onChange={(e) => handleChange(e, "orange")}
>
Orange
</FormCheckbox>
<FormCheckbox checked={lemon} onChange={(e) => handleChange(e, "lemon")}>
Lemon
</FormCheckbox>
</div>
);
}
We have the selected state which is an object.
Then we destructured the object and pass those properties into the checked prop of FormCheckbox to set the checked state of each checkbox.
Then we add the onChange handler to each checkbox to call handleChange to update the checked value.
We can turn them to toggles with the toggle prop:
import React, { useState } from "react";
import { FormCheckbox } from "shards-react";
import "bootstrap/dist/css/bootstrap.min.css";
import "shards-ui/dist/css/shards.min.css";
export default function App() {
const [selected, setSelected] = useState({});
const { orange, lemon } = selected;
const handleChange = (e, fruit) => {
setSelected((fruits) => ({ ...fruits, [fruit]: !selected[fruit] }));
};
return (
<div className="App">
<FormCheckbox
toggle
checked={orange}
onChange={(e) => handleChange(e, "orange")}
>
Orange
</FormCheckbox>
<FormCheckbox
toggle
checked={lemon}
onChange={(e) => handleChange(e, "lemon")}
>
Lemon
</FormCheckbox>
</div>
);
}
We can add the small and toggle props to add a small toggle:
import React, { useState } from "react";
import { FormCheckbox } from "shards-react";
import "bootstrap/dist/css/bootstrap.min.css";
import "shards-ui/dist/css/shards.min.css";
export default function App() {
const [selected, setSelected] = useState({});
const { orange, lemon } = selected;
const handleChange = (e, fruit) => {
setSelected((fruits) => ({ ...fruits, [fruit]: !selected[fruit] }));
};
return (
<div className="App">
<FormCheckbox
toggle
small
checked={orange}
onChange={(e) => handleChange(e, "orange")}
>
Orange
</FormCheckbox>
<FormCheckbox
toggle
small
checked={lemon}
onChange={(e) => handleChange(e, "lemon")}
>
Lemon
</FormCheckbox>
</div>
);
}
We can make them inline with the inline prop:
import React, { useState } from "react";
import { FormCheckbox } from "shards-react";
import "bootstrap/dist/css/bootstrap.min.css";
import "shards-ui/dist/css/shards.min.css";
export default function App() {
const [selected, setSelected] = useState({});
const { orange, lemon } = selected;
const handleChange = (e, fruit) => {
setSelected((fruits) => ({ ...fruits, [fruit]: !selected[fruit] }));
};
return (
<div className="App">
<FormCheckbox
inline
checked={orange}
onChange={(e) => handleChange(e, "orange")}
>
Orange
</FormCheckbox>
<FormCheckbox
inline
checked={lemon}
onChange={(e) => handleChange(e, "lemon")}
>
Lemon
</FormCheckbox>
</div>
);
}
Conclusion
We can add forms and checkbox into our React app with Shards React.