Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Block Picker takes up too much space #131

Open
JohnsonMyton opened this issue Jul 12, 2024 · 16 comments
Open

Block Picker takes up too much space #131

JohnsonMyton opened this issue Jul 12, 2024 · 16 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@JohnsonMyton
Copy link

JohnsonMyton commented Jul 12, 2024

What Happened

Hello! Love the idea of the project, wanted to add one of my first, instant thoughts. The amount of space for the actual blocks is pretty small, and on my students computers it's even smaller. One of the issues I think is that the gifts take up too much space -
image

Spec

The Block Picker should be a single area. Currently it has 2 columns: one for the categories (left) and one for the blocks themselves (right).

Convert the category selector buttons (currently first column) into title bar buttons. When clicking a title bar button, the page scrolls to show the blocks of that category. There is no need for subcategory buttons (eg. Logic | Conditionals), just category (eg. Logic).

The title bar buttons should be icon only, with a tooltip for the category name. Each category must have its own distinguishable icon. And colored with the category color.

References

@manuq
Copy link
Contributor

manuq commented Jul 15, 2024

@JohnsonMyton thanks for your student's feedback! Yes, I think this can be improved by implementing subcategories. Currently the first word is being repeated to simulate subcategories in the single hierarchy, taking too much horizontal space.

@dsd
Copy link
Member

dsd commented Jul 17, 2024

@JohnsonMyton what's the specs of the students machines? And the screen resolution?

Excited to hear you are considering this for use in education context. Could you reach out to me at [email protected] - I would love to know more of the context. We're also developing this for learners but haven't manged to expose many students to this yet because of summer break.

@cassidyjames
Copy link
Member

cassidyjames commented Jul 26, 2024

A quick and easy change here might be moving the category to the end of the line… so you'd have:

Lifecycle
Position | Transform
Rotation | Transform
Scale | Transform
Modulate | Graphics
Visibility | Graphics
Viewport | Graphics
Sounds
Input

Then users who collapse the width of that column can still see the most useful bit.

If we want to get more interesting, we could consider relying on an icon + color to group them into their respective groups instead, dropping the category from the label (and/or moving it to a tooltip). This would allow us to better use the space while still keeping a pretty strong association between blocks of the same category.

The GNOME UI icons are public domain, so we could lean on those for each category. Something like this:

godot-mockup

@cassidyjames cassidyjames added the enhancement New feature or request label Jul 26, 2024
DoomTas3r added a commit to DoomTas3r/changes-block-coding that referenced this issue Oct 17, 2024
Shortens categories and gives them icons and tooltips. I couldn't find the Gnome icons so I edited and used the Godot icons. Loading the icons was not optimized

Similar to the idea endlessm#131 (comment)

- Check for changes that might break code

![image](https://github.com/user-attachments/assets/f1f68275-a740-4acf-94c9-d5610efc0293)
@manuq
Copy link
Contributor

manuq commented Oct 18, 2024

@cassidyjames what do you think about the implementation done by @DoomTas3r here? #270

I have tried it and although it helps, I still find odd to have 2 columns in the tab:
Captura desde 2024-10-18 16-40-24

If you think this is an improvement we should merge. Thanks @DoomTas3r for your contribution!

@manuq
Copy link
Contributor

manuq commented Oct 18, 2024

@cassidyjames please also point @DoomTas3r to the SVGs of the GNOME UI icons so the current placeholders can be replaced.

@ch0m5
Copy link

ch0m5 commented Nov 19, 2024

These are a couple quick mockups, but if having two columns feels odd and the goal is to maximize ease of navigation and space, we could use Icons and Sections to represent Categories and Sub-Categories, respectively. The 1st as Tabs with icons, and the 2nd as sections in a column list.

(Note: The left image's Selected Category Tab should be Logic, not Conditionals.)
image image

Categories are represented as icons. Once a category is selected, a Scrollable column is displayed below it, listing all blocks that belong in that Category, ordered in their respective Sub-Categories. If you hover over an icon for a bit, a tooltip appears showing you the Name of the Category. (Having the name of the selected Category be visible is an idea to make it easier to see which Category is selected, but completely optional.)

I think this approach would minimize the space the block "encyclopedia" takes, granting a lot more space to block coding, without sacrificing readability. Icons are faster to read than Labels, the latter's main purpose is learning what the icon means, but you can do that with a Tooltip as to not sacrifice screen space in the process.

@manuq
Copy link
Contributor

manuq commented Nov 19, 2024

@ch0m5 I like it! They look like tabs. Could they even be standard Godot TabBar? In particular if TabBar already has logic for adding scroll buttons when the icons overflow.

And I don't think that the sub category list is needed at all. The user can just scroll to find the other sub categories like Comparison, Boolean.

@manuq manuq changed the title Block Category List takes up too much space Block Picker takes up too much space Dec 18, 2024
@manuq manuq added the help wanted Extra attention is needed label Dec 18, 2024
@manuq manuq marked this as a duplicate of #358 Jan 24, 2025
@tindrew
Copy link

tindrew commented Jan 24, 2025

I'll move what I had here from #358 . My thought was there needs to be a search bar so people could search through blocks, especially since that category list is going to grow over time.

This is the mockup I did of a searchbar which shows blocks as you search:

Image

When I was referring to collapsing, I should have clarified: callapsing the category/block sections is nice, but currently serves no purpose because you can't really use the right hand side for anything other than arranging blocks and duplicating/deleting them. So either having a search bar where you can search for blocks, and then drag them from the popup that shows them as you search is needed, combined with the above idea of having icons instead of a long list of categories taking up all that space.

There's another idea where you could right click/press and hold in the canvas area where you place blocks (not sure what it's called) and get the ability to find/click on a block for placement.

@DoomTas3r
Copy link
Contributor

I wanted to know if anyone had opinions about this layout:

  • Removed labels
  • Removed subcategories

Image

It reminds me of Scratch's layout, but using icons

@tindrew
Copy link

tindrew commented Jan 25, 2025

I like the icons, id say combine it with a search bar feature and roll with that.

What would be nice too is an "auto-open" feature where hitting an icon would pop open the block drawer if you have it collapsed.

@DoomTas3r
Copy link
Contributor

I made these icons to use instead of the placeholders:

Image

I'm open to suggestions for alternative designs

@tindrew
Copy link

tindrew commented Jan 26, 2025

I made these icons to use instead of the placeholders:

I like these designs very much.

My question is, who makes the decisions on what does and what doesn't go into the main project? I'm considering creating a fork(I have 3 people willing to dev on it from the current Redot team including myself). I think our use cases are different enough(we're looking at mobile usability, and overall game dev with the tool vs strictly being a springboard for students learning to code.

I'd like to know what the process is for accepting PRs as we would definitely want to share any work we do on it.

@DoomTas3r
Copy link
Contributor

I think that the Advanced checkbox can be used to include the more practical features that beginners wouldn't need to see

Image

As for accepting PRs, generally, anything that benefits users without impeding the workflow of a beginner can be considered. My accepted contributions related to the zoom buttons, the context menu, and block additions. Some specifics that were asked of me by @manuq were to keep the commits concise, make their descriptions informative, and to discuss new unique features before considering a PR

In practice, that means opening a PR, linking a related discussion if necessary, and waiting for a member of Endless to accept, give feedback, or make their desired edits. Usually they're busy, but they'll be happy to accept if the PR is easy to review and clearly improves user experience

@wjt
Copy link
Member

wjt commented Jan 29, 2025

My question is, who makes the decisions on what does and what doesn't go into the main project?

Currently the project is maintained by the tech team at Endless OS Foundation. We decide what goes into the project, guided by this document and our learning team's needs more broadly.

I'm considering creating a fork(I have 3 people willing to dev on it from the current Redot team including myself). I think our use cases are different enough(we're looking at mobile usability, and overall game dev with the tool vs strictly being a springboard for students learning to code.

Do you think that your goals around mobile usability & general-purpose game dev are in conflict there? Can you give some examples of changes you would want that would conflict with our goals?

(Personally I like the mockup above.)

It would be nice to avoid having a fork, though of course you're free to create one.

I'd like to know what the process is for accepting PRs as we would definitely want to share any work we do on it.

As @DoomTas3r says above.

@manuq
Copy link
Contributor

manuq commented Jan 29, 2025

@DoomTas3r I like the layout with icons too!

@cassidyjames
Copy link
Member

I also like it. To clarify, that's the state of #270?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

8 participants