arthurpalves / badgy

A command line tool that creates variants of your icon by adding badge overlays
MIT License
174 stars 11 forks source link

Specify color for badge and text #1

Closed arthurpalves closed 4 years ago

elfenlaid commented 4 years ago

Hi there, thanks for a handy tool.

I would like to implement the feature, if you don't mind, of course. But before that, maybe you already formed the feature's vision. If that's the case, it will be really helpful.

I also have a bit of thought going on, an official w3c CSS colors list looks like a good reference. Together with the ability to specify a custom hex color, it seems that they would covert most of the use cases.

Also, it would be nice to specify both foreground and background colors. Although the app could stick to white as the default foreground color.

arthurpalves commented 4 years ago

Hi @elfenlaid! Glad you are keen to help.

What I've thought for this was the following.

High level

Ability to specify the badge color
Ability way to specify the bade tint color

Options

-c, --color             Specify badge color with a hexadecimal color code.
-t, --tint-color       Specify badge text/tint color with a hexadecimal color code.

How

You can see that method makeBadge in Factory.swift already expects a colorHexCode: String? that if nil it uses a random color from a small array. I see your changes as supporting two extra @Keys in the commands passing them to makeBadge.

Requirements

The keys would have a validation on whether the values are valid hexadecimal color codes.

w3c colors

I like the idea of having some base colors defined by name in accordance with w3c, if that is the case, do you think we'll need one extra command to list the colors in case we get lost?

# list all the available colors as 'name - code'
badgy colors

These would also have to be included in the validation of the key values.

Concluding

Do you think you could implement this step by step, starting with support for hexadecimal code first, release and then improve by including our predefined set of colors?

elfenlaid commented 4 years ago

list all the available colors as 'name - code'

That would be awesome in combination with small colored squares. Otherwise a wiki page and a reference to it sound like a more comprehendible version, as for me.

Do you think you could implement this step by step, starting with support for hexadecimal code first, release and then improve by including our predefined set of colors?

I would live to :)

arthurpalves commented 4 years ago

Looking forward

elfenlaid commented 4 years ago

As the issue's first part is out of the way, may we return to the second part discussion, meanly 'w3c' color schemes?

It turns out, ImageMagick developers have had similar thoughts and support List of Color Names | ImageMagick as color argument.

Seems it wont take much time to add a separate validator and reference the list in docs 🤔

arthurpalves commented 4 years ago

@elfenlaid the PR was merged, thanks a lot for your contribution! As of next steps, I think we can implement what you suggest, using ImageMagick's own named colors as input.

Do you see value in creating a new issue for that, as a separate feature?

elfenlaid commented 4 years ago

@elfenlaid the PR was merged, thanks a lot for your contribution!

Hooray 🎉

As of next steps, I think we can implement what you suggest, using ImageMagick's own named colors as input.

Do you see value in creating a new issue for that, as a separate feature?

I think we should be fine keeping the current issue running. It will serve as a documentation reference in the future PRs.