Custom Categories

I wished that Snap allows users to make their own categories with the names and colors or modify the categories that already exist.

See this request

Duplicate. See above. This should be closed.

I have made this request before I notice that Feature exist.

OK. We agree, it's on the pretty-short list. (Later than short, sooner than medium.)

I think it would be great for fully custom scratchblocks, how scratchblocks can be any color (I also want to show my followers scratchblocks that you can code with)

How important is "any color"? We were planning to pick a few more color choices ourselves, especially because we have to have two versions of each, for zebra coloring, that have to be visibly distinct from other block categories' colors. Preferably even if you're color-blind.

I don't know, but it might be fun to change a color of categorys or make a block that doesn't have a category but you can make the color whatever you want, like you can choose the hex (as in #000000 for black) or choose the RGB, or use a color picker.

How are you going to find the block, to put it in a script? It has to be in one of the category tabs above the palette. I suppose we could put all weird blocks in Other, and that'll work if nobody is ever going to use the block except you (who chose the color), but it won't really work for anyone else.

Also, I'm generally unenthusiastic about decorative features. I didn't like (and still don't) "Flat design" when Jens put that in. Aside from the fact that that particular "skin" is hideous, it's a step in the wrong direction, toward having trillions of third-party skins that you can buy in the Snap! Store, blah blah. It just makes a maintenance headache for us without teaching our users any computer science, which is the object of the exercise for us.

Pick-your-own-block-color is like that. It'll break zebra coloring and give rise to bug reports when people can't find their blocks. That's very different from custom categories (which would have their own colors), which are needed when extension writers add dozens of blocks about controlling a robot or running a web server or interfacing with other people's web APIs or whatever. Even that shouldn't be overdone; if you add ten new categories, people won't be able to find the one they're looking for, and will be scared away.

So I think what we're likely to do is, first, separate Lists and Other from Variables, and then add maybe four new optional categories for which we pick the colors. You'll be able to enable a category and give it a name, and then it'll show up in the palette tabs and in the make-a-block dialog.

P.S. I'm also agitating for having all custom blocks in a project included, with their correct colors, in the Other palette, so you can see at a glance what the project (or, more important, a library) has built. This would include blocks that were defined as Other, of course, but they'd be grey.

that's exactly what I mean

me too, but I think it will be cool to add the feature in the dev mode, and it's not just a color picker, so we can get the exact color

you could just make it change the brightness of the color also it could be something like shift right click on a category when choosing categories and a warning that pops up saying “warning, this feature is experimental and bugs may occur, so please don't report any bugs that have anything to do with color”.

Were you talking about ScratchX's block categories color configuration?


I didn't actually think about that, but that's what I mean

I've done it (along with other things in the same project)!
EDIT: except for one problem (see the project for more information)

Another problem: If you have a boolean as the name of the category, all of the categories disappear.

I tried an empty string, and it caused an error, so now it checks for an empty string. I didn't try other data types, so I will have it convert to a string.

Wow! Good job!

Is it possible to have the custom blocks created in original colors, but place them into the new category ?
I am creating a set of blocks that are mimicking the existing Snap category colors, due to similar functionalities. But I want them all placed under the new category for ease of finding them.
Also, is there a way to have something like a separator between the custom blocks placed into the new category, so the different colors and function groups are emphasized ?

Yes, all of that is possible. We can enter dev mode (shift-click Snap! logo or use my custom block) and we can inspect morphs and objects (right click in dev mode or use my custom block); that will let us figure out how to do it.

I haven't yet figured out how to save the definitions of blocks in the editor that belong to custom categories.

When we can add features again, I'm hoping that all custom blocks will show up in the Other palette (and that the three categories in the current Variables palette will be separated out) in addition to appearing in the palette matching their color. That's the right solution to this concern.