npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

storybook-zeplin

v4.0.1

Published

Zeplin addon for Storybook

Readme

npm version Monthly download GitHub license Netlify Status Open Collective

Storybook Zeplin addon

Storybook addon that embeds Zeplin designs in the addon panel and overlays them on rendered components, so you can compare your implementation against the design.

Links

Requirements

Storybook Zeplin addon v4 is compatible with Storybook 10 and Node.js >=18.

For Storybook 8, use storybook-zeplin@3.

For Storybook 5-7, use [email protected].

Getting started

1. Install

npm install --save-dev storybook-zeplin
# yarn add -D storybook-zeplin

2. Register the addon in main.js

// .storybook/main.js
export default {
    addons: ["storybook-zeplin"],
};

3. Linking components

You can either link an entire Zeplin project or styleguide via global story parameters (recommended), or link individual components one by one.

Option A: Linking entire project or styleguide (Recommended)

Add zeplinLink to .storybook/preview.js with a link to the Zeplin project or styleguide that contains your designs.

Zeplin components linked to your stories will automatically appear in the addon panel.

Using a Zeplin web link

//.storybook/preview.js
export const parameters = {
    zeplinLink: "https://app.zeplin.io/project/5e7a6d478204d59183a1c76b",
};

Using a Zeplin app link

//.storybook/preview.js
export const parameters = {
    zeplinLink: "zpl://project?pid=61f164b064e363a52fbb295f",
};

Once the addon is set up, check out these articles to learn more about the Storybook integration on Zeplin:

Option B: Linking individual stories manually

The zeplinLink parameter accepts either a string link or an array of { name, link } objects. Links can be a full Zeplin web URL or an app URI pointing to a component or screen.

To link all stories in a file to the same Zeplin component:

export default {
    title: "Button",
    component: Button,
    parameters: {
        zeplinLink:
            "https://app.zeplin.io/project/5e7a6d478204d59183a1c76b/styleguide/components?coid=5eac833c5f1f2f1cb19f4f19",
    },
};

export const Primary = {
    render: () => <Button>Click me</Button>,
};

export const Secondary = {
    render: () => <Button secondary>Click me</Button>,
};

To link a single story to multiple Zeplin components:

export default {
    title: "Button",
    component: Button,
};

export const Responsive = {
    render: () => <Button>Click me</Button>,
    parameters: {
        zeplinLink: [
            { name: "Desktop", link: "zpl://components?pid=pid1&coid=coid1" },
            { name: "Tablet", link: "zpl://components?pid=pid1&coid=coid2" },
            { name: "Mobile", link: "zpl://components?pid=pid1&coid=coid3" },
        ],
    },
};

4. Set Zeplin access token

To access your Zeplin resources, provide an access token with your Zeplin account permissions. You can create one from the Developer tab in your profile page.

The addon prompts for the token when you open the addon tab. The token is stored in the browser, so each user needs to create and set their own.

(Optional) Setting the access token via environment variable

To skip creating a token per user, provide it as STORYBOOK_ZEPLIN_TOKEN — either in a .env file in your project root, or as an environment variable when building or running Storybook.

⚠️ Disclaimer

When set via an environment variable, the access token is bundled into the Storybook build and can be read by anyone with access to the instance. Don't use this approach if your Storybook instance is accessible to third parties.

# .env
STORYBOOK_ZEPLIN_TOKEN="eyJhbGciOiJIUzI1N.."

Overlaying the design

Once a Zeplin design is loaded in the panel, click the eye icon to overlay it on top of the rendered component. Adjust opacity and scaling to align the two, lock the overlay in place once positioned, or toggle difference mode to highlight pixel-level mismatches.

You can drag the overlay with your mouse, or nudge it one pixel at a time with Shift + arrow keys.

Development

Run the following commands in separate tabs to start development:

npm run watch
npm run storybook

License

MIT © Mert Kahyaoğlu