storybook_flutter 0.14.1
storybook_flutter: ^0.14.1 copied to clipboard
A storybook for Flutter widgets. Live preview of isolated widgets for faster development and showcase.
Storybook Flutter #
A cross-platform storybook for showcasing widgets. It should work at all platforms supported by Flutter.

Getting Started #
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) =>
Storybook(
stories: [
Story(
name: 'Screens/Counter',
description: 'Demo Counter app with about dialog.',
builder: (context) => CounterPage(
title: context.knobs.text(label: 'Title', initial: 'Counter'),
enabled: context.knobs.boolean(label: 'Enabled', initial: true),
),
),
Story(
name: 'Widgets/Text',
description: 'Simple text widget.',
builder: (context) => const Center(child: Text('Simple text')),
),
],
);
}
Customization #
By default, each story is wrapped into MaterialApp.
You can override this behavior by providing either wrapperBuilder to the
Storybook. You can either use one of the default ones
(materialWrapper/cupertinoWrapper) or provide a fully custom wrapper. In the
latest case, make sure to use the child widget that will contain the story.
Plugins #
Almost all the functionality is provided by plugins. Even contents and knobs are plugins (although they are first-party plugins).
Plugins documentation is TBD, but you can take a look at the existing
first-party plugins: ContentsPlugin, DeviceFramePlugin, KnobsPlugin,
ThemModePlugin.
Golden tests #
You can automatically test your stories by using storybook_flutter_test package:
-
Add it to
dev_dependencies:dev_dependencies: storybook_flutter_test: any -
Create test file, e.g.
storybook_test.dart. -
Add the following content there:
void main() => testStorybook( storybook, layouts: [ ( device: Devices.ios.iPhone13, orientation: Orientation.portrait, isFrameVisible: true, ), ( device: Devices.ios.iPadPro11Inches, orientation: Orientation.landscape, isFrameVisible: true, ), ( device: Devices.android.samsungGalaxyA50, orientation: Orientation.portrait, isFrameVisible: true, ), ], ); -
Generate golden images by running
flutter test --update-goldens --tags=storybook.
Features and bugs #
Please file feature requests and bugs at the issue tracker.