diff --git a/packages/victory-area/README.md b/packages/victory-area/README.md
new file mode 100644
index 000000000..2e16c86d0
--- /dev/null
+++ b/packages/victory-area/README.md
@@ -0,0 +1,519 @@
+
+# VictoryArea
+
+`victory-area@^30.0.0` exports `VictoryArea` and `Area` components
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-area to see live examples.
+
+VictoryArea renders a dataset as a single area. VictoryArea can be composed with [`VictoryChart`][] to create area charts.
+
+```playground
+
+
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryArea` uses the standard `animate` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+```jsx
+ animate={{
+ duration: 2000,
+ onLoad: { duration: 1000 }
+ }}
+```
+
+### categories
+
+`type: array[string] || { x: array[string], y: array[string] }`
+
+`VictoryArea` uses the standard `categories` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#categories)
+
+```jsx
+categories={{ x: ["dogs", "cats", "mice"] }}
+```
+
+### containerComponent
+
+`type: element`
+
+`VictoryArea` uses the standard `containerComponent` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+
+### data
+
+`type: array[object]`
+
+`VictoryArea` uses the standard `data` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#data)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```playground
+
+
+
+```
+
+### dataComponent
+
+`type: element`
+
+`VictoryArea` uses the standard `dataComponent` prop. [Read about it detail](https://formidable.com/open-source/victory/docs/common-props#datacomponent)
+
+`VictoryArea` supplies the following props to its `dataComponent`: `data`, `events`, `groupComponent`, `interpolation`, `origin` (for polar charts), `polar`, `scale`, `style`
+
+See the [Custom Components Guide][] for more detail on creating your own `dataComponents`
+
+*default:* ` `
+
+```jsx
+dataComponent={ }
+```
+
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryArea` uses the standard `domain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryArea` uses the standard `domainPadding` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryArea` uses the standard `eventKey` prop. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+**note:** `VictoryArea` only renders one element per dataset, so only one event key will be generated.
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryArea` uses the standard `events` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+**note:** `VictoryArea` will use the special `eventKey` "all" rather than referring to data by index, as it renders only one element for an entire dataset
+
+```playground
+
+
Click Me
+ {
+ return [
+ {
+ target: "data",
+ eventKey: "all",
+ mutation: (props) => {
+ const fill = props.style && props.style.fill;
+ return fill === "black" ? null : { style: { fill: "black" } };
+ }
+ }
+ ];
+ }
+ }
+ }]}
+ data={sampleData}
+ />
+
+```
+
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryArea` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#externalEventsMutations)
+
+### groupComponent
+
+`type: element`
+
+`VictoryArea` uses the standard `groupComponent` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+**note:** `VictoryArea` uses [`VictoryClipContainer`][] as its default `groupComponent` `VictoryClipContainer` renders a `` tag with a `clipPath` `def`. This allows continuous data components to transition smoothly when new data points enter and exit. **Supplying a custom `groupComponent` to `VictoryArea` may result in broken animations.**
+
+*default:* ` `
+
+```playground
+
+ }
+ style={{ data: { stroke: "#c43a31", strokeWidth: 15, strokeLinecap: "round" } }}
+ data={sampleData}
+ />
+
+```
+
+### height
+
+`type: number`
+
+`VictoryArea` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### interpolation
+
+`type: options`
+
+The `interpolation` prop determines how data points should be connected when creating a path. Victory uses [d3-shape](https://github.com/d3/d3-shape#curves) for interpolating curves.
+
+Polar area charts may use the following interpolation options: "basis", "cardinal", "catmullRom", "linear"
+
+Cartesian area charts may use the following interpolation options: "basis", "cardinal", "catmullRom", "linear", "monotoneX", "monotoneY", "natural", "step", "stepAfter", "stepBefore"
+
+[Explore all the interpolation options][].
+
+*default:* `"linear"`
+
+```playground
+
+```
+
+### labelComponent
+
+`type: element`
+
+`VictoryArea` uses the standard `labelComponent` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#labelcomponent)
+
+*default:* ` `
+
+```playground
+ datum.y}
+ labelComponent={}
+/>
+```
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryArea` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+
+```playground
+
+
+
+```
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryArea` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+
+```playground
+
+
+
+```
+
+### labels
+
+`type: array || function`
+
+`VictoryArea` uses the standard `labels` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#labels)
+
+```playground
+ datum.y}
+/>
+```
+
+### name
+
+`type: string`
+
+The `name` prop is used to reference a component instance when defining shared events.
+
+```jsx
+name="series-1"
+```
+
+### origin
+
+`type: { x: number, y: number }`
+
+**The `origin` prop is only used by polar charts, and is usually controlled by `VictoryChart`. It will not typically be necessary to set an `origin` prop manually**
+
+[Read about the `origin` prop in detail](https://formidable.com/open-source/victory/docs/common-props#origin)
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryArea` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### polar
+
+`type: boolean`
+
+`VictoryArea` uses the standard `polar` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#polar)
+
+```playground
+
+ null}
+ />
+
+
+
+```
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detail](https://formidable.com/open-source/victory/docs/common-props#range)
+
+### samples
+
+`type: number`
+
+`VictoryArea` uses the standard `samples` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#samples)
+
+*default:* `samples={50}`
+
+```jsx
+samples={100}
+```
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryArea` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryArea` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### sortKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryArea` uses the standard `sortKey` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#sortkey)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+sortKey="x"
+```
+
+### sortOrder
+
+`type: "ascending" || "descending"`
+
+The `sortOrder` prop specifies whether sorted data should be returned in ascending or descending order.
+
+*default:* `sortOrder="ascending"`
+
+### standalone
+
+`type: boolean`
+
+`VictoryArea` uses the standard `standalone` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryArea` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+```playground
+
+
+
+
+```
+
+### style
+
+`type: { parent: object, data: object, labels: object }`
+
+`VictoryArea` uses the standard `style` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#style)
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+ d.x === 3 ? "#000000" : "#c43a31"
+ }
+ }}
+ data={sampleData}
+ labels={(d) => d.x}
+ />
+```
+
+### theme
+
+`type: object`
+
+`VictoryArea` uses the standard `theme` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### width
+
+`type: number`
+
+`VictoryArea` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+### x
+
+`type: string || integer || array[string] || function`
+
+`VictoryArea` uses the standard `x` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#x)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+x="employee.name"
+```
+
+### y
+
+`type: string || integer || array[string] || function`
+
+`VictoryArea` uses the standard `y` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#y)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+y={(d) => d.value + d.error}
+```
+
+### y0
+
+`type: string || integer || array[string] || function`
+
+`VictoryArea` uses the standard `y0` data accessor prop to set a baseline. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#y0)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```playground
+
+ d.y - 1}
+ />
+
+```
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Data Accessors Guide]: https://formidable.com/open-source/victory/guides/data-accessors
+[Custom Components Guide]: https://formidable.com/open-source/victory/guides/custom-components
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[`VictoryChart`]: https://formidable.com/open-source/victory/docs/victory-chart
+[`VictoryClipContainer`]: https://formidable.com/open-source/victory/docs/victory-clip-container
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
+[Explore all the interpolation options]: https://formidable.com/open-source/victory/gallery/interpolation
diff --git a/packages/victory-axis/README.md b/packages/victory-axis/README.md
new file mode 100644
index 000000000..b661c44d5
--- /dev/null
+++ b/packages/victory-axis/README.md
@@ -0,0 +1,473 @@
+
+# VictoryAxis
+
+`victory-axis@^30.0.0` exports `VictoryAxis` component
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-axis to see live examples.
+
+VictoryAxis renders a single axis which can be used on its own or composed with [`VictoryChart`][].
+
+```playground
+
+
+
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryAxis` uses the standard `animate` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations
+
+```jsx
+animate={{
+ duration: 2000,
+ easing: "bounce"
+}}
+```
+
+### axisComponent
+
+`type: element`
+
+The `axisComponent` prop takes a component instance which will be responsible for rendering an axis line. The new element created from the passed `axisComponent` will be provided with the following props calculated by `VictoryAxis`: `x1`, `y1`, `x2`, `y2`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If an `axisComponent` is not provided, `VictoryAxis` will use its default [Line component][].
+
+*default:* `axisComponent={}`
+
+```jsx
+axisComponent={ }
+```
+
+### axisLabelComponent
+
+`type: element`
+
+The `axisLabelComponent` prop takes a component instance which will be used to render the axis label. The new element created from the passed `axisLabelComponent` will be supplied with the following props: `x`, `y`, `verticalAnchor`, `textAnchor`, `angle`, `transform`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `axisLabelComponent` is omitted, a new [`VictoryLabel`][] will be created with props described above.
+
+*default:* `axisLabelComponent={ }`
+
+```jsx
+axisLabelComponent={}
+```
+
+### containerComponent
+
+`type: element`
+
+`VictoryAxis` uses the standard `containerComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+
+### crossAxis
+
+`type: boolean`
+
+The `crossAxis` boolean prop specifies whether a given axis is intended to cross another axis. When this prop is true, zeroes will be removed from the array of ticks so that they do not clutter the origin of the chart. When `VictoryAxis` is nested within `VictoryChart`, `VictoryChart` will determine a value for the `crossAxis` prop based on domain, but this prop may be overridden by supplying a `crossAxis` prop directly to the `VictoryAxis` child component.
+
+*default:* `crossAxis={false}`
+
+### dependentAxis
+
+`type: boolean`
+
+The `dependentAxis` boolean prop specifies whether the axis corresponds to the dependent variable (usually y). This prop is useful when composing `VictoryAxis` with other components to form a chart.
+
+*default:* `dependentAxis={false}`
+
+```playground
+
+```
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryAxis` uses the standard `domain` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryAxis` uses the standard `domainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### events
+
+`type array[object]`
+
+`VictoryAxis` uses the standard `events` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+**note:** valid event targets for `VictoryAxis` are "axis", "axisLabel", "grid", "ticks", and "tickLabels".
+Targets that correspond to only one element {"axis" and "axisLabel") should use the special eventKey "all".
+
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryAxis` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#externalEventsMutations)
+
+### fixLabelOverlap
+
+`type: boolean`
+
+When true, this prop reduces the number of tick labels to fit the length of the axis. Labels are
+removed at approximately even intervals from the original array of labels. This feature only works
+well for labels that are approximately evenly spaced.
+
+*default:* `fixLabelOverlap={false}`
+
+### gridComponent
+
+`type: element`
+
+The `gridComponent` prop takes a component instance which will be responsible for rendering a grid element. The new element created from the passed `gridComponent` will be provided with the following props calculated by `VictoryAxis`: `x1`, `y1`, `x2`, `y2`, `tick`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `gridComponent` is not provided, `VictoryAxis` will use its default [Line component][].
+
+*default:* `gridComponent={}`
+
+```jsx
+gridComponent={ }
+```
+
+### groupComponent
+
+`type: element`
+
+`VictoryAxis` uses the standard `groupComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+
+### height
+
+`type: number`
+
+`VictoryAxis` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### invertAxis
+
+`type: boolean`
+
+The `invertAxis` boolean prop specifies whether the domain for a given axis should be inverted. By default, axes will be displayed with lower values on the bottom / left, and higher values on the top / right regardless of orientation.
+
+*default:* `invertAxis={false}`
+
+### label
+
+`type: string`
+
+The `label` prop defines the label that will appear with the axis. This prop should be given as a string.
+
+```playground
+
+```
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryAxis` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+
+```playground
+
+```
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryAxis` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+
+```playground
+
+```
+
+### name
+
+`type: string`
+
+`VictoryAxis` uses the standard `name` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#name)
+
+```jsx
+name="series-1"
+```
+
+### offsetX
+
+`type: number`
+
+The `offsetX` prop defines how far from the edge of its permitted area an axis should be offset in the x direction. If this prop is not given, the offset will be calculated based on font size, axis orientation, and label padding. When `VictoryAxis` is used with `VictoryChart`, `VictoryChart` will determine a value for `offsetX` that makes the axes line up correctly, but this value may be overridden by supplying an `offsetX` prop directly to the `VictoryAxis` child component.
+
+**note:** The `offsetX` prop is relative to the edge corresponding to the orientation of the axis, _e.g._ the left edge when `orientation="left"`.
+
+```playground
+
+```
+
+### offsetY
+
+`type: number`
+
+The `offsetY` prop defines how far from the edge of its permitted area an axis should be offset in the y direction. If this prop is not given, the offset will be calculated based on font size, axis orientation, and label padding. When `VictoryAxis` is used with `VictoryChart`, `VictoryChart` will determine a value for `offsetY` that makes the axes line up correctly, but this value may be overridden by supplying an `offsetY` prop directly to the `VictoryAxis` child component.
+
+**note:** The `offsetY` prop is relative to the edge corresponding to the orientation of the axis, _e.g._ the bottom edge when `orientation="bottom"`.
+
+```playground
+
+```
+
+### orientation
+
+`type: "top" || "bottom" || "left" || "right"`
+
+The `orientation` prop specifies the position and orientation of your axis. Options are "top", "bottom", "left", and "right".
+
+```playground
+
+```
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryAxis` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detail](https://formidable.com/open-source/victory/docs/common-props#range)
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryAxis` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+**note:** Though `VictoryAxis` can take a `scale` prop with scales defined for both `x` and `y`, only the scale that corresponds the given axis will be used.
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{ x: "time" }}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryAxis` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### standalone
+
+`type: boolean`
+
+`VictoryAxis` uses the standard `standalone` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryAxis` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+```playground
+
+
+
+
+```
+
+### style
+
+`type: { axis: object, axisLabel: object, grid: object, ticks: object, tickLabels: object }`
+
+The `style` prop defines the style of the component. The style prop should be given as an object with styles defined for `parent`, `axis`, `axisLabel`, `grid`, `ticks`, and `tickLabels`. Any valid svg styles are supported, but `width`, `height`, and `padding` should be specified via props as they determine relative layout for components in VictoryChart. Functional styles may be defined for `grid`, `tick`, and `tickLabel` style properties, and they will be evaluated with each tick.
+
+**note:** When a component is rendered as a child of another Victory component, or within a custom `` element with `standalone={false}` parent styles will be applied to the enclosing `` tag. Many styles that can be applied to a parent `` will not be expressed when applied to a ``.
+
+**note:** custom `angle` and `verticalAnchor` properties may be included in `labels` styles.
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+ t > 0.5 ? "red" : "grey"},
+ ticks: {stroke: "grey", size: 5},
+ tickLabels: {fontSize: 15, padding: 5}
+ }}
+/>
+```
+
+### theme
+
+`type: object`
+
+`VictoryAxis` uses the standard `theme` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+*Note:* Use the `dependentAxis` and `independentAxis` namespaces to theme axes by type. These namespaces will be merged with any props and styles supplied in the `axis` namespace.
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### tickComponent
+
+`type: element`
+
+The `tickComponent` prop takes a component instance which will be responsible for rendering a tick element. The new element created from the passed `tickComponent` will be provided with the following props calculated by `VictoryAxis`: `x1`, `y1`, `x2`, `y2`, `tick`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `tickComponent` is not provided, `VictoryAxis` will use its default [Line component][].
+
+*default:* `tickComponent={}`
+
+```jsx
+tickComponent={ }
+```
+
+### tickCount
+
+`type: number`
+
+The `tickCount` prop specifies approximately how many ticks should be drawn on the axis. If an array of ticks is supplied in `tickValues` or `tickFormat`, the `tickCount` prop will be used to _downsample_ the provided array to the specified length. If `tickValues` are not explicitly provided, this value is used by [d3Scale][] to calculate an _approximate_ number of ticks. [d3Scale][] prioritizes returning "nice" values and evenly spaced ticks over an exact number of ticks. This prop must be given as a positive integer.
+
+### tickFormat
+
+`type: array || function`
+
+The `tickFormat` prop specifies how tick values should be labeled. The `tickFormat` prop can be given as an array of values to display for each tick, or as a function to be applied to every `tickValue`. When given as a function, `tickFormat` will be called with the following arguments: `tick` - the individual tick value, `index` - the index of the tick in the array, and `ticks` - the entire array of ticks.
+
+```playground
+ `${Math.round(t)}k`}
+ />
+```
+
+### tickLabelComponent
+
+`type: element`
+
+The `tickLabelComponent` prop takes a component instance which will be used to render the axis label. The new element created from the passed `tickLabelComponent` will be supplied with the following props: `x`, `y`, `text`, `verticalAnchor`, `textAnchor`, `angle`, `transform`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `tickLabelComponent` is omitted, a new [`VictoryLabel`][] will be created with props described above.
+
+*default:* `tickLabelComponent={ }`
+
+```jsx
+tickLabelComponent={}
+```
+
+### tickValues
+
+`type: array`
+
+The `tickValues` prop explicitly specifies a set of tick values to draw on the axis. This prop should be given as an array of unique values of the same type (_i.e.,_ all numbers). The `tickValues` prop is used to specify the _values_ of each tick, so numeric values are typically appropriate. An array of strings or dates may be supplied for categorical and time series data respectively. Use the [tickFormat][] prop to specify how ticks should be labeled. *Note:* `tickValues` should be given as a unique array.
+
+```playground
+
+```
+
+### width
+
+`type: number`
+
+`VictoryAxis` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[`VictoryChart`]: https://formidable.com/open-source/victory/docs/victory-chart
+[tickFormat]: https://formidable.com/open-source/victory/docs/victory-axis#tickformat
+[d3Scale]: https://github.com/d3/d3-scale
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
+[Line component]: https://formidable.com/open-source/victory/docs/victory-primitives#line
+[`VictoryLabel`]: https://formidable.com/open-source/victory/docs/victory-label
diff --git a/packages/victory-bar/README.md b/packages/victory-bar/README.md
new file mode 100644
index 000000000..8647ac462
--- /dev/null
+++ b/packages/victory-bar/README.md
@@ -0,0 +1,575 @@
+
+# VictoryBar
+
+`victory-bar@^30.0.0` exports `VictoryBar` and `Bar` components
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-bar to see live examples.
+
+VictoryBar renders a dataset as series of bars. VictoryBar can be composed with [`VictoryChart`][] to create bar charts.
+
+```playground
+
+
+
+```
+
+## Props
+
+### alignment
+
+`type: "start" || "middle" || "end"`
+
+The `alignment` prop specifies how bars should be aligned relative to their data points. This prop may be given as "start", "middle" or "end". When this prop is not specified, bars will have "middle" alignment relative to their data points.
+
+```playground
+
+
+
+```
+
+### animate
+
+`type: boolean || object`
+
+`VictoryBar` uses the standard `animate` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+```jsx
+animate={{
+ duration: 2000,
+ onLoad: { duration: 1000 }
+}}
+```
+
+### barRatio
+
+`type: number`
+
+The `barRatio` prop specifies an _approximate_ ratio between bar widths and spaces between bars. When width is not specified in bar styles, the `barRatio` prop will be used to calculate a default width for each bar given the total number of bars in the data series and the overall width of the chart.
+
+```playground
+
+
+
+```
+
+### categories
+
+`type: array[string] || { x: array[string], y: array[string] }`
+
+`VictoryBar` uses the standard `categories` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#categories)
+
+```jsx
+categories={{ x: ["dogs", "cats", "mice"] }}
+```
+
+### containerComponent
+
+`type: element`
+
+`VictoryBar` uses the standard `containerComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+
+### cornerRadius
+
+`type: function || number || { top: number || function, bottom: number || function }`
+
+The `cornerRadius` prop specifies a radius to apply to each bar. If this prop is given as a single number, the radius will only be applied to the _top_ of each bar. When this prop is given as a function, it will be evaulated with the arguments `datum`, and `active`.
+
+```playground
+
+
+
+```
+
+### data
+
+`type: array[object]`
+
+`VictoryBar` uses the standard `data` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#data)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+In addition to svg style properties and `label`, `VictoryBar` will also preferentially use `width` properties supplied via data objects
+
+```playground
+
+```
+
+### dataComponent
+
+`type: element`
+
+`VictoryBar` uses the standard `dataComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#datacomponent)
+
+`VictoryBar` supplies the following props to its `dataComponent`: `data`, `datum`, `horizontal`, `index`, `padding`, `polar`, `origin`, `scale`, `style`, `width`, `height`, `x`, `y`, `y0`, `x0`
+
+See the [Custom Components Guide][] for more detail on creating your own `dataComponents`
+
+*default:* ` `
+
+```jsx
+dataComponent={ }
+```
+
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryBar` uses the standard `domain` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryBar` uses the standard `domainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryBar` uses the standard `eventKey` prop to specify how event targets are addressed. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryBar` uses the standard `events` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+```playground
+
+
Click Me
+ {
+ return [
+ {
+ target: "data",
+ mutation: (props) => {
+ const fill = props.style && props.style.fill;
+ return fill === "black" ? null : { style: { fill: "black" } };
+ }
+ }
+ ];
+ }
+ }
+ }]}
+ data={sampleData}
+ />
+
+```
+
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryBar` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#externalEventsMutations)
+
+### groupComponent
+
+`type: element`
+
+`VictoryBar` uses the standard `groupComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+
+### height
+
+`type: number`
+
+`VictoryBar` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### horizontal
+
+`type: boolean`
+
+The horizontal prop determines whether the bars will be laid vertically or horizontally. The bars will be vertical if this prop is false or unspecified, or horizontal if the prop is set to true.
+
+*default:* horizontal={false}
+
+```playground
+
+
+
+```
+
+### labelComponent
+
+`type: element`
+
+`VictoryBar` uses the standard `labelComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#labelcomponent)
+
+*default:* ` `
+
+```playground
+ d.y}
+ style={{ labels: { fill: "white" } }}
+ labelComponent={}
+/>
+```
+
+### labels
+
+`type: array || function`
+
+`VictoryBar` uses the standard `labels` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#labels)
+
+```playground
+ `y: ${d.y}`}
+/>
+```
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryBar` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+
+```playground
+
+
+
+```
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryBar` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+
+```playground
+
+
+
+```
+
+### name
+
+`type: string`
+
+The `name` prop is used to reference a component instance when defining shared events.
+
+```jsx
+name="series-1"
+```
+
+### origin
+
+`type: { x: number, y: number }`
+
+**The `origin` prop is only used by polar charts, and is usually controlled by `VictoryChart`. It will not typically be necessary to set an `origin` prop manually**
+
+[Read about the `origin` prop in detail](https://formidable.com/open-source/victory/docs/common-props#origin)
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryBar` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### polar
+
+`type: boolean`
+
+`VictoryBar` uses the standard `polar` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#polar)
+
+```playground
+
+ null}
+ />
+
+
+
+```
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detail](https://formidable.com/open-source/victory/docs/common-props#range)
+
+### samples
+
+`type: number`
+
+`VictoryBar` uses the standard `samples` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#samples)
+
+*default:* `samples={50}`
+
+```jsx
+samples={100}
+```
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryBar` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryBar` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### sortKey
+
+`type: string || integer || array[string] || function`
+
+
+`VictoryBar` uses the standard `sortKey` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#sortkey)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+sortKey="x"
+```
+
+### sortOrder
+
+`type: "ascending" || "descending"`
+
+The `sortOrder` prop specifies whether sorted data should be returned in ascending or descending order.
+
+*default:* `sortOrder="ascending"`
+
+### standalone
+
+`type: boolean`
+
+`VictoryBar` uses the standard `standalone` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryBar` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+```playground
+
+
+
+
+```
+
+### style
+
+`type: { parent: object, data: object, labels: object }`
+
+`VictoryBar` uses the standard `style` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#style)
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+ d.x === 3 ? "#000000" : "#c43a31",
+ stroke: (d) => d.x === 3 ? "#000000" : "#c43a31",
+ fillOpacity: 0.7,
+ strokeWidth: 3
+ },
+ labels: {
+ fontSize: 15,
+ fill: (d) => d.x === 3 ? "#000000" : "#c43a31"
+ }
+ }}
+ data={sampleData}
+ labels={(d) => d.x}
+ />
+```
+
+### theme
+
+`type: object`
+
+`VictoryBar` uses the standard `theme` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### width
+
+`type: number`
+
+`VictoryBar` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+### x
+
+`type: string || integer || array[string] || function`
+
+
+`VictoryBar` uses the standard `x` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#x)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+x="employee.name"
+```
+
+### y
+
+`type: string || integer || array[string] || function`
+
+`VictoryBar` uses the standard `y` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#y)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+y={(d) => d.value + d.error}
+```
+
+### y0
+
+`type: string || integer || array[string] || function`
+
+`VictoryBar` uses the standard `y0` data accessor prop to set a baseline. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#y0)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```playground
+
+ d.y - 1}
+ />
+
+```
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Data Accessors Guide]: https://formidable.com/open-source/victory/guides/data-accessors
+[Custom Components Guide]: https://formidable.com/open-source/victory/guides/custom-components
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[`VictoryChart`]: https://formidable.com/open-source/victory/docs/victory-chart
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
diff --git a/packages/victory-box-plot/README.md b/packages/victory-box-plot/README.md
new file mode 100644
index 000000000..1d11448db
--- /dev/null
+++ b/packages/victory-box-plot/README.md
@@ -0,0 +1,943 @@
+
+# VictoryBoxPlot
+
+`victory-box-plot@^30.0.0` exports `VictoryBoxPlot` component
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-boxplot to see live examples.
+
+`VictoryBoxPlot` renders a box plot to describe the distribution of a set of data. Data for `VictoryBoxPlot` may be given with summary statistics pre-calculated (`min`, `median`, `max`, `q1`, `q3`), or as an array of raw data. VictoryBoxPlot can be composed with [`VictoryChart`][] to create box plot charts.
+
+```playground
+
+
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryBoxPlot` uses the standard `animate` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+```jsx
+animate={{
+ duration: 2000,
+ onLoad: { duration: 1000 }
+}}
+```
+
+### boxWidth
+
+`type: number`
+
+The `boxWidth` prop specifies how wide each box should be. If the `whiskerWidth` prop is not set, this prop will also determine the width of the whisker crosshair.
+
+```playground
+
+
+
+```
+
+### categories
+
+`type: array[string] || { x: array[string], y: array[string] }`
+
+`VictoryBar` uses the standard `categories` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#categories)
+
+```jsx
+categories={{ x: ["dogs", "cats", "mice"] }}
+```
+
+### containerComponent
+
+`type: element`
+
+`VictoryBar` uses the standard `containerComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+
+### data
+
+`type: array[object]`
+
+The `data` prop for `VictoryBoxPlot` may be given in a a variety of formats:
+
+- As an array of standard data objects with values specified for `x` and `y`
+ When given in this format, repeated values for either `x `or `y` will be used for calculating summary statistics
+
+```jsx
+data={[
+ { x: 1, y: 2 },
+ { x: 1, y: 3 },
+ { x: 1, y: 5 },
+ { x: 2, y: 1 },
+ { x: 2, y: 4 },
+ { x: 2, y: 5 },
+ ...
+]}
+```
+
+- As an array of data objects where _either_ `x` _or_ `y` is given as an array of values
+ When given in this format, array values are used for calculating summary statistics.
+
+```jsx
+data={[
+ { x: 1, y: [1, 2, 3, 5] },
+ { x: 2, y: [3, 2, 8, 10] },
+ { x: 3, y: [2, 8, 6, 5] },
+ { x: 4, y: [1, 3, 2, 9] }
+]}
+```
+
+- As an array of data objects with pre-calculated summary statistics(`min`, `median`, `max`, `q1`, `q3`)
+ When given in this format, `VictoryBoxPlot` _will not_ preform statistical analysis. Pre-calculating summary statistics for large datasets will improve performance.
+
+```jsx
+data={[
+ { x: 1, min: 2, median: 5, max: 10, q1: 3, q3: 7 },
+ { x: 2, min: 1, median: 4, max: 9, q1: 3, q3: 6 },
+ { x: 3, min: 1, median: 6, max: 12, q1: 4, q3: 10 },
+```
+
+Use the [`x`][], [`y`][], [`min`][], [`max`][], [`median`][], [`q1`][], and [`q3`][] data accessor props to specify custom data formats. Refer to the [Data Accessors Guide][] for more detail.
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryBoxPlot` uses the standard `domain` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryBoxPlot` uses the standard `domainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryBoxPlot` uses the standard `eventKey` prop to specify how event targets are addressed. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type array[object]`
+
+`VictoryBoxPlot` uses the standard `events` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+**note:** valid event targets for `VictoryBoxPlot` are:
+"min", "minLabels", "grid", "ticks", and "tickLabels".
+
+```playground
+
+
Click Me
+ null}
+ events={[{
+ target: "q3",
+ eventHandlers: {
+ onClick: () => {
+ return [
+ {
+ mutation: (props) => {
+ return { style: Object.assign(props.style, { fill: "tomato" }) };
+ }
+ }
+ ];
+ }
+ }
+ }]}
+ data={[
+ { x: 1, y: [1, 2, 3, 5] },
+ { x: 2, y: [3, 2, 8, 10] },
+ { x: 3, y: [2, 8, 6, 5] },
+ { x: 4, y: [1, 3, 2, 9] }
+ ]}
+ />
+
+```
+
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryBoxPlot` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#externalEventsMutations)
+
+### groupComponent
+
+`type: element`
+
+`VictoryBoxPlot` uses the standard `groupComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+
+### height
+
+`type: number`
+
+`VictoryBoxPlot` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### horizontal
+
+`type: boolean`
+
+The horizontal prop determines whether boxes will be laid vertically or horizontally. The boxes will be vertical if this prop is false or unspecified, or horizontal if the prop is set to true.
+
+*Note: Data should be flipped when `horizontal` is true*
+
+```playground
+
+
+
+```
+
+### labelOrientation
+
+`type: "top" || "bottom" || "left" || "right"`
+
+The `labelOrientation` prop determines where labels are placed relative to their corresponding data. If this prop is not set, it will be set to "top" for horizontal charts, and "right" for vertical charts.
+
+```playground
+
+
+
+```
+
+### labels
+
+`type: boolean`
+
+When the boolean `labels` prop is set to `true`, the values for `min`, `max`, `median`, `q1`, and `q3` will be displayed for each box. For more granular label control, use the individual [`minLabels`][], [`maxLabels`][], [`medianLabels`][], [`q1Labels`][], and [`q3Labels`][] props.
+
+### max
+
+`type: string || array[string] || function`
+
+Use the `max` data accessor prop to define the max value of a box plot.
+
+**string:** specify which property in an array of data objects should be used as the max value
+
+*examples:* `max="max_value"`
+
+**function:** use a function to translate each element in a data array into a max value
+
+*examples:* `max={() => 10}`
+
+**path string or path array:** specify which property in an array of nested data objects should be used as a max value
+
+*examples:* `max="bonds.max"`, `max={["bonds", "max"]}`
+
+### maxComponent
+
+`type: element`
+
+The `maxComponent` prop takes a component instance which will be responsible for rendering an element to represent the maximum value of the box plot. The new element created from the passed `maxComponent` will be provided with the following props calculated by `VictoryBoxPlot`: `datum`, `index`, `scale`, `style`, `events`, `majorWhisker` and `minorWhisker`. The `majorWhisker` and `minorWhisker` props are given as objects with values for `x1`, `y1`, `x2` and `y2` that describes the lines that make up the major and minor whisker. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `maxComponent` is not provided, `VictoryBoxPlot` will use its default [Whisker component][].
+
+See the [Custom Components Guide][] for more detail on creating your own components
+
+*default:* `maxComponent={ }`
+
+```jsx
+maxComponent={ }
+```
+
+### maxLabelComponent
+
+`type: element`
+
+The `maxLabelComponent` prop takes a component instance which will be used to render the label corresponding to the maximum value for each box. The new element created from the passed `maxLabelComponent` will be supplied with the following props: `x`, `y`, `datum`, `index`, `scale`, `verticalAnchor`, `textAnchor`, `angle`, `transform`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `maxLabelComponent` is omitted, a new [`VictoryLabel`][] will be created with props described above.
+
+See the [Custom Components Guide][] for more detail on creating your own components
+
+*default:* `maxLabelComponent={ }`
+
+```jsx
+maxLabelComponent={}
+```
+
+```playground
+
+ }
+/>
+```
+
+### maxLabels
+
+`type: array || function || boolean`
+
+The `maxLabels` prop defines the labels that will appear above each point. This prop should be given as a boolean, an array or as a function of data. When given as a boolean value, the max value of each datum will be used for the label.
+
+*examples:*
+- `maxLabels`
+- `maxLabels={["first", "second", "third"]}`
+- `maxLabels={(d) => Math.round(d.max)}`
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryBoxPlot` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+
+```playground
+
+
+
+```
+
+### median
+
+`type: string || array[string] || function`
+
+Use the `median` data accessor prop to define the median value of a box plot.
+
+**string:** specify which property in an array of data objects should be used as the median value
+
+*examples:* `median="median_value"`
+
+**function:** use a function to translate each element in a data array into a median value
+
+*examples:* `median={() => 10}`
+
+**path string or path array:** specify which property in an array of nested data objects should be used as a median value
+
+*examples:* `median="bonds.median"`, `median={["bonds", "median"]}`
+
+### medianComponent
+
+`type: element`
+
+The `medianComponent` prop takes a component instance which will be responsible for rendering an element to represent the median value of the box plot. The new element created from the passed `medianComponent` will be provided with the following props calculated by `VictoryBoxPlot`: `datum`, `index`, `scale`, `style`, `events`, `x1`, `y1`, `x2` and `y2` Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `medianComponent` is not provided, `VictoryBoxPlot` will use its default [Line component][].
+
+See the [Custom Components Guide][] for more detail on creating your own components
+
+*default:* `medianComponent={ }`
+
+```jsx
+medianComponent={ }
+```
+
+### medianLabelComponent
+
+`type: element`
+
+The `medianLabelComponent` prop takes a component instance which will be used to render the label corresponding to the median value for each box. The new element created from the passed `medianLabelComponent` will be supplied with the following props: `x`, `y`, `datum`, `index`, `scale`, `verticalAnchor`, `textAnchor`, `angle`, `transform`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `medianLabelComponent` is omitted, a new [`VictoryLabel`][] will be created with props described above.
+
+See the [Custom Components Guide][] for more detail on creating your own components
+
+*default:* `medianLabelComponent={ }`
+
+```jsx
+medianLabelComponent={}
+```
+
+```playground
+
+ }
+/>
+```
+
+### medianLabels
+
+`type: array || function || boolean`
+
+The `medianLabels` prop defines the labels that will appear above each point. This prop should be given as a boolean, an array or as a function of data. When given as a boolean value, the median value of each datum will be used for the label.
+
+*examples:*
+- `medianLabels`
+- `medianLabels={["first", "second", "third"]}`
+- `medianLabels={(d) => Math.round(d.median)}`
+
+### min
+
+`type: string || array[string] || function`
+
+Use the `min` data accessor prop to define the min value of a box plot.
+
+**string:** specify which property in an array of data objects should be used as the min value
+
+*examples:* `min="min_value"`
+
+**function:** use a function to translate each element in a data array into a min value
+
+*examples:* `min={() => 10}`
+
+**path string or path array:** specify which property in an array of nested data objects should be used as a min value
+
+*examples:* `min="bonds.min"`, `min={["bonds", "min"]}`
+
+### minComponent
+
+`type: element`
+
+The `minComponent` prop takes a component instance which will be responsible for rendering an element to represent the minimum value of the box plot. The new element created from the passed `minComponent` will be provided with the following props calculated by `VictoryBoxPlot`: `datum`, `index`, `scale`, `style`, `events`, `majorWhisker` and `minorWhisker`. The `majorWhisker` and `minorWhisker` props are given as objects with values for `x1`, `y1`, `x2` and `y2` that describes the lines that make up the major and minor whisker. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `minComponent` is not provided, `VictoryBoxPlot` will use its default [Whisker component][].
+
+See the [Custom Components Guide][] for more detail on creating your own components
+
+*default:* `minComponent={ }`
+
+```jsx
+minComponent={ }
+```
+
+### minLabelComponent
+
+`type: element`
+
+The `minLabelComponent` prop takes a component instance which will be used to render the label corresponding to the minimum value for each box. The new element created from the passed `minLabelComponent` will be supplied with the following props: `x`, `y`, `datum`, `index`, `scale`, `verticalAnchor`, `textAnchor`, `angle`, `transform`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `minLabelComponent` is omitted, a new [`VictoryLabel`][] will be created with props described above.
+
+See the [Custom Components Guide][] for more detail on creating your own components
+
+*default:* `minLabelComponent={ }`
+
+```jsx
+minLabelComponent={}
+```
+
+```playground
+
+ }
+/>
+```
+
+### minLabels
+
+`type: array || function || boolean`
+
+The `minLabels` prop defines the labels that will appear above each point. This prop should be given as a boolean, an array or as a function of data. When given as a boolean value, the min value of each datum will be used for the label.
+
+*examples:*
+- `minLabels`
+- `minLabels={["first", "second", "third"]}`
+- `minLabels={(d) => Math.round(d.min)}`
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryBoxPlot` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+
+```playground
+
+
+
+```
+
+### name
+
+`type: string`
+
+The `name` prop is used to reference a component instance when defining shared events.
+
+```jsx
+name="series-1"
+```
+
+### origin
+
+`type: { x: number, y: number }`
+
+**The `origin` prop is only used by polar charts, and is usually controlled by `VictoryChart`. It will not typically be necessary to set an `origin` prop manually**
+
+[Read about the `origin` prop in detail](https://formidable.com/open-source/victory/docs/common-props#origin)
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryBar` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### polar
+
+`type: boolean`
+
+`VictoryBoxPlot` uses the standard `polar` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#polar)
+
+**Note:** Polar Charts are not yet supported for `VictoryBoxPlot`
+
+### q1
+
+`type: string || array[string] || function`
+
+Use the `q1` data accessor prop to define the q1 value of a box plot.
+
+**string:** specify which property in an array of data objects should be used as the q1 value
+
+*examples:* `q1="q1_value"`
+
+**function:** use a function to translate each element in a data array into a q1 value
+
+*examples:* `q1={() => 10}`
+
+**path string or path array:** specify which property in an array of nested data objects should be used as a q1 value
+
+*examples:* `q1="bonds.q1"`, `q1={["bonds", "q1"]}`
+
+### q1Component
+
+`type: element`
+
+The `q1Component` prop takes a component instance which will be responsible for rendering an element to represent the q1 value of the box plot. The new element created from the passed `q1Component` will be provided with the following props calculated by `VictoryBoxPlot`: `datum`, `index`, `scale`, `style`, `events`, `x`, `y`, `width` and `height` Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `q1Component` is not provided, `VictoryBoxPlot` will use its default [Box component][].
+
+See the [Custom Components Guide][] for more detail on creating your own components
+
+*default:* `q1Component={ }`
+
+```jsx
+q1Component={ }
+```
+
+### q1LabelComponent
+
+`type: element`
+
+The `q1LabelComponent` prop takes a component instance which will be used to render the label corresponding to the q1 value for each box. The new element created from the passed `q1LabelComponent` will be supplied with the following props: `x`, `y`, `datum`, `index`, `scale`, `verticalAnchor`, `textAnchor`, `angle`, `transform`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `q1LabelComponent` is omitted, a new [`VictoryLabel`][] will be created with props described above.
+
+See the [Custom Components Guide][] for more detail on creating your own components
+
+*default:* `q1LabelComponent={ }`
+
+```jsx
+q1LabelComponent={}
+```
+
+```playground
+
+ }
+/>
+```
+
+### q1Labels
+
+`type: array || function || boolean`
+
+The `q1Labels` prop defines the labels that will appear above each point. This prop should be given as a boolean, an array or as a function of data. When given as a boolean value, the q1 value of each datum will be used for the label.
+
+*examples:*
+- `q1Labels`
+- `q1Labels={["first", "second", "third"]}`
+- `q1Labels={(d) => Math.round(d.q1)}`
+
+### q3
+
+`type: string || array[string] || function`
+
+Use the `q3` data accessor prop to define the q3 value of a box plot.
+
+**string:** specify which property in an array of data objects should be used as the q3 value
+
+*examples:* `q3="q3_value"`
+
+**function:** use a function to translate each element in a data array into a q3 value
+
+*examples:* `q3={() => 10}`
+
+**path string or path array:** specify which property in an array of nested data objects should be used as a q3 value
+
+*examples:* `q3="bonds.q3"`, `q3={["bonds", "q3"]}`
+
+### q3Component
+
+`type: element`
+
+The `q3Component` prop takes a component instance which will be responsible for rendering an element to represent the q3 value of the box plot. The new element created from the passed `q3Component` will be provided with the following props calculated by `VictoryBoxPlot`: `datum`, `index`, `scale`, `style`, `events`, `x`, `y`, `width` and `height` Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `q3Component` is not provided, `VictoryBoxPlot` will use its default [Box component][].
+
+See the [Custom Components Guide][] for more detail on creating your own components
+
+*default:* `q3Component={ }`
+
+```jsx
+q3Component={ }
+```
+
+### q3LabelComponent
+
+`type: element`
+
+The `q3LabelComponent` prop takes a component instance which will be used to render the label corresponding to the q3 value for each box. The new element created from the passed `q3LabelComponent` will be supplied with the following props: `x`, `y`, `datum`, `index`, `scale`, `verticalAnchor`, `textAnchor`, `angle`, `transform`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `q3LabelComponent` is omitted, a new [`VictoryLabel`][] will be created with props described above.
+
+See the [Custom Components Guide][] for more detail on creating your own components
+
+*default:* `q3LabelComponent={ }`
+
+```jsx
+q3LabelComponent={}
+```
+
+```playground
+
+ }
+/>
+```
+
+### q3Labels
+
+`type: array || function || boolean`
+
+The `q3Labels` prop defines the labels that will appear above each point. This prop should be given as a boolean, an array or as a function of data. When given as a boolean value, the q3 value of each datum will be used for the label.
+
+*examples:*
+- `q3Labels`
+- `q3Labels={["first", "second", "third"]}`
+- `q3Labels={(d) => Math.round(d.q3)}`
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detail](https://formidable.com/open-source/victory/docs/common-props#range)
+
+### samples
+
+`type: number`
+
+`VictoryBoxPlot` uses the standard `samples` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#samples)
+
+*default:* `samples={50}`
+
+```jsx
+samples={100}
+```
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryBoxPlot` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryBoxPlot` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### sortKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryBoxPlot` uses the standard `sortKey` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#sortkey)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+sortKey="x"
+```
+
+### sortOrder
+
+`type: "ascending" || "descending"`
+
+The `sortOrder` prop specifies whether sorted data should be returned in ascending or descending order.
+
+*default:* `sortOrder="ascending"`
+
+### standalone
+
+`type: boolean`
+
+`VictoryBoxPlot` uses the standard `standalone` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryBar` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+### style
+
+```
+type: {
+ parent: object,
+ max: object,
+ maxLabels: object,
+ min: object,
+ minLabels: object,
+ median: object,
+ medianLabels: object,
+ q1: object,
+ q1Labels: object,
+ q3: object,
+ q3Labels: object
+}
+```
+
+The `style` prop defines the style of the component. The style prop should be given as an object with styles defined for `parent`, `max`, `maxLabels`, `min`, `minLabels`,`median`, `medianLabels`,`q1`, `q1Labels`,`q3`, `q3Labels`. Any valid svg styles are supported, but `width`, `height`, and `padding` should be specified via props as they determine relative layout for components in VictoryChart. Functional styles may be defined for style properties, and they will be evaluated with each datum.
+
+**note:** When a component is rendered as a child of another Victory component, or within a custom `` element with `standalone={false}` parent styles will be applied to the enclosing `` tag. Many styles that can be applied to a parent `` will not be expressed when applied to a ``.
+
+**note:** custom `angle` and `verticalAnchor` properties may be included in `labels` styles.
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+
+```
+
+### theme
+
+`type: object`
+
+`VictoryBoxPlot` uses the standard `theme` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### whiskerWidth
+
+`type: number`
+
+The `whiskerWidth` prop specifies how wide each whisker crosshair should be. If the `whiskerWidth` prop is not set, the width of the whisker crosshair will match the width of the box.
+
+```playground
+
+
+
+```
+
+### width
+
+`type: number`
+
+`VictoryBoxPlot` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+### x
+
+`type: string || integer || array[string] || function`
+
+
+`VictoryBoxPlot` uses the standard `x` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#x)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+x="employee.name"
+```
+
+### y
+
+`type: string || integer || array[string] || function`
+
+`VictoryBoxPlot` uses the standard `y` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#y)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+y={(d) => d.value + d.error}
+```
+
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Data Accessors Guide]: https://formidable.com/open-source/victory/guides/data-accessors
+[Custom Components Guide]: https://formidable.com/open-source/victory/guides/custom-components
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[`VictoryChart`]: https://formidable.com/open-source/victory/docs/victory-chart
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
+[`x`]: https://formidable.com/open-source/victory/docs/victory-boxplot#x
+[`y`]: https://formidable.com/open-source/victory/docs/victory-boxplot#y
+[`max`]: https://formidable.com/open-source/victory/docs/victory-boxplot#max
+[`maxLabels`]: https://formidable.com/open-source/victory/docs/victory-boxplot#maxlabels
+[`min`]: https://formidable.com/open-source/victory/docs/victory-boxplot#min
+[`minLabels`]: https://formidable.com/open-source/victory/docs/victory-boxplot#minlabels
+[`median`]: https://formidable.com/open-source/victory/docs/victory-boxplot#median
+[`medianLabels`]: https://formidable.com/open-source/victory/docs/victory-boxplot#medianlabels
+[`q1`]: https://formidable.com/open-source/victory/docs/victory-boxplot#q1
+[`q1Labels`]: https://formidable.com/open-source/victory/docs/victory-boxplot#q1labels
+[`q3`]: https://formidable.com/open-source/victory/docs/victory-boxplot#q3
+[`q3labels`]: https://formidable.com/open-source/victory/docs/victory-boxplot#q3labels
+[Whisker component]: https://formidable.com/open-source/victory/docs/victory-primitives#whisker
+[Box component]: https://formidable.com/open-source/victory/docs/victory-primitives#box
+[Line component]: https://formidable.com/open-source/victory/docs/victory-primitives#line
+[`VictoryLabel`]: https://formidable.com/open-source/victory/docs/victory-label
+
diff --git a/packages/victory-brush-container/README.md b/packages/victory-brush-container/README.md
new file mode 100644
index 000000000..057e41b31
--- /dev/null
+++ b/packages/victory-brush-container/README.md
@@ -0,0 +1,158 @@
+
+# VictoryBrushContainer
+
+`victory-brush-container@^30.0.0` exports `VictoryBrushContainer`, `brushContainerMixin` and `BrushHelpers`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-brush-container to see live examples.
+
+`VictoryBrushContainer` adds the ability to highlight a region of a chart, and interact with
+highlighted regions, either by moving the region, expanding the region, or selecting a new region.
+`VictoryBrushContainer` is useful for selecting a region of a larger dataset by domain. Create a
+brush control by tying the domain of the selected region to the domain of a separate chart.
+See the [brush and zoom guide][] for an example of using `VictoryBrushContainer` to create a brush
+control.
+
+`VictoryBrushContainer` is similar to `VictorySelectionContainer`. `VictoryBrushContainer` may be
+used to identify the domain of a selected region, whereas `VictorySelectionContainer` may be used to
+identify a list of data points within a selected region. `VictoryBrushContainer` will also create
+persistent highlighted regions, whereas regions created by `VictorySelectionContainer`
+disappear after `onMouseUp` events.
+
+`VictoryBrushContainer` may be used with any Victory component that works with an x-y coordinate
+system, and should be added as the `containerComponent` of the top-level component.
+However, the component that uses it must be standalone
+(`standalone={true}`), which is the default for all top-level Victory components.
+
+```playground
+
+ }
+>
+
+
+```
+
+## Props
+
+`VictoryBrushContainer` uses a superset of props used by [VictoryContainer][]. All props are optional.
+
+### allowDrag
+
+`type: boolean`
+
+The optional `allowDrag` prop accepts a boolean that enables dragging behavior for the highlighted brush area. Resizing will still be enabled when the `allowDrag` prop is set to false.
+
+*default:* `allowDrag={true}`
+
+### allowResize
+
+`type: boolean`
+
+The optional `allowResize` prop accepts a boolean that enables resizing the highlighted brush area. Dragging will still be enabled when the `allowResize` prop is set to false, but the dimensions of the brush area will be fixed.
+
+*default:* `allowResize={true}`
+
+### brushComponent
+
+`type: element`
+
+The `brushComponent` prop specifies the component to be rendered for the highlighted area.
+This component will be supplied with the following props: x, y, width, height, and style.
+When this prop is not specified, a ` ` will be rendered.
+
+*default:* `brushComponent={ }`
+
+### brushDimension
+
+`type: "x" || "y"`
+
+When the `brushDimension` prop is set, brushing will only be specific to the to the given dimension
+(either "x" or "y"), and the entire domain of the other dimension will be highlighted. When this prop
+is not specified, highlighting will occur along both dimensions.
+
+*example:* `brushDimension="x"`
+
+### brushDomain
+
+`type: { x: [low, high], y: [low, high] }`
+
+The optional `brushDomain` prop describes the highlighted state. This prop is an object that
+specifies separate arrays for `x` and `y`. Each array is a tuple that describes the minimum and maximum
+values to render. If this prop is not provided initially, the chart will render with the entire
+domain highlighted. When this prop changes, the chart will render with a new highlighted domain.
+
+*example:* `brushDomain={{x: [50, 100], y: [0, 100]}`
+
+### brushStyle
+
+`type: object`
+
+The `brushStyle` adds custom styles to the `brushComponent`. This prop should be given as
+an object of SVG style attributes.
+
+*default:* `brushStyle={{stroke: "transparent", fill: "black", fillOpacity: 0.1}}
+
+### defaultBrushArea
+
+`type: "all", "none", "disable"`
+
+The `defaultBrushArea` prop specifies how the container will behave when a region outside the active brush is clicked without selecting a new area. When the prop is set to "all", the entire domain will be selected. When the prop is set to "none", no new region will be selected, and any existing active brush will be cleared. When the prop is set to "disable" the new selected region will default to the current active brush.
+
+```playground
+
+ }
+>
+
+
+```
+
+### disable
+
+`type: boolean`
+
+When the `disable` prop is set to `true`, `VictoryBrushContainer` events will not fire.
+
+### handleComponent
+
+`type: element`
+
+The `handleComponent` prop specifies the component to be rendered for each handle for the highlighted
+area. This component will be supplied with the following props: `x`, `y`, `width`, `height`, `cursor`, and `style`.
+When this prop is not specified, a ` ` will be rendered.
+
+*default:* `handleComponent={ }`
+
+### handleStyle
+
+`type: object`
+
+The `handleStyle` adds custom styles to the `handleComponents`. This prop should be given as
+an object of SVG style attributes.
+
+Handles refer to the region on each highlighted area where the area may be
+expanded. Only handles relevant to the given `dimension` will be rendered. For example, when
+`brushDimension="x"` only "left" and "right" handles will be rendered. Handles are automatically styled
+with cursors appropriate to their orientation.
+
+*default:* `handleStyle={{stroke: "transparent", fill: "transparent"}}
+
+### onBrushDomainChange
+
+`type: function`
+
+The optional `onBrushDomainChange` prop accepts an function to be called on each update to the highlighted domain. The function accepts the parameters of `domain` (the updated domain), and `props` (the props used by `VictoryBrushContainer`).
+
+*example:* `onBrushDomainChange={(domain, props) => handleDomainChange(domain, props)}`
+
+
+[brush and zoom guide]: https://formidable.com/open-source/victory/guides/brush-and-zoom
+[VictoryContainer]: https://formidable.com/open-source/victory/docs/victory-container
diff --git a/packages/victory-brush-line/README.md b/packages/victory-brush-line/README.md
new file mode 100644
index 000000000..1ebbf8d82
--- /dev/null
+++ b/packages/victory-brush-line/README.md
@@ -0,0 +1,242 @@
+
+# VictoryBrushLine
+
+`victory-brush-line@^30.0.0` exports `VictoryBrushLine`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-brush-line to see live examples.
+
+`VictoryBrushLine` renders a brush component centered around a line. It may be used in place of the default `axisComponent` or `gridComponent` within `VictoryAxis`. Use `VictoryBrushLine` instead of [`VictoryBrushContainer`][] in charts that require multiple brushes.
+
+```playground
+
+
+ }
+ />
+
+```
+
+## Props
+
+### allowDrag
+
+`type: boolean`
+
+The optional `allowDrag` prop accepts a boolean that enables dragging behavior for the highlighted brush area. Resizing will still be enabled when the `allowDrag` prop is set to false.
+
+*default:* `allowDrag={true}`
+
+### allowResize
+
+`type: boolean`
+
+The optional `allowResize` prop accepts a boolean that enables resizing the highlighted brush area. Dragging will still be enabled when the `allowResize` prop is set to false, but the dimensions of the brush area will be fixed.
+
+*default:* `allowResize={true}`
+
+
+### brushAreaComponent
+
+`type: element`
+
+The `brushAreaComponent` prop specifies the component to be rendered for the interactive brush region.
+This component will be supplied with the following props: x, y, width, height, and style.
+When this prop is not specified, a [`Box`][] component will be rendered.
+
+*default:* `brushAreaComponent={ }`
+
+
+### brushAreaStyle
+
+`type: object`
+
+The `brushAreaStyle` prop adds custom styles to the `brushAreaComponent`. This prop should be given as
+an object of SVG style attributes. Styles supplied to `brushAreaStyle` are assigned to the following default styles:
+
+```js
+{
+ stroke: "none",
+ fill: "black",
+ opacity: (d, a) => a ? 0.2 : 0.1
+}
+```
+
+**Note:** `cursor` styles should not be applied via this prop, as they are dynamically assigned
+
+
+### brushAreaWidth
+
+`type: number`
+
+The `brushAreaWidth` prop is used to specify the width of the interactive brush region. If this prop is not supplied, the `width` prop will be used.
+
+
+### brushComponent
+
+`type: element`
+
+The `brushComponent` prop specifies the component to be rendered for active brush.
+This component will be supplied with the following props: x, y, width, height, and style.
+When this prop is not specified, a [`Box`][] component will be rendered.
+
+*default:* `brushComponent={ }`
+
+### brushDomain
+
+`type: array[low, high]`
+
+The optional `brushDomain` prop describes the highlighted state. This prop should be given as an array of the minimum and maximum values of the highlighted region.
+
+*example:* `brushDomain={[50, 100]}`
+
+### brushStyle
+
+`type: object`
+
+The `brushStyle` prop adds custom styles to the `brushComponent`. This prop should be given as
+an object of SVG style attributes. Styles supplied to `brushStyle` are assigned to the following default styles:
+
+```js
+{
+ pointerEvents: "none",
+ stroke: "none",
+ fill: "black",
+ opacity: (d, a) => a ? 0.4 : 0.3
+}
+```
+
+### brushWidth
+
+`type: number`
+
+The `brushWidth` prop is used to specify the width of the active brush. If this prop is not supplied, the `width` prop will be used.
+
+### className
+
+`type: string`
+
+This prop specifies the class name that will be applied to the rendered element
+
+
+### dimension
+
+`type: "x" || "y"`
+
+The `dimension` prop specified whether the brush will be vertical ("y"), or horizontal ("x")
+
+
+### disable
+
+`type: boolean`
+
+When the `disable` prop is set to `true`, `VictoryBrushLine` events will not fire.
+
+### events
+
+`type: object`
+
+The `events` prop specifies a set of events that will be attached to the brush component group. This prop should not be set manually.
+
+
+### groupComponent
+
+`type: element`
+
+This prop specifies the element used to group rendered elements
+
+*default:* ` `
+
+
+### handleComponent
+
+`type: element `
+
+The `handleComponent` prop specifies the component to be rendered for each handle.
+This component will be supplied with the following props: x, y, width, height, and style.
+When this prop is not specified, a [`Box`][] component will be rendered.
+
+*default:* `handleComponent={ }`
+
+### handleStyle
+
+`type: object`
+
+The `handleStyle` props adds custom styles to the `handleComponent`. This prop should be given as
+an object of SVG style attributes. Styles supplied to `handleStyle` are assigned to the following default styles:
+
+```js
+{
+ pointerEvents: "none",
+ stroke: "none",
+ fill: "none"
+}
+```
+
+### handleWidth
+
+`type: number`
+
+The `handleWidth` prop is used to specify the width of each handle component.
+
+*default:* `handleWidth={10}`
+
+
+### lineComponent
+
+`type: element`
+
+The `lineComponent` prop specifies the component to render for the underlying axis or grid line.
+This component will be supplied with the following props: x1, y1, x2, y2 and style.
+When this prop is not specified, an [`Axis`][] component will be rendered.
+
+*default:* `lineComponent={ }`
+
+
+### onBrushDomainChange
+
+`type: function`
+
+The `onBrushDomainChange` prop specifies a callback function which will be called whenever the brush domain changes. The callback provided will be called with the following arguments:
+ - `currentDomain`: The current brush domain
+ - `props`: the current set of props for `VictoryBrushLine`
+
+
+### scale
+
+`type: object`
+
+This prop specifies `scale` of the parent chart with `domain` and `range` applied. This prop should not be set manually.
+
+### style
+
+`type: object`
+
+The `style` prop specifies the styles that will be applied to the `lineComponent`. This prop should be given as
+an object of SVG style attributes.
+
+### type
+
+`type: string`
+
+The `type` is used to specify which event target a particular `VictoryBrushLine` belongs to. When `VictoryBrushLine` is used by `VictoryAxis` as its `axisComponent` or `gridComponent`, this prop will be set automatically to "axis" or "grid" as appropriate.
+
+### width
+
+`type: number`
+
+The `width` prop specified the width of both the `brush` and `brushArea`. When `brushWidth` or `brushAreaWidth` are specified, this prop will not be used
+
+*default:* `width={10}`
+
+
+
+[`VictoryBrushContainer`]: https://formidable.com/open-source/victory/docs/victory-brush-container
+[`Box`]: https://formidable.com/open-source/victory/docs/victory-primitives#box
+[`Axis`]: https://formidable.com/open-source/victory/docs/victory-primitives#axis
diff --git a/packages/victory-candlestick/README.md b/packages/victory-candlestick/README.md
new file mode 100644
index 000000000..46c80f962
--- /dev/null
+++ b/packages/victory-candlestick/README.md
@@ -0,0 +1,555 @@
+
+# VictoryCandlestick
+
+`victory-candlestick@^30.0.0` exports `VictoryCandlestick` and `Candle` components
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-candlestick to see live examples.
+
+VictoryCandlestick renders a dataset as a series of candlesticks. VictoryCandlestick can be composed with [`VictoryChart`][] to create candlestick charts.
+
+```playground
+
+ `${t.getDate()}/${t.getMonth()}`}/>
+
+
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryCandlestick` uses the standard `animate` prop. [Read about it https://formidable.com/open-source/victoryhere](/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+```jsx
+animate={{
+ duration: 2000,
+ onLoad: { duration: 1000 }
+}}
+```
+
+### candleColors
+
+`type: { positive: string, negative: string }`
+
+Candle colors are significant in candlestick charts, with colors indicating whether a market closed higher than it opened (positive), or closed lower than it opened (negative). The `candleColors` prop should be given as an object with color strings specified for positive and negative.
+
+*default (provided by default theme):* `candleColors={{positive: "white", negative: "black"}}`
+
+```playground
+
+```
+
+### categories
+
+`type: array[string] || { x: array[string], y: array[string] }`
+
+`VictoryCandlestick` uses the standard `categories` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#categories)
+
+```jsx
+categories={{ x: ["dogs", "cats", "mice"] }}
+```
+
+### close
+
+`type: string || integer || array[string] || function`
+
+Use `close` data accessor prop to define the close value of a candle.
+
+**string:** specify which property in an array of data objects should be used as the close value
+
+*examples:* `close="closing_value"`
+
+**function:** use a function to translate each element in a data array into a close value
+
+*examples:* `close={() => 10}`
+
+**array index:** specify which index of an array should be used as a close value when data is given as an array of arrays
+
+*examples:* `close={1}`
+
+**path string or path array:** specify which property in an array of nested data objects should be used as a close value
+
+*examples:* `close="bonds.close"`, `close={["bonds", "close"]}`
+
+### containerComponent
+
+`type: element`
+
+`VictoryCandlestick` uses the standard `containerComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+
+### data
+
+`type: array[object]`
+
+Specify data via the `data` prop. By default, `VictoryCandlestick` expects data as an array of objects with `x`, `open`, `close`, `high`, and `low` keys. Use the [`x`][], [`open`][], [`close`][], [`high`][], and [`low`][] data accessor props to specify custom data formats. Refer to the [Data Accessors Guide][] for more detail.
+
+```playground
+
+```
+
+### dataComponent
+
+`type: element`
+
+`VictoryCandlestick` uses the standard `dataComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#datacomponent)
+
+`VictoryCandlestick` supplies the following props to its `dataComponent`: `data`, `datum`, `index`, `padding`, `polar`, `origin`, `scale`, `style`, `candleHeight`, `x1`, `y1`, `y2`, `x2`
+
+See the [Custom Components Guide][] for more detail on creating your own `dataComponents`
+
+*default:* ` `
+
+```jsx
+dataComponent={ }
+```
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryCandlestick` uses the standard `domain` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryCandlestick` uses the standard `domainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryCandlestick` uses the standard `eventKey` prop to specify how event targets are addressed. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryCandlestick` uses the standard `events` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+```playground
+
+
Click Me
+ {
+ return [
+ {
+ target: "data",
+ mutation: (props) => {
+ const fill = props.style && props.style.fill;
+ return fill === "#c43a31" ? null : { style: { fill: "#c43a31" } };
+ }
+ }
+ ];
+ }
+ }
+ }]}
+ data={sampleDataDates}
+ />
+
+```
+
+### groupComponent
+
+`type: element`
+
+`VictoryCandlestick` uses the standard `groupComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+
+### height
+
+`type: number`
+
+`VictoryCandlestick` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### high
+
+`type: string || integer || array[string] || function`
+
+Use `high` data accessor prop to define the high value of a candle.
+
+**string:** specify which property in an array of data objects should be used as the high value
+
+*examples:* `high="highest_value"`
+
+**function:** use a function to translate each element in a data array into a high value
+
+*examples:* `high={() => 10}`
+
+**array index:** specify which index of an array should be used as a high value when data is given as an array of arrays
+
+*examples:* `high={1}`
+
+**path string or path array:** specify which property in an array of nested data objects should be used as a high value
+
+*examples:* `high="bonds.high"`, `high={["bonds", "high"]}`
+
+### labelComponent
+
+`type: element`
+
+`VictoryCandlestick` uses the standard `labelComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#labelcomponent)
+
+*default:* ` `
+
+
+```playground
+ d.open}
+ labelComponent={}
+/>
+```
+
+### labels
+
+`type: array || function`
+
+`VictoryCandlestick` uses the standard `labels` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#labels)
+
+```playground
+ `open: ${d.open}`}
+/>
+```
+
+### low
+
+`type: string || integer || array[string] || function`
+
+Use `low` data accessor prop to define the low value of a candle.
+
+**string:** specify which property in an array of data objects should be used as the low value
+
+*examples:* `low="lowest_value"`
+
+**function:** use a function to translate each element in a data array into a low value
+
+*examples:* `low={() => 10}`
+
+**array index:** specify which index of an array should be used as a low value when data is given as an array of arrays
+
+*examples:* `low={1}`
+
+**path string or path array:** specify which property in an array of nested data objects should be used as a low value
+
+*examples:* `low="bonds.low"`, `low={["bonds", "low"]}`
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryCandlestick` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+
+```playground
+
+
+
+```
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryCandlestick` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+
+```playground
+
+
+
+```
+
+
+### name
+
+`type: string`
+
+The `name` prop is used to reference a component instance when defining shared events.
+
+```jsx
+name="series-1"
+```
+
+### open
+
+`type: string || integer || array[string] || function`
+
+Use `open` data accessor prop to define the open value of a candle.
+
+**string:** specify which property in an array of data objects should be used as the open value
+
+*examples:* `open="opening_value"`
+
+**function:** use a function to translate each element in a data array into a open value
+
+*examples:* `open={() => 10}`
+
+**array index:** specify which index of an array should be used as a open value when data is given as an array of arrays
+
+*examples:* `open={1}`
+
+**path string or path array:** specify which property in an array of nested data objects should be used as a open value
+
+*examples:* `open="bonds.open"`, `open={["bonds", "open"]}`
+
+
+### origin
+
+`type: { x: number, y: number }`
+
+**The `origin` prop is only used by polar charts, and is usually controlled by `VictoryChart`. It will not typically be necessary to set an `origin` prop manually**
+
+[Read about the `origin` prop in detailhttps://formidable.com/open-source/victory](/docs/common-props#origin)
+
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryCandlestick` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### polar
+
+`type: boolean`
+
+`VictoryCandlestick` uses the standard `polar` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#polar)
+
+**Note:** Polar Charts are not yet supported for `VictoryCandlestick`
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detailhttps://formidable.com/open-source/victory](/docs/common-props#range)
+
+### samples
+
+`type: number`
+
+`VictoryCandlestick` uses the standard `samples` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#samples)
+
+*default:* `samples={50}`
+
+```jsx
+samples={100}
+```
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryCandlestick` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryCandlestick` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### sortKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryCandlestick` uses the standard `sortKey` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#sortkey)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+sortKey="x"
+```
+
+### sortOrder
+
+`type: "ascending" || "descending"`
+
+The `sortOrder` prop specifies whether sorted data should be returned in ascending or descending order.
+
+*default:* `sortOrder="ascending"`
+
+### standalone
+
+`type: boolean`
+
+`VictoryCandlestick` uses the standard `standalone` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryCandlestick` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+```playground
+
+
+
+
+```
+
+### style
+
+`type: { parent: object, data: object, labels: object }`
+
+`VictoryCandlestick` uses the standard `style` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#style)
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+ d.open}
+ />
+```
+
+### theme
+
+`type: object`
+
+`VictoryCandlestick` uses the standard `theme` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### wickStrokeWidth
+
+`type: number`
+
+When the `wickStrokeWidth` prop is set, this value will be used to determine the stroke width for the candle wick. When this prop is not set, the `strokeWidth` set by the `style` prop will apply to both the candle and the wick.
+
+### width
+
+`type: number`
+
+`VictoryCandlestick` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+### x
+
+`type: string || integer || array[string] || function`
+
+`VictoryCandlestick` uses the standard `x` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#x)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+x={(datum) => new Date(datum.day)}
+```
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Data Accessors Guide]: https://formidable.com/open-source/victory/guides/data-accessors
+[Custom Components Guide]: https://formidable.com/open-source/victory/guides/custom-components
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[`VictoryChart`]: https://formidable.com/open-source/victory/docs/victory-chart
+[`x`]: https://formidable.com/open-source/victory/docs/victory-candlestick#x
+[`open`]: https://formidable.com/open-source/victory/docs/victory-candlestick#open
+[`close`]: https://formidable.com/open-source/victory/docs/victory-candlestick#close
+[`high`]: https://formidable.com/open-source/victory/docs/victory-candlestick#high
+[`low`]: https://formidable.com/open-source/victory/docs/victory-candlestick#low
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
diff --git a/packages/victory-chart/README.md b/packages/victory-chart/README.md
new file mode 100644
index 000000000..085b385d5
--- /dev/null
+++ b/packages/victory-chart/README.md
@@ -0,0 +1,474 @@
+# VictoryChart
+
+`victory-chart@^30.0.0` exports `VictoryChart`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-chart to see live examples.
+
+`VictoryChart` is a wrapper component that renders a given set of children on a set of Cartesian or polar axes. `VictoryChart` reconciles the domain for all its children, controls the layout of the chart, and coordinates animations and shared events. If no children are provided, `VictoryChart` will render a set of empty default axes.
+
+
+```playground
+
+
+
+
+
+
+
+
+
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryChart` uses the standard `animate` prop. [Read about it here](/docs/common-props/#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+**note: `VictoryChart` controls the `animate` prop of its children when set. To animate individual children of `VictoryChart`, set the `animate` prop only on children, and not on the `VictoryChart` wrapper.**
+
+```jsx
+animate={{
+ duration: 2000,
+ onLoad: { duration: 1000 }
+}}
+```
+
+### children
+
+`type: element || array[element]`
+
+`VictoryChart` works with any combination of the following children: [VictoryArea][], [VictoryAxis][] / [VictoryPolarAxis][], [VictoryBar][], [VictoryCandlestick][], [VictoryErrorBar][], [VictoryGroup][], [VictoryLine][], [VictoryScatter][], [VictoryStack][], and [VictoryVoronoi][]. Children supplied to `VictoryChart` will be cloned and rendered with new props so that all children share common props such as `domain` and `scale`.
+
+**Note: polar charts must use `VictoryPolarAxis` rather than `VictoryAxis`**
+
+
+### containerComponent
+
+`type: element`
+
+`VictoryChart` uses the standard `containerComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props/#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryChart` uses the standard `domain` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props/#domain)
+
+**note: `VictoryChart` controls the `domain` prop of its children.**
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryChart` uses the standard `domainPadding` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+**note: `VictoryChart` controls the `domainPadding` prop of its children.**
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### endAngle
+
+`type: number`
+
+The `endAngle` props defines the overall end angle of a polar chart in degrees. This prop is used in conjunction with `startAngle` to create polar chart that spans only a segment of a circle, or to change overall rotation of the chart. This prop should be given as a number of degrees. Degrees are defined as starting at the 3 o'clock position, and proceeding counterclockwise.
+
+*default:* `endAngle={360}`
+
+```playground
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryChart` uses the standard `events` prop. [Read about it in more detail here](https://formidable.com/open-source/victory/docs/common-props/#events)
+
+See the [Events Guide][] for more information on defining events.
+
+**Note: `VictoryChart` coordinates events between children using the `VictorySharedEvents` and the `sharedEvents` prop**
+
+```playground
+ {
+ return [
+ {
+ childName: "area-2",
+ target: "data",
+ mutation: (props) => ({ style: Object.assign({}, props.style, { fill: "gold" }) })
+ }, {
+ childName: "area-3",
+ target: "data",
+ mutation: (props) => ({ style: Object.assign({}, props.style, { fill: "orange" }) })
+ }, {
+ childName: "area-4",
+ target: "data",
+ mutation: (props) => ({ style: Object.assign({}, props.style, { fill: "red" }) })
+ }
+ ];
+ }
+ }
+ }]}
+>
+
+
+
+
+
+
+
+```
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryChart` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props/#externalEventsMutations)
+
+### groupComponent
+
+`type: element`
+
+`VictoryChart` uses the standard `groupComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props/#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+
+### height
+
+`type: number`
+
+`VictoryChart` uses the standard `height` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props/#height)
+
+**note: `VictoryChart` controls the `height` prop of its children.**
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### innerRadius
+
+`type: number`
+
+When the `innerRadius` prop is set, polar charts will be hollow rather than circular.
+
+```playground
+
+
+
+
+
+```
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryChart` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+
+```playground
+
+
+
+```
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryChart` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+
+```playground
+
+
+
+```
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryChart` uses the standard `padding` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props/#padding)
+
+**note: `VictoryChart` controls the `padding` prop of its children.**
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### polar
+
+`type: boolean`
+
+`VictoryChart` uses the standard `polar` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props/#polar)
+
+**Notes:**
+ - `VictoryChart` controls the `polar` prop of its children
+ - Polar charts should use `VictoryPolarAxis` rather than `VictoryAxis`
+
+```playground
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually calculated based on other props. It will not typically be necessary to set a `range` prop manually**
+
+**note: `VictoryChart` controls the `range` prop of its children.**
+
+[Read about the `range` prop in detail](https://formidable.com/open-source/victory/docs/common-props/#range)
+
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryChart` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props/#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+**note: `VictoryChart` controls the `scale` prop of its children.**
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryChart` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### standalone
+
+`type: boolean`
+
+`VictoryChart` uses the standard `standalone` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props/#standalone)
+
+**note:** `VictoryChart` sets `standalone={false} for all of its children.
+
+*default:* `standalone={true}`
+
+```playground
+
+
+
+
+```
+### startAngle
+
+`type: number`
+
+The `startAngle` props defines the overall start angle of a polar chart in degrees. This prop is used in conjunction with `endAngle` to create polar chart that spans only a segment of a circle, or to change overall rotation of the chart. This prop should be given as a number of degrees. Degrees are defined as starting at the 3 o'clock position, and proceeding counterclockwise.
+
+*default:* `startAngle={0}`
+
+```playground
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### style
+
+`type: { parent: object }`
+
+`VictoryChart` uses the standard `style` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props/#style)
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+
+```
+
+### theme
+
+`type: object`
+
+`VictoryChart` uses the standard `theme` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props/#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### width
+
+`type: number`
+
+`VictoryChart` uses the standard `width` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props/#width)
+
+**note: `VictoryChart` controls the `width` prop of its children.**
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+[VictoryArea]: https://formidable.com/open-source/victory/docs/victory-area
+[VictoryAxis]: https://formidable.com/open-source/victory/docs/victory-axis
+[VictoryPolarAxis]: https://formidable.com/open-source/victory/docs/victory-polar-axis
+[VictoryBar]: https://formidable.com/open-source/victory/docs/victory-bar
+[VictoryCandlestick]: https://formidable.com/open-source/victory/docs/victory-candlestick
+[VictoryErrorBar]: https://formidable.com/open-source/victory/docs/victory-errorbar
+[VictoryGroup]: https://formidable.com/open-source/victory/docs/victory-group
+[VictoryLine]: https://formidable.com/open-source/victory/docs/victory-line
+[VictoryScatter]: https://formidable.com/open-source/victory/docs/victory-scatter
+[VictoryStack]: https://formidable.com/open-source/victory/docs/victory-stack
+[VictoryVoronoi]: https://formidable.com/open-source/victory/docs/victory-voronoi
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
diff --git a/packages/victory-core/README.md b/packages/victory-core/README.md
new file mode 100644
index 000000000..e2e3acd33
--- /dev/null
+++ b/packages/victory-core/README.md
@@ -0,0 +1,17 @@
+# VictoryCore
+
+`victory-core@30.0.0` exports packages that are used by several Victory components:
+ - `VictoryAnimation`
+ - `VictoryClipContainer`
+ - `VictoryContainer`
+ - `VictoryLabel`
+ - `VictoryPortal` and `Portal`
+ - `VictoryTheme`
+ - `VictoryTransition`
+ - Several primitive components:
+ `Arc`, `Border` / `Box`, `Circle`, `ClipPath`, `LineSegment` (formerly `Axis` / `Grid`), `Line`, `Path`, `Point`, `Rect`, `Text`, `TSpan`, `Whisker`
+ - Several utilities:
+ - `addEvents`, `Axis`, `Collection`, `CommonProps`, `Data`, `DefaultTransitions`, `Domain`, `Events`, `Helpers`, `Immutable`, `LabelHelpers`, `Log`, `PropTypes`, `Scale`, `Selection`, `Style`, `TextSize`, `Timer`, `Transitions`, `Wrapper`
+
+Please visit our documentation site to read more about these components
+https://formidable.com/open-source/victory
\ No newline at end of file
diff --git a/packages/victory-create-container/README.md b/packages/victory-create-container/README.md
new file mode 100644
index 000000000..1d0ad93ed
--- /dev/null
+++ b/packages/victory-create-container/README.md
@@ -0,0 +1,57 @@
+# createContainer
+
+`victory-create-container@^30.0.0` exports `createContainer`, `combineContainerMixins` and `makeCreateContainerFunction`
+
+View these docs at https://formidable.com/open-source/victory/docs/create-container to see live examples.
+
+`createContainer` makes a container component with multiple behaviors. It allows you to effectively
+combine any two of the following containers: `VictoryBrushContainer`,
+`VictoryCursorContainer`, `VictorySelectionContainer`, `VictoryVoronoiContainer`, or `VictoryZoomContainer`.
+
+```js
+const VictoryZoomVoronoiContainer = createContainer("zoom", "voronoi");
+```
+
+## Arguments
+
+The function takes two `behavior` arguments as strings:
+
+```js
+createContainer(behaviorA, behaviorB)
+```
+
+### Behavior
+
+Each `behavior` must be one of the following strings:
+`"brush"`, `"cursor"`, `"selection"`, `"voronoi"`, and `"zoom"`.
+The resulting container uses the events from both behaviors.
+For example, if both behaviors use the click event (like zoom and selection) the combined container
+will trigger both behaviors' events on each click.
+
+**Note**: Order of the behaviors matters in a few cases.
+It is recommended to use `"zoom"` before any other behaviors: for example,
+`createContainer("zoom", "voronoi")` instead of `createContainer("voronoi", "zoom")`.
+
+### Example
+
+The following example creates a custom container that combines `VictoryVoronoiContainer` and
+`VictoryZoomContainer`. Hovering over the chart will use Voronoi to highlight data points,
+while scrolling and dragging will zoom and pan.
+
+```playground_norender
+const VictoryZoomVoronoiContainer = createContainer("zoom", "voronoi");
+const data = range(100).map((x) => ({x, y: 100 + x + random(10)}));
+
+const App = () => (
+ `${d.x}, ${d.y}`}
+ />
+ }>
+
+
+);
+
+ReactDOM.render( , mountNode);
+```
diff --git a/packages/victory-cursor-container/README.md b/packages/victory-cursor-container/README.md
new file mode 100644
index 000000000..43c748dff
--- /dev/null
+++ b/packages/victory-cursor-container/README.md
@@ -0,0 +1,116 @@
+# VictoryCursorContainer
+
+`victory-cursor-container@^30.0.0` exports `VictoryCursorContainer`, `cursorContainerMixin` and `CursorHelpers`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-cursor-container to see live examples.
+
+`VictoryCursorContainer` adds a cursor to a chart to inspect coordinates.
+The cursor can either be a 2-dimensional crosshair, or a 1-dimensional line.
+The cursor moves with the mouse (or on touch on mobile devices) along the visible domain of the chart.
+The cursor can also display a label for the active coordinates using the `cursorLabel` prop.
+
+`VictoryCursorContainer` may be used with any Victory component that works with an x-y coordinate
+system, and should be added as the `containerComponent` of the top-level component.
+However, the component that uses it must be standalone
+(`standalone={true}`), which is the default for all top-level Victory components.
+
+Note that the cursor allows you to inspect the entire domain, not just the data points.
+If you would like to instead highlight only the data points, consider using [VictoryVoronoiContainer][].
+
+```playground
+ `${round(d.x, 2)}, ${round(d.y, 2)}`}
+ />
+ }
+/>
+```
+
+## Props
+
+`VictoryCursorContainer` uses a superset of props used by [VictoryContainer][]. All props are optional.
+
+### cursorComponent
+
+`type: element`
+
+The `cursorComponent` prop takes a component instance which will be used to render a cursor element. The new element created will be supplied with `x1`, `y1`, `x2` and `y2` positioning props. If a `cursorComponent` is not supplied, a new [Line][] component will be rendered.
+
+*default:* `cursorComponent={ }`
+
+### cursorDimension
+
+`type: "x" || "y"`
+
+When the `cursorDimension` prop is set, the cursor will be a line to inspect the given dimension
+(either "x" or "y"). When this prop is not specified, the cursor will be a 2-dimensional crosshair.
+For example, if you would like to inspect the time of time-series data, set `dimension={"x"}`;
+the cursor will then be a vertical line that will inspect the time value of the current mouse position.
+
+*example:* `cursorDimension="x"`
+
+```playground
+ `${round(d.x, 2)}, ${round(d.y, 2)}`}
+ />
+ }
+/>
+```
+
+### cursorLabel
+
+`type: function`
+
+The `cursorLabel` prop defines the label that will appear next to the cursor.
+A label will only appear if `cursorLabel` is set. This prop should be given as a function of a point (an Object with `x` and `y` properties).
+
+*example:* `cursorLabel={(point) => point.x}`
+
+### cursorLabelComponent
+
+`type: element`
+
+The `cursorLabelComponent` prop takes a component instance which will be used to render a label for the cursor. The new element created from the passed `cursorLabelComponent` will be supplied with the following props: `x`, `y`, `active`, `text`. If `cursorLabelComponent` is omitted, a new [VictoryLabel][] will be created with the props described above.
+
+*default:* `cursorLabelComponent={ }`
+
+### cursorLabelOffset
+
+`type: number || { x: number, y: number }`
+
+The `cursorLabelOffset` prop determines the pixel offset of the cursor label from the cursor point.
+This prop should be an Object with `x` and `y` properties, or a number to be used for both dimensions.
+
+*default:* `cursorLabelOffset={{ x: 5, y: -10 }}`
+
+### defaultCursorValue
+
+`type: number || { x: number, y: number }`
+
+Whenever the mouse is not over the chart, the cursor will not be displayed.
+If instead you would like to keep it displayed, use the `defaultCursorValue` prop to set the default value. The prop should be a point (an Object with `x` and `y` properties) for 2-dimensional cursors, or a number for 1-dimensional cursors.
+
+*examples:* `defaultCursorValue={{x: 1, y: 1}}`, `defaultCursorValue={0}`
+
+### disable
+
+`type: boolean`
+
+When the `disable` prop is set to `true`, `VictoryCursorContainer` events will not fire.
+
+### onCursorChange
+
+`type: function`
+
+If provided, the `onChange` function will be called every time the cursor value changes. `onCursorChange` is called with `value` (the updated cursor value) and `props` (the props used by `VictoryCursorContainer`). A common use for `onChange` is to save the cursor value to state and use it in another part of the view.
+
+*example:* `onChange={(value, props) => this.setState({cursorValue: value})}`
+
+[VictoryVoronoiContainer]: https://formidable.com/open-source/victory/docs/victory-voronoi-container
+[VictoryContainer]: https://formidable.com/open-source/victory/docs/victory-container
+[VictoryLabel]: https://formidable.com/open-source/victory/docs/victory-label
+[Line]: https://formidable.com/open-source/victory/docs/victory-primitives#line
diff --git a/packages/victory-errorbar/README.md b/packages/victory-errorbar/README.md
new file mode 100644
index 000000000..234fd5209
--- /dev/null
+++ b/packages/victory-errorbar/README.md
@@ -0,0 +1,510 @@
+
+# VictoryErrorBar
+
+`victory-errorbar@^30.0.0` exports `VictoryErrorBar` and `ErrorBar` components
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-errorbar to see live examples.
+
+`VictoryErrorBar` renders a dataset as a series of error bars. `VictoryErrorBar` can be composed with other components to add x and y error bars to data.
+
+```playground
+
+ datum.error * datum.x}
+ errorY={(datum) => datum.error * datum.y}
+ />
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryErrorBar` uses the standard `animate` prop. [Read about it https://formidable.com/open-source/victoryhere](/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+```jsx
+animate={{
+ duration: 2000,
+ onLoad: { duration: 1000 }
+}}
+```
+
+### borderWidth
+
+`type: number`
+
+The `borderWidth` prop sets the border width of the error bars. `borderWidth` will set both x and y error bar width.
+
+```jsx
+borderWidth={10}
+```
+
+### categories
+
+`type: array[string] || { x: array[string], y: array[string] }`
+
+`VictoryErrorBar` uses the standard `categories` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#categories)
+
+```jsx
+categories={{ x: ["dogs", "cats", "mice"] }}
+```
+
+### containerComponent
+
+`type: element`
+
+`VictoryErrorBar` uses the standard `containerComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+
+### data
+
+`type: array[object]`
+
+Specify data via the `data` prop. By default, `VictoryErrorBar` expects data as an array of objects with `x`, `y`, `errorX` and `errorY` keys. Use the [`x`][], [`y`][], [`errorX`][] and [`errorY`][] data accessor props to specify custom data formats. Refer to the [Data Accessors Guide][] for more detail.
+
+```playground
+
+```
+
+### dataComponent
+
+`type: element`
+
+`VictoryErrorBar` uses the standard `dataComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#datacomponent)
+
+`VictoryErrorBar` supplies the following props to its `dataComponent`: `data`, `datum`, `index`, `padding`, `polar`, `origin`, `scale`, `style`, `borderWidth`, `x`, `y`, `errorX`, `errorY`
+
+See the [Custom Components Guide][] for more detail on creating your own `dataComponents`
+
+*default:* ` `
+
+```jsx
+dataComponent={ }
+```
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryErrorBar` uses the standard `domain` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryErrorBar` uses the standard `domainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+### errorX
+
+`type: string || integer || array[string] || function`
+
+Use `errorX` data accessor prop to define the x error bar.
+
+**string:** specify which property in an array of data objects should be used as the errorX value
+
+*examples:* `errorX="uncertainty"`
+
+**function:** use a function to translate each element in a data array into a errorX value
+
+*examples:* `errorX={() => 10}`
+
+**array index:** specify which index of an array should be used as a errorX value when data is given as an array of arrays
+
+*examples:* `errorX={1}`
+
+**path string or path array:** specify which property in an array of nested data objects should be used as a errorX value
+
+*examples:* `errorX="measurement.uncertainty"`, `errorX={["measurement", "uncertainty"]}`
+
+
+### errorY
+
+`type: string || integer || array[string] || function`
+
+Use `errorY` data accessor prop to define the y error bar.
+
+**string:** specify which property in an array of data objects should be used as the errorY value
+
+*examples:* `errorY="uncertainty"`
+
+**function:** use a function to translate each element in a data array into a errorY value
+
+*examples:* `errorY={() => 10}`
+
+**array index:** specify which index of an array should be used as a errorY value when data is given as an array of arrays
+
+*examples:* `errorY={1}`
+
+**path string or path array:** specify which property in an array of nested data objects should be used as a errorY value
+
+*examples:* `errorY="measurement.uncertainty"`, `errorY={["measurement", "uncertainty"]}`
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryErrorBar` uses the standard `eventKey` prop to specify how event targets are addressed. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryErrorBar` uses the standard `events` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+```playground
+
+
Click Me
+ {
+ return [
+ {
+ target: "data",
+ mutation: (props) => {
+ const stroke = props.style && props.style.stroke;
+ return stroke === "#c43a31" ? null : { style: { stroke: "#c43a31", strokeWidth: 7 } };
+ }
+ }
+ ];
+ }
+ }
+ }]}
+ data={[
+ {x: 15, y: 35, errorX: 1, errorY: 3},
+ {x: 20, y: 42, errorX: 3, errorY: 2},
+ {x: 25, y: 30, errorX: 5, errorY: 5},
+ {x: 30, y: 35, errorX: 5, errorY: 3},
+ {x: 35, y: 22, errorX: 8, errorY: 2}
+ ]}
+ />
+
+```
+
+### groupComponent
+
+`type: element`
+
+`VictoryErrorBar` uses the standard `groupComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+
+### height
+
+`type: number`
+
+`VictoryErrorBar` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### labelComponent
+
+`type: element`
+
+`VictoryErrorBar` uses the standard `labelComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#labelcomponent)
+
+*default:* ` `
+
+```playground
+ d.y}
+ labelComponent={}
+/>
+```
+
+### labels
+
+`type: array || function`
+
+`VictoryErrorBar` uses the standard `labels` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#labels)
+
+```playground
+ d.y}
+/>
+```
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryErrorBar` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+
+```playground
+
+
+
+```
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryErrorBar` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+
+```playground
+
+
+
+```
+
+### name
+
+`type: string`
+
+The `name` prop is used to reference a component instance when defining shared events.
+
+```jsx
+name="series-1"
+```
+
+### origin
+
+`type: { x: number, y: number }`
+
+**The `origin` prop is only used by polar charts, and is usually controlled by `VictoryChart`. It will not typically be necessary to set an `origin` prop manually**
+
+[Read about the `origin` prop in detailhttps://formidable.com/open-source/victory](/docs/common-props#origin)
+
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryErrorBar` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### polar
+
+`type: boolean`
+
+`VictoryErrorBar` uses the standard `polar` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#polar)
+
+**Note:** Polar Charts are not yet supported for `VictoryErrorBar`
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detailhttps://formidable.com/open-source/victory](/docs/common-props#range)
+
+### samples
+
+`type: number`
+
+`VictoryErrorBar` uses the standard `samples` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#samples)
+
+*default:* `samples={50}`
+
+```jsx
+samples={100}
+```
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryErrorBar` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryErrorBar` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### sortKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryErrorBar` uses the standard `sortKey` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#sortkey)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+sortKey="x"
+```
+
+### sortOrder
+
+`type: "ascending" || "descending"`
+
+The `sortOrder` prop specifies whether sorted data should be returned in ascending or descending order.
+
+*default:* `sortOrder="ascending"`
+
+### standalone
+
+`type: boolean`
+
+`VictoryErrorBar` uses the standard `standalone` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryErrorBar` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+```playground
+
+
+
+
+```
+
+### style
+
+`type: { parent: object, data: object, labels: object }`
+
+`VictoryErrorBar` uses the standard `style` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#style)
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+ d.x}
+ />
+```
+
+### theme
+
+`type: object`
+
+`VictoryErrorBar` uses the standard `theme` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### width
+
+`type: number`
+
+`VictoryErrorBar` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+### x
+
+`type: string || integer || array[string] || function`
+
+`VictoryErrorBar` uses the standard `x` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#x)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+x={(datum) => new Date(datum.day)}
+```
+
+### y
+
+`type: string || integer || array[string] || function`
+
+`VictoryErrorBar` uses the standard `y` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#y)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+y={(d) => d.value + d.error}
+```
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Data Accessors Guide]: https://formidable.com/open-source/victory/guides/data-accessors
+[Custom Components Guide]: https://formidable.com/open-source/victory/guides/custom-components
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[`x`]: https://formidable.com/open-source/victory/docs/victory-candlestick#x
+[`y`]: https://formidable.com/open-source/victory/docs/victory-candlestick#y
+[`errorX`]: https://formidable.com/open-source/victory/docs/victory-candlestick#errorX
+[`errorY`]: https://formidable.com/open-source/victory/docs/victory-candlestick#errorY
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
diff --git a/packages/victory-group/README.md b/packages/victory-group/README.md
new file mode 100644
index 000000000..e62048c23
--- /dev/null
+++ b/packages/victory-group/README.md
@@ -0,0 +1,542 @@
+
+# VictoryGroup
+
+`victory-group@^30.0.0` exports `VictoryGroup`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-group to see live examples.
+
+`VictoryGroup` is a wrapper component that renders a given set of children with some shared props. `VictoryGroup` reconciles the domain and layout for all its children, and coordinates animations and shared events. `VictoryGroup` may also be used to supply common data and styles to all its children. This is especially useful when adding markers to a line, or adding voronoi tooltips to data. `VictoryGroup` may also be used to apply an offset to a group of children, as with grouped bar charts, or may be used to stack several components on the same level, _e.g.,_ stacked area charts with data markers.
+
+`VictoryGroup` should not have `VictoryAxis` components as children
+
+`VictoryGroup` works with:
+[VictoryArea][], [VictoryBar][], [VictoryCandlestick][], [VictoryErrorBar][], [VictoryLine][], [VictoryScatter][], [VictoryStack][], and [VictoryVoronoi][].
+
+```playground
+
+
+
+
+
+
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryGroup` uses the standard `animate` prop. [Read about it herhttps://formidable.com/open-source/victorye](/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+**note: `VictoryGroup` controls the `animate` prop of its children when set**
+
+```jsx
+ animate={{
+ duration: 2000,
+ onLoad: { duration: 1000 }
+ }}
+```
+
+### categories
+
+`type: array[string] || { x: array[string], y: array[string] }`
+
+`VictoryGroup` uses the standard `categories` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#categories)
+
+**note: When this prop is set, `VictoryGroup` controls the `categories` prop of its children.**
+
+```jsx
+categories={["dogs", "cats", "mice"]}
+```
+
+### children
+
+`type: element || array[element]`
+
+`VictoryGroup` works with any combination of the following children: [VictoryArea][], [VictoryBar][], [VictoryCandlestick][], [VictoryErrorBar][], [VictoryLine][], [VictoryScatter][], [VictoryStack][], and [VictoryVoronoi][]. Children supplied to `VictoryGroup` will be cloned and rendered with new props so that all children share common props such as `domain` and `scale`.
+
+### color
+
+`type: string`
+
+The `color` prop is an optional prop that defines a single color to be applied to the children of `VictoryGroup`. The `color` prop will override colors specified via `colorScale`.
+
+```playground
+
+
+
+
+```
+
+### colorScale
+
+`type: array[string]`
+
+The `colorScale` prop is an optional prop that defines a color scale to be applied to the children of `VictoryGroup`. This prop should be given as an array of CSS colors, or as a string corresponding to one of the built in color scales: "grayscale", "qualitative", "heatmap", "warm", "cool", "red", "green", "blue". `VictoryGroup` will assign colors to its children by index, unless they are explicitly specified in styles. Colors will repeat when there are more children than colors in the provided `colorScale`.
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+
+
+
+
+
+```
+
+
+### containerComponent
+
+`type: element`
+
+`VictoryGroup` uses the standard `containerComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+
+### data
+
+`type: array[object]`
+
+`VictoryGroup` uses the standard `data` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#data)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+When `data` is provided for `VictoryGroup` it will be passed to every child in the group. Use this as a convenience in cases where all components should have identical data, for example, adding data points to a line, or adding voronoi tooltips to data. Omit this prop when child components should not share data. By default, Victory components expect data as an array of objects with `x` and `y` props. Use the [x][] and [y][] data accessor props to define a custom data format. The `data` prop must be given as an array.
+
+```playground
+
+
+
+
+
+
+
+```
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryGroup` uses the standard `domain` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+**note: `VictoryGroup` controls the `domain` prop of its children.**
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryGroup` uses the standard `domainPadding` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+**note: `VictoryGroup` controls the `domainPadding` prop of its children.**
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryGroup` uses the standard `eventKey` prop to specify how event targets are addressed. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryGroup` uses the standard `events` prop. [Read about it in more detail here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+**Note: `VictoryGroup` coordinates events between children using the `VictorySharedEvents` and the `sharedEvents` prop**
+
+```playground
+ {
+ return [
+ {
+ childName: "bar-2",
+ target: "data",
+ mutation: (props) => ({ style: Object.assign({}, props.style, { fill: "gold" }) })
+ }, {
+ childName: "bar-3",
+ target: "data",
+ mutation: (props) => ({ style: Object.assign({}, props.style, { fill: "orange" }) })
+ }, {
+ childName: "bar-4",
+ target: "data",
+ mutation: (props) => ({ style: Object.assign({}, props.style, { fill: "red" }) })
+ }
+ ];
+ }
+ }
+ }]}
+>
+
+
+
+
+
+```
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryGroup` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#externalEventsMutations)
+
+### groupComponent
+
+`type: element`
+
+`VictoryGroup` uses the standard `groupComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+
+### height
+
+`type: number`
+
+`VictoryGroup` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### horizontal
+
+`type: boolean`
+
+The `horizontal` prop determines whether the bars of any `VictoryBar` children supplied to `VictoryGroup` will be laid out vertically or horizontally. The bars will be vertical if this prop is false or unspecified, or horizontal if the prop is set to true.
+
+### labels
+
+`type: array || function`
+
+The `labels` prop defines labels that will appear above each group of data. This prop should be given as an array of values or as a function of data. If given as an array, the number of elements in the array should be equal to the length of the data array. Group labels will appear above the center series of the group, and will override the `labels` prop of child components. Omit this prop, and set `labels` props on children for individual labels.
+
+```jsx
+labels={["spring", "summer", "fall", "winter"]}`, `labels={(datum) => datum.title}
+```
+
+### labelComponent
+
+`type: element`
+
+The `labelComponent` prop takes a component instance which will be used to render labels for each group. The new element created from the passed `labelComponent` will be supplied with the following props: `x`, `y`, `index`, `datum`, `verticalAnchor`, `textAnchor`, `angle`, `style`, `text`, and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `labelComponent` is omitted, a new [VictoryLabel][] will be created with the props described above.
+
+*default:* ` `
+
+```jsx
+labelComponent={}
+```
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryGroup` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryGroup` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+### name
+
+`type: string`
+
+The `name` prop is used to reference a component instance when defining shared events.
+
+```jsx
+name="series-1"
+```
+
+### offset
+
+`type: number`
+
+The `offset` prop determines the number of pixels each element in a group should be offset from its original position of the on the independent axis. In the case of groups of bars, this number should be equal to the width of the bar plus the desired spacing between bars.
+
+```playground
+
+
+
+
+
+```
+
+### origin
+
+`type: { x: number, y: number }`
+
+**The `origin` prop is only used by polar charts, and is usually controlled by `VictoryChart`. It will not typically be necessary to set an `origin` prop manually**
+
+[Read about the `origin` prop in detail](https://formidable.com/open-source/victory/docs/common-props#origin)
+
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryGroup` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### polar
+
+`type: boolean`
+
+`VictoryGroup` uses the standard `polar` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#polar)
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detail](https://formidable.com/open-source/victory/docs/common-props#range)
+
+### samples
+
+`type: integer`
+
+`VictoryGroup` uses the standard `samples` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#samples)
+
+*default:* `samples={50}`
+
+```jsx
+samples={100}
+```
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryGroup` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+**note: `VictoryGroup` controls the `scale` prop of its children.**
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryGroup` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### sortKey
+
+`type: string || integer || array[string] || function`
+
+
+`VictoryGroup` uses the standard `sortKey` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#sortkey)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+sortKey="x"
+```
+
+### sortOrder
+
+`type: "ascending" || "descending"`
+
+The `sortOrder` prop specifies whether sorted data should be returned in ascending or descending order.
+
+*default:* `sortOrder="ascending"`
+
+### standalone
+
+`type: boolean`
+
+`VictoryGroup` uses the standard `standalone` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryGroup` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+
+### style
+
+`type: { parent: object, data: object, labels: object }`
+
+`VictoryGroup` uses the standard `style` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#style)
+
+Styles on children of `VictoryGroup` will override styles set on the `VictoryGroup` component.
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+
+
+
+
+
+```
+
+### theme
+
+`type: object`
+
+`VictoryGroup` uses the standard `theme` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### width
+
+`type: number`
+
+`VictoryGroup` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+### x
+
+`type: string || integer || array[string] || function`
+
+`VictoryGroup` uses the standard `x` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#x)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+x="employee.name"
+```
+
+### y
+
+`type: string || integer || array[string] || function`
+
+`VictoryGroup` uses the standard `y` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#y)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+y={(d) => d.value + d.error}
+```
+
+### y0
+
+`type: string || integer || array[string] || function`
+
+`VictoryGroup` uses the standard `y0` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#y0)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+y0={() => 10}
+```
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Data Accessors Guide]: https://formidable.com/open-source/victory/guides/data-accessors
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
+[VictoryArea]: https://formidable.com/open-source/victory/docs/victory-area
+[VictoryBar]: https://formidable.com/open-source/victory/docs/victory-bar
+[VictoryCandlestick]: https://formidable.com/open-source/victory/docs/victory-candlestick
+[VictoryErrorBar]: https://formidable.com/open-source/victory/docs/victory-errorbar
+[VictoryLine]: https://formidable.com/open-source/victory/docs/victory-line
+[VictoryScatter]: https://formidable.com/open-source/victory/docs/victory-scatter
+[VictoryStack]: https://formidable.com/open-source/victory/docs/victory-stack
+[VictoryVoronoi]: https://formidable.com/open-source/victory/docs/victory-voronoi
+[VictoryLabel]: https://formidable.com/open-source/victory/docs/victory-label
+[x]: https://formidable.com/open-source/victory/docs/common-props#x
+[y]: https://formidable.com/open-source/victory/docs/common-props#y
diff --git a/packages/victory-legend/README.md b/packages/victory-legend/README.md
new file mode 100644
index 000000000..d31ecb964
--- /dev/null
+++ b/packages/victory-legend/README.md
@@ -0,0 +1,479 @@
+# VictoryLegend
+
+`victory-legend@^30.0.0` exports `VictoryLegend`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-legend to see live examples.
+
+`VictoryLegend` renders a chart legend component.
+
+```playground
+
+
+
+
+```
+
+## Props
+
+### borderComponent
+
+`type: element`
+
+The `borderComponent` prop takes a component instance which will be responsible for rendering a border around the legend. The new element created from the passed `borderComponent` will be provided with the following properties calculated by `VictoryLegend`: `x`, `y`, `width`, `height`, and `style`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `borderComponent` is not provided, `VictoryLegend` will use its default [Border component][]. Please note that the default width and height calculated for the border component is based on _approximated_ text measurements, and may need to be adjusted.
+
+*default:* ` `
+
+```jsx
+borderComponent={}
+```
+
+### borderPadding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+The `borderPadding` specifies the amount of padding that should be added between the legend items and the border. This prop may be given as a number, or as an object with values specified for `top`, `bottom`, `left`, and `right`. Please note that the default width and height calculated for the border component is based on _approximated_ text measurements, so padding may need to be adjusted.
+
+```jsx
+borderPadding={{ top: 20, bottom: 10 }}
+```
+
+### centerTitle
+
+`type: boolean`
+
+The `centerTitle` boolean prop specifies whether a legend title should be centered.
+
+```playground
+
+```
+
+### colorScale
+
+`type: array[string]`
+
+The `colorScale` prop defines a color scale to be applied to each data symbol in `VictoryLegend`. This prop should be given as an array of CSS colors, or as a string corresponding to one of the built in color scales: "grayscale", "qualitative", "heatmap", "warm", "cool", "red", "green", "blue". `VictoryLegend` will assign a color to each symbol by index, unless they are explicitly specified in the data object. Colors will repeat when there are more symbols than colors in the provided `colorScale`.
+
+```playground
+
+```
+
+### containerComponent
+
+`type: element`
+
+`VictoryLegend` uses the standard `containerComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+**Note:** `VictoryLegend` only works with the `VictoryContainer` component
+
+*default:* `containerComponent={ }`
+
+```jsx
+containerComponent={}
+```
+
+### data
+
+`type: array[{ name, symbol, labels }]`
+
+Specify data via the `data` prop. `VictoryLegend` expects data as an array of objects with `name` (required), `symbol`, and `labels` properties. The `data` prop must be given as an array.
+
+*default:* `data={[{ name: "Series 1" }, { name: "Series 2" }]}`
+
+```playground
+
+```
+
+### dataComponent
+
+`type: element`
+
+`VictoryLegend` uses the standard `dataComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#datacomponent)
+
+`VictoryLegend` supplies the following props to its `dataComponent`: `data`, `datum`, `events`, `index`, `x`, `y`, `size`, `style`, and `symbol`. `VictoryLegend` renders a [Point component][] by default.
+
+See the [Custom Components Guide][] for more detail on creating your own `dataComponents`
+
+*default:* ` `
+
+```jsx
+dataComponent={ }
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryLegend` uses the standard `eventKey` prop to specify how event targets are addressed. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryLegend` uses the standard `events` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+```playground
+
+
Click Me
+ {
+ return [
+ {
+ target: "data",
+ mutation: (props) => {
+ const fill = props.style && props.style.fill;
+ return fill === "#c43a31" ? null : { style: { fill: "#c43a31" } };
+ }
+ }, {
+ target: "labels",
+ mutation: (props) => {
+ return props.text === "clicked" ? null : { text: "clicked" };
+ }
+ }
+ ];
+ }
+ }
+ }]}
+ data={[
+ { name: "One" }, { name: "Two" }, { name: "Three" }
+ ]}
+ />
+
+```
+
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryLegend` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#externalEventsMutations)
+
+### groupComponent
+
+`type: element`
+
+`VictoryLegend` uses the standard `groupComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+
+### gutter
+
+`type: number || { left: number, right: number }`
+
+The `gutter` prop defines the number of pixels between legend columns. This prop may be given as a number, or as an object with values specified for "left" and "right" gutters. To set spacing between rows, use the `rowGutter` prop.
+
+*default:* `gutter={10}`
+
+```playground
+
+```
+
+### height
+
+`type: number`
+
+`VictoryLegend` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={400}`
+
+```jsx
+height={400}
+```
+
+### itemsPerRow
+
+`type: number`
+
+The `itemsPerRow` prop determines how many items to render in each row of a horizontal legend, or in each column of a vertical legend. This prop should be given as an integer. When this prop is not given, legend items will be rendered in a single row or column.
+
+```playground
+
+```
+
+### labelComponent
+
+`type: element`
+
+`VictoryLegend` uses the standard `labelComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#labelcomponent)
+
+*default:* ` `
+
+```playground
+}
+/>
+```
+
+### orientation
+
+`type: "vertical" || "horizontal"`
+
+The `orientation` prop takes a string that defines whether legend data are displayed in a row or column. When `orientation` is `"horizontal"`, legend items will be displayed in rows. When `orientation` is `"vertical"`, legend items will be displayed in columns.
+
+*default:* `orientation="vertical"`
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryLegend` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### rowGutter
+
+`type: number || { top: number, bottom: number }`
+
+The `rowGutter` prop defines the number of pixels between legend rows. This prop may be given as a number, or as an object with values specified for "top" and "bottom" gutters. To set spacing between columns, use the `gutter` prop.
+
+```playground
+
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### standalone
+
+`type: boolean`
+
+The `standalone` props specifies whether the component should be rendered in an independent `` element or in a `` tag. This prop defaults to true, and renders an `svg`.
+
+*default:* `standalone={true}`
+
+### style
+
+`type: { border: object, data: object, labels: object, parent: object, title: object }`
+
+The `style` prop defines the style of the component. The style prop should be given as an object with styles defined for `parent`, `data`, `labels`, `title`, and `border`. Any valid svg styles are supported, but `width`, `height`, and `padding` should be specified via props as they determine relative layout for components in VictoryChart. Functional styles may be defined for `data`, and `labels` style properties, and they will be evaluated with each datum.
+
+**note:** When a component is rendered as a child of another Victory component, or within a custom `` element with `standalone={false}` parent styles will be applied to the enclosing `` tag. Many styles that can be applied to a parent `` will not be expressed when applied to a ``.
+
+**note:** custom `angle` and `verticalAnchor` properties may be included in `labels` and `title` styles.
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+
+```
+
+### symbolSpacer
+
+`type: number`
+
+The `symbolSpacer` prop defines the number of pixels between data components and label components. When a `symbolSpacer` is not defined, spacing is calculated based on symbol size and label font size.
+
+```playground
+
+```
+
+### theme
+
+`type: object`
+
+The `theme` prop specifies a theme to use for determining styles and layout properties for a component. Any styles or props defined in `theme` may be overridden by props specified on the component instance. By default, components use a [grayscale theme][]. [Read more about themes here][].
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+### title
+
+`type: string || array[string]`
+
+The `title` prop specifies a title to render with the legend. This prop should be given as a string, or an array of strings for multi-line titles.
+
+```playground
+
+```
+
+### titleComponent
+
+`type: element`
+
+The `titleComponent` prop takes a component instance which will be used to render a title for the component. The new element created from the passed `labelComponent` will be supplied with the following properties: `x`, `y`, `index`, `data`, `datum`, `verticalAnchor`, `textAnchor`, `style`, `text`, and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `labelComponent` is omitted, a new [VictoryLabel][] will be created with the props described above.
+
+*default:* ` `
+
+
+```playground
+ }
+ data={[
+ { name: "One" }, { name: "Two" }, { name: "Three" }
+ ]}
+/>
+```
+
+### titleOrientation
+
+`type: "top" || "bottom" || "left" || "right"`
+
+The `titleOrientation` prop specifies where the a title should be rendered in relation to the rest of the legend. Possible values for this prop are "top", "bottom", "left", and "right".
+
+*default (provided by default theme):* `titleOrientation="top"`
+
+```playground
+
+```
+
+### width
+
+`type: number`
+
+`VictoryLegend` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={400}`
+
+```jsx
+width={400}
+```
+
+### x
+
+`type: number`
+
+The `x` prop defines the x coordinate corresponding to the upper left corner of the legend.
+
+### y
+
+`type: number`
+
+The `y` prop defines the y coordinate corresponding to the upper left corner of the legend.
+
+[VictoryLabel]: https://formidable.com/open-source/victory/docs/victory-label
+[Point component]: https://formidable.com/open-source/victory/docs/victory-primitives#point
+[Border component]: https://formidable.com/open-source/victory/docs/victory-primitives#border
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
+[Read more about themes here]: https://formidable.com/open-source/victory/guides/themes
+[Custom Components Guide]: https://formidable.com/open-source/victory/guides/custom-components
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
diff --git a/packages/victory-line/README.md b/packages/victory-line/README.md
new file mode 100644
index 000000000..1063a5c48
--- /dev/null
+++ b/packages/victory-line/README.md
@@ -0,0 +1,533 @@
+# VictoryLine
+
+`victory-line@^30.0.0` exports `VictoryLine` and `Curve` components
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-line to see live examples.
+
+VictoryLine renders a dataset as a single line. VictoryLine can be composed with [`VictoryChart`][] to create line charts.
+
+```playground
+
+
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryLine` uses the standard `animate` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+```jsx
+animate={{
+ duration: 2000,
+ onLoad: { duration: 1000 }
+}}
+```
+
+### categories
+
+`type: array[string] || { x: array[string], y: array[string] }`
+
+`VictoryLine` uses the standard `categories` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#categories)
+
+```jsx
+categories={{ x: ["dogs", "cats", "mice"] }}
+```
+
+### containerComponent
+
+`type: element`
+
+`VictoryLine` uses the standard `containerComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+
+### data
+
+`type: array[object]`
+
+`VictoryLine` uses the standard `data` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#data)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```playground
+
+
+
+```
+
+### dataComponent
+
+`type: element`
+
+`VictoryLine` uses the standard `dataComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#datacomponent)
+
+`VictoryLine` supplies the following props to its `dataComponent`: `data`, `events`, `groupComponent`, `interpolation`, `origin` (for polar charts), `polar`, `scale`, `style`
+
+See the [Custom Components Guide][] for more detail on creating your own `dataComponents`
+
+*default:* ` `
+
+```jsx
+dataComponent={ }
+```
+
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryLine` uses the standard `domain` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryLine` uses the standard `domainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryLine` uses the standard `eventKey` prop. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+**note:** `VictoryLine` only renders one element per dataset, so only one event key will be generated.
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryLine` uses the standard `events` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+**note:** `VictoryLine` will use the special `eventKey` "all" rather than referring to data by index, as it renders only one element for an entire dataset
+
+```playground
+
+
Click Me
+ {
+ return [
+ {
+ target: "data",
+ eventKey: "all",
+ mutation: (props) => {
+ return stroke === "black" ? null : { style: { stroke: "black", strokeWidth: 5 } };
+ }
+ }
+ ];
+ }
+ }
+ }]}
+ data={sampleData}
+ />
+
+```
+
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryLine` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#externalEventsMutations)
+
+### groupComponent
+
+`type: element`
+
+`VictoryLine` uses the standard `groupComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+**note:** `VictoryLine` uses [`VictoryClipContainer`][] as its default `groupComponent` `VictoryClipContainer` renders a `` tag with a `clipPath` `def`. This allows continuous data components to transition smoothly when new data points enter and exit. **Supplying a completely custom `groupComponent` to `VictoryLine` may result in broken animations.**
+
+*default:* ` `
+
+```playground
+
+ }
+ style={{ data: { stroke: "#c43a31", strokeWidth: 15, strokeLinecap: "round" } }}
+ data={sampleData}
+ />
+
+```
+
+### height
+
+`type: number`
+
+`VictoryLine` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### interpolation
+
+`type: options`
+
+The `interpolation` prop determines how data points should be connected when creating a path. Victory uses [d3-shape](https://github.com/d3/d3-shape#curves) for interpolating curves.
+
+Polar line charts may use the following interpolation options: "basis", "cardinal", "catmullRom", "linear"
+
+Cartesian line charts may use the following interpolation options: "basis", "bundle", "cardinal", "catmullRom", "linear", "monotoneX", "monotoneY", "natural", "step", "stepAfter", "stepBefore"
+
+[Explore all the interpolation options][].
+
+*default:* `"linear"`
+
+```playground
+
+```
+
+### labelComponent
+
+`type: element`
+
+`VictoryLine` uses the standard `labelComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#labelcomponent)
+
+*default:* ` `
+
+```playground
+ datum.y}
+ labelComponent={}
+/>
+```
+
+
+### labels
+
+`type: array || function`
+
+`VictoryLine` uses the standard `labels` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#labels)
+
+```playground
+ datum.y}
+/>
+```
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryLine` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+
+```playground
+
+
+
+```
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryLine` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+
+```playground
+
+
+
+```
+
+### name
+
+`type: string`
+
+The `name` prop is used to reference a component instance when defining shared events.
+
+```jsx
+name="series-1"
+```
+
+### origin
+
+`type: { x: number, y: number }`
+
+**The `origin` prop is only used by polar charts, and is usually controlled by `VictoryChart`. It will not typically be necessary to set an `origin` prop manually**
+
+[Read about the `origin` prop in detail](https://formidable.com/open-source/victory/docs/common-props#origin)
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryLine` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### polar
+
+`type: boolean`
+
+`VictoryLine` uses the standard `polar` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#polar)
+
+```playground
+
+ null}
+ />
+
+
+
+```
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detail](https://formidable.com/open-source/victory/docs/common-props#range)
+
+
+### samples
+
+`type: number`
+
+`VictoryLine` uses the standard `samples` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#samples)
+
+*default:* `samples={50}`
+
+```playground
+
+ Math.sin(5 * Math.PI * d.x)}
+ />
+ Math.cos(5 * Math.PI * d.x)}
+ />
+
+```
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryLine` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryLine` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### sortKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryLine` uses the standard `sortKey` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#sortkey)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```playground
+ ({ t }))}
+ sortKey="t"
+ x={(d) => Math.sin(3 * d.t + (2 * Math.PI))}
+ y={(d) => Math.sin(2 * d.t)}
+/>
+```
+
+### sortOrder
+
+`type: "ascending" || "descending"`
+
+The `sortOrder` prop specifies whether sorted data should be returned in ascending or descending order.
+
+*default:* `sortOrder="ascending"`
+
+### standalone
+
+`type: boolean`
+
+`VictoryLine` uses the standard `standalone` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryLine` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+```playground
+
+
+
+
+```
+
+### style
+
+`type: { parent: object, data: object, labels: object }`
+
+`VictoryLine` uses the standard `style` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#style)
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+ d.x === 3 ? "#000000" : "#c43a31"
+ }
+ }}
+ data={sampleData}
+ labels={(d) => d.x}
+ />
+```
+
+### theme
+
+`type: object`
+
+`VictoryLine` uses the standard `theme` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### width
+
+`type: number`
+
+`VictoryLine` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+### x
+
+`type: string || integer || array[string] || function`
+
+`VictoryLine` uses the standard `x` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#x)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+x="employee.name"
+```
+
+### y
+
+`type: string || integer || array[string] || function`
+
+`VictoryLine` uses the standard `y` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#y)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+y={(d) => d.value + d.error}
+```
+
+### y0
+
+`type: string || integer || array[string] || function`
+
+**It is not common to set a `y0` prop with `VictoryLine`, as baselines for `VictoryLine` are only relevant for stacked lines.** [Read more about the `y0` prop here](https://formidable.com/open-source/victory/docs/common-props#y0)
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Data Accessors Guide]: https://formidable.com/open-source/victory/guides/data-accessors
+[Custom Components Guide]: https://formidable.com/open-source/victory/guides/custom-components
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[`VictoryChart`]: https://formidable.com/open-source/victory/docs/victory-chart
+[`VictoryClipContainer`]: https://formidable.com/open-source/victory/docs/victory-clip-container
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
+[Explore all the interpolation options]: https://formidable.com/open-source/victory/gallery/interpolation
diff --git a/packages/victory-pie/README.md b/packages/victory-pie/README.md
new file mode 100644
index 000000000..40292e142
--- /dev/null
+++ b/packages/victory-pie/README.md
@@ -0,0 +1,491 @@
+# VictoryPie
+
+`victory-pie@^30.0.0` exports `VictoryPie` and `Slice` components
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-pie to see live examples.
+
+`VictoryPie` renders a dataset as a pie chart.
+
+```playground
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryPie` uses the standard `animate` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+```jsx
+animate={{
+ duration: 2000
+}}
+```
+
+### categories
+
+`type: array[string] || { x: array[string], y: array[string] }`
+
+`VictoryPie` uses the standard `categories` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#categories)
+
+```jsx
+categories={{ x: ["dogs", "cats", "mice"] }}
+```
+
+### colorScale
+
+`type: array[string]`
+
+The `colorScale` prop defines a color scale to be applied to each slice of `VictoryPie`. This prop should be given as an array of CSS colors, or as a string corresponding to one of the built in color scales: "grayscale", "qualitative", "heatmap", "warm", "cool", "red", "green", "blue". `VictoryPie` will assign a color to each slice by index, unless they are explicitly specified in the data object. Colors will repeat when there are more slices than colors in the provided `colorScale`.
+
+*default (provided by default theme):* `colorScale="grayscale"`
+
+```playground
+
+```
+
+### containerComponent
+
+`type: element`
+
+`VictoryPie` uses the standard `containerComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+**Note:** `VictoryPie` only works with the `VictoryContainer` component
+
+*default:* `containerComponent={ }`
+
+```jsx
+containerComponent={}
+```
+
+### cornerRadius
+
+`type: number`
+
+The `cornerRadius` prop specifies the corner radius of the slices rendered in the pie chart.
+
+```playground
+
+```
+
+### data
+
+`type: array[object]`
+
+`VictoryPie` uses the standard `data` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#data)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+
+```playground
+
+```
+
+### dataComponent
+
+`type: element`
+
+`VictoryPie` uses the standard `dataComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#datacomponent)
+
+`VictoryPie` supplies the following props to its `dataComponent`: `data`, `datum`, `events`, `index`, `pathFunction`, `slice`, `style`
+
+See the [Custom Components Guide][] for more detail on creating your own `dataComponents`
+
+*default:* ` `
+
+```jsx
+dataComponent={ }
+```
+
+### endAngle
+
+`type: number`
+
+The `endAngle` props defines the overall end angle of the pie in degrees. This prop is used in conjunction with `startAngle` to create a pie that spans only a segment of a circle, or to change overall rotation of the pie. This prop should be given as a number of degrees. Degrees are defined as starting at the 12 o'clock position, and proceeding clockwise.
+
+*default:* `endAngle={360}`
+
+
+```playground
+
+
+
+
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryPie` uses the standard `eventKey` prop to specify how event targets are addressed. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryPie` uses the standard `events` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+```playground
+
+
Click Me
+ {
+ return [
+ {
+ target: "data",
+ mutation: (props) => {
+ const fill = props.style && props.style.fill;
+ return fill === "#c43a31" ? null : { style: { fill: "#c43a31" } };
+ }
+ }, {
+ target: "labels",
+ mutation: (props) => {
+ return props.text === "clicked" ? null : { text: "clicked" };
+ }
+ }
+ ];
+ }
+ }
+ }]}
+ data={sampleData}
+ />
+
+```
+
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryPie` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#externalEventsMutations)
+
+### groupComponent
+
+`type: element`
+
+`VictoryPie` uses the standard `groupComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+
+### height
+
+`type: number`
+
+`VictoryPie` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={400}`
+
+```jsx
+height={400}
+```
+
+### innerRadius
+
+`type: number`
+
+The `innerRadius` prop determines the number of pixels between the center of the chart and the inner edge of a donut chart. When this prop is set to zero a regular pie chart is rendered.
+
+```playground
+
+```
+
+### labelComponent
+
+`type: element`
+
+`VictoryPie` uses the standard `labelComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#labelcomponent)
+
+*default:* ` `
+
+```playground
+ d.y}
+ labelComponent={}
+/>
+```
+
+### labelRadius
+
+`type: number`
+
+The `labelRadius` prop defines the radius of the arc that will be used for positioning each slice label. If this prop is not set, the label radius will default to the radius of the pie + label padding.
+
+```playground
+
+```
+
+### labels
+
+`type: array || function`
+
+`VictoryPie` uses the standard `labels` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#labels)
+
+```playground
+ `y: ${d.y}`}
+/>
+```
+
+### name
+
+`type: string`
+
+The `name` prop is used to reference a component instance when defining shared events.
+
+```jsx
+name="series-1"
+```
+
+### origin
+
+`type: { x: number, y: number }`
+
+The `origin` prop specifies coordinates for the center of the pie. When this prop is not given, the origin will be calculated based on the `width`, `height`, and `padding` props.
+
+```playground
+
+```
+
+### padAngle
+
+`type: number`
+
+The `padAngle` prop defines the amount of separation between adjacent data slices in number of degrees.
+
+```playground
+
+```
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryPie` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### radius
+
+`type: number`
+
+The `radius` prop specifies the radius of the pie. When this prop is not given, it will be calculated base on the `width`, `height`, and `padding` props.
+
+
+```playground
+
+```
+
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### sortKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryPie` uses the standard `sortKey` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#sortkey)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+sortKey="x"
+```
+
+### sortOrder
+
+`type: "ascending" || "descending"`
+
+The `sortOrder` prop specifies whether sorted data should be returned in ascending or descending order.
+
+*default:* `sortOrder="ascending"`
+
+### standalone
+
+`type: boolean`
+
+`VictoryPie` uses the standard `standalone` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+*default:* `standalone={true}`
+
+```playground
+
+
+
+
+```
+
+### startAngle
+
+`type: number`
+
+The `startAngle` props defines the overall start angle of the pie in degrees. This prop is used in conjunction with `endAngle` to create a pie that spans only a segment of a circle, or to change overall rotation of the pie. This prop should be given as a number of degrees. Degrees are defined as starting at the 12 o'clock position, and proceeding clockwise.
+
+*default:* `endAngle={0}`
+
+
+```playground
+
+
+
+
+```
+
+### style
+
+`type: { parent: object, data: object, labels: object }`
+
+`VictoryPie` uses the standard `style` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#style)
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+
+```
+
+### theme
+
+`type: object`
+
+`VictoryPie` uses the standard `theme` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### width
+
+`type: number`
+
+`VictoryPie` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={400}`
+
+```jsx
+width={400}
+```
+
+### x
+
+`type: string || integer || array[string] || function`
+
+`VictoryPie` uses the standard `x` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#x)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+x="employee.name"
+```
+
+### y
+
+`type: string || integer || array[string] || function`
+
+`VictoryPie` uses the standard `y` data accessor prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#y)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+y={(d) => d.value + d.error}
+```
+
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Data Accessors Guide]: https://formidable.com/open-source/victory/guides/data-accessors
+[Custom Components Guide]: https://formidable.com/open-source/victory/guides/custom-components
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
diff --git a/packages/victory-polar-axis/README.md b/packages/victory-polar-axis/README.md
new file mode 100644
index 000000000..a72243778
--- /dev/null
+++ b/packages/victory-polar-axis/README.md
@@ -0,0 +1,578 @@
+
+# VictoryPolarAxis
+
+`victory-polar-axis@^30.0.0` exports `VictoryPolarAxis`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-polar-axis to see live examples.
+
+VictoryPolarAxis renders a single axis which can be used on its own or composed with [`VictoryChart`][].
+
+```playground
+
+
+
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryPolarAxis` uses the standard `animate` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations
+
+```jsx
+animate={{
+ duration: 2000,
+ easing: "bounce"
+}}
+```
+### axisAngle
+
+`type: number`
+
+The `axisAngle` prop is used to position the dependent axis. This prop should be given in degrees. Degrees are defined as starting at the 3 o'clock position, and proceeding counterclockwise. This prop only affects the dependent axis.
+
+*default:* `axisAngle={0}`
+
+```playground
+
+```
+
+### axisComponent
+
+`type: element`
+
+The `axisComponent` prop takes a component instance which will be responsible for rendering an axis line for the dependent axis. The independent axis renders a `circularAxisComponent`. The new element created from the passed `axisComponent` will be provided with the following props calculated by `VictoryPolarAxis`: `x1`, `y1`, `x2`, `y2`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If an `axisComponent` is not provided, `VictoryPolarAxis` will use its default [Line component][].
+
+*default:* `axisComponent={}`
+
+```jsx
+axisComponent={ }
+```
+
+### axisLabelComponent
+
+`type: element`
+
+The `axisLabelComponent` prop takes a component instance which will be used to render the axis label. The new element created from the passed `axisLabelComponent` will be supplied with the following props: `x`, `y`, `verticalAnchor`, `textAnchor`, `angle`, `transform`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `axisLabelComponent` is omitted, a new [`VictoryLabel`][] will be created with props described above.
+
+**Note:** Axis labels are only rendered with the dependent axis in polar charts.
+
+*default:* `axisLabelComponent={ }`
+
+```jsx
+axisLabelComponent={}
+```
+
+### axisValue
+
+`type: number`
+
+The `axisValue` prop may be used instead of `axisAngle` to position the dependent axis. Ths prop is useful when dependent axes should line up with values on the independent axis.
+
+
+```playground
+
+ {
+ ["intelligence", "strength", "speed", "stealth", "charisma"].map((d, i) => {
+ return (
+
+ );
+ })
+ }
+
+
+```
+
+### circularAxisComponent
+
+`type: element`
+
+The `circularAxisComponent` prop takes a component instance which will be responsible for rendering an axis arc for the independent axis. The dependent axis renders an `axisComponent`. The new element created from the passed `circularAxisComponent` will be provided with the following props calculated by `VictoryPolarAxis`: `style`, `events`,
+`cx`, `cy`, `r`, `startAngle`, and `endAngle`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `circularAxisComponent` is not provided, `VictoryPolarAxis` will use its default [Arc component][].
+
+*default:* `circularAxisComponent={}`
+
+```jsx
+circularAxisComponent={}
+```
+
+### circularGridComponent
+
+`type: element`
+
+The `circularGridComponent` prop takes a component instance which will be responsible for rendering a grid element. The new element created from the passed `circularGridComponent` will be provided with the following props calculated by `VictoryPolarAxis`: `x1`, `y1`, `x2`, `y2`, `tick`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `circularGridComponent` is not provided, `VictoryPolarAxis` will use its default [Arc component][].
+
+*default:* `circularGridComponent={}`
+
+```jsx
+circularGridComponent={}
+```
+
+### containerComponent
+
+`type: element`
+
+`VictoryPolarAxis` uses the standard `containerComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+The following victory containers work with polar charts:
+`VictoryContainer`, `VictorySelectionContainer`, `VictoryVoronoiContainer` and `VictoryZoomContainer`
+
+```jsx
+containerComponent={ }
+```
+
+### dependentAxis
+
+`type: boolean`
+
+The `dependentAxis` boolean prop specifies whether the axis corresponds to the dependent variable (usually y, or the radial dimension on a polar chart). This prop is useful when composing `VictoryPolarAxis` with other components to form a chart.
+
+*default:* `dependentAxis={false}`
+
+```playground
+
+
+
+
+```
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryPolarAxis` uses the standard `domain` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryPolarAxis` uses the standard `domainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### endAngle
+
+`type: number`
+
+The `endAngle` props defines the overall end angle of the axis in degrees. This prop is used in conjunction with `startAngle` to create an axis that spans only a segment of a circle, or to change overall rotation of the axis. This prop should be given as a number of degrees. Degrees are defined as starting at the 3 o'clock position, and proceeding counterclockwise.
+
+*default:* `endAngle={360}`
+
+
+```playground
+
+
+
+
+```
+
+### events
+
+`type: array[objects]`
+
+`VictoryPolarAxis` uses the standard `events` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide] []for more information on defining events.
+
+**note:** valid event targets for `VictoryPolarAxis` are "axis", "axisLabel", "grid", "ticks", and "tickLabels".
+Targets that correspond to only one element {"axis" and "axisLabel") should use the special eventKey "all".
+
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryPolarAxis` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#externalEventsMutations)
+
+### gridComponent
+
+`type: element`
+
+The `gridComponent` prop takes a component instance which will be responsible for rendering a grid element. The new element created from the passed `gridComponent` will be provided with the following props calculated by `VictoryPolarAxis`: `x1`, `y1`, `x2`, `y2`, `tick`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `gridComponent` is not provided, `VictoryPolarAxis` will use its default [Line component][].
+
+*default:* `gridComponent={}`
+
+```jsx
+gridComponent={ }
+```
+
+### groupComponent
+
+`type: element`
+
+`VictoryPolarAxis` uses the standard `groupComponent` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+
+### height
+
+`type: number`
+
+`VictoryPolarAxis` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### innerRadius
+
+`type: number`
+
+When the `innerRadius` prop is set, polar axes will be hollow rather than circular.
+
+```playground
+
+```
+### invertAxis
+
+`type: boolean`
+
+The `invertAxis` boolean prop specifies whether the domain for a given axis should be inverted. By default, axes will be displayed with lower values on the bottom / left, and higher values on the top / right regardless of orientation.
+
+*default:* `invertAxis={false}`
+
+### label
+
+`type: string`
+
+The `label` prop defines the label that will appear with a dependent axis. Labels will not appear with independent polar axes. This prop should be given as a string.
+
+```playground
+
+```
+
+### labelPlacement
+
+`type: "parallel" || "perpendicular" || "vertical"`
+
+The `labelPlacement` prop specifies how tick labels should be placed relative to the angular tick values. Options for this prop are "vertical", "parallel", and "perpendicular".
+
+*default:* `labelPlacement="parallel"`
+
+```playground
+
+```
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryPolarAxis` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+
+```playground
+
+```
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryPolarAxis` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+
+```playground
+
+```
+
+### name
+
+`type: string`
+
+`VictoryPolarAxis` uses the standard `name` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#name)
+
+```jsx
+name="series-1"
+```
+
+### origin
+
+`type: { x: number, y: number }`
+
+**The `origin` prop is only used by polar charts, and is usually controlled by `VictoryChart`. It will not typically be necessary to set an `origin` prop manually**
+
+[Read about the `origin` prop in detail](https://formidable.com/open-source/victory/docs/common-props#origin)
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryPolarAxis` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detail](https://formidable.com/open-source/victory/docs/common-props#range)
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryPolarAxis` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+**note:** Though `VictoryPolarAxis` can take a `scale` prop with scales defined for both `x` and `y`, only the scale that corresponds the given axis will be used.
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryPolarAxis` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### standalone
+
+`type: boolean`
+
+`VictoryPolarAxis` uses the standard `standalone` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryPolarAxis` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+```playground
+
+
+
+
+```
+
+### startAngle
+
+`type: number`
+
+The `startAngle` props defines the overall end angle of the axis in degrees. This prop is used in conjunction with `endAngle` to create an axis that spans only a segment of a circle, or to change overall rotation of the axis. This prop should be given as a number of degrees. Degrees are defined as starting at the 3 o'clock position, and proceeding counterclockwise.
+
+*default:* `startAngle={0}`
+
+
+```playground
+
+
+
+
+```
+
+### style
+
+`type: { axis: object, axisLabel: object, grid: object, ticks: object, tickLabels: object }`
+
+The `style` prop defines the style of the component. The style prop should be given as an object with styles defined for `parent`, `axis`, `axisLabel`, `grid`, `ticks`, and `tickLabels`. Any valid svg styles are supported, but `width`, `height`, and `padding` should be specified via props as they determine relative layout for components in VictoryChart. Functional styles may be defined for `grid`, `tick`, and `tickLabel` style properties, and they will be evaluated with each tick.
+
+**note:** When a component is rendered as a child of another Victory component, or within a custom `` element with `standalone={false}` parent styles will be applied to the enclosing `` tag. Many styles that can be applied to a parent `` will not be expressed when applied to a ``.
+
+**note:** custom `angle` and `verticalAnchor` properties may be included in `labels` styles.
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+ t > 0.5 ? "red" : "blue"},
+ tickLabels: {fontSize: 15, padding: 15}
+ }}
+/>
+```
+
+### theme
+
+`type: object`
+
+`VictoryPolarAxis` uses the standard `theme` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+*Note:* Use the `dependentAxis` and `independentAxis` namespaces to theme axes by type. These namespaces will be merged with any props and styles supplied in the `axis` namespace.
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### tickComponent
+
+`type: element`
+
+The `tickComponent` prop takes a component instance which will be responsible for rendering a tick element. The new element created from the passed `tickComponent` will be provided with the following props calculated by `VictoryPolarAxis`: `x1`, `y1`, `x2`, `y2`, `tick`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If a `tickComponent` is not provided, `VictoryPolarAxis` will use its default [Line component][].
+
+*default:* `tickComponent={}`
+
+```jsx
+tickComponent={ }
+```
+
+### tickCount
+
+`type: number`
+
+The `tickCount` prop specifies approximately how many ticks should be drawn on the axis. If an array of ticks is supplied in `tickValues` or `tickFormat`, the `tickCount` prop will be used to _downsample_ the provided array to the specified length. If `tickValues` are not explicitly provided, this value is used by [d3Scale][] to calculate an _approximate_ number of ticks. [d3Scale][] prioritizes returning "nice" values and evenly spaced ticks over an exact number of ticks. This prop must be given as a positive integer.
+
+### tickFormat
+
+`type: array || function`
+
+The `tickFormat` prop specifies how tick values should be labeled. The `tickFormat` prop can be given as an array of values to display for each tick, or as a function to be applied to every `tickValue`. When given as a function, `tickFormat` will be called with the following arguments: `tick` - the individual tick value, `index` - the index of the tick in the array, and `ticks` - the entire array of ticks.
+
+```playground
+ `${Math.round(t)}k`}
+/>
+```
+
+### tickLabelComponent
+
+`type: element`
+
+The `tickLabelComponent` prop takes a component instance which will be used to render the axis label. The new element created from the passed `tickLabelComponent` will be supplied with the following props: `x`, `y`, `tick`, `verticalAnchor`, `textAnchor`, `angle`, `transform`, `style` and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `tickLabelComponent` is omitted, a new [`VictoryLabel`][] will be created with props described above.
+
+*default:* `tickLabelComponent={ }`
+
+```jsx
+tickLabelComponent={}
+```
+
+### tickValues
+
+`type: array`
+
+The `tickValues` prop explicitly specifies a set of tick values to draw on the axis. This prop should be given as an array of unique values of the same type (_i.e.,_ all numbers). The `tickValues` prop is used to specify the _values_ of each tick, so numeric values are typically appropriate. An array of strings or dates may be supplied for categorical and time series data respectively. Use the [tickFormat][] prop to specify how ticks should be labeled. *Note:* `tickValues` should be given as a unique array.
+
+```playground
+
+```
+
+### width
+
+`type: number`
+
+`VictoryPolarAxis` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[`VictoryChart`]: https://formidable.com/open-source/victory/docs/victory-chart
+[tickFormat]: https://formidable.com/open-source/victory/docs/victory-axis#tickformat
+[d3Scale]: https://github.com/d3/d3-scale
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
+[Line component]: https://formidable.com/open-source/victory/docs/victory-primitives#line
+[Arc component]: https://formidable.com/open-source/victory/docs/victory-primitives#arc
+[`VictoryLabel`]: https://formidable.com/open-source/victory/docs/victory-label
diff --git a/packages/victory-scatter/README.md b/packages/victory-scatter/README.md
new file mode 100644
index 000000000..0f5939cdd
--- /dev/null
+++ b/packages/victory-scatter/README.md
@@ -0,0 +1,602 @@
+
+# VictoryScatter
+
+`victory-scatter@^30.0.0` exports `VictoryScatter`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-scatter to see live examples.
+
+VictoryScatter renders a dataset as a series of points. VictoryScatter can be composed with [`VictoryChart`][] to create scatter plots.
+
+```playground
+
+
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryScatter` uses the standard `animate` prop. [Read about it herhttps://formidable.com/open-source/victorye](/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+```jsx
+animate={{
+ duration: 2000,
+ onLoad: { duration: 1000 }
+}}
+```
+
+### bubbleProperty
+
+`type: string`
+
+The `bubbleProperty` prop indicates which property of the data object should be used to scale data points in a bubble chart. If a `bubbleProperty` is given, `size` and `symbol` props will be ignored. Bubble charts always render circular points.
+
+*default:* `bubbleProperty="z"`
+
+```playground
+
+```
+
+### categories
+
+`type: array[string] || { x: array[string], y: array[string] }`
+
+`VictoryScatter` uses the standard `categories` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#categories)
+
+```jsx
+categories={{ x: ["dogs", "cats", "mice"] }}
+```
+
+### containerComponent
+
+`type: element`
+
+`VictoryScatter` uses the standard `containerComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+
+### data
+
+`type: array[object]`
+
+`VictoryScatter` uses the standard `data` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#data)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+In addition to svg style properties and `label`, `VictoryScatter` will also preferentially use `symbol` and `size` properties supplied via data objects.
+
+```playground
+
+```
+
+### dataComponent
+
+`type: element`
+
+`VictoryScatter` uses the standard `dataComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#datacomponent)
+
+`VictoryScatter` supplies the following props to its `dataComponent`: `data`, `datum`, `index`, `origin`, `polar`,`scale`, `size`, `style`, `symbol`, `x`, `y`
+
+See the [Custom Components Guide][] for more detail on creating your own `dataComponents`
+
+*default:* ` `
+
+```playground_norender
+class CatPoint extends React.Component {
+ render() {
+ const {x, y, datum} = this.props; // VictoryScatter supplies x, y and datum
+ const cat = datum._y >= 0 ? "😻" : "😹";
+ return (
+
+ {cat}
+
+ );
+ }
+}
+
+class App extends React.Component {
+ render() {
+ return (
+
+ }
+ y={(d) => Math.sin(2 * Math.PI * d.x)}
+ samples={15}
+ />
+
+ );
+ }
+}
+ReactDOM.render( , mountNode);
+```
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryScatter` uses the standard `domain` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryScatter` uses the standard `domainPadding` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryScatter` uses the standard `eventKey` prop to specify how event targets are addressed. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryScatter` uses the standard `events` prop. [Read about it in more detail here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+```playground
+
+
Click Me
+ null}
+ events={[{
+ target: "data",
+ eventHandlers: {
+ onClick: () => {
+ return [
+ {
+ target: "data",
+ mutation: (props) => {
+ const fill = props.style && props.style.fill;
+ return fill === "black" ? null : { style: { fill: "black" } };
+ }
+ }, {
+ target: "labels",
+ mutation: (props) => {
+ return props.text === "clicked" ?
+ null : { text: "clicked" };
+ }
+ }
+ ];
+ }
+ }
+ }]}
+ data={sampleData}
+ />
+
+```
+
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryScatter` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#externalEventsMutations)
+
+### groupComponent
+
+`type: element`
+
+`VictoryScatter` uses the standard `groupComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```playground
+
+ }
+ data={sampleData}
+ size={20}
+ />
+
+```
+
+### height
+
+`type: number`
+
+`VictoryScatter` uses the standard `height` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### labelComponent
+
+`type: element`
+
+`VictoryScatter` uses the standard `labelComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#labelcomponent)
+
+*default:* ` `
+
+```playground
+ datum.y}
+ labelComponent={}
+/>
+```
+
+### labels
+
+`type: array || function`
+
+`VictoryScatter` uses the standard `labels` prop to define labels for each point. [Read about it in more detail here](https://formidable.com/open-source/victory/docs/common-props#labels)
+
+```playground
+ `y: ${datum.y}`}
+/>
+```
+
+### maxBubbleSize
+
+`type: number`
+
+The `maxBubbleSize` prop sets an upper limit for scaling data points in a bubble chart. If not given, this prop will be calculated based on the `width`, `height`, and `padding` of the component.
+
+For more information on bubble charts, see [`bubbleProperty`][]
+
+```jsx
+maxBubbleSize={25}
+```
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryScatter` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+
+```playground
+
+
+
+```
+
+### minBubbleSize
+
+`type: number`
+
+The `minBubbleSize` prop sets a lower limit for scaling data points in a bubble chart. If not given, this prop will be calculated based on the calculated `maxBubbleSize`.
+
+For more information on bubble charts, see [`bubbleProperty`][]
+
+```jsx
+minBubbleSize={5}
+```
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryScatter` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+
+```playground
+
+
+
+```
+
+### name
+
+`type: string`
+
+The `name` prop is used to reference a component instance when defining shared events.
+
+```jsx
+name="series-1"
+```
+
+### origin
+
+`type: { x: number, y: number }`
+
+**The `origin` prop is only used by polar charts, and is usually controlled by `VictoryChart`. It will not typically be necessary to set an `origin` prop manually**
+
+[Read about the `origin` prop in detail](https://formidable.com/open-source/victory/docs/common-props#origin)
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryScatter` uses the standard `padding` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### polar
+
+`type: boolean`
+
+`VictoryScatter` uses the standard `polar` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#polar)
+
+```playground
+
+ null}
+ />
+
+
+
+```
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detail](https://formidable.com/open-source/victory/docs/common-props#range)
+
+### samples
+
+`type: integer`
+
+`VictoryScatter` uses the standard `samples` prop to generate data when plotting functions. [Read about it in more detail here](https://formidable.com/open-source/victory/docs/common-props#samples)
+
+*default:* `samples={50}`
+
+```jsx
+samples={100}
+```
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryScatter` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryScatter` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### size
+
+`type: number || function`
+
+The `size` prop determines how to scale each data point. This prop may also be given as a function of data. If `size` is not specified, it will default to 1. `size` may also be set directly on each data object.
+
+```playground
+ datum.y + 2 }
+ data={sampleData}
+/>
+```
+
+### sortKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryScatter` uses the standard `sortKey` prop to determine how data should be ordered. [Read about it in more detail here](https://formidable.com/open-source/victory/docs/common-props#sortkey)
+
+```jsx
+sortKey="x"
+```
+
+### sortOrder
+
+`type: "ascending" || "descending"`
+
+The `sortOrder` prop specifies whether sorted data should be returned in ascending or descending order.
+
+*default:* `sortOrder="ascending"`
+
+### standalone
+
+`type: boolean`
+
+`VictoryScatter` uses the standard `standalone` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryScatter` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+```playground
+
+
+
+
+```
+
+
+### style
+
+`type: { parent: object, data: object, labels: object }`
+
+`VictoryScatter` uses the standard `style` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#style)
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+ d.x === 3 ? "#000000" : "#c43a31",
+ stroke: (d) => d.x === 3 ? "#000000" : "#c43a31",
+ fillOpacity: 0.7,
+ strokeWidth: 3
+ },
+ labels: {
+ fontSize: 15,
+ fill: (d) => d.x === 3 ? "#000000" : "#c43a31"
+ }
+ }}
+ size={9}
+ data={sampleData}
+ labels={(datum) => datum.x}
+/>
+```
+
+### symbol
+
+`type: function || options`
+
+The `symbol` prop determines which symbol should be drawn to represent data points. Options are: "circle", "diamond", "plus", "square", "star", "triangleDown", "triangleUp". This prop may also be given as a function of data. If no `symbol` prop is specified, a circle will be rendered. `symbol` may also be set directly on each data object.
+
+*default:* `symbol="circle"`
+
+```playground
+ datum.y > 3 ? "triangleUp" : "triangleDown"}
+ size={7}
+ data={sampleData}
+/>
+```
+
+### theme
+
+`type: object`
+
+`VictoryScatter` uses the standard `theme` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### width
+
+`type: number`
+
+`VictoryScatter` uses the standard `width` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+### x
+
+`type: string || integer || array[string] || function`
+
+`VictoryScatter` uses the standard `x` data accessor prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#x)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+x="employee.name"
+```
+
+### y
+
+`type: string || integer || array[string] || function`
+
+
+`VictoryScatter` uses the standard `y` data accessor prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#y)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+y={(d) => d.value + d.error}
+```
+
+### y0
+
+`type: string || integer || array[string] || function`
+
+**It is not common to set a `y0` prop with `VictoryScatter`, as baselines for `VictoryScatter` are only relevant for stacked charts.** [Read more about the `y0` prop here](https://formidable.com/open-source/victory/docs/common-props#y0)
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[`bubbleProperty`]: https://formidable.com/open-source/victory/docs/victory-scatter#bubbleproperty
+[Data Accessors Guide]: https://formidable.com/open-source/victory/guides/data-accessors
+[Custom Components Guide]: https://formidable.com/open-source/victory/guides/custom-components
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[`VictoryChart`]: https://formidable.com/open-source/victory/docs/victory-chart
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
diff --git a/packages/victory-selection-container/README.md b/packages/victory-selection-container/README.md
new file mode 100644
index 000000000..b9576a6c9
--- /dev/null
+++ b/packages/victory-selection-container/README.md
@@ -0,0 +1,133 @@
+# VictorySelectionContainer
+
+`victory-selection-container@^30.0.0` exports `VictorySelectionContainer`, `selectionContainerMixin` and `SelectionHelpers`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-selection-container to see live examples.
+
+`VictorySelectionContainer` is used to enable selecting data points within a highlighted region.
+Clicking and dragging will select an x-y region, and add the `active` prop to any elements
+corresponding to data points within the region. Create a select-box control by tying the set of
+selected data points to other elements, such as filtered table.
+
+`VictorySelectionContainer` is similar to `VictoryBrushContainer`. `VictoryBrushContainer` may be
+used to identify the domain of a selected region, whereas `VictorySelectionContainer` may be used to
+identify a list of data points within a selected region. `VictoryBrushContainer` will also create
+persistent highlighted regions, whereas regions created by `VictorySelectionContainer`
+disappear after `onMouseUp` events.
+
+`VictorySelectionContainer` may be used with any Victory component that works with an x-y coordinate
+system, and should be added as the `containerComponent` of the top-level component.
+However, the component that uses it must be standalone
+(`standalone={true}`), which is the default for all top-level Victory components.
+
+```playground
+}>
+ active ? "tomato" : "gray" } }}
+ />
+
+```
+
+## Props
+
+`VictorySelectionContainer` uses a superset of props used by [VictoryContainer][]. All props are optional.
+
+### activateSelectedData
+
+`type: boolean`
+
+When the `activateSelectedData` prop is set to true, the `active` prop will be set to true on all selected data points. When this prop is set to false, the `onSelection` and `onSelectionCleared` callbacks will still fire, but no mutations will occur via Victory's event system.
+
+*default:* `activateSelectedData={true}`
+
+### disable
+
+`type: boolean`
+
+When the `disable` prop is set to `true`, `VictorySelectionContainer` events will not fire.
+
+### onSelection
+
+`type: function`
+
+The `onSelection` prop accepts a function to be called whenever new data points are selected. The
+function is called with the parameters `points` (an array of objects with `childName`, `eventKey`,
+and `data`), `bounds` (an object with min / max arrays specified for `x` and `y`), and `props` (the props used by `VictorySelectionContainer`)
+
+*example:* `onSelection={(points, bounds, props) => handleSelection(points, bounds, props)}`
+
+### onSelectionCleared
+
+`type: function`
+
+The `onSelectionCleared` prop accepts a function to be called whenever the selection is cleared. The function is called with the props used by `VictorySelectionContainer`
+
+*example:* `onSelectionCleared={(props) => handleSelectionCleared(props)}`
+
+### selectionBlacklist
+
+`type: array[string]`
+
+The `selectionBlacklist` prop is used to exclude data from potential selections. This prop should be given as an array of strings that match the `name` prop of Victory component that should be excluded from selection.
+
+*example:* `selectionBlackList={["first-line", "second-line"]}`
+
+
+### selectionComponent
+
+`type: element`
+
+The `selectionComponent` prop specifies the element to be rendered for the selected area. When
+this prop is not specified, a ` ` will be rendered. This component will be supplied with the
+following props: `x`, `y`, `width`, `height`, and `style`.
+
+*default:* `selectionComponent={ }`
+
+### selectionDimension
+
+`type: "x" || "y"`
+
+When the `selectionDimension` prop is set, the selection will only take the given dimension into account.
+For example, when `dimension` is set to "x", the selected area will cover the entire y domain
+regardless of mouse position.
+
+*example:* `selectionDimension="x"`
+
+```playground
+
+ }
+>
+ active ? "tomato" : "gray" } }}
+ />
+
+```
+
+### selectionStyle
+
+`type: object`
+
+The `selectionStyle` prop should be given as an object of style attributes to be applied to the
+`selectionComponent`
+
+*default:* `selectionStyle={{stroke: "transparent", fill: "black", fillOpacity: 0.1}}`
+
+```playground
+
+ }
+>
+ active ? "tomato" : "gray" } }}
+ />
+
+```
+[VictoryContainer]: https://formidable.com/open-source/victory/docs/victory-container
diff --git a/packages/victory-shared-events/README.md b/packages/victory-shared-events/README.md
new file mode 100644
index 000000000..9e242e627
--- /dev/null
+++ b/packages/victory-shared-events/README.md
@@ -0,0 +1,219 @@
+# VictorySharedEvents
+
+`victory-shared-events@^30.0.0` exports `VictorySharedEvents`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-shared-events to see live examples.
+
+The `VictorySharedEvents` wrapper coordinates events between its child components. Specify a set of events on the `VictorySharedEvents` wrapper to target children. [VictoryChart][], [VictoryGroup][], and [VictoryStack][] all use `VictorySharedEvents`, but it may also be used on its own.
+
+## Props
+
+### children
+
+`type: array[element]`
+
+`VictorySharedEvents` renders an array of children with new `sharedEvents` props which define a set of events, and a shared state accessor.
+
+### events
+
+`type: array[object]`
+
+The `events` prop takes an array of event objects. Event objects are composed of a `target`, an `eventKey`, a `childName` and `eventHandlers`. Targets may be any valid style namespace for a given component, so "data" and "labels" are valid targets for this components like `VictoryBar`. `eventKey` may be given as a single value, or as an array of values to specify individual targets. If `eventKey` is not specified, the given `eventHandlers` will be attached to all elements of the specified `target` type. The `childName` property may be given as a string or an array of strings to target multiple children. The `eventHandlers` object should be given as an object whose keys are standard event names (i.e. `onClick`) and whose values are event callbacks. The return value of an event handler is used to modify elements. The return value should be given as an object or an array of objects with optional `target`, `childName` and `eventKey` keys for specifying the element(s) to be modified, and a `mutation` key whose value is a function. The `target` and `eventKey` keys will default to those corresponding to the element the event handler was attached to. The `mutation` function will be called with the calculated props for each element that should be modified (i.e. a bar label), and the object returned from the mutation function will override the props of that element via object assignment.
+
+*examples:*
+
+```playground
+
+ {
+ return [{
+ childName: ["pie", "bar"],
+ mutation: (props) => {
+ return {
+ style: Object.assign({}, props.style, {fill: "tomato"})
+ };
+ }
+ }];
+ },
+ onMouseOut: () => {
+ return [{
+ childName: ["pie", "bar"],
+ mutation: () => {
+ return null;
+ }
+ }];
+ }
+ }
+ }]}
+ >
+
+ }
+ />
+
+
+
+
+
+
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+The `eventKey` prop is used to assign eventKeys to data. This prop operates identically to the `x` and `y` data accessor props. By default, the eventKey of each datum will be equal to its index in the data array. `eventKey` may also be defined directly on each data object.
+
+### externalEventMutations
+
+`type: array[object]`
+
+Occasionally is it necessary to trigger events in Victory's event system from some external element such as a button or a form field. Use the `externalEventMutation` prop to specify a set of mutations to apply to a given chart. The `externalEventMutations` should be given in the following form:
+
+```jsx
+externalEventMutations: PropTypes.arrayOf(PropTypes.shape({
+ callback: PropTypes.function,
+ childName: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.array
+ ]),
+ eventKey: PropTypes.oneOfType([
+ PropTypes.array,
+ CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]),
+ PropTypes.string
+ ]),
+ mutation: PropTypes.function,
+ target: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.array
+ ])
+}))
+```
+
+The `target`, `eventKey`, and `childName` (when applicable) must always be specified. The `mutation` function will be called with the current props of the element specified by the `target`, `eventKey` and `childName` provided. The mutation function should return a mutation object for that element. The `callback` prop should be used to clear the `externalEventMutations` prop once the mutation has been applied. Clearing `externalEventMutations` is crucial for charts that animate.
+
+```playground_norender
+class App extends React.Component {
+ constructor() {
+ super();
+ this.state = {
+ externalMutations: undefined
+ };
+ }
+
+ removeMutation() {
+ this.setState({
+ externalMutations: undefined
+ });
+ }
+
+ clearClicks() {
+ this.setState({
+ externalMutations: [
+ {
+ childName: ["bar", "pie"],
+ target: ["data"],
+ eventKey: "all",
+ mutation: () => ({ style: undefined }),
+ callback: this.removeMutation.bind(this)
+ }
+ ]
+ });
+ }
+
+ render() {
+ const buttonStyle = {
+ backgroundColor: "black",
+ color: "white",
+ padding: "10px",
+ marginTop: "10px"
+ };
+ return (
+
+
+ Reset
+
+
+ {
+ return [{
+ childName: ["pie", "bar"],
+ mutation: (props) => {
+ return {
+ style: Object.assign({}, props.style, {fill: "tomato"})
+ };
+ }
+ }];
+ }
+ }
+ }]}
+ >
+
+ }
+ />
+
+
+
+
+
+
+
+ )
+ }
+}
+
+ReactDOM.render( , mountNode)
+```
+
+*Note* External mutations are applied to the same state object that is used to control events in Victory, so depending on the order in which they are triggered, external event mutations may override mutations caused by internal Victory events or vice versa.
+
+[VictoryChart]: https://formidable.com/open-source/victory/docs/victory-chart
+[VictoryGroup]: https://formidable.com/open-source/victory/docs/victory-group
+[VictoryStack]: https://formidable.com/open-source/victory/docs/victory-stack
diff --git a/packages/victory-stack/README.md b/packages/victory-stack/README.md
new file mode 100644
index 000000000..99a6d1d3d
--- /dev/null
+++ b/packages/victory-stack/README.md
@@ -0,0 +1,402 @@
+# VictoryStack
+
+`victory-stack@^30.0.0` exports `VictoryStack`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-stack to see live examples.
+
+`VictoryStack` is a wrapper component that renders a given set of children in a stacked layout. Like other wrapper components, `VictoryStack` also reconciles the domain and layout for all its children, and coordinates animations and shared events.
+
+`VictoryStack` should not be used with `VictoryAxis` children
+
+`VictoryStack` works with:
+[VictoryArea][], [VictoryBar][], [VictoryCandlestick][], [VictoryErrorBar][], [VictoryGroup][],[VictoryLine][], and [VictoryScatter][]
+
+```playground
+
+
+
+
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryStack` uses the standard `animate` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+**note: `VictoryStack` controls the `animate` prop of its children when set**
+
+```jsx
+animate={{
+ duration: 2000,
+ onLoad: { duration: 1000 }
+}}
+```
+
+### categories
+
+`type: array[string] || { x: array[string], y: array[string] }`
+
+`VictoryStack` uses the standard `categories` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#categories)
+
+**note: When this prop is set, `VictoryGroup` controls the `categories` prop of its children.**
+
+```jsx
+categories={["dogs", "cats", "mice"]}
+```
+
+### children
+
+`type: element || array[element]`
+
+`VictoryStack` works with any combination of the following children: [VictoryArea][], [VictoryBar][], [VictoryCandlestick][], [VictoryErrorBar][], [VictoryGroup][], [VictoryLine][], [VictoryScatter][], [VictoryStack][], and [VictoryVoronoi][]. Children supplied to `VictoryGroup` will be cloned and rendered with new props so that all children share common props such as `domain` and `scale`.
+
+
+### colorScale
+
+`type: array[string]`
+
+The `colorScale` prop is an optional prop that defines a color scale to be applied to the children of `VictoryStack`. This prop should be given as an array of CSS colors, or as a string corresponding to one of the built in color scales: "grayscale", "qualitative", "heatmap", "warm", "cool", "red", "green", "blue". `VictoryGroup` will assign colors to its children by index, unless they are explicitly specified in styles. Colors will repeat when there are more children than colors in the provided `colorScale`.
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+
+
+
+
+
+```
+
+
+### containerComponent
+
+`type: element`
+
+`VictoryStack` uses the standard `containerComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryStack` uses the standard `domain` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+**note: `VictoryStack` controls the `domain` prop of its children.**
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryStack` uses the standard `domainPadding` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+**note: `VictoryStack` controls the `domainPadding` prop of its children.**
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryStack` uses the standard `eventKey` prop to specify how event targets are addressed. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryStack` uses the standard `events` prop. [Read about it in more detail here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+**Note: `VictoryStack` coordinates events between children using the `VictorySharedEvents` and the `sharedEvents` prop**
+
+```playground
+ {
+ return [
+ {
+ childName: "area-2",
+ target: "data",
+ mutation: (props) => ({ style: Object.assign({}, props.style, { fill: "gold" }) })
+ }, {
+ childName: "area-3",
+ target: "data",
+ mutation: (props) => ({ style: Object.assign({}, props.style, { fill: "orange" }) })
+ }, {
+ childName: "area-4",
+ target: "data",
+ mutation: (props) => ({ style: Object.assign({}, props.style, { fill: "red" }) })
+ }
+ ];
+ }
+ }
+ }]}
+>
+
+
+
+
+
+```
+
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryStack` uses the standard `externalEventMutations` prop. [Read about it in detailhttps://formidable.com/open-source/victory](/docs/common-props#externalEventsMutations)
+
+### groupComponent
+
+`type: element`
+
+`VictoryStack` uses the standard `groupComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+### height
+
+`type: number`
+
+`VictoryStack` uses the standard `height` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### horizontal
+
+`type: boolean`
+
+The `horizontal` prop determines whether the bars of any `VictoryBar` children supplied to `VictoryStack` will be laid out vertically or horizontally. The bars will be vertical if this prop is false or unspecified, or horizontal if the prop is set to true.
+
+### labelComponent
+
+`type: element`
+
+The `labelComponent` prop takes a component instance which will be used to render labels for each stack. The new element created from the passed `labelComponent` will be supplied with the following props: `x`, `y`, `index`, `datum`, `verticalAnchor`, `textAnchor`, `angle`, `style`, `text`, and `events`. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `labelComponent` is omitted, a new [VictoryLabel][] will be created with the props described above.
+
+*default:* ` `
+
+```jsx
+labelComponent={}
+```
+
+### labels
+
+`type: array || function`
+
+The `labels` prop defines labels that will appear above each stack of data. This prop should be given as an array of values or as a function of data. If given as an array, the number of elements in the array should be equal to the length of the data array. Group labels will appear above the center series of the group, and will override the `labels` prop of child components. Omit this prop, and set `labels` props on children for individual labels.
+
+```jsx
+labels={["spring", "summer", "fall", "winter"]}`, `labels={(datum) => datum.title}
+```
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryStack` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryStack` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+### name
+
+`type: string`
+
+The `name` prop is used to reference a component instance when defining shared events.
+
+```jsx
+name="series-1"
+```
+
+### origin
+
+`type: { x: number, y: number }`
+
+**The `origin` prop is only used by polar charts, and is usually controlled by `VictoryChart`. It will not typically be necessary to set an `origin` prop manually**
+
+[Read about the `origin` prop in detailhttps://formidable.com/open-source/victory](/docs/common-props#origin)
+
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryStack` uses the standard `padding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### polar
+
+`type: boolean`
+
+`VictoryStack` uses the standard `polar` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#polar)
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detailhttps://formidable.com/open-source/victory](/docs/common-props#range)
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryStack` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+**note: `VictoryStack` controls the `scale` prop of its children.**
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryStack` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### standalone
+
+`type: boolean`
+
+`VictoryStack` uses the standard `standalone` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryGroup` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+### style
+
+`type: { parent: object, data: object, labels: object }`
+
+`VictoryStack` uses the standard `style` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#style)
+
+Styles on children of `VictoryGroup` will override styles set on the `VictoryGroup` component.
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+
+
+
+
+
+```
+
+### theme
+
+`type: object`
+
+`VictoryStack` uses the standard `theme` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### width
+
+`type: number`
+
+`VictoryStack` uses the standard `width` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+### xOffset
+
+`type: number`
+
+The `xOffset` prop is used for grouping stacks of bars. This prop will be set by the `VictoryGroup` component wrapper, or can be set manually.
+
+
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
+[VictoryArea]: https://formidable.com/open-source/victory/docs/victory-area
+[VictoryBar]: https://formidable.com/open-source/victory/docs/victory-bar
+[VictoryCandlestick]: https://formidable.com/open-source/victory/docs/victory-candlestick
+[VictoryErrorBar]: https://formidable.com/open-source/victory/docs/victory-errorbar
+[VictoryGroup]: https://formidable.com/open-source/victory/docs/victory-group
+[VictoryLine]: https://formidable.com/open-source/victory/docs/victory-line
+[VictoryScatter]: https://formidable.com/open-source/victory/docs/victory-scatter
+[VictoryStack]: https://formidable.com/open-source/victory/docs/victory-stack
+[VictoryVoronoi]: https://formidable.com/open-source/victory/docs/victory-voronoi
+[VictoryLabel]: https://formidable.com/open-source/victory/docs/victory-label
diff --git a/packages/victory-tooltip/README.md b/packages/victory-tooltip/README.md
new file mode 100644
index 000000000..75c619043
--- /dev/null
+++ b/packages/victory-tooltip/README.md
@@ -0,0 +1,182 @@
+# VictoryTooltip
+
+`victory-tooltip@^30.0.0` exports `VictoryTooltip` and `Flyout` components
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-tooltip to see live examples.
+
+`VictoryTooltip` renders a tooltip component with a set of default events. When `VictoryTooltip` is used as a label component for any Victory component that renders data, it will attach events to rendered data components that will activate the tooltip when hovered. `VictoryTooltip` renders text as well as a configurable [Flyout][] container.
+
+## Props
+
+### active
+
+`type: boolean`
+
+The `active` prop specifies whether the tooltip component should be displayed.
+
+### activateData
+
+`type: boolean`
+
+When true, tooltip events will set the `active` prop on both data and label elements.
+
+*default:* `activateData={false}`
+
+### angle
+
+`type: number`
+
+The `angle` prop specifies the angle to rotate the tooltip around its origin point.
+
+### cornerRadius
+
+`type: number || function`
+
+The `cornerRadius` prop determines corner radius of the flyout container. This prop may be given as a positive number or a function of datum.
+
+### data
+
+`type: array[object]`
+
+Victory components can pass a `data` prop to their label component. This can be useful in custom components that need to make use of the entire dataset.
+
+### datum
+
+`type: object`
+
+Victory components can pass a `datum` prop to their label component. This can
+be used to calculate functional styles, and determine text.
+
+### dx
+
+`type: number || function`
+
+The `dx` prop defines a horizontal shift from the `x` coordinate.
+
+### dy
+
+`type: number || function`
+
+The `dy` prop defines a vertical shift from the `y` coordinate.
+
+### events
+
+`type: object`
+
+The `events` prop attaches arbitrary event handlers to the label component. This prop should be given as an object of event names and corresponding event handlers. When events are provided via Victory's event system, event handlers will be called with the event, the props of the component is attached to, and an eventKey.
+
+*examples:* `events={{onClick: (evt) => alert("x: " + evt.clientX)}}`
+
+### flyoutStyle
+
+`type: object`
+
+The `style` prop applies SVG style properties to the rendered flyout container. These props will be passed to the `flyoutComponent`.
+
+### flyoutComponent
+
+`type: element`
+
+The `flyoutComponent` prop takes a component instance which will be used to create the flyout path for each tooltip. The new element created from the passed `flyoutComponent` will be supplied with the following properties: x, y, dx, dy, index, datum, cornerRadius, pointerLength, pointerWidth, width, height, orientation, style, and events. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `flyoutComponent` is omitted, a default [Flyout][] component will be created with props described above.
+
+*examples:* `flyoutComponent={}`, `flyoutComponent={ }`
+
+
+*default:* ` `
+
+### groupComponent
+
+`type: element`
+
+The `groupComponent` prop takes a component instance which will be used to create group elements for use within container elements. This prop defaults to a `` tag.
+
+*default:* `groupComponent={ }`
+
+### height
+
+`type: number || function`
+
+The `height` prop defines the height of the tooltip flyout. This prop may be given as a positive number or a function of datum. If this prop is not set, `height` will be determined based on an [approximate text size][] calculated from the `text` and `style` props provided to `VictoryTooltip`.
+
+### horizontal
+
+`type: boolean`
+
+The `horizontal` prop determines whether to plot the flyouts to the left / right of the (x, y) coordinate rather than top / bottom. This is useful when an orientation prop is not provided, and data will determine the default orientation. _i.e._ negative values result in a left orientation and positive values will result in a right orientation by default.
+
+### index
+
+`type: number || string`
+
+The `index` prop represents the index of the datum in the data array.
+
+### labelComponent
+
+`type: element`
+
+The `labelComponent` prop takes a component instance which will be used to render each tooltip label. The new element created from the passed `labelComponent` will be supplied with the following properties: x, y, index, datum, verticalAnchor, textAnchor, style, text, and events. Any of these props may be overridden by passing in props to the supplied component, or modified or ignored within the custom component itself. If `labelComponent` is omitted, a new [VictoryLabel][] will be created with the props described above.
+
+*examples:* `labelComponent={}`, `labelComponent={ }`
+
+*default:* ` `
+
+### orientation
+
+`type: function || "top" || "bottom" || "left" || "right"`
+
+The `orientation` prop determines which side of the (x, y) coordinate the tooltip should be rendered on. This prop can be given as "top", "bottom", "left", "right", or as a function of datum that returns one of these values. If this prop is not provided it will be determined from the sign of the `datum`, and the value of the `horizontal` prop.
+
+### pointerLength
+
+`type: number || function`
+
+The `pointerLength` prop determines the length of the triangular pointer extending from the flyout. This prop may be given as a positive number or a function of datum.
+
+### pointerWidth
+
+`type: number || function`
+
+The `pointerWidth` prop determines the width of the base of the triangular pointer extending from the flyout. This prop may be given as a positive number or a function of datum.
+
+### renderInPortal
+
+`type: boolean`
+
+When `renderInPortal` is true, rendered tooltips will be wrapped in [VictoryPortal][] and rendered within the [Portal][] element within [VictoryContainer][]. _Note:_ This prop should _not_ be set to true when using a custom container element.
+
+### style
+
+`type: object`
+
+The `style` prop applies SVG style properties to the rendered `` element.
+
+### text
+
+`type: string || number || function || array[string || number]`
+
+The `text` prop defines the text `VictoryTooltip` will render. The `text` prop may be given as a string, number, or function of `datum`. When [VictoryLabel][] is used as the `labelComponent`, strings may include newline characters, which VictoryLabel will split in to separate ` ` elements.
+
+### width
+
+`type: number || function`
+
+The `width` prop defines the width of the tooltip flyout. This prop may be given as a positive number or a function of datum. If this prop is not set, `width` will be determined based on an [approximate text size][] calculated from the `text` and `style` props provided to `VictoryTooltip`.
+
+### x
+
+`type: number`
+
+The `x` prop defines the x coordinate to use as a basis for positioning the tooltip element.
+
+### y
+
+`type: number`
+
+The `y` prop defines the y coordinate to use as a basis for positioning the tooltip element.
+
+[Flyout]: https://formidable.com/open-source/victory/docs/victory-primitives#flyout
+[VictoryLabel]: https://formidable.com/open-source/victory/docs/victory-label
+[VictoryPortal]: https://formidable.com/open-source/victory/docs/victory-portal
+[VictoryContainer]: https://formidable.com/open-source/victory/docs/victory-container
+[Portal]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-portal/portal.js
+[approximate text size]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-util/textsize.js
diff --git a/packages/victory-voronoi-container/README.md b/packages/victory-voronoi-container/README.md
new file mode 100644
index 000000000..4bf082914
--- /dev/null
+++ b/packages/victory-voronoi-container/README.md
@@ -0,0 +1,184 @@
+# VictoryVoronoiContainer
+
+`victory-voronoi-container@^30.0.0` exports `VictoryVoronoiContainer`, `voronoiContainerMixin` and `VoronoiHelpers`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-voronoi-container to see live examples.
+
+`VictoryVoronoiContainer` adds the ability to associate a mouse position with the data point(s)
+closest to it. When this container is added to a chart, changes in mouse position will add the `active`
+prop to data and label components closest to the current mouse position. The closeness of data
+points to a given position is determined by calculating a [voronoi diagram][] based on the data of
+every child `VictoryVoronoiContainer` renders. This container is useful for adding hover interactions,
+like tooltips, to small data points, or charts with dense or overlapping data. See
+[this example][] to learn how to use `VictoryVoronoiContainer` with tooltips.
+
+`VictoryVoronoiContainer` may be used with any Victory component that works with an x-y coordinate
+system, and should be added as the `containerComponent` of the top-level component.
+However, the component that uses it must be standalone
+(`standalone={true}`), which is the default for all top-level Victory components.
+
+```playground
+ `${round(d.x, 2)}, ${round(d.y, 2)}`}
+ />
+ }
+>
+ Math.sin(2 * Math.PI * datum.x)}
+ />
+
+```
+
+## Props
+
+`VictoryVoronoiContainer` uses a superset of props used by [VictoryContainer][]. All props are optional.
+
+### activateData
+
+`type: boolean`
+
+When the `activateData` prop is set to true, the `active` prop will be set to true on all data components within a voronoi area. When this prop is set to false, the `onActivated` and `onDeactivated` callbacks will still fire, but no mutations to data components will occur via Victory's event system.
+
+*default:* `activateData={true}`
+
+### activateLabels
+
+`type: boolean`
+
+When the `activateLabels` prop is set to true, the `active` prop will be set to true on all labels corresponding to points within a voronoi area. When this prop is set to false, the `onActivated` and `onDeactivated` callbacks will still fire, but no mutations to label components will occur via Victory's event system. Labels defined directly on `VictoryVoronoiContainer` via the `labels` prop will still appear when this prop is set to false.
+
+*default:* `activateLabels={true}`
+
+### disable
+
+`type: boolean`
+
+When the `disable` prop is set to `true`, `VictoryVoronoiContainer` events will not fire.
+
+### labels
+
+`type: function`
+
+When a `labels` prop is provided to `VictoryVoronoiContainer` it will render a label component
+rather than activating labels on the child components it renders. This is useful for creating multi-
+point tooltips. This prop should be given as a function which will be called once for each active point. The `labels` function will be called with the arguments `point`, `index`, and `points`, where `point` refers to a single active point, `index` refers to the position of that point in the array of active points, and `points` is an array of all active points.
+
+*example:* `labels={(point) => "y: " + point.y}`
+
+### labelComponent
+
+`type: element`
+
+The `labelComponent` prop specified the component that will be rendered when `labels` are defined
+on `VictoryVoronoiContainer`. If the `labels` prop is omitted, no label component will be rendered.
+
+*default:* `labelComponent={ }`
+
+### onActivated
+
+`type: function`
+
+The `onActivated` prop accepts a function to be called whenever new data points are activated.
+The function is called with the parameters `points` (an array of active data objects) and `props` (the props used by `VictoryVoronoiContainer`).
+
+*example:* `onActivated={(points, props) => filterList(points, props)}`
+
+### onDeactivated
+
+`type: function`
+
+The `onDeactivated` prop accepts a function to be called whenever points are deactivated.
+The function is called with the parameters `points` (an array of the newly-deactivated data objects) and `props` (the props used by `VictoryVoronoiContainer`).
+
+*example:* `onDeactivated={(points, props) => removeFromList(points, props)}`
+
+### radius
+
+`type: number`
+
+When the `radius` prop is set, the voronoi areas associated with each data point will be no larger
+than the given radius. This prop should be given as a number.
+
+*example:* `radius={25}`
+
+### voronoiBlacklist
+
+`type: array[string]`
+
+The `voronoiBlacklist` prop is used to specify a list of components to ignore when calculating a shared voronoi diagram. Components with a `name` prop matching an element in the `voronoiBlacklist` array will be ignored by `VictoryVoronoiContainer`. Ignored components will never be flagged as active, and will not contribute date to shared tooltips or labels.
+
+*example:* `voronoiBlacklist={["redPoints"]}`
+
+
+```playground
+ `y: ${d.y}`}
+ />
+ }
+>
+
+
+
+```
+
+### voronoiDimension
+
+`type: "x" || "y"`
+
+When the `voronoiDimension` prop is set, voronoi selection will only take the given dimension into account.
+For example, when `dimension` is set to "x", all data points matching a particular x mouse position
+will be activated regardless of y value. When this prop is not given, voronoi selection is
+determined by both x any y values.
+
+*example:* `voronoiDimension="x"`
+
+```playground
+ `y: ${d.y}`}
+ />
+ }
+>
+
+
+
+```
+
+### voronoiPadding
+
+`type: number`
+
+When the `voronoiPadding` prop is given, the area of the chart that will trigger voronoi events is
+reduced by the given padding on every side. By default, no padding is applied, and the entire range
+of a given chart may trigger voronoi events. This prop should be given as a number.
+
+*example:* `voronoiPadding={5}`
+
+[VictoryContainer]: https://formidable.com/open-source/victory/docs/victory-container
+[voronoi diagram]: https://github.com/d3/d3-voronoi
+[this example]: https://formidable.com/open-source/victory/gallery/voronoi-tooltips-grouped
diff --git a/packages/victory-voronoi/README.md b/packages/victory-voronoi/README.md
new file mode 100644
index 000000000..bd30b3c10
--- /dev/null
+++ b/packages/victory-voronoi/README.md
@@ -0,0 +1,467 @@
+# VictoryVoronoi
+
+`victory-voronoi@^30.0.0` exports `VictoryVoronoi` and `Voronoi` components
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-voronoi to see live examples.
+
+`VictoryVoronoi` renders a dataset as a series polygons optimized for the nearest data point. `VictoryVoronoi` can be composed with [`VictoryChart`][] to create voronoi overlays for charts, which are useful for attaching events to pieces of data that are otherwise difficult to interact with, usually due to their size.
+
+```playground
+
+
+
+```
+
+## Props
+
+### animate
+
+`type: boolean || object`
+
+`VictoryVoronoi` uses the standard `animate` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#animate)
+
+See the [Animations Guide][] for more detail on animations and transitions
+
+```jsx
+animate={{
+ duration: 2000,
+ onLoad: { duration: 1000 }
+}}
+```
+
+### categories
+
+`type: array[string] || { x: array[string], y: array[string] }`
+
+`VictoryVoronoi` uses the standard `categories` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#categories)
+
+```jsx
+categories={{ x: ["dogs", "cats", "mice"] }}
+```
+
+### containerComponent
+
+`type: element`
+
+`VictoryVoronoi` uses the standard `containerComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#containercomponent)
+
+```jsx
+containerComponent={ }
+```
+
+### data
+
+`type: array[object]`
+
+`VictoryVoronoi` uses the standard `data` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#data)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```playground
+
+```
+
+### dataComponent
+
+`type: element`
+
+`VictoryVoronoi` uses the standard `dataComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#datacomponent)
+
+`VictoryVoronoi` supplies the following props to its `dataComponent`: `data`, `datum`, `index`, `origin`, `polar`, `polygon`, `scale`, `size`, `style`, `x`, `y`
+
+See the [Custom Components Guide][] for more detail on creating your own `dataComponents`
+
+*default:* ` `
+
+```jsx
+dataComponent={ }
+```
+
+### domain
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+`VictoryVoronoi` uses the standard `domain` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#domain)
+
+```jsx
+domain={{x: [0, 100], y: [0, 1]}}
+```
+
+### domainPadding
+
+`type: number || array[left, right] || { x: [left, right], y: [bottom, top] }`
+
+`VictoryVoronoi` uses the standard `domainPadding` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#domainpadding)
+
+```jsx
+domainPadding={{x: [10, -10], y: 5}}
+```
+
+### eventKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryVoronoi` uses the standard `eventKey` prop to specify how event targets are addressed. **This prop is not commonly used.** [Read about the `eventKey` prop in more detail here](https://formidable.com/open-source/victory/docs/common-props#eventkey)
+
+```jsx
+eventKey="x"
+```
+
+### events
+
+`type: array[object]`
+
+`VictoryVoronoi` uses the standard `events` prop. [Read about it in more detail here](https://formidable.com/open-source/victory/docs/common-props#events)
+
+See the [Events Guide][] for more information on defining events.
+
+```playground
+
+
Click Me
+ {
+ return [{
+ target: "data",
+ mutation: (props) => {
+ const fill = props.style && props.style.fill;
+ return fill === "black" ? null : { style: { fill: "black" } };
+ }
+ }];
+ }
+ }
+ }]}
+ data={sampleData}
+ />
+
+```
+
+### externalEventMutations
+
+`type: array[object]`
+
+`VictoryVoronoi` uses the standard `externalEventMutations` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#externalEventsMutations)
+
+### groupComponent
+
+`type: element`
+
+`VictoryVoronoi` uses the standard `groupComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#groupcomponent)
+
+*default:* ` `
+
+```jsx
+groupComponent={ }
+```
+
+### height
+
+`type: number`
+
+`VictoryVoronoi` uses the standard `height` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#height)
+
+*default (provided by default theme):* `height={300}`
+
+```jsx
+height={400}
+```
+
+### labelComponent
+
+`type: element`
+
+`VictoryVoronoi` uses the standard `labelComponent` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#labelcomponent)
+
+*default:* ` `
+
+```playground
+ datum.y}
+ labelComponent={}
+/>
+```
+
+### labels
+
+`type: array || function`
+
+`VictoryVoronoi` uses the standard `labels` prop to define labels for each point. [Read about it in more detail here](https://formidable.com/open-source/victory/docs/common-props#labels)
+
+```playground
+ `y: ${datum.y}`}
+/>
+```
+
+### maxDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryVoronoi` uses the standard `maxDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#maxDomain)
+
+
+### minDomain
+
+`type: number || { x: number, y: number }`
+
+`VictoryVoronoi` uses the standard `minDomain` prop. [Read about it in detail](https://formidable.com/open-source/victory/docs/common-props#minDomain)
+
+### name
+
+`type: string`
+
+The `name` prop is used to reference a component instance when defining shared events.
+
+```jsx
+name="series-1"
+```
+
+### origin
+
+`type: { x: number, y: number }`
+
+**The `origin` prop is only used by polar charts, and is usually controlled by `VictoryChart`. It will not typically be necessary to set an `origin` prop manually**
+
+[Read about the `origin` prop in detail](https://formidable.com/open-source/victory/docs/common-props#origin)
+
+### padding
+
+`type: number || { top: number, bottom: number, left: number, right: number }`
+
+`VictoryVoronoi` uses the standard `padding` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#padding)
+
+*default (provided by default theme):* `padding={50}`
+
+```jsx
+padding={{ top: 20, bottom: 60 }}
+```
+
+### polar
+
+`type: boolean`
+
+`VictoryVoronoi` uses the standard `polar` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#polar)
+
+**Note:** Polar Charts are not yet supported for `VictoryVoronoi`
+
+### range
+
+`type: array[low, high] || { x: [low, high], y: [low, high] }`
+
+**The `range` prop is usually controlled by `VictoryChart`. It will not typically be necessary to set a `range` prop manually**
+
+[Read about the `range` prop in detail](https://formidable.com/open-source/victory/docs/common-props#range)
+
+### samples
+
+`type: number`
+
+`VictoryVoronoi` uses the standard `samples` prop to generate data when plotting functions. [Read about it in more detail here](https://formidable.com/open-source/victory/docs/common-props#samples)
+
+*default:* `samples={50}`
+
+```jsx
+samples={100}
+```
+
+### scale
+
+`type: scale || { x: scale, y: scale }`
+
+`VictoryVoronoi` uses the standard `scale` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#scale)
+Options for scale include "linear", "time", "log", "sqrt" and the `d3-scale` functions that correspond to these options.
+
+*default:* `scale="linear"`
+
+```jsx
+scale={{x: "linear", y: "log"}}
+```
+
+### sharedEvents
+
+**The `sharedEvents` prop is used internally to coordinate events between components. It should not be set manually.**
+
+### singleQuadrantDomainPadding
+
+`type: boolean || { x: boolean, y: boolean }`
+
+`VictoryVoronoi` uses the standard `singleQuadrantDomainPadding` prop. [Read about it here](https://formidable.com/open-source/victory/docs/common-props#singlequadrantdomainpadding)
+
+### size
+
+`type: number`
+
+The size prop determines the maximum size of each voronoi area. When this prop is given, a circular area of the specified size will be rendered, and clipped where it would overlap with other voronoi areas. If this prop is not given, the entire voronoi area will be used.
+
+```playground
+
+```
+
+### sortKey
+
+`type: string || integer || array[string] || function`
+
+`VictoryVoronoi` uses the standard `sortKey` prop to determine how data should be ordered. [Read about it in more detail here](https://formidable.com/open-source/victory/docs/common-props#sortkey)
+
+```jsx
+sortKey="x"
+```
+
+### sortOrder
+
+`type: "ascending" || "descending"`
+
+The `sortOrder` prop specifies whether sorted data should be returned in ascending or descending order.
+
+*default:* `sortOrder="ascending"`
+
+### standalone
+
+`type: boolean`
+
+`VictoryVoronoi` uses the standard `standalone` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#standalone)
+
+**note:** When `VictoryVoronoi` is nested within a component like `VictoryChart`, this prop will be set to `false`
+
+*default:* `standalone={true}`
+
+```playground
+
+
+
+
+```
+
+
+### style
+
+`type: { parent: object, data: object, labels: object }`
+
+`VictoryVoronoi` uses the standard `style` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#style)
+
+*default (provided by default theme):* See [grayscale theme][] for more detail
+
+```playground
+ datum.x}
+/>
+```
+
+### theme
+
+`type: object`
+
+`VictoryVoronoi` uses the standard `theme` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#theme)
+
+See the [Themes Guide][] for information about creating custom themes.
+
+*default:* `theme={VictoryTheme.grayscale}`
+
+```jsx
+theme={VictoryTheme.material}
+```
+
+### width
+
+`type: number`
+
+`VictoryVoronoi` uses the standard `width` prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#width)
+
+*default (provided by default theme):* `width={450}`
+
+```jsx
+width={400}
+```
+
+### x
+
+`type: string || integer || array[string] || function`
+
+`VictoryVoronoi` uses the standard `x` data accessor prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#x)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+x="employee.name"
+```
+
+### y
+
+`type: string || integer || array[string] || function`
+
+`VictoryVoronoi` uses the standard `y` data accessor prop. [Read about it in detail here](https://formidable.com/open-source/victory/docs/common-props#y)
+
+See the [Data Accessors Guide][] for more detail on formatting and processing data.
+
+```jsx
+y={(d) => d.value + d.error}
+```
+
+### y0
+
+`type: string || integer || array[string] || function`
+
+**It is not common to set a `y0` prop with `VictoryVoronoi`, as baselines for `VictoryVoronoi` are only relevant for stacked charts.** [Read more about the `y0` prop here](https://formidable.com/open-source/victory/docs/common-props#y0)
+
+[Animations Guide]: https://formidable.com/open-source/victory/guides/animations
+[Data Accessors Guide]: https://formidable.com/open-source/victory/guides/data-accessors
+[Custom Components Guide]: https://formidable.com/open-source/victory/guides/custom-components
+[Events Guide]: https://formidable.com/open-source/victory/guides/events
+[Themes Guide]: https://formidable.com/open-source/victory/guides/themes
+[`VictoryChart`]: https://formidable.com/open-source/victory/docs/victory-chart
+[grayscale theme]: https://github.com/FormidableLabs/victory-core/blob/master/src/victory-theme/grayscale.js
diff --git a/packages/victory-zoom-container/README.md b/packages/victory-zoom-container/README.md
new file mode 100644
index 000000000..e60c62bf3
--- /dev/null
+++ b/packages/victory-zoom-container/README.md
@@ -0,0 +1,111 @@
+# VictoryZoomContainer
+
+`victory-zoom-container@^30.0.0` exports `VictoryZoomContainer`, `zoomContainerMixin`, `ZoomHelpers`, and `RawZoomHelpers`
+
+View these docs at https://formidable.com/open-source/victory/docs/victory-zoom-container to see live examples.
+
+`VictoryZoomContainer` provides pan and zoom behavior for any Victory component that works with an
+x, y axis. Zoom events are controlled by scrolling, and panning events are controlled by dragging.
+[See an example of a zoomable chart][]
+
+`VictoryZoomContainer` may be used with any Victory component that works with an x-y coordinate
+system, and should be added as the `containerComponent` of the top-level component. However, the component that uses it must be standalone
+(`standalone={true}`), which is the default for all top-level Victory components.
+
+```playground
+
+ }
+>
+ Math.sin(2 * Math.PI * datum.x)}
+ />
+
+```
+
+## Props
+
+`VictoryZoomContainer` uses a superset of props used by [VictoryContainer][]. All props are optional.
+
+### allowPan
+
+`type: boolean`
+
+The optional `allowPan` prop accepts a boolean that enables the panning functionality. Zooming will still be enabled when the `allowPan` prop is set to false.
+
+*default:* `allowPan={true}`
+
+### allowZoom
+
+`type: boolean`
+
+The optional `allowZoom` prop accepts a boolean that enables the zoom functionality. Panning will still be enabled when the `allowZoom` prop is set to false.
+
+*default:* `allowZoom={true}`
+
+### clipContainerComponent
+
+`type: element`
+
+`VictoryZoomContainer` works by clipping data outside of a given domain. `VictoryZoomContainer` uses `VictoryClipContainer` by default. This prop should not be replaced with a custom component, but you may want to set props on `VictoryClipContainer`, such as `clipPadding`
+
+*example:* `clipContainerComponent={ }`
+
+### disable
+
+`type: boolean`
+
+When the `disable` prop is set to `true`, `VictoryZoomContainer` events will not fire.
+
+### downsample
+
+`type: number || boolean`
+
+The `downsample` prop limits the number of points that will be displayed. This prop may be given as a boolean or a number corresponding to maximum number of points. When given as a boolean, the maximum number of points that will be plotted is 150.
+
+### minimumZoom
+
+`type: { x: number, y: number }`
+
+The `minimumZoom` prop sets a minimum domain extent for the zoomed chart. When the difference between
+the maximum and minimum of a zoomed domain is equal to the `minimumZoom` in either dimension, the
+component will stop responding to events that would normally trigger zooming in. Zooming out and
+panning will still be enabled. When this prop is not specified, the default minimum zoom will
+cover 1 / 1000th of the original domain. This prop should be given as an object with numeric values
+for x and y.
+
+*example:* `minimumZoom={{x: 1, y: 0.01}}`
+
+### onZoomDomainChange
+
+`type: function`
+
+The optional `onZoomDomainChange` prop accepts an function to be called on each update to the visible domain. The function accepts the parameters `domain` (the updated domain) and `props` (the props used by `VictoryZoomContainer`).
+
+*example:* `onZoomDomainChange={(domain, props) => handleDomainChange(domain, props)}`
+
+### zoomDomain
+
+`type: { x: [low, high], y: [low, high] }`
+
+The `zoomDomain` prop describes the zoomed state. This prop is an object that
+specifies separate arrays for x and y. Each array is a tuple that describes the minimum and maximum
+values to render. If this prop is not provided initially, the chart will render without an initial
+zoom, displaying the entire dataset. Updates to `zoomDomain` will trigger a re-render of the chart
+with the new domain.
+
+*example:* `zoomDomain={{x: [0, 100]}}`
+
+### zoomDimension
+
+`type: "x" || "y" `
+
+When the `zoomDimension` prop is set, panning and zooming will be restricted to the given dimension
+(either x or y), and the domain of the other dimension will remain static. When this prop is not
+specified, both x and y dimensions will pan and zoom.
+
+*example:* `zoomDimension="x"`
+
+[VictoryContainer]: https://formidable.com/open-source/victory/docs/victory-container
+[See an example of a zoomable chart]: https://formidable.com/open-source/victory/guides/brush-and-zoom
diff --git a/packages/victory/README.md b/packages/victory/README.md
new file mode 100644
index 000000000..f65206b39
--- /dev/null
+++ b/packages/victory/README.md
@@ -0,0 +1,63 @@
+## [Victory Documentation](https://formidable.com/open-source/victory)
+
+## Getting started
+
+1. Add Victory to your project:
+
+ ```sh
+ $ npm install victory --save
+ ```
+
+2. Add your first Victory component:
+
+ ```js
+ import React, { Component } from 'react';
+ import { render } from 'react-dom';
+ import { VictoryPie } from 'victory';
+
+ class PieChart extends Component {
+ render() {
+ return (
+
+ );
+ }
+ }
+
+ render( , document.getElementById('app'));
+ ```
+
+3. `VictoryPie` component will be rendered, and you should see:
+
+
+
+
+
+## Requirements
+Projects using Victory should also depend on [React][] and [prop-types][].
+
+## Victory Native
+Want to use `Victory` with React Native? Check out [victory-native](https://github.com/FormidableLabs/victory-native)
+Victory Native shares most of its code with Victory, and has a nearly identical api!
+
+## [Contributing](CONTRIBUTING.md)
+
+
+## Issues
+### Jest Snapshots
+
+If you want to use [Jest snapshot testing](https://github.com/storybooks/storybook/tree/master/addons/storyshots)
+with Victory, you may encounter a problem where the Jest snapshot changes every time, due to a randomly generated `clipId`
+being used for a `VictoryClipContainer` group component.
+The solution to this is to set a static `clipId` on your `VictoryClipContainer`.
+
+For example, when creating a `VictoryLine` component, you can pass a `groupComponent` prop:
+```js
+ }
+/>
+```
+
+Now the `clipId` attached to your `VictoryLine` component will always be the same, and your snapshot will not change with each test run.
+
+[React]: https://facebook.github.io/react/
+[prop-types]: https://github.com/reactjs/prop-types