Storybook Centered Decorator can be used to center components inside the preview in Storybook.
npm install @storybook/addon-centered --save-dev
You can set the decorator locally.
example for React:
import { storiesOf } from '@storybook/react';
import centered from '@storybook/addon-centered';
import MyComponent from '../Component';
storiesOf('MyComponent', module)
.addDecorator(centered)
.add('without props', () => (<MyComponent />))
.add('with some props', () => (<MyComponent text="The Comp"/>));
example for Vue:
import { storiesOf } from '@storybook/vue';
import centered from '@storybook/addon-centered';
import MyComponent from '../Component.vue';
storiesOf('MyComponent', module)
.addDecorator(centered)
.add('without props', () => ({
components: { MyComponent },
template: '<my-component />'
}))
.add('with some props', () => ({
components: { MyComponent },
template: '<my-component text="The Comp"/>'
}));
example for Mithril:
import { storiesOf } from '@storybook/mithril';
import centered from '@storybook/addon-centered/mithril';
import MyComponent from '../Component';
storiesOf('MyComponent', module)
.addDecorator(centered)
.add('without props', () => ({
view: () => <MyComponent />
}))
.add('with some props', () => ({
view: () => <MyComponent text="The Comp"/>
}));
Also, you can also add this decorator globally
example for React:
import { configure, addDecorator } from '@storybook/react';
import centered from '@storybook/addon-centered';
addDecorator(centered);
configure(function () {
//...
}, module);
example for Vue:
import { configure, addDecorator } from '@storybook/vue';
import centered from '@storybook/addon-centered';
addDecorator(centered);
configure(function () {
//...
}, module);
example for Mithril:
import { configure, addDecorator } from '@storybook/mithril';
import centered from '@storybook/addon-centered/mithril';
addDecorator(centered);
configure(function () {
//...
}, module);
import { configure, setAddon } from '@storybook/react';
import centered from '@storybook/addon-centered';
setAddon({
addCentered(storyName, storyFn) {
this.add(storyName, (context) => (
centered.call(context, storyFn)
));
},
});
configure(function () {
//...
}, module);
import { storiesOf } from '@storybook/react';
import Component from '../Component';
storiesOf('Component', module)
.addCentered('without props', () => (<Component />))