{"id":13455582,"url":"https://github.com/pmndrs/leva","last_synced_at":"2025-05-06T02:51:02.902Z","repository":{"id":37504493,"uuid":"310912783","full_name":"pmndrs/leva","owner":"pmndrs","description":"🌋 React-first components GUI","archived":false,"fork":false,"pushed_at":"2025-03-06T12:16:27.000Z","size":10267,"stargazers_count":5330,"open_issues_count":128,"forks_count":207,"subscribers_count":31,"default_branch":"main","last_synced_at":"2025-04-30T13:22:48.123Z","etag":null,"topics":["gui","react"],"latest_commit_sha":null,"homepage":"https://leva.pmnd.rs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pmndrs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"code_of_conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-11-07T19:01:17.000Z","updated_at":"2025-04-29T06:54:08.000Z","dependencies_parsed_at":"2022-07-14T06:20:38.381Z","dependency_job_id":"439d2da4-330f-4e82-8449-ede970e3ca32","html_url":"https://github.com/pmndrs/leva","commit_stats":{"total_commits":782,"total_committers":31,"mean_commits":"25.225806451612904","dds":0.1841432225063938,"last_synced_commit":"b333a284f71ef9b581cdc2f6db046eab845f9ccd"},"previous_names":["gsimone/controls"],"tags_count":89,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmndrs%2Fleva","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmndrs%2Fleva/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmndrs%2Fleva/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmndrs%2Fleva/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmndrs","download_url":"https://codeload.github.com/pmndrs/leva/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252407058,"owners_count":21742850,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gui","react"],"created_at":"2024-07-31T08:01:07.607Z","updated_at":"2025-05-06T02:51:02.883Z","avatar_url":"https://github.com/pmndrs.png","language":"TypeScript","readme":"[![npm (tag)](https://img.shields.io/npm/v/leva?style=flat\u0026colorA=000000\u0026colorB=000000)](https://www.npmjs.com/package/leva) [![npm bundle size](https://img.shields.io/bundlephobia/minzip/leva?style=flat\u0026colorA=000000\u0026colorB=000000\u0026label=gzipped)](https://bundlephobia.com/result?p=leva) ![GitHub Workflow Status](https://img.shields.io/github/workflow/status/pmndrs/leva/CI?style=flat\u0026colorA=000000) [![Discord Shield](https://img.shields.io/discord/740090768164651008?style=flat\u0026colorA=000000\u0026colorB=000000\u0026label=\u0026logo=discord\u0026logoColor=ffffff)](https://discord.gg/poimandres)\n\n\u003ca href=\"\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/gsimone/leva/master/hero.png\" /\u003e\u003c/a\u003e\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\u003cstrong\u003eA GUI you are going to lava.\u003c/strong\u003e\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e Customizable, extensible and beautiful by default.\u003c/div\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"http://leva.pmnd.rs/\"\u003eStorybook\u003c/a\u003e \n\u003c/div\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003eby \u003ca href=\"https://twitter.com/pmndrs\"\u003ePoimandres\u003c/a\u003e\u003c/sub\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n## 🚧🚧 This repo is under heavy development 🚧🚧\n\n## Features\n\n- ⭐️ Beautiful by default\n- 🎚 More than 12 different kinds of inputs available\n- 🧐 Smart input type recognition\n- 🔌 Easy-to-make plugins\n- ✅ Keyboard accessible\n- ⚡️ No setup necessary\n\n### Installation\n\n```bash\nnpm i leva\n```\n\n### Quick start\n\nSimply call the `useControls` hook from anywhere in your app:\n\n```jsx\nimport { useControls } from 'leva'\n\nfunction MyComponent() {\n  const { name, aNumber } = useControls({ name: 'World', aNumber: 0 })\n\n  return (\n    \u003cdiv\u003e\n      Hey {name}, hello! {aNumber}\n    \u003c/div\u003e\n  )\n}\n```\n\nNOTE: 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)\n\n### Documentation\n\n- [Getting Started](/docs/getting-started.md)\n- [Inputs](/docs/inputs.md)\n- [Configuration](/docs/configuration.md)\n- [Styling](/docs/styling.md)\n\n- [Advanced: Controlled Inputs](/docs/advanced/controlled-inputs.md)\n- [Advanced: Creating Plugins](/docs/advanced/creating-plugins.md)\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/AndrewPrifer\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/2991360?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAndrew Prifer\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-AndrewPrifer\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/gsimone/use-leva/commits?author=AndrewPrifer\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://twitter.com/ariaminaei\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/593118?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAria\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-AriaMinaei\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/dbismut\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/5003380?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDavid Bismut\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-dbismut\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/gsimone/use-leva/commits?author=dbismut\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://jeetiss.github.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6726016?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDmitry Ivakhnenko\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/gsimone/use-leva/commits?author=jeetiss\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://twitter.com/ggsimm\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/1862172?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGianmarco\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-gsimone\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/gsimone/use-leva/commits?author=gsimone\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.linkedin.com/in/guidovizoso/?locale=en_US\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/27702539?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGuido Vizoso\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/gsimone/use-leva/commits?author=guidovizoso\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://iinf.in/\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/48106228?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#design-iinfin\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/ivanross\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/15856208?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eIvan Rossi\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/gsimone/use-leva/issues?q=author%3Aivanross\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://n1ru4l.cloud/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/14338007?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLaurin Quast\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/gsimone/use-leva/commits?author=n1ru4l\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-n1ru4l\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/marcofugaro\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/7217420?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMarco Fugaro\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-marcofugaro\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/emmelleppi\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/39760175?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMarco Ludovico Perego\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-emmelleppi\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://haspar.us/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/15332326?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePiotr Monwid-Olechnowicz\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/gsimone/use-leva/commits?author=hasparus\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/clementcassajus\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/13033639?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eclementcassajus\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#design-clementcassajus\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/thephoenixofthevoid\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/49817252?v=4?s=80\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ethephoenixofthevoid\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/gsimone/use-leva/issues?q=author%3Athephoenixofthevoid\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","funding_links":[],"categories":["TypeScript","Data visualization","Other","GUI Parameters \u0026 Settings","React tools","Libraries"],"sub_categories":["Component API's","JavaScript"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmndrs%2Fleva","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmndrs%2Fleva","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmndrs%2Fleva/lists"}