mirror of
https://github.com/apache/superset.git
synced 2026-05-24 01:05:21 +00:00
- Update all CI workflows (pre-commit, tech-debt) to use Bun - Update build scripts (js_build.sh, cypress_build.sh, eslint.sh) for Bun - Add sync-package-versions.js script for release version alignment - Simplify package.json scripts (build:packages, publish:packages) - Add gitTag: false to changesets config to avoid repo tag clutter - Remove obsolete Lerna scripts (build.js, lernaVersion.sh) - Update RELEASING/README.md with comprehensive npm publishing guide - Update all developer documentation for Bun usage - Update LLM instruction files (AGENTS.md, dev-standard.mdc) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
title, sidebar_position
| title | sidebar_position |
|---|---|
| Storybook | 5 |
Storybook
Superset uses Storybook for developing and testing UI components in isolation. Storybook provides a sandbox to build components independently, outside of the main application.
Public Storybook
A public Storybook with components from the master branch is available at:
apache-superset.github.io/superset-ui
Running Locally
Main Superset Storybook
To run the main Superset Storybook locally:
cd superset-frontend
# Start Storybook (opens at http://localhost:6006)
bun run storybook
# Build static Storybook
bun run build-storybook
@superset-ui Package Storybook
The @superset-ui packages have a separate Storybook for component library development:
cd superset-frontend
# Install dependencies and build packages
bun install && bun run turbo:build
# Start the @superset-ui Storybook (opens at http://localhost:9001)
bun run plugins:storybook
Adding Stories
To an Existing Package
If stories already exist for the package, extend the examples array in the package's story file:
storybook/stories/<package>/index.js
To a New Package
-
Add package dependencies:
bun add <package> -
Create a story folder matching the package name:
mkdir storybook/stories/superset-ui-<package>/ -
Create an
index.jsfile with the story configuration:export default { examples: [ { storyPath: '@superset-ui/package', storyName: 'My Story', renderStory: () => <MyComponent />, }, ], };Use the
|separator for nested stories:storyPath: '@superset-ui/package|Category|Subcategory'
Best Practices
- Isolate components: Stories should render components in isolation, without application context
- Show variations: Create stories for different states, sizes, and configurations
- Document props: Use Storybook's controls to expose configurable props
- Test edge cases: Include stories for loading states, error states, and empty states