Customize Storybook Using the Options Addon

January 07, 2019

Storybook is a great way to showcase your web components, and comes with many useful add-ons, among which is the options add-on which is a separate package on NPM that lets you customize using your storybooks: Take me to the NPM package

These are the options you can use in your config.js file:

import { addDecorator, configure } from '@storybook/react';
import { withOptions } from '@storybook/addon-options';
 
// Option defaults:
addDecorator(
  withOptions({
    /**
     * name to display in the top left corner
     * @type {String} 
     */
    name: 'Eureka Web Forms',
    /**
     * URL for name in top left corner to link to
     * @type {String} 
     */
    url: '#',
    /**
     * show story component as full screen
     * @type {Boolean} 
     */
    goFullScreen: false,
    /**
     * display panel that shows a list of stories
     * @type {Boolean} 
     */
    showStoriesPanel: true,
    /**
     * display panel that shows addon configurations
     * @type {Boolean} 
     */
    showAddonPanel: true,
    /**
     * display floating search box to search through stories
     * @type {Boolean} 
     */
    showSearchBox: false,
    /**
     * show addon panel as a vertical panel on the right
     * @type {Boolean} 
     */
    addonPanelInRight: false,
    /**
     * sorts stories
     * @type {Boolean} 
     */
    sortStoriesByKind: false,
    /**
     * regex for finding the hierarchy separator
     * @example:
     *   null - turn off hierarchy
     *   /\// - split by `/`
     *   /\./ - split by `.`
     *   /\/|\./ - split by `/` or `.`
     * @type {Regex} 
     */
    hierarchySeparator: null,
    /**
     * regex for finding the hierarchy root separator
     * @example:
     *   null - turn off multiple hierarchy roots
     *   /\|/ - split by `|`
     * @type {Regex} 
     */
    hierarchyRootSeparator: null,
    /**
     * sidebar tree animations
     * @type {Boolean} 
     */
    sidebarAnimations: true,
    /**
     * id to select an addon panel
     * @type {String} 
     */
    selectedAddonPanel: undefined, // The order of addons in the "Addon panel" is the same as you import them in 'addons.js'. The first panel will be opened by default as you run Storybook
    /**
     * enable/disable shortcuts
     * @type {Boolean} 
     */
    enableShortcuts: false, // true by default,
    showLeftPanel: false,
    downPanelInRight: false,
    showDownPanel: false
  })
);
 
configure(() => require('./stories'), module);