mcpField
S
storybook

storybook

github.com/pproenca开发220137 次安装11 周前更新
代码仓库

关于 storybook

这是一项面向 TypeScript 和 React 组件库的 Storybook 9+ 参考技能,包含 52 条规则。它帮助开发者覆盖组件生命周期中的故事配置、测试、无障碍检查、文档编写和交付。

主要功能

  1. 01涵盖八类主题的 52 条规则
  2. 02Storybook 配置与 CSF3 编写指引
  3. 03Args、控件、装饰器与组合
  4. 04交互测试与无障碍检查
  5. 05文档、设计系统与部署

适用场景

  1. 01为 React 组件库配置 Storybook
  2. 02编写故事并设置控件
  3. 03运行交互测试和无障碍检查
  4. 04编写设计系统文档并准备构建供评审

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill storybook

安装后在 Claude Code 中输入/storybook确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
gotchas.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
args-derive-from-component-props.md
args-explicit-control-for-unions.md
args-no-jsx-in-args.md
args-pick-args-vs-parameters-vs-globals.md
args-use-fn-for-callbacks.md
axe-context-for-portals.md
axe-disable-rules-not-stories.md
axe-globals-manual-for-intentional-violations.md
axe-restrict-runonly-to-wcag-aa.md
axe-set-test-error-globally.md
build-cache-storybook-in-ci.md
build-chromatic-modes-multi-theme.md
build-deploy-static-build-to-shareable-host.md
build-manager-brand.md
build-prefer-vite-over-webpack.md
build-storybook-composition-refs.md
build-trim-test-bundle.md
config-add-addons-via-cli.md
config-narrow-stories-glob.md
config-pick-the-right-framework-package.md
config-static-dirs-not-bundler-imports.md
config-story-sort-for-large-libraries.md
config-tokens-css-vars-in-preview.md
config-typed-main-config.md
config-typed-preview.md

详细介绍

dot-skills Storybook 最佳实践

全面介绍如何将 Storybook 9+ 用作 TypeScript/React 组件库的工作坊和测试平台。涵盖 8 个类别中的 52 条规则,按组件在设计系统中的生命周期排序:错误的 .storybook/main.ts 会影响所有故事;格式错误的 CSF Meta 会导致该文件无法使用 autodocs、控件、测试和 a11y 面板。

本技能涵盖的内容

  1. 设置 — main.ts、preview.ts、框架选择(Vite 还是 Webpack、Next.js 还是仅 React)、通过 CLI 安装插件、staticDirs。
  2. 编写故事(CSF3) — satisfies Meta<typeof Component>、具名导出 = 故事、tags: ['autodocs'] 的放置位置、何时适合使用 render、故事命名约定。
  3. Args、argTypes、控件 — 何时依赖推断、何时声明 control: 'select'、使用 storybook/test 中的 fn() 处理回调、args、parameters 与 globals 的区别。
  4. 装饰器与组合 — 在 preview.ts 中配置全局提供程序、使用 MSW 模拟网络请求、子路径导入模块模拟(Storybook 9+)、装饰器签名中的常见问题。
  5. 交互测试 — play 函数、storybook/test 导入路径(而非 @storybook/test)、解构 canvas/userEvent、优先使用 findBy* 而非 waitFor、在 CI 中使用 addon-vitest、可移植故事。
  6. 无障碍(通过 @storybook/addon-a11y 使用 axe-core) — 将 parameters.a11y.test = 'error' 作为实际门槛、按规则禁用检查、使用 runOnly 限定 WCAG 目标范围、门户的 context、使用 globals.a11y.manual 标记有意违规的测试样例。
  7. 文档与设计系统 — autodocs 与 MDX、在 MDX 中使用 <Canvas of={...} /> 引用故事、状态标签、将设计令牌作为故事、通过 parameters.design 添加 Figma 链接。
  8. 构建与部署 — 优先使用 Vite 而非 Webpack、大型库按需打包、部署到 Chromatic/Vercel 供设计师审阅、CI 缓存配置。

适用场景

遇到以下情况时,请使用本技能:

  • 编辑或创建会加载 storybookTest 的 *.stories.tsx、*.mdx、.storybook/main.ts、.storybook/preview.ts 或 vitest.config.ts。
  • 在新项目中设置 Storybook(选择框架、完成 npx storybook init 后续配置)。
  • 添加或升级插件(a11y、vitest、designs、msw)。
  • 通过 play 函数和 Vitest 插件连接组件测试。
  • 排查“Storybook 很慢”“控件显示文本而不是下拉选择”“我的对话框没有显示 a11y 面板”“CI 中的 play 函数不稳定”等问题。

以下情况请跳过本技能,改用:

  • 使用 react-optimise / clean-code-ts-react 处理底层组件设计。
  • 在 Storybook 之外,使用 react-testing-library 了解 render/screen/userEvent 的语义。
  • 使用 WCAG/ARIA 参考文档了解规范本身;本技能假定你了解 aria-labelledby 的作用,并说明 addon-a11y 如何检查它。

按优先级划分的规则类别

顺序反映了组件生命周期(配置 → 编写 → 接入 → 装饰 → 测试 → 审核 → 编写文档 → 发布)。前面的阶段会产生连锁影响。

优先级类别影响前缀规则数
1设置与配置CRITICALconfig-8
2编写故事(CSF3)CRITICALcsf-8
3Args、ArgTypes 与控件HIGHargs-5
4装饰器与组合HIGHdeco-7
5交互测试HIGHtest-7
6无障碍(axe)HIGHaxe-5
7文档与设计系统MEDIUM-HIGHdocs-5
8构建、性能与部署MEDIUMbuild-7

快速参考

1. 设置与配置(关键)
2. 故事编写 — CSF3(关键)
3. Args、ArgTypes 与控件(高)
4. 装饰器与组合(高)
5. 交互测试(高)
6. 无障碍 — axe(高)
7. 文档与设计系统(中高)
8. 构建、性能与部署(中)

如何使用

  • 从 references/_sections.md 开始,了解类别结构和影响原因。
  • 如果你正在设置 Storybook,请阅读所有 config- 规则,然后阅读 csf- 规则。
  • 如果你要编写新 Story,请阅读 csf- 和 args- 规则。
  • 如果你想为 Story 添加测试,请阅读 test- 和 deco-msw-for-network-mocks。
  • 如果你希望 a11y 违规导致 CI 失败,请阅读所有 axe- 规则。
  • 如果你要从头构建设计系统,请按以下顺序阅读:config-tokens-css-vars-in-preview、config-story-sort-for-large-libraries、csf-title-hierarchy-for-design-systems、deco-themes-addon-for-multi-brand、build-manager-brand、build-chromatic-modes-multi-theme。然后阅读 docs-component-status-tags 和 docs-design-tokens-as-stories,了解治理和 Token 展示层。
  • 如果你有一个多包单体仓库设计系统,请先阅读 build-storybook-composition-refs,然后按照上述设计系统路径阅读。
  • 如果你需要 RTL / 多方向覆盖,请先阅读 deco-rtl-direction-toggle,然后阅读 build-chromatic-modes-multi-theme,将 RTL 接入视觉回归测试。
  • 对于 gotchas.md:这里记录了随时间发现的故障模式;调试不常见问题前务必查看。
  • 使用 assets/templates/_template.md 添加新规则。

参考文件

文件描述
references/_sections.md类别定义和排序
assets/templates/_template.md添加新规则的模板
gotchas.md随时间累积的故障模式
metadata.json版本、参考资料、摘要

相关技能

  • clean-code-ts-react — 底层组件设计质量(命名、函数结构、抽象)。
  • react-testing-library — 在 Storybook 之外使用时的 RTL 查询和模式。
  • web-interface-guidelines — 用于编写组件文档的 Vercel Web Interface Guidelines。

评论

支持 Markdown