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

Change script icons throughout the editor to be consistent #847

Open
marcospb19 opened this issue May 16, 2020 · 14 comments
Open

Change script icons throughout the editor to be consistent #847

marcospb19 opened this issue May 16, 2020 · 14 comments

Comments

@marcospb19
Copy link

marcospb19 commented May 16, 2020

Problematic:

Script icons are inconsistent in the editor.

image

When creating a folder or scene the icons shown match to what is shown in the FyleSystem Dock, but the script icon does not:

image

And in the Scene Dock (scene tree):

image

Edit: Also in the top of the editor
image


Suggestion:

Make the script icon unique through the editor.

@marcospb19
Copy link
Author

marcospb19 commented May 16, 2020

I think that the paper icon (see images) should be the unified one.

The problem, of course, is that there are 3 different icons for each type of script, I'm also suggesting that this icons were to be changed.

.gd scripts going with the paper icon, and the other two with slight different icons or totally reworked ones.

For .gdns, .vs and .cs files, I would also like to see their icons differentiated in the Scene Dock (scene tree), currently, when you click on a script that appears attached to a Scene in the Scene Tree, you don't know what is it's type, until it opens up.

Would be nice to have a slight difference, to know what script is of each type without having to open them up.

@marcospb19
Copy link
Author

We can already preview the changes for the .gd files (as other ones need changes).

Current:
image

New suggested:
image

@Calinou Calinou changed the title [UI] Change script icons on editor to make it consistent. Change script icons throughout the editor to be consistent May 16, 2020
@Error7Studios
Copy link

Error7Studios commented May 17, 2020

.gd scripts going with the paper icon, and the other two with slight different icons or totally reworked ones.

How about we just use the blank paper icon for a generic script, and write letters on the typed ones?

(From left to right: Script, GDScript, NativeScript, VisualScript, C#)

Script Icons v2

Script Icons Scaled Up v2

@marcospb19
Copy link
Author

marcospb19 commented May 20, 2020

Here I'm trying to mix your idea with what is already present.

(new_script.cs was supposed to be CSharp.cs, my bad)

Original:
image

Inspired by the original:
image

Note that I changed bin to ns for NativeScript, as it makes more sense now that the project has vs and cs.

I did not liked how it looked, so I kept experimenting (trying to use the whole 16x16 space available).

image

Experimenting with subtle shadows (on the paper close to the letters, try looking closer to see the difference from the previous one).

image

And finally, I experimented with some colors.

image

With less saturation.

image

I think that the last 3 examples look way better than the original one, however, I did not tested with light themes (when a light theme is applied to the editor, the white icons turn black).


One last note, cs could be changed to c#

image

@marcospb19
Copy link
Author

About the mention above:

I pretend to also make new icons for Discrete Scripts/Built-In Scripts with a somehow transparent or hollow look, something to differentiate it on the FileSystem Dock and if possible, as I mentioned here, make the differentiation also appear on the Scene Dock (scene tree) script icons.

@Calinou
Copy link
Member

Calinou commented Jul 29, 2020

@marcospb19 Do you have the SVG files for the icons you made here?

As well as the C# one here:

It would be appreciated if you could upload them here 🙂

@marcospb19
Copy link
Author

marcospb19 commented Aug 2, 2020

The demos are actually .png files, but I'll try to learn how to replicate the look for .svg (don't know how much time I'll take to do it).

I was thinking about replacing cs with c#, but reflecting about this, it looks like a bad idea, the character # looked good only because it was pixel-perfectly drawn, with .svg the scaling will totally ruin it (it'll be unreadable) .

EDIT: I did not went into the effort of learning it before and creating the .svg files because I wanted to know if this suggestion is worth taking my time to do it, I assume by your response that it is.

@Error7Studios
Copy link

@marcospb19 You can use Inkscape to convert a PNG into an SVG for you automatically.
Tutorial - https://www.youtube.com/watch?v=1PX3KrwgLNc

@Calinou
Copy link
Member

Calinou commented Aug 2, 2020

@Error7Studios Automatic vectorization will create a very inefficient path. I wouldn't rely on it here.

@marcospb19
Copy link
Author

Update on the SVG files (sorry for the time I'm taking to do this):

I managed to reproduce the .png demos, I'm taking the opportunity to experiment with the letters design, as it is possible to make it slightly more readable, I'm currently focusing on getting the best possible look I can come up with.

Additionally, I have been studying some code, hoping that I can make my first PR before 4.0 is out 🙏.

Including the feature to see specific script icon in the Scene Tree Dock, as I said in this comment:

For .gdns, .vs and .cs files, I would also like to see their icons differentiated in the Scene Dock (scene tree), currently, when you click on a script that appears attached to a Scene in the Scene Tree, you don't know what is it's type, until it opens up.

@marcospb19
Copy link
Author

marcospb19 commented Aug 14, 2020

Here are the SVG files (finished??):
image

Looks nice?

I had a hard time replicating the colors from the first colored demo, rasterization isn't as trivial as editing PNG pixels, even if I set the saturation at maximum, the geometry itself influences a lot on the final result.

About the CSharp alternatives: the icon with C# will probably break if the .svg is scaled by some fraction (not by integer values), this is because the only way I could draw a decent # was by making a pixel perfect 5x5 in the vector, SO I suggest that IF we choose to use it, we save the CS alternative as a fallback in case someday it's decided to scale the icons.


@Calinou GitHub does not support uploading SVG here, but all files are uploaded in this repository.

I uploaded to this repository all icons that contain this gear symbol related to scripts, it's important to decide which ones should change.

EDIT: .zip of the repository (08/14):
godot-svg-icons-master.zip

@Calinou
Copy link
Member

Calinou commented Aug 14, 2020

@Calinou GitHub does not support uploading SVG here, but all files are uploaded in this repository.

You could also pack them into a ZIP archive and upload it by drag-and-dropping it 🙂

the icon with C# will probably break if the .svg is scaled by some fraction (not by integer values), this is because the only way I could draw a decent # was by making a pixel perfect 5x5 in the vector, SO I suggest that IF we choose to use it, we save the CS alternative as a fallback in case someday it's decided to scale the icons.

Godot supports fractional scaling (see the Editor Settings), so it's best to use icons that still look correct when scaled by a non-integer factor.

@marcospb19
Copy link
Author

marcospb19 commented Aug 14, 2020

Godot supports fractional scaling (see the Editor Settings).

I was unsure, okay, so then we should totally ignore the C# icon.


What about the other gear icons? I don't know if I should edit them, for example the PluginScript.svg file.

EDIT: my progress to try implementing a PR is frozen, I installed some drivers and now master I'm getting core dumped 🤦 🤕.

@goatchurchprime
Copy link

Very closely related (and simpler), I'd like to see a 'b' on that script icon if it has the gdns type. I waste a lot of time clicking on these in some projects, only to be disappointed when the editor shows nothing since it's not gdscript.
image

This would also visually highlight the fact that even if the node says it's type Skeleton, it's not because it's a derived class with extra functions that you won't find in the docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants