avh4 / elm-color

Standard representation of colors, encouraging sharing between packages. (This replaces elm-lang/core#Color from Elm 0.18.)
BSD 3-Clause "New" or "Revised" License
23 stars 6 forks source link

Does there need to be a way to get the RGB components as [0,255] ? #12

Open avh4 opened 6 years ago

avh4 commented 6 years ago

Questions:

Currently, there is toHex, which does the conversion to integers, but only provides the result as a hex string. Is this sufficient for common needs? It is also currently possible to use toRgba and convert the components yourself using (*) 255 >> round.

We could possibly add something like the following:

toRgb255 : Color -> { red : Int, green : Int, blue : Int, alpha : Float }
avh4 commented 5 years ago

Given there aren't any clear use-cases documented yet, I think this can wait for consideration in 1.1.0.

Chadtech commented 5 years ago

I have a project in 0.18 that uses the old Color package extensively. Its a paint drawing application (ctpaint.org/app). Here are some cases in that project where I think a Color to 0-255 number string would be useful:

  1. My project has a color picker. In the color picker there are html input fields for the HSL and the RGB values. I have a Color in the Model, but in the input fields, the Color is represented as 0-255 numbers the user can modify.
  2. The project stores colors in a palette that the user choose to draw in on the main canvas. All colors are stored in the Elm Color type and draws colors from the palette onto a native JS canvas, which is in the format of 0-255 numbers. To do the drawing operations in the paint program I need to translate from the Color as its stored in the palette to the 0-255 number format for the canvas.
tgelu commented 4 years ago

The simplest use case is to use it with elm-css. At the moment this is quite inconvenient.