DEV Community

Cover image for Installing Storybook
Chris Bongers
Chris Bongers

Posted on • Originally published at daily-dev-tips.com

12

Installing Storybook

Now that we have our first introduction to Storybook, let's see how we can install it.

It's important to note that Storybook doesn't generate a new project, so you should always add it to an existing project.

In my case, I'll be testing it out on my React start project.

Installing Storybook

As with many packages, we first have to install the dependencies, and for Storybook, it's as simple as running the following command.

npx storybook init
Enter fullscreen mode Exit fullscreen mode

This one command will install everything you need and set up some example stories.

Once done, you'll see a new stories folder pop-up in your project. This has some sample components to showcase how it will work.

Let's spool up Storybook to see how it looks.

npm run storybook
Enter fullscreen mode Exit fullscreen mode

Now visit the URL it opened up on. This can vary based on your system.
Once opened, you should see the following screen.

Storybook basic welcome screen

As you can see, it has an introduction page, which is just a markdown page you can set up in any way, you like.
And it shows some basic components. Storybook creates these to give you samples on how to set them up.

Before creating our component, let's take a look at some of the options in the UI.

If we open up a button component, we see many more options.

Component options

At the top, we see all the generic window options. We can use these to interact with the broad window (and not particularly the component).

The options here are:

  • Refresh component
  • Zooming
  • Viewport renders
  • Layout options you can define (more on this later)
  • And to render outside storybook

Then at the bottom of your component, we get a section for Controls. These are the props for your component.
You define these when setting up the story for this component, and in the case of the button, you can see we have quite a few.

You can play around by changing those.

Modified button component

Adding a story

This is all good and well, but none of these components are our own.
So you might be wondering, how do I add my components?

As we stand now, we only have our App.js component that exists in the app.
To add a story, we can add an App.stories.jsx file in the same directory as the App.js lives in.

We can use the following format to render our App.

import React from 'react';
import App from './App';

export default {
  title: 'Example/App',
  component: App,
  parameters: {
    layout: 'fullscreen',
  },
};

export const Default = <App />;
Enter fullscreen mode Exit fullscreen mode

This will output the App as it is. No options are available, so there is no need to set up.

If we refresh our page, we see the App component rendered in the sidebar, which should output nicely.

Storybook app component

And there you go, we added our component to Storybook.

Thank you for reading, and let's connect!

Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter

Sentry blog image

How to reduce TTFB

In the past few years in the web dev world, we’ve seen a significant push towards rendering our websites on the server. Doing so is better for SEO and performs better on low-powered devices, but one thing we had to sacrifice is TTFB.

In this article, we’ll see how we can identify what makes our TTFB high so we can fix it.

Read more

Top comments (2)

Collapse
 
lexlohr profile image
Alex Lohr

If you are already using vite (and you should), maybe you want to have a look at histoire.dev/.

Collapse
 
dailydevtips1 profile image
Chris Bongers

Oh nice!

Using Vite for personal stuff, for work it's still a bit of a mix because of our extended needs that are not yet fully supported at the moment.

But definitely checking this out 👀

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay