Skip to content

UX Recommendation: Overwrite absolute 0 alpha with 1, while selecting a color from color picker #54

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

Closed
tiritto opened this issue Dec 16, 2019 · 6 comments
Labels
enhancement New feature or request

Comments

@tiritto
Copy link
Contributor

tiritto commented Dec 16, 2019

Hello again! I would like to recommend small QoL improvement that is automatic alpha overwrite. How would it work? Whenever user is selecting a color using color picker palette (not Color Picker from Utility Tools) Pixelorama would check if currency Alpha channels equals 0 (full transparency) and overwrite this value with 1 (no transparency) whenever a color is picked.

Please note, that this behavior would only be expected to happen while Alpha equals exactly 0. Overwrite should not be triggered on any alpha values higher than 0, as it might (and most likely would) annoy people who are aware of their transparency settings that are most likely intentional.

How would this change be beneficial?

  1. It's very unlikely that user is trying to use color picker on full transparency on purpose. In most cases this situation will only occur when user was using transparent pencil to remove some existing pixels or when user accidentally used Color Picker Tool on transparent pixel before prior to accessing Color Picker. Both cases imply that Color Picker has been opened in order to replace already transparent "color" with non- or less-transparent alternative.

  2. In case when transparent color was picked on accident (either with Color Picker Tool or as result of playing around with sliders), automatic transparency overwrite will reduce annoyance and time that user would have to spend at trying to figure out whats wrong, especially in case of beginners.

  3. It would be overall Quality of Life improvement even for already experienced users, as it is still one action less to take.

How would this change be harmful?
I can't think of any situation in which this system could backfire in any way. If user is intending to keep his transparency settings at absolute minimum, there is no reason to even touch color picker in the first place, as absolute transparency is color-less.

@OverloadedOrama
Copy link
Member

Hello! I'm fairly certain that the color selection from screen tool that is inside the color picker doesn't work well with transparency, because if the color is not opaque enough, it selects the color of the background. In general, it's not a good idea to use it, and you should use the Color Picker Tool from the Utility Tools instead.

Are you suggesting that, when you pick a color with the Color Picker Tool (Utility Tools) and alpha is 0, it should become 1?

@tiritto
Copy link
Contributor Author

tiritto commented Dec 16, 2019

No no. My suggestion is not related to Color Picker Tool but to Color Picker Dialog. I'm suggesting to automatically switch alpha value from 0.0 to 1.0 (or from 0 to 255 in non-raw mode) if RGB values has been changed while at 0.0 alpha value.

@OverloadedOrama
Copy link
Member

OverloadedOrama commented Dec 16, 2019

Oh okay I see! While I understand why this suggestion is good, I can see one way it can actually be harmful. Right now, the fact that you can use 0.0 alpha value can let you make whole areas of the image transparent, combined with the bucket tool. So it might not make sense for the pencil tool since the eraser tool exists, but it can have some uses with the bucket tool.

@tiritto
Copy link
Contributor Author

tiritto commented Dec 16, 2019

Yeah I am aware that some people might want to use a pencil with full transparency as eraser replacement. However, notice that with logic I suggested this will not affect those people at all since alpha overwrite would only happen if RGB values has been modified while at 0.0 alpha.

If you intend to use your pencil at full transparency, you will change your alpha to 0.0 but you have no reason to switch any of RGB channels therefore you wouldn't trigger alpha overwriting in the first place, allowing users to keep this functionality.

If you want to pick a transparent color, your alpha channel value will always be above 0, therefore it will not trigger overwrite mechanism.

If you want to pick full transparency (alpha = 1.0) to mimic eraser functionality, you will never want to adjust your RGB values as they are irrelevant with 1.0 alpha, therefore you won't trigger overwrite mechanism as RGB values remain unchanged.

If your currently selector "color" has 1.0 (255) alpha value, the only reason why you might be opening color picker dialog window is because you want to adjust your transparency (meaning it won't be 0.0 anymore, disabling mechanism) or discard your transparency altogether for sake of new RGB color you pick from color palette (meaning you will trigger RGB value change).

In case if someone wants to change both alpha value (from 0.0 to something else, but not 1.0) and RGB values we will encounter false positive where alpha overwrite would indeed trigger in non-intended fashion. However, this behavior will not affect user in any meaningful way because user is going to modify alpha channel value regardless if it's at 0.0 or 1.0 value at the moment.

@OverloadedOrama
Copy link
Member

Actually I was talking about transparency with the bucket tool. The pencil tool makes little sense to be used with full transparency.

So basically your suggestion is, if the user changed their alpha to 0.0 and doesn't change any of the RGB channels, then alpha should be kept to 0. But if their alpha is 0.0 and they change any of the RGB channels, then alpha should become 1.0. Is this right?

@tiritto
Copy link
Contributor Author

tiritto commented Dec 17, 2019

Yes, that's precisely correct.

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

No branches or pull requests

2 participants