storybook
storybook copied to clipboard
Filter and search components by tag
Is your feature request related to a problem? Please describe. Right now, there isn't a way to filter or search through filtered items in the left navigation. While searching is available to find a specific component, it searches through all available components.
Describe the solution you'd like I would like the ability to filter AND search filtered options based on tag.
For example, the tag could be used to filter components by platform. I imagine by default, it would be set to show all components - but if I want to see just components that support Android, I could select that filter to only show me Android components. For a design system that supports different platforms, this means it's not possible to just see components that are Android, iOS, or web.
When selecting an Android-only component, the viewport should show me a view corresponding to Android. When selecting a component that only supports a web component, I should not be able to toggle my view to a mobile view.
Basically, at a glance, I should be able to see what components are supported based on platform.
Describe alternatives you've considered
- A separate Storybook per tag (messy, duplicate documentation)
- Using the default SB hierarchy and duplicate components based on tag (makes left nav very long, hard to read)
Are you able to assist bring the feature to reality? Yes
Additional context I would love to be able to filter the left nav like this: https://backpack.github.io/components/accordion/?platform=web
I wonder if this could be made slightly more generic and filter by tag
rather than an explicit platform
, but I'd really like to see an expansion of the search/filter capabilities!
Agreed, being able to filter in some sort of generic pattern would be helpful.
Related: https://github.com/storybookjs/storybook/issues/6483
I could have sworn there was already an issue for this, but I can't find it. I'd love to add this kind of UI to Storybook! cc @domyen
@shilman I notice that searching by parameters.notes
(as mentioned in #6483 ) has been removed in storybook@next. This is actually quite a useful workaround but I appreciate is a bit of a hack. So any progress on filtering/searching by tags is a thumbs up from me.
Cc @ghengeveld

It's a very important issue for non-english speaking users.
For example: I want to find the Icon component by typing Icon, but it's not possible now, because my title is Иконка.
Currently, it looks like the fields that are indexed for search (name
and path
) are hard-coded here. I'd love to see that become configurable.
I don't think it'll become configurable, but we're definitely keen to improve on it with well-defined features such as tags. Configurable things are a huge pain in the long term because of unknown potential conflicts down the road.
+1 this is going to be super useful for discovery
+1 It is a crucial feature for large storybooks with a lot of content.
+1 we need this
+1 Really in need of this.
+1 Need this
Will this be possible in Storybook 7?
Update: We implemented the technical underpinnings to support tags in 7.0. Tags power the new automatic docgen functionality.
But it doesn't yet do the filtering - which will come in future releases.
Also, we(maintainers) are super open to contributors who want to help us make filtering and search by tags a reality. That would really help us accelerate this work!
Is there any initiative to - apart from search by tags - allow a full text search?
Content in MDX documents and descriptions of stories (doc comments) will not benefit from indexing just tags from Meta
I'll add a +1 to this. Came up in a couple of research calls recently. It's especially useful for large storybooks.
@domyen Could you share a bit more about what related work has been done, and how that enables the feature? Also possibly pinpoint a few files / places where to start? It would great reduce the effort for me to look into it, thus increase the chance for a contribution :)
I'm also interested in contributing to this effort but don't have much context to get started. Honestly, I was hoping this was closer to coming to fruition.
Would this be possible by creating a new plugin?
Maybe https://pagefind.app/ will be a solution worth considering?
It's integrated in https://starlight.astro.build which I recently checked out an it works pretty well there.
And Starlight stack is Astro -> Vite -> Rollup
And it seems like it works with no particular configuration thanks to https://pagefind.app/docs/metadata/#automatic-metadata (with one initial exception of defining data-pagefind-body
): https://github.com/withastro/starlight/commit/0d4c8a3231e636aae3d040375696c6bc5d5cfd51
Later the UI in there got a bit more complex, https://github.com/withastro/starlight/commit/e5a2e09b8bfe56fa9a70c8bfc2b177bd3904aa8f#diff-75edb5fd723800e6c6dc2e05eaa90c02510d9bff433746a52839e980459712f0 but it still seems like a low-hanging fruit
For Storybook (at least for mine, where I use Vite builder) stack is Storybook -> Vite -> Rollup So here's what I think - if Pagefind works well for result of Rollup in one place, maybe it'll work well for Storybook as well?
EDIT Worth looking at: https://pagefind.app/docs/resources/#using-pagefind-with-a-specific-ssg
Oh that's really interesting! This makes it feasible to search for more than just story metadata (component and story name), such as the actual content.
@ghengeveld maybe it then deserves a distinct issue created, if it's broader than just about tags?
Yeah I think so. This ticket is about separating search and tags, while replacing search altogether is likely a bigger project. If not picked up by the community then this will have to go on the "betting table" (Shape Up) to get prioritized, which requires a written pitch (proposal).
I took a look at what's the output of storybook build
and now I'm sure it won't be as easy as I wrote initially, but I still see a chance
I created a https://github.com/storybookjs/storybook/discussions/24831 for discussing that idea
Tag filtering RFC here https://github.com/storybookjs/storybook/discussions/25535
How can we get this moved forward? I think this would be a game changer for Storybook.
One of the biggest complaints we have with Storybook is poor discoverability. Tags would be a huge help for that.
@WalterWeidner This is moving forward. I shipped the tags foundations as part of 8.1 recently https://github.com/storybookjs/storybook/pull/26634 (documentation)
Hoping to ship the interactive filtering from the RFC https://github.com/storybookjs/storybook/discussions/25535 as part of 8.2 in the next couple months.
I'm also hoping to get tags-based badges in a community addon, such as addon-badges or sidebar-statuses. There is a working gist but it needs to be incorporated into an addon that somebody maintains.