Skip to content

Conversation

@gonfunko
Copy link
Owner

@gonfunko gonfunko commented Sep 5, 2024

This is one of three PRs across scratch-blocks, scratch-gui and scratch-vm that refactor each package to define block colors as Blockly BlockStyles, instead of using the colour attribute in Block JSON. This has several advantages:

  • Using the colour attribute causes the secondary/tertiary colors to be calculated, and Blockly does so in a way that slightly skews from the colors Scratch specifies. Scratch had previously modified core Blockly to read the secondary/tertiary colors out of the block JSON, but this isn't directly achievable using supported APIs.
  • Using block styles makes it easy to switch themes, and Scratch's themes (currently just the default and a high contrast variant) are now transformed into BlockStyles/Blockly themes.

In addition, these changes fix the coloration of dropdown fields in their various forms to align with Scratch's behavior. The ability for Scratch extensions to specify a custom block color is also preserved, even though that functionality is currently unused.

@gonfunko gonfunko merged commit 9d869ce into modern-blockly Sep 5, 2024
@gonfunko gonfunko deleted the themes branch September 5, 2024 22:53
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