Skip to content

Conversation

@renefloor
Copy link
Collaborator

Submit a pull request

CLA

  • I have signed the Stream CLA (required).
  • The code changes follow best practices
  • Code changes are tested (add some information if not applicable)

Description of the pull request

This is a POC PR so far. Naming of packages can still change.

StreamTheme Theming options for the whole stream sdk

StreamComponentFactory: factory class to more easily create fully custom components by clients.

StreamButton: Basic button with properties based on the Figma specs

Notice StreamButton takes theming info from StreamButtonTheme, StreamTheme and material Theme for easy customization on app level and component level.

Widgetbook app: The widgetbook app demo's the component, but also has a very basic page to customize the theming values so customers can play with it to see what works and what doesn't.

Interesting files:

Screenshots / Videos

widgetbook.demo.mov

@coderabbitai
Copy link

coderabbitai bot commented Jan 9, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Comment on lines +117 to +120
buttonTheme.primaryColor ??
(streamTheme.primaryColor != null
? WidgetStateProperty.all(streamTheme.primaryColor!)
: WidgetStateProperty.all(theme.colorScheme.primary)),
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned here, I would:

  • do this once when colors/themes are instantiated, instead of resolving at rendering time in each component
  • have the default "Stream theme" tokens defined in Figma and used there like other references, so we don't have to take any decision on how they map on our side and we're aligned with the DS and cross platform

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that's also a good option. Have to see how to do that nicely though, as currently the main theme and the component themes are constructed at the same time, so the component theme doesn't have access to the main theme yet while it's instantiated.

Not sure if having a default stream theme is something we can get technically working in Figma, but at least it's good to discuss it if it can be documented in Figma.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants