Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 33 additions & 10 deletions apps/design_system_gallery/README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,39 @@
# design_system_gallery
# Stream Design System Gallery

A new Flutter project.
Production Widgetbook app for documenting and validating `stream_core_flutter`
components and design tokens.

## Getting Started
## What This App Provides

This project is a starting point for a Flutter application.
- Interactive component use cases with knobs (Widgetbook).
- Foundation token showcases (primitives + semantic tokens).
- Theme Studio controls for live visual tuning.
- Device preview wrapper for realistic UI evaluation.

A few resources to get you started if this is your first Flutter project:
## Run Locally

- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
```bash
cd apps/design_system_gallery
flutter pub get
dart run build_runner build --delete-conflicting-outputs
flutter run -d chrome
```

For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.
## Quality Checks

```bash
cd apps/design_system_gallery
dart run build_runner build --delete-conflicting-outputs
dart format lib
flutter analyze
```

## Adding A New Component Showcase

1. Create a use-case file in `lib/components/<category>/`.
2. Add `@widgetbook.UseCase(...)` entries (at minimum: Playground + Showcase).
3. Regenerate directories with `build_runner`.
4. Run format and analyze checks.

The generated file `lib/app/gallery_app.directories.g.dart` is owned by
`widgetbook_generator` and should not be edited manually.
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ import 'package:design_system_gallery/components/common/stream_progress_bar.dart
as _design_system_gallery_components_common_stream_progress_bar;
import 'package:design_system_gallery/components/context_menu/stream_context_menu.dart'
as _design_system_gallery_components_context_menu_stream_context_menu;
import 'package:design_system_gallery/components/controls/stream_emoji_chip.dart'
as _design_system_gallery_components_controls_stream_emoji_chip;
import 'package:design_system_gallery/components/controls/stream_emoji_chip_bar.dart'
as _design_system_gallery_components_controls_stream_emoji_chip_bar;
import 'package:design_system_gallery/components/message_composer/message_composer.dart'
as _design_system_gallery_components_message_composer_message_composer;
import 'package:design_system_gallery/components/message_composer/message_composer_attachment_link_preview.dart'
Expand All @@ -44,6 +48,8 @@ import 'package:design_system_gallery/components/message_composer/message_compos
as _design_system_gallery_components_message_composer_message_composer_attachment_reply;
import 'package:design_system_gallery/components/reaction/picker/stream_reaction_picker_sheet.dart'
as _design_system_gallery_components_reaction_picker_stream_reaction_picker_sheet;
import 'package:design_system_gallery/components/tiles/stream_list_tile.dart'
as _design_system_gallery_components_tiles_stream_list_tile;
import 'package:design_system_gallery/primitives/colors.dart'
as _design_system_gallery_primitives_colors;
import 'package:design_system_gallery/primitives/icons.dart'
Expand Down Expand Up @@ -397,6 +403,45 @@ final directories = <_widgetbook.WidgetbookNode>[
),
],
),
_widgetbook.WidgetbookFolder(
name: 'Controls',
children: [
_widgetbook.WidgetbookComponent(
name: 'StreamEmojiChip',
useCases: [
_widgetbook.WidgetbookUseCase(
name: 'Playground',
builder:
_design_system_gallery_components_controls_stream_emoji_chip
.buildStreamEmojiChipPlayground,
),
_widgetbook.WidgetbookUseCase(
name: 'Showcase',
builder:
_design_system_gallery_components_controls_stream_emoji_chip
.buildStreamEmojiChipShowcase,
),
],
),
_widgetbook.WidgetbookComponent(
name: 'StreamEmojiChipBar',
useCases: [
_widgetbook.WidgetbookUseCase(
name: 'Playground',
builder:
_design_system_gallery_components_controls_stream_emoji_chip_bar
.buildStreamEmojiChipBarPlayground,
),
_widgetbook.WidgetbookUseCase(
name: 'Showcase',
builder:
_design_system_gallery_components_controls_stream_emoji_chip_bar
.buildStreamEmojiChipBarShowcase,
),
],
),
],
),
_widgetbook.WidgetbookFolder(
name: 'Message Composer',
children: [
Expand Down Expand Up @@ -468,6 +513,28 @@ final directories = <_widgetbook.WidgetbookNode>[
),
],
),
_widgetbook.WidgetbookFolder(
name: 'Tiles',
children: [
_widgetbook.WidgetbookComponent(
name: 'StreamListTile',
useCases: [
_widgetbook.WidgetbookUseCase(
name: 'Playground',
builder:
_design_system_gallery_components_tiles_stream_list_tile
.buildStreamListTilePlayground,
),
_widgetbook.WidgetbookUseCase(
name: 'Showcase',
builder:
_design_system_gallery_components_tiles_stream_list_tile
.buildStreamListTileShowcase,
),
],
),
],
),
],
),
];
Loading