[](https://bundlephobia.com/result?p=leva) [](https://discord.gg/poimandres)
## This repo is under heavy development
## Features
- ⭐️ Beautiful by default
- More than 12 different kinds of inputs available
- Smart input type recognition
- Easy-to-make plugins
- ✅ Keyboard accessible
- ⚡️ No setup necessary
### Installation
```bash
npm i leva
```
### Quick start
Simply call the `useControls` hook from anywhere in your app:
```jsx
import { useControls } from 'leva'
function MyComponent() {
const { name, aNumber } = useControls({ name: 'World', aNumber: 0 })
return (
)
}
```
NOTE: Using Leva with React 18 will cause a console error about createRoot which you can safely ignore, or fix by following the instructions here: [discussion](https://github.com/pmndrs/leva/issues/358)
### Documentation
- [Getting Started](/docs/getting-started/introduction.md)
- [Inputs](/docs/getting-started/inputs.md)
- [Configuration](/docs/getting-started/configuration.md)
- [Styling](/docs/getting-started/styling.md)
- [Advanced: Controlled Inputs](/docs/advanced/controlled-inputs.md)
- [Advanced: Creating Plugins](/docs/advanced/creating-plugins.md)
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Andrew Prifer
Aria
David Bismut
Dmitry Ivakhnenko
Gianmarco
Guido Vizoso
Han
Ivan Rossi
Laurin Quast
Marco Fugaro
Marco Ludovico Perego
Piotr Monwid-Olechnowicz
clementcassajus
thephoenixofthevoid
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!