on 104faf1 help sign in
elk/libraries/Color.elm
89 lines 2.4 kB history raw
2module Color where
4data Color = Color Int Int Int Float
6-- Create RGB colors with an alpha component for transparency.
7-- The alpha component is specified with numbers between 0 and 1.
8rgba : Int -> Int -> Int -> Float -> Color
9rgba = Color
11-- Create RGB colors from numbers between 0 and 255 inclusive.
12rgb : Int -> Int -> Int -> Color
13rgb r g b = Color r g b 1
15red : Color
16red = Color 255 0 0 1
17lime : Color
18lime = Color 0 255 0 1
19blue : Color
20blue = Color 0 0 255 1
22yellow : Color
23yellow = Color 255 255 0 1
24cyan : Color
25cyan = Color 0 255 255 1
26magenta : Color
27magenta = Color 255 0 255 1
29black : Color
30black = Color 0 0 0 1
31white : Color
32white = Color 255 255 255 1
34gray : Color
35gray = Color 128 128 128 1
36grey : Color
37grey = Color 128 128 128 1
39maroon : Color
40maroon = Color 128 0 0 1
41navy : Color
42navy = Color 0 0 128 1
43green : Color
44green = Color 0 128 0 1
46teal : Color
47teal = Color 0 128 128 1
48purple : Color
49purple = Color 128 0 128 1
51violet : Color
52violet = Color 238 130 238 1
53forestGreen : Color
54forestGreen = Color 34 139 34 1
56-- Produce a “complementary color”.
57-- The two colors will accent each other.
58complement : Color -> Color
60-- Create HSV colors with an alpha component for transparency.
61-- The alpha component is specified with numbers between 0 and 1.
62hsva : Int -> Float -> Float -> Float -> Color
64-- Create HSV colors. HSV stands for hue-saturation-value.
65--
66-- Hue is a degree from 0 to 360 representing a color wheel: red at 0°,
67-- green at 120°, blue at 240°, and red again at 360°.
68-- This makes it easy to cycle through colors and compute color complements,
69-- triads, tetrads, etc.
70--
71-- Saturation is a number between 1 and 0 where lowering this number makes
72-- your color more grey. This can help you tone a color down.
73--
74-- Value is also a number between 1 and 0. Lowering this number makes your
75-- color more black.
76--
77-- Look up the “HSV cylinder” for more information.
78hsv : Int -> Float -> Float -> Color
80data Gradient
81 = Linear (Float,Float) (Float,Float) [(Float,Color)]
82 | Radial (Float,Float) Float (Float,Float) Float [(Float,Color)]
84linear : (Number a, Number a) ->
85 (Number a, Number a) -> [(Float,Color)] -> Gradient
86linear = Linear
87radial : (Number a,Number a) -> Number a ->
88 (Number a,Number a) -> Number a -> [(Float,Color)] -> Gradient
89radial = Radial