Skip to content

update icon: llvm (plain, line) #2264

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

Merged
merged 5 commits into from
Jun 15, 2025

Conversation

Finii
Copy link
Contributor

@Finii Finii commented Sep 5, 2024

[why]
While the plain icon is plainer than the original icon, it is still quite complex with very thin strokes.

[how]
Just take the outermost outlines of the plain icon and crate a solid icon from it.

Note

This can be controversial.
For me the plain icon is not really plain, it has lots and lots of detail and consists of 2600 nodes:

image

The simple plain icon proposed here drops all the details and uses just the outline (260 nodes)

image

If one needs an icon with all the glory details the -original should be a good fit, the plain should be a simple(r) version, I believe. But anyhow, this is very opinionated and I do not want to mess with your ideas here. For a small text icon the current plain icon is far too complex and all the small detail hairlines can not be seen anyhow.

Double check these details before you open a PR

  • PR does not match another non-stale PR currently opened

Features

This PR closes NONE

Notes

@Snailedlt as per ryanoasis/nerd-fonts#1691 (comment)

@Finii Finii force-pushed the feature/llvm-plain-simple branch 2 times, most recently from b7eb814 to 526781b Compare September 5, 2024 08:27
@Finii
Copy link
Contributor Author

Finii commented Sep 5, 2024

Hmm, hand-remove the gaps in the tail, that is an obvious artifact of the fill related broken outline in the original svg.
Force push.

image

@Finii Finii changed the title llvm: Simplify plain icon update icon: llvm: Simplify plain icon Sep 5, 2024
Copy link
Collaborator

@Snailedlt Snailedlt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmmm, I don't agree with this one. While I agree that the icon could benefit from some simplification I think going all black is too much simplification, making it less recognizable... but let's see what the other maintainers think too :)

Edit:

Good that you fixed the artifact though. That should probably be fixed in the original icon too.

Some context: The original icon is made by converting a png to svg with inkscape. The process is not ideal so there are a few artifacts. I think it could be improved upon now though, since I know there are better png to svg converters out there now than when we made this icon :)

@Snailedlt Snailedlt requested review from a team, ConX, weh, Snailedlt, canaleal and lunatic-fox and removed request for a team September 12, 2024 11:01
@Snailedlt Snailedlt changed the base branch from master to develop September 12, 2024 11:03
@Finii
Copy link
Contributor Author

Finii commented Sep 12, 2024

hmmm, I don't agree with this one

😆

As I said, controversial (see image below).

For me, as "in a font" the current plain one is just too intricate. Have a look at it sized down:

image

But that is just for ME and font usage, which might or might not be important for you.
Just wanted to share this icon version with you.

image

@Snailedlt
Copy link
Collaborator

Snailedlt commented Sep 12, 2024

I agree it looks better in the font, but in larger sizes it looks significantly worse. Perhaps we could find some middle ground?
One way would be to roughly inverse the current plain version, and remove some of the detailing lines.

I'm thinking something like this (just with transparent lines instead of white ones):
image

@Snailedlt
Copy link
Collaborator

Snailedlt commented Sep 12, 2024

@Finii
Here's a suggestion. Though it should be optimized more, because it's very large (80Kb).
I optimized it using SVGOMG, but it should probably be optimized more by reducing the amount of nodes in the path.
llvm-original

@Snailedlt
Copy link
Collaborator

Sidenote: The old plain version can still be used as a line version instead :)

weh
weh previously approved these changes Oct 3, 2024
Copy link
Contributor

@weh weh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great work 👍

@Snailedlt Snailedlt added the feature:icon PR when a new icon is ready to be added to the collection label Nov 19, 2024
@canaleal canaleal changed the title update icon: llvm: Simplify plain icon update icon: llvm (plain) Apr 21, 2025
Copy link
Collaborator

@Snailedlt Snailedlt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe the suggested version is close enough to the original. Most of the lines should be kept and just made mono colored imo. I added a suggestion as to how it could look in a previous comment, I think if some of the nodes are removed on that version we'll have both a pretty nice looking and optimized plain version

@weh weh requested a review from Snailedlt April 29, 2025 07:50
@Snailedlt
Copy link
Collaborator

@Finii What do you think about my suggested version?
Is it something you could get behind, and if so, would you like to optimize it a bit by removing some of the nodes, etc..?
#2264 (comment)

@Finii
Copy link
Contributor Author

Finii commented Jun 3, 2025

Ok, if you explicitly ask me ;-)

At first glance the icon looked two color, but in fact it is monochrome. The outline of the outline 😬 is rather thin in some places, down to non-existing. So the impression is that the transparent 'line' of the outside is line-art style, but the actual outside 'line' is not line-art anymore and just a suggestion.

image

This is not quite what I would call 'simple'. If we compare to the original logo material (https://llvm.org/img/LLVMWyvernBig.png)

image

you turned the actual outline (originally black) into transparent and filled the internal areas; but to keep the line characteristic on a transparent backdrop you added this small suggestion of a outline-outline.

I understand the reasons for the extra outline and also for its slimness, but I wonder if there is a better solution to the problem to transform the two-color-on-transparent filled-area line style into a one-color line style.

One solution could be to non-uniformely use the original outline, sometimes as line-art, sometimes just combine it with the area (to keep the original apprearance), so that the outside of the logo is not line art, but only the inside is drawn with a line-art pen. Hmm, if that makes sense.
Like this:

image

So just considering the black line in the original icon, it is converted into a white/transparent line if it is surrounded by filled areas on both sides, but if it is only neighbored on one side by an area and on the other side there is 'the nothing' it gets combined to the area.


Also interesting is the approach taken by the Clang Powertools to get a monochrome icon from the old dragon:

image

https://clangpowertools.com/

image

Original

This is a somewhat loose interpretation, note the neck, and the number of spikes everywhere.


Whatever. Back to the llvm icon, I have the feeling that your suggested one is too intricate, and the thinner than thin outline - which is needed to keep the outer line a line when the line is transmogrified into 'transparent' - can even be hard to render small.

I'm not sure.

  • Is the icon itself worth all the hours of work? 😬 😉
  • How simple is simple (as defined by your 'icon guidelines')
  • Would it make sense to create at least a potion of the dragon into something concrete following the pink/green pattern above

Maybe I can find some time to spare on this today.

@Finii
Copy link
Contributor Author

Finii commented Jun 3, 2025

Already in this very fast threshold-to-black-and-white image one can glimpse that the outlying lines are thinner (and should than vanish by combining with the inner areas) while the inside lines really appear more fat more substantial and would be converted to white/transparent lines in a monochrome version.

🤔

image


Edit:

The outside line really appears often to be just 1/2 the width of the inside lines

image

Arrows on outside line

@Finii
Copy link
Contributor Author

Finii commented Jun 3, 2025

The design problem reminds me of that one spiky fish icon, that I solved in a comparable manner, lets see if I can find it...

Ah, it was OpenBSD, here: lukas-w/font-logos#93, but apparently did not materialize?

image

image

@Finii
Copy link
Contributor Author

Finii commented Jun 3, 2025

Something like this, this is a rough sketch needing cleanup:

image

(This is a combination of the complete-outline and just the inner line-art lines:

image

More detailed look at the problems, I guess the scaling is different from outline and inner-lines 😒

image

I produced them with gimp and imported individually into inkscape...

Edit edit edit ... ;-)

And here the svg from above, raw, for you to have a look at in detail

result_export

Your version for comparison:

snailedlt

¯\_(ツ)_/¯

Tell me what to do :-D

Size-wise not much different:

image

@Snailedlt
Copy link
Collaborator

@Finii damn you're good!
hmm, I think your version looks better at a distance, while mine looks better closeup... but with some minor changes your version could look a lot better close-up.

There are some places where the transparent lines are inset (in line with the black outline) instead of being outside the black outline. And also some places where the transparent line doesn't reach the outline of the dragon. See this example:
Yours:
image
Mine:
image

Notice how the transparent lines at the bottom kinda cut into the thicker part of the tail. I think it would look better if the transparent lines here were shifted outwards a bit so it instead cut through the thinner parts of the tail.
I think you can see the issue a bit better here:
image

A rough sketch of what I suggest is something like this:
image

As for the top left red arrow, you can see that the transparent line doesn't fully reach the edge of the dragon. There are more places where this is the case, so this is just an example.
image

a rough fix:
image

Another thing I think looks a bit weird is the tip of the fingers on the wings, like here:
image

I get the idea of adding a thicker part to make the tips visible at smaller sizes, but I think it's too detrimental to the detail to be worth it.

Looking at your version did give me an idea though.
What if the skin part (the blue colored part) of the wings were outlined instead of colored in. I think that would make it look much better.
For reference, I'm talking about this part of the wings being transparent instead of black, and then outlined with black lines...

image

So kinda reverse of what it is now. That way the tips of the wings should be visible at smaller sizes while still making the larger sizes look detailed.

I think overall it just needs cleaner lines and outlining of the wings instead of filling them :)

It's very difficult to do this changes when the path is unified, so it would be nice if you uploaded the ungrouped/un-unified version too next time :)

@Snailedlt
Copy link
Collaborator

hmm, I spent some time to make another suggestion.
To make it I started with the llvm-original version and removed all but two of the paths. I then added a small stroke to one of the paths, and used the path + stroke as a cutout for the other black path.

Here's the optimized version:
llvm-plain-optimized-svgomg

The size of this version is just over 43KB

Let me know what you think, and if you find any flaws :)

Here's the non-optimized bi-colored version in case you want to make any tweaks:
llvm-bicolored

@Snailedlt
Copy link
Collaborator

I'm personally very happy with the last suggestion, but I haven't looked very closely at the result, so let me know if you find any flaws

Copy link
Collaborator

@Snailedlt Snailedlt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line version needs to be added to the font. Let's also add the color as fill to the line and plain versions :)
#5A90B6

Copy link
Contributor

github-actions bot commented Jun 8, 2025

Hi there,

I'm Devicons' Peek Bot and I just peeked at the icons that you wanted to add using icomoon.io.

Here are the SVGs as intepreted by Icomoon when we upload the files:
Imgur Images

Here are the zoomed-in screenshots of the added icons as SVGs:
Imgur Images

Here are the icons that will be generated by Icomoon:
Imgur Images

Here are the zoomed-in screenshots of the added icons as icons:
Imgur Images

Here are the colored versions:
Imgur Images

The maintainers will now check for:

  1. The number of Glyphs matches the number of SVGs that were selected.
  2. The icons (second group of pictures) look the same as the SVGs (first group of pictures).
  3. The icons are of high quality (legible, matches the official logo, etc.)
  4. A new object is added in the devicon.json file at the correct alphabetic position as seen here

In case of font issues, it might be caused by Icomoon not accepting strokes in the SVGs. Check this doc for more details and fix the issues as instructed by Icomoon and update this PR once you are done.

Thank you for contributing to Devicon! I hope that your icons are accepted into the repository.

Note: If the images don't show up, it has been autodeleted by Imgur after 6 months due to our API choice.

Cheers,
Peek Bot 😊

Finii added a commit to Finii/devicon that referenced this pull request Jun 9, 2025
In the discussion of PR devicons#2264 @Snailedlt developed a line version of the
icon. As the original icon it had thinner outside lines than lines
within the icon.
This has been fixed by me through Selection->Grow in Gimp that I applied
only on the outside of the icon.

Authored-by: Jørgen Kalsnes Hagen @Snailedlt
Co-authored-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
@Finii Finii force-pushed the feature/llvm-plain-simple branch from ef801ca to 65964f5 Compare June 9, 2025 07:24
Copy link
Contributor

github-actions bot commented Jun 9, 2025

Hi!

I'm the check-bot and we have some issues with your PR:

devicon.json is not sorted correctly.
Please make sure that your icon is added in the `devicon.json` file at the correct alphabetic position
as seen here: https://github.com/devicons/devicon/wiki/Updating-%60devicon.json%60


Check our CONTRIBUTING guide for more details regarding these errors.

Please address these issues. When you update this PR, I will check your SVGs again.

Thanks for your help,
SVG-Checker Bot 😄

@Finii
Copy link
Contributor Author

Finii commented Jun 9, 2025

Let's also add the color as fill to the line and plain versions :) #5A90B6

According to the specs having a unspecified fill color is ... expected?

image

image

🤔


Edit: Of course if you say the color is expected I change the svgs, thats easy. I just wonder, it somewhat contradicts with how I read the contrib info; and then, maybe the contrib info needs to be changed also.

@Snailedlt
Copy link
Collaborator

It's more of a convention we've used since it makes it easier for some third-party tools. It's not really needed for our internal workflow.
Yeah, maybe we should update the wiki.

I don't even remember why we re-added the fill for many icons at this point 😅

Finii added 2 commits June 9, 2025 10:20
[why]
While the plain icon is plainer than the original icon, it is still
quite complex with very thin strokes.

[how]
In the discussion of PR devicons#2264 @Snailedlt developed a more detailed plain
version of the icon.

Taking that I just removed a three-node smudge at the dragon's left hand
and did the Break-Apart & Union dance in Inkscape to clean the paths up.

Authored-by: Jørgen Kalsnes Hagen @Snailedlt
Co-authored-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
In the discussion of PR devicons#2264 @Snailedlt developed a line version of the
icon. As the original icon it had thinner outside lines than lines
within the icon.
This has been fixed by me through Selection->Grow in Gimp that I applied
only on the outside of the icon.

Authored-by: Jørgen Kalsnes Hagen @Snailedlt
Co-authored-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
@Finii Finii force-pushed the feature/llvm-plain-simple branch from 65964f5 to f30c820 Compare June 9, 2025 08:20
Copy link
Contributor

github-actions bot commented Jun 9, 2025

Hi!

I'm the check-bot and we have some issues with your PR:

devicon.json is not sorted correctly.
Please make sure that your icon is added in the `devicon.json` file at the correct alphabetic position
as seen here: https://github.com/devicons/devicon/wiki/Updating-%60devicon.json%60


Check our CONTRIBUTING guide for more details regarding these errors.

Please address these issues. When you update this PR, I will check your SVGs again.

Thanks for your help,
SVG-Checker Bot 😄

@Finii
Copy link
Contributor Author

Finii commented Jun 9, 2025

Dear SVG Checker Bot,

it would probably be more helpful if you hint how to sort the devicons.json file.
For example users could just

$ jq --slurp --indent 4 '.[] | sort_by(.name)' < devicon.json  > devicon_sorted.json
$ mv devicon_sorted.json devicon.json

I will add a commit with the result of this. Lets see if you are content then.

It seems not only that the current devicons.json is not sorted, it also
has un-unified indent levels and other 'defects' obviously from manual
manipulation without ever running it through a unifying process.
Which is of course not needed, but maybe it's more nice to have all
indents identical etc pp.

The commands used to create this commit:

    jq -s --indent 4 '.[] | sort_by(.name)' < devicon.json  > A
    mv A devicons.json

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
@Snailedlt Snailedlt added bot:peek Trigger peek-bot. Remove and re-add the label to re-trigger bot:check Trigger check-bot. Remove and re-add the label to re-trigger and removed bot:peek Trigger peek-bot. Remove and re-add the label to re-trigger bot:check Trigger check-bot. Remove and re-add the label to re-trigger labels Jun 10, 2025
Copy link
Contributor

Hi there,

I'm Devicons' Peek Bot and I just peeked at the icons that you wanted to add using icomoon.io.

Here are the SVGs as intepreted by Icomoon when we upload the files:
Imgur Images

Here are the zoomed-in screenshots of the added icons as SVGs:
Imgur Images Imgur Images

Here are the icons that will be generated by Icomoon:
Imgur Images

Here are the zoomed-in screenshots of the added icons as icons:
Imgur Images Imgur Images

Here are the colored versions:
Imgur Images Imgur Images

The maintainers will now check for:

  1. The number of Glyphs matches the number of SVGs that were selected.
  2. The icons (second group of pictures) look the same as the SVGs (first group of pictures).
  3. The icons are of high quality (legible, matches the official logo, etc.)
  4. A new object is added in the devicon.json file at the correct alphabetic position as seen here

In case of font issues, it might be caused by Icomoon not accepting strokes in the SVGs. Check this doc for more details and fix the issues as instructed by Icomoon and update this PR once you are done.

Thank you for contributing to Devicon! I hope that your icons are accepted into the repository.

Note: If the images don't show up, it has been autodeleted by Imgur after 6 months due to our API choice.

Cheers,
Peek Bot 😊

@Snailedlt Snailedlt added bot:peek Trigger peek-bot. Remove and re-add the label to re-trigger and removed bot:peek Trigger peek-bot. Remove and re-add the label to re-trigger labels Jun 10, 2025
Copy link
Contributor

Hi there,

I'm Devicons' Peek Bot and I just peeked at the icons that you wanted to add using icomoon.io.

Here are the SVGs as intepreted by Icomoon when we upload the files:
Imgur Images

Here are the zoomed-in screenshots of the added icons as SVGs:
Imgur Images Imgur Images

Here are the icons that will be generated by Icomoon:
Imgur Images

Here are the zoomed-in screenshots of the added icons as icons:
Imgur Images Imgur Images

Here are the colored versions:
Imgur Images Imgur Images

The maintainers will now check for:

  1. The number of Glyphs matches the number of SVGs that were selected.
  2. The icons (second group of pictures) look the same as the SVGs (first group of pictures).
  3. The icons are of high quality (legible, matches the official logo, etc.)
  4. A new object is added in the devicon.json file at the correct alphabetic position as seen here

In case of font issues, it might be caused by Icomoon not accepting strokes in the SVGs. Check this doc for more details and fix the issues as instructed by Icomoon and update this PR once you are done.

Thank you for contributing to Devicon! I hope that your icons are accepted into the repository.

Note: If the images don't show up, it has been autodeleted by Imgur after 6 months due to our API choice.

Cheers,
Peek Bot 😊

Copy link
Collaborator

@Snailedlt Snailedlt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! ✔️

Waiting for another review, since this PR also modifies the devicon.json order, which I think should be fine, but I'm not sure if it'll cause issues with the build bot.

@ReenigneArcher @canaleal
One of you should review this PR as well

Copy link
Member

@ReenigneArcher ReenigneArcher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The order of the json file shouldn't hurt anything, and since everything is supposed to be alphabetical I think this is a good change.

In the future I want to add a PR check that makes sure the json file is properly formatted and properly sorted which can run for every PR.

For the icons, any idea how to fix this? The viewbox is the right size, but it displays as the wrong size.

image

Approving since both of the things I discussed would be future improvements.

@Snailedlt
Copy link
Collaborator

@ReenigneArcher yeah, adding a check for formatting and sorting would be nice!

I'm not sure why you have that sizing issue, in my GitHub preview it looks fine:
image

@Snailedlt
Copy link
Collaborator

@canaleal I know you already started the release process, but do you think we can merge this as well, since there were some issues with the font?

@canaleal canaleal merged commit 42f4e92 into devicons:develop Jun 15, 2025
6 checks passed
@canaleal canaleal mentioned this pull request Jun 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot:check Trigger check-bot. Remove and re-add the label to re-trigger bot:peek Trigger peek-bot. Remove and re-add the label to re-trigger feature:icon PR when a new icon is ready to be added to the collection
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants