@uspk-ui/storybook-addon
Use uspk UI in your Storybook stories.
This Plugin wraps each of your stories with uspkProvider
which can be configured using Storybook parameters.
Installation
yarn
yarn add -D @uspk-ui/storybook-addon
npm
npm i -D @uspk-ui/storybook-addon
Add the addon to your configuration in .storybook/main.js
and disable the
emotion alias (available with Storybook >6.4).
module.exports = {
addons: ["@uspk-ui/storybook-addon"],
features: {
emotionAlias: false,
},
}
uspkProvider
Configuring If you need to customize the props passed to uspkProvider
for your stories
(to use a custom theme
, for example), you'll need to create custom Storybook
parameters.
To set global parameters for this addon, add a uspk
object to the
parameters
export in .storybook/preview.js
:
import myTheme from "../theme"
export const parameters = {
uspk: {
theme: myTheme,
},
}
The uspk
parameters take the same shape as the props
for uspkProvider
.
See the uspkProvider
props table to see the list of
possible parameters.
uspkProvider
configuration for individual components or stories
Overriding Storybook allows you to define parameters at multiple levels: global, component, and story. We recommend setting default parameters at the global level, and overriding them at the component or story when necessary. See the Storybook Parameters documentation for more information.
Color Mode Tool
You will be able to toggle your color mode with the button in the toolbar. It tries to sync with your theme through the localstorage key.
Story Controls for Theme Components
Get controls for the theming props variant
, size
and colorScheme
in your
stories with getThemingArgTypes(theme, componentName)
.
import { Meta, StoryFn } from "@storybook/react"
import { getThemingArgTypes } from "@uspk-ui/storybook-addon"
import { theme } from "<your-theme>"
export default {
title: "Components / Forms / Button",
// get controls for `variant`, `size` and `colorScheme`
argTypes: getThemingArgTypes(theme, "Button"),
} as Meta
interface StoryProps extends ThemingProps<"Button"> {}
export const Basic: StoryFn<StoryProps> = (props) => (
<Button {...props}>Button</Button>
)
This will render input fields to choose the theming prop values: