Skip to content

scratchfoundation/scratch-blocks

Folders and files

NameName
Last commit message
Last commit date
Dec 10, 2024
Oct 18, 2024
Aug 10, 2018
Jan 13, 2017
Oct 25, 2023
Jun 12, 2024
Sep 9, 2024
Feb 4, 2025
Feb 17, 2024
Dec 10, 2024
Feb 24, 2016
Oct 25, 2023
Apr 15, 2024
Dec 10, 2024
Dec 10, 2024
Aug 19, 2016
Oct 25, 2023
Feb 11, 2025
May 3, 2016
Feb 23, 2024
Oct 18, 2024
Jun 18, 2018
Dec 21, 2023
Feb 11, 2025
Feb 11, 2025
Oct 21, 2024
Feb 21, 2024
Dec 10, 2024
Oct 15, 2024

Repository files navigation

scratch-blocks

Scratch Blocks is a library for building creative computing interfaces.

CircleCI

An image of Scratch Blocks running on a tablet

Introduction

Scratch Blocks is a fork of Google's Blockly project that provides a design specification and codebase for building creative computing interfaces. Together with the Scratch Virtual Machine (VM) this codebase allows for the rapid design and development of visual programming interfaces. Unlike Blockly, Scratch Blocks does not use code generators, but rather leverages the Scratch Virtual Machine to create highly dynamic, interactive programming environments.

This project is in active development and should be considered a "developer preview" at this time.

Two Types of Blocks

A divided image showing horizontal blocks on the left and vertical blocks on the right

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 grammar uses blocks that snap together vertically, much like LEGO bricks. For our ScratchJr 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.

Documentation

The "getting started" guide including FAQ and design documentation can be found in the wiki.

Donate

We provide Scratch free of charge, and want to keep it that way! Please consider making a donation to support our continued engineering, design, community, and resource development efforts. Donations of any size are appreciated. Thank you!

Committing

This project uses 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 specification.

You can use the commitizen CLI to make commits formatted in this way:

npm install -g commitizen@latest cz-conventional-changelog@latest

Now you're ready to make commits using git cz.