pmndrs/leva

πŸŒ‹ React-first components GUI

TypeScript

6,251

878 commits

updated Nov 9, 2025

See the code

README

npm (tag) npm bundle size GitHub Workflow Status Discord Shield


A GUI you are going to lava.
Customizable, extensible and beautiful by default.



🚧🚧 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

npm i leva

Quick start

Simply call the useControls hook from anywhere in your app:

import { useControls } from 'leva'

function MyComponent() {
  const { name, aNumber } = useControls({ name: 'World', aNumber: 0 })

  return (
    <div>
      Hey {name}, hello! {aNumber}
    </div>
  )
}

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

Documentation

Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

gui
react

pmndrs/leva

πŸŒ‹ React-first components GUI

TypeScript

6,251

878 commits

updated Nov 9, 2025

See the code

README

npm (tag) npm bundle size GitHub Workflow Status Discord Shield


A GUI you are going to lava.
Customizable, extensible and beautiful by default.



🚧🚧 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

npm i leva

Quick start

Simply call the useControls hook from anywhere in your app:

import { useControls } from 'leva'

function MyComponent() {
  const { name, aNumber } = useControls({ name: 'World', aNumber: 0 })

  return (
    <div>
      Hey {name}, hello! {aNumber}
    </div>
  )
}

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

Documentation

Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

gui
react

Project health

Overall

3.2/10

Maintained

0/10

Code review

4/10
OpenSSF Scorecard

npm

Latest release

0.10.1 Β· Oct 31, 2025

Releases this year

1

Significant stargazers

(top 24 of 63)

Orta Therox

6,294 followers Β· starred Apr 2022

Tommy D. Rossi

1,152 followers Β· starred Jun 2026

Jose Francisco 'Kiko' VerdΓΊ GambΓ­n

1,741 followers Β· starred Jul 2026

Benjamin Tan

368 followers Β· starred Jul 2024