DEV Community

Saulo Dias
Saulo Dias

Posted on

5 1

Adding Global CSS to an Angular Library Storybook

This tutorial assumes you have configured an Angular Library + Storybook following this post.

Most of the time, when creating components, you'll probably want to rely on some global css style. That enables you to use generic classes (like bootstrap classes), or theming and so on. However the Storybook documentation lacks examples on how to do it.

For this example we first have to install Bootstrap. Go to your workspace root folder and run npm install bootstrap.

Once you have done that, now you can link the boostrap css to your Storybook project.

To do so, you just have to add the css path to the styles in your angular.json file, in the styles list of your storybook project like in the following example.

"styles": ["node_modules/bootstrap/dist/css/bootstrap.min.css"],
Enter fullscreen mode Exit fullscreen mode

See the entire file and example workspace on Github.

I have edited the default MyLibComponent from the Angular Library basic example and it looks like this with the Bootstrap styling.
image

You might also want to check this out:

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (1)

Collapse
 
roblevintennis profile image
Rob Levin

Thanks man, love it when fellow devs have little tips like this when I need it :-)

Hey, so I set up my project with nx and it's a library, so my angular.json edit was pretty much what you say but I had to add the entire section:

"storybook": {
...
  "architect": {
    "build": {
      "options": {
        "styles": ["libs/ag/styles/common.min.css"]
      }
    }
  },
...
},
Enter fullscreen mode Exit fullscreen mode

Maybe it'll help someone

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