Story
Display components with controls.
Callout
Introduction
You can use Fumadocs Story to display & document components. It is a simple, docs-focused alternative of Storybook, it is mainly designed for component libraries.
If you are new to the concept of Story, this is a short explanation from Storybook docs:
A story captures the rendered state of a UI component. It's an object with annotations that
describe the component's behavior and appearance given a set of arguments.
When to use it over Storybook?
Fumadocs Story is not a replacement for Storybook, we still recommend Storybook for proper UI testing.
Installation
Follow the installation guide according to your setup:
Configurations
Variants
You can provide multiple variants of the component with args:
import { defineStory } from '@/lib/story';
import { Callout } from '@/components/callout';
export const story = defineStory({
Component: Callout,
args: [
{
variant: 'Default',
initial: {
title: 'This is a Callout',
},
},
{
variant: 'Warning',
initial: {
title: 'This is a Callout',
},
// fixed values for props
fixed: {
type: 'warning',
},
},
],
});controls
You can further customize on how the controls are generated:
import { defineStory } from '@/lib/story';
import { GraphView } from '@/components/graph-view';
export const story = defineStory({
Component: GraphView,
args: {
// specify the control nodes
controls: {
node: {
type: 'object',
properties: [],
},
},
// or customize the generated controls
controls: {
transform: (node) => node,
},
},
});Internationalization
Assuming you have configured Internationalization at UI level:
import { defineI18n } from 'fumadocs-core/i18n';
import { uiTranslations } from 'fumadocs-ui/i18n';
import { storyTranslations } from '@fumadocs/story/i18n';
const i18n = defineI18n({
languages: ['en', 'cn'],
defaultLanguage: 'en',
});
export const translations = i18n
.translations()
.extend(uiTranslations())
.extend(storyTranslations())
.add('ui', {
cn: { displayName: 'Chinese' },
})
.add('story', {
cn: {
// ...
},
});See Translations for more details.
How is this guide?
Last updated on
