๐Ÿ”Œ Renderless Containers
Clone or download
renatorib Add docz (#153)
* minimal setup docz

* chore: remove and ignore docz build folder

* chore: add logo and primary color

* fix: update dependencies

* add more mdx to docz

* add Touch.mdx to docz

* add Hover.mdx to docz

* add Focus.mdx to docz

* add Active.mdx to docz

* add FocusManager.mdx to docz

* add State.mdx and Interval.mdx to docz

* add Form.mdx to docz

* add Counter.mdx to docz

* add Compose.mdx to docz

* add compose.mdx and composeEvents.mdx to docz

* add Introduction and Guide to docz

* add ordering to menus

* deployment scripts

* add setOn setOff to Toggle docs

* remove FocusManager.mdx

* edit readme
Latest commit a83c97c Oct 15, 2018


React PowerPlug

npm stars tweet

React PowerPlug is a set of pluggable renderless components and helpers that provides different types of state and logic utilities that you can use with your dumb components. It creates state and passes down the logic to the children, so you can handle your data. Read about the Render Props pattern.


  • ๐Ÿ‘Œ Dependency free
  • ๐Ÿ”Œ Plug and play
  • ๐Ÿ”ฎ Tree shaking friendly (ESM, no side effects)
  • ๐Ÿ“ฆ Super tiny (~3kb)
  • ๐Ÿ“š Well documented
  • ๐Ÿป Bunch of awesome utilities
See quick examples
import { State, Toggle } from 'react-powerplug'
import { Pagination, Tabs, Checkbox } from './MyDumbComponents'

<State initial={{ offset: 0, limit: 10, totalCount: 200 }}>
  {({ state, setState }) => (
    <Pagination {...state} onChange={(offset) => setState({ offset })} />

<Toggle initial={true}>
  {({ on, toggle }) => (
    <Checkbox checked={on} onChange={toggle} />

// You can also use a `render` prop instead

  render={({ on, toggle }) => (
    <Checkbox checked={on} onChange={toggle} />

Guide & Documentation


Watch 'Rapid Prototyping with React PowerPlug' by Andrew Del Prete on egghead.io


Node Module

yarn add react-powerplug
npm i react-powerplug


<script src="https://unpkg.com/react-powerplug/dist/react-powerplug.min.js"></script>

exposed as ReactPowerPlug


Thanks goes to these wonderful people (emoji key):

Renato Ribeiro

๐Ÿ’ป ๐ŸŽจ ๐Ÿ“– โš ๏ธ

Bogdan Chadkin

๐Ÿ’ป ๐Ÿ“– โš ๏ธ ๐Ÿš‡

Travis Arnold

๐Ÿ’ป ๐Ÿ“– ๐Ÿ›

Max Graey


Mateusz Burzyล„ski


Andy Edwards


Andrea Vanini


Ivan Starkov


Sean Roberts


Braden Kelley


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


You can help improving this project sending PRs and helping with issues.
Also you can ping me at Twitter