2016-05-03 16:06:58 -04:00
# scratch-blocks
2024-02-16 17:04:00 -08:00
Scratch Blocks is a library for building creative computing interfaces.
2022-11-02 14:37:45 -07:00
[](https://dl.circleci.com/status-badge/redirect/gh/LLK/scratch-blocks/tree/develop)
2016-05-12 15:17:47 -04:00
2024-02-16 17:04:00 -08:00

2016-05-12 15:19:09 -04:00
2016-05-12 15:17:47 -04:00
## Introduction
2024-02-16 17:04:00 -08:00
Scratch Blocks is a fork of Google's [Blockly ](https://github.com/google/blockly ) project that provides a design
specification and codebase for building creative computing interfaces. Together with the [Scratch Virtual Machine
2024-02-23 13:27:37 -08:00
(VM)](https://github.com/scratchfoundation/scratch-vm) this codebase allows for the rapid design and development of visual
2024-02-16 17:04:00 -08:00
programming interfaces. Unlike [Blockly ](https://github.com/google/blockly ), Scratch Blocks does not use [code
generators](https://developers.google.com/blockly/guides/configure/web/code-generators), but rather leverages the
2024-02-23 13:27:37 -08:00
[Scratch Virtual Machine ](https://github.com/scratchfoundation/scratch-vm ) to create highly dynamic, interactive programming
2024-02-16 17:04:00 -08:00
environments.
2016-05-12 15:17:47 -04:00
2016-05-12 15:20:05 -04:00
*This project is in active development and should be considered a "developer preview" at this time.*
2016-05-12 15:17:47 -04:00
## Two Types of Blocks
2016-05-13 13:10:08 -04:00
2024-02-16 17:04:00 -08:00

Scratch Blocks brings together two different programming "grammars" that the Scratch Team has designed and continued
to refine over the past decade. The standard [Scratch ](https://scratch.mit.edu ) grammar uses blocks that snap together
vertically, much like LEGO bricks. For our [ScratchJr ](https://scratchjr.org ) software, intended for younger children,
we developed blocks that are labelled with icons rather than words, and snap together horizontally rather than
vertically. We have found that the horizontal grammar is not only friendlier for beginning programmers but also better
suited for devices with small screens.
2016-05-12 15:17:47 -04:00
## Documentation
2024-02-16 17:04:00 -08:00
The "getting started" guide including [FAQ ](https://scratch.mit.edu/developers#faq ) and [design
2024-02-23 13:27:37 -08:00
documentation](https://github.com/scratchfoundation/scratch-blocks/wiki/Design) can be found in the
[wiki ](https://github.com/scratchfoundation/scratch-blocks/wiki ).
2016-05-12 15:17:47 -04:00
## Donate
2024-02-16 17:04:00 -08:00
We provide [Scratch ](https://scratch.mit.edu ) free of charge, and want to keep it that way! Please consider making a
[donation ](https://secure.donationpay.org/scratchfoundation/ ) to support our continued engineering, design, community,
and resource development efforts. Donations of any size are appreciated. Thank you!
2023-12-20 18:55:41 -08:00
## Committing
This project uses [semantic release ](https://github.com/semantic-release/semantic-release ) to ensure version bumps
follow semver so that projects depending on it don't break unexpectedly.
In order to automatically determine version updates, semantic release expects commit messages to follow the
[conventional-changelog ](https://github.com/bcoe/conventional-changelog-standard/blob/master/convention.md )
specification.
You can use the [commitizen CLI ](https://github.com/commitizen/cz-cli ) to make commits formatted in this way:
```bash
npm install -g commitizen@latest cz-conventional-changelog@latest
```
Now you're ready to make commits using `git cz` .