Scratch Blocks is a library for building creative computing interfaces.
Find a file
2025-04-08 15:20:35 -07:00
.github ci: add signature assistant 2025-04-08 15:20:35 -07:00
.husky chore: add husky hook for commitlint 2024-10-18 13:48:00 -07:00
.tx Sync transtions with Transifex 2018-08-10 09:02:57 -04:00
gh-pages Add Multi Playground Link to GH-Pages () 2017-01-12 20:28:28 -05:00
i18n Merge pull request from tansly/build-python3 2023-10-25 11:32:45 -04:00
media fix: enable and style workspace comments () 2024-06-12 09:27:41 -07:00
msg fix: fix bug that prevented showing the contextual menu on blocks () 2024-09-09 15:48:41 -07:00
src refactor: update codebase for new version of Blockly and continuous toolbox () 2025-02-04 15:51:32 -08:00
tests fix(deps): assume chromedriver is already installed 2024-02-16 17:04:08 -08:00
types build: tell TS to include only src,tests,types 2024-12-10 13:40:38 -08:00
.editorconfig Restore editor config 2016-05-03 17:55:53 -04:00
.eslintignore ci: install node dependencies 2023-10-25 15:53:29 -04:00
.eslintrc chore: Re-add commitlint and eslint 2024-04-15 12:32:26 -07:00
.gitignore build: .gitignore /build 2025-02-25 14:14:41 -08:00
.npmignore fix(deps): use Blockly 12 beta instead of RC 2024-12-10 09:45:15 -08:00
.npmrc Setting up npm registry for this repo. () 2016-08-19 03:58:43 -07:00
.nvmrc ci: run with python 3 2023-10-25 15:54:35 -04:00
CHANGELOG.md chore(release): 2.0.0-spork.4 [skip ci] 2025-02-11 17:20:24 +00:00
commitlint.config.js style: lint fixes for commitlint config 2023-12-20 19:56:12 -08:00
LICENSE Rename COPYING to LICENSE. Re GH-304 2016-05-03 17:07:19 -04:00
package-lock.json chore(release): 2.0.0-spork.4 [skip ci] 2025-02-11 17:20:24 +00:00
package.json chore(release): 2.0.0-spork.4 [skip ci] 2025-02-11 17:20:24 +00:00
README.md docs: replace LLK URLs in README.md 2024-02-23 13:27:37 -08:00
release.config.js ci: make temporary "spork" release channel 2024-10-20 18:16:38 -07:00
renovate.json5 chore(deps): use js-lib-bundled Renovate config 2024-02-21 09:30:35 -08:00
TODO.md ci: bring back deploy workflow 2024-10-18 13:57:33 -07:00
TRADEMARK Update TRADEMARK 2018-06-18 13:13:51 -04:00
tsconfig.json build: tell TS to include only src,tests,types 2024-12-10 13:40:38 -08:00
webpack.config.js refactor: Add support for Typescript () 2024-10-15 14:19:25 -07:00

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.