One stop shop to document your react components.
npm install --save-dev babel-plugin-extract-react-types pretty-proptypes
export interface AvatarPropTypes {
  /** Provides a url for avatars being used as a link. */
  href?: string;
  /** Defines the size of the avatar */
  size?: 'small' | 'medium' | 'large';
  /** Name will be displayed in a tooltip */
  name?: string;
  /** A url to load an image from (this can also be a base64 encoded image). */
  src?: string;
  /** A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests */
  testId?: string;
}pretty-proptypes can display props from two sources.
Option 1. Using babel-plugin-extract-react-types and passing the component to Props
.babelrc
{
  "plugins": ["babel-plugin-extract-react-types"]
}import Props from 'pretty-proptypes';
import MyCoolComponent from '../MyCoolComponent';
<Props heading="My Cool Component" component={MyCoolComponent} />;Option 2. Directly passing a component's props to Props with extract-react-types-loader or getting types from extract-react-types and writing it to a file
import Props from 'pretty-proptypes';
<Props
  heading="My Cool Component"
  props={require('!!extract-react-types-loader!../MyCoolComponent')}
/>;This analyses prop type definitions, and default props. It creates descriptions from comments before the type definitions, and will render markdown syntax using react-markings.
- extract-react-types Extract Flow & TypeScript types from React Components
- extract-react-types-loader Webpack loader for extract-react-types
- babel-plugin-extract-react-types A Babel plugin to store the types of React components as a property on the component for documentation
- kind2string kind2string is designed to take the data structures output by extract-react-types and convert it down to a (useful) string.
- pretty-proptypes PrettyPropTypes is designed to display the output of extract-react-types and display rich prop information for consumers.
Pull requests, issues and comments welcome - please read our contributing guidelines and our code of conduct.

