Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including react-dock with all npm packages installed. Try it out:

require("react/package.json"); // react is a peer dependency. require("babel-runtime/package.json"); // babel-runtime is a peer dependency. var reactDock = require("react-dock")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

react-dock v0.2.4

Resizable dockable react component


Resizable dockable react component.



$ npm i -S react-dock


render() {
  return (
    <Dock position='right' isVisible={this.state.isVisible}>
      {/* you can pass a function as a child here */}
      <div onClick={() => this.setState({ isVisible: !this.state.isVisible })}>X</div>

Dock Props

Prop NameDescription
positionSide to dock (left, right, top or bottom). Default is left.
fluidIf true, resize dock proportionally on window resize.
sizeSize of dock panel (width or height, depending on position). If this prop is set, Dock is considered as a controlled component, so you need to use onSizeChange to track dock resizing. Value is a fraction of window width/height, if fluid is true, or pixels otherwise
defaultSizeDefault size of dock panel (used for uncontrolled Dock component)
isVisibleIf true, dock is visible
dimModeIf none - content is not dimmed, if transparent - pointer events are disabled (so you can click through it), if opaque - click on dim area closes the dock. Default is opaque
durationAnimation duration. Should be synced with transition animation in style properties
dimStyleStyle for dim area
dockStyleStyle for dock
zIndexZ-index for wrapper
onVisibleChangeFires when Dock wants to change isVisible (when opaque dim is clicked, in particular)
onSizeChangeFires when Dock wants to change size
childrenDock content - react elements or function that returns an element. Function receives an object with these state values: { position, isResizing, size, isVisible }
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free