-
Notifications
You must be signed in to change notification settings - Fork 0
feat(ui): Introduce Stream Design System foundations and gallery app #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(ui): Introduce Stream Design System foundations and gallery app #31
Conversation
This commit introduces the foundational elements of the new Stream Design System and a comprehensive gallery application (Widgetbook) for showcasing and customizing components.
**Core Package (`stream_core_flutter`):**
* **Design Tokens**: Added foundational design tokens for colors, spacing, radius, typography, and box shadows. These tokens are organized into primitive and semantic layers.
* `StreamColors`: Defines the primitive color palette.
* `StreamColorScheme`: Provides semantic color roles (e.g., `accentPrimary`, `textSecondary`).
* `StreamTypography`, `StreamTextTheme`: Defines font primitives and semantic text styles.
* `StreamSpacing`, `StreamRadius`, `StreamBoxShadow`: Adds tokens for layout and elevation.
* **`StreamTheme`**: Implemented a new `ThemeExtension` to aggregate all design tokens and component themes, enabling centralized theming.
* **New Components**: Added `StreamAvatar`, `StreamAvatarStack`, and `StreamOnlineIndicator`.
* **Theming Infrastructure**: Added `theme_extensions_builder` to auto-generate `copyWith`, `lerp`, and `==`/`hashCode` for theme classes.
**Design System Gallery (`design_system_gallery`):**
* **Gallery App**: Replaced the basic Widgetbook setup with a new, fully-featured gallery application (`StreamDesignSystemGallery`).
* **Theme Studio**: Added a "Theme Studio" panel for real-time customization of all `StreamColorScheme` properties.
* **Enhanced Previews**:
* Added a toolbar with controls for device selection (`DeviceFrame`), text scaling, and light/dark mode toggles.
* Created a `PreviewWrapper` to apply theme, device frame, and text scale to all use cases.
* **New Use Cases**:
* Added comprehensive use cases for new components (`StreamAvatar`, `StreamAvatarStack`, `StreamOnlineIndicator`).
* Added showcases for semantic tokens (`Typography`, `Elevations`).
* Improved `StreamButton` use cases with more variants and real-world examples.
* **Agent Guide**: Added `AGENTS.md`, a guide for AI agents on contributing to the gallery.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The `StreamButtonTheme` and its related data classes have been removed from the core theme structure. This simplifies the theme by removing the button-specific theming. Additionally, the `lerp` function for `StreamBrandColor` has been adjusted, and `StreamAvatarColorPair` is now generated using `themeGen`.
The `StreamButtonTheme` and its related data classes have been removed from the core theme structure. This simplifies the theme by removing the button-specific theming. Additionally, the `lerp` function for `StreamBrandColor` has been adjusted, and `StreamAvatarColorPair` is now generated using `themeGen`.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main-design-system #31 +/- ##
======================================================
- Coverage 40.19% 39.96% -0.23%
======================================================
Files 53 53
Lines 1045 1041 -4
======================================================
- Hits 420 416 -4
Misses 625 625 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
No description provided.