Design System为整个组织的利益相关者服务,因此我们需要教其他人如何从经过良好测试的UI元件中获得最大收益。建立文件可以加速Design System的采用。
利用Storybook Docs,可以用较少的工作来创建完整的说明文件。
说明文件对於协作UI开发非常重要。它可以帮助团队学习如何以及何时使用常见的UI元件。但是一边开发一边写文件耗时又麻烦。
另外,大多数说明文件在做完後就过时了。过时的文件破坏了对Design System 元件的信任,这导致开发人员选择直接建立元件,而不是重用现有元件。
如果我们想克服说明文件固有的问题,以下几点是需要注意的
对於Storybook使用者来说,拥有相当大的优势,因为元件的变异都会被记录在Stories,每个Story会展示出在不同的Input(传入参数)下,元件会如何呈现。
Stories易於编写,且它是直接同步使用目前的元件,它也易於做持续不断的测试。
借助 Storybook Docs Addon,我们可以从现有Stories中生成丰富的说明文件,以减少撰写文件的时间。可以集中精力编写更易於被采纳使用的元件说明。
每次打开Storybook时,会看到两个页签:
每个元件都会对应该Docs,我们可以透过 Docs 快速的知道要如何使用元件。
让我们使用范例专案的Badge.stories.js为范例,Badge用来提供标识使用。
让我们加上parameters.componentSubtitle,补充元件的副标说明。
// src/Badage.stories.js
export default {
title: 'Design System/Badge',
component: Badge,
parameters: {
componentSubtitle: 'Displays meaningful label',
},
};
当我们在Badage元件export function加上JSDOC的注解时,它也会成为Storybook Docs 的 Description
在 propTypes 加上的注解 也会自动生成呈现在 ArgsTable 中
为 Story 加上 Description
每个元件的复杂程度都不相同,对於说明文件的要求也不同。
Markdown是一种用於编写文件的简单格式。MDX允许您在Markdown内部使用JSX。Storybook Docs使用MDX,可让开发人员可以自己控制及安排说明文件的呈现方式。
如果Storybook要可以吃MDX的写法,.storybook/main.js
应该看起来像这样:
// .storybook/main.js
module.exports = {
stories: [
'../src/**/*.stories.mdx',
'../src/**/*.stories.@(js|jsx|ts|tsx)'
],
addons: [
'@storybook/addon-links',
'@storybook/addon-essentials',
'@storybook/preset-create-react-app',
'@storybook/addon-a11y',
],
};
试看看把 Badage.stories.js 改写为 Badage.stories.mdx
至少要指定 Title、Component
MDX
在 Doc 分页
在 Canvas 分页
MDX
在 Doc 分页
MDX
在 Doc 分页
透过这样的写法,就会发现使用 MDX 的设定方式,可以加上更多的说明,可以任意的编排文件的呈现,非常适用於当元件较为复杂时使用。
程序码范例:https://git.io/JTvMk
每个Design System都有一个封面。Storybook Doc可以使用MDX创建一个单独自定义页面。
// src/components/Intro.stories.mdx
import { Meta } from '@storybook/addon-docs/blocks';
<Meta title="Design System/Introduction" />
# Introduction to the Learn Storybook design system
The Learn Storybook design system is a subset of the full [Storybook design system](https://github.com/storybookjs/design-system/), created as a learning resource for those interested in learning how to write and publish a design system using best practice techniques.
Learn more at [Learn Storybook](https://learnstorybook.com).
为了使其出现在第一个,我们必须在.storybook/main.js设定一下顺序
// .storybook/main.js
module.exports = {
stories: [
// 第一个显示 Intro.stories.mdx
'../src/components/Intro.stories.mdx',
'../src/**/*.stories.mdx',
'../src/**/*.stories.@(js|jsx|ts|tsx)',
],
...
};
这样 Intro.stories.mdx 就会显示在Storybook侧边栏第一个
到目前为止,我们都是在开发团队内部运作。首先,创建UI元件,然後,对它们进行审查,测试和文件化。
接下来,我们将视野向外,让不只是开发团队而是扩大到专案的利害关系者如何使用Design System。利用npm及auto这二个工具,打包Design System并发布以供其他App使用。
Design System for Developers - Document
<<: Day30- 最後完成代办事项 To DO List 小工具
这篇要透过CardView来制作一个简易的清单 首先要在Gradle Scripts/build g...
上一篇利用 Angular 路由机制实作待办事项清单与表单页面的切换,这一篇将路由的参数或资料的定义...
reference: ithome - Google更新行动机器学习开发套件ML Kit,不再依赖...
这篇将会综合前面的 GPIO 与 IIO 的知识,帮一个常见的红外线感测器 -- TCRC5000 ...
本文内容 本文内容为阅读与 Angular 的 pathMatch:full 和 redirectT...