showcase library

Building blocks for a clickable demo of an app, made from its real screens.

Classes

FinishPrompt
Offers to start over once the demo is finished and the visitor is back on the page that contains this widget, usually the home of the app.
Highlight
One explanation shown on top of a screen.
HighlightedPage
Shows the highlights of a page on top of child while that page is the one on screen.
ShowcaseConfig
How the host page configures the demo, read from the url: ?highlights=off&insets=ios.
ShowcaseNavigation
Opens and closes the pages of the demo. Get it with context.showcase.
ShowcaseNavigator<P extends Enum>
Navigation of the demo, with the plain Flutter Navigator. The pages are the values of an enum P, opened with context.showcase, and every page gets its highlights.
ShowcaseScope
Gives the widgets of the kit, and your own, access to the ShowcaseState. Put it above the app.
ShowcaseShell
Wraps the app, for the builder of MaterialApp: it adds the safe areas that insets ask for and shows the notices above everything else.
ShowcaseState
What every demo needs to remember. Extend it with the data of your app and fill resetData to put that data back at the start.
ShowcaseStrings
All texts the kit shows itself. The defaults are English, pass your own to ShowcaseScope for another language.

Extensions

OutOfScope on BuildContext
Lets any widget of the demo tell the visitor a part of the app is left out.
ShowcaseNavigationX on BuildContext
Gives access to the navigation of the demo.

Constants

iosInsets → const EdgeInsets
Safe areas of an iPhone 16, for embedding in a website without a status bar of its own.

Typedefs

ShowcaseHighlightsBuilder<P extends Enum> = List<Highlight> Function(BuildContext context, P page, ShowcaseState state)
The highlights of a page, which may depend on how far the visitor has come.
ShowcasePageBuilder<P extends Enum> = Widget Function(BuildContext context, P page, Object? args)
Builds the screen for a page, with the arguments it was opened with.
WidgetMatcher = bool Function(Widget widget)
Decides whether widget is the target of a Highlight.