Graphics.Drawing
- Package
- purescript-drawing
- Repository
- paf31/purescript-drawing
This module defines a type Drawing
for creating vector graphics.
#OutlineStyle Source
#outlineColor Source
outlineColor :: Color -> OutlineStyle
Set the outline color.
#lineWidth Source
lineWidth :: Number -> OutlineStyle
Set the line width.
#shadowColor Source
shadowColor :: Color -> Shadow
Set the shadow color.
#shadowBlur Source
shadowBlur :: Number -> Shadow
Set the shadow blur.
#everywhere Source
everywhere :: (Drawing -> Drawing) -> Drawing -> Drawing
Modify a Drawing
by applying a transformation to every subdrawing.
Re-exports from Color
#ColorSpace Source
data ColorSpace
Definition of a color space.
RGB
: red, green, blueHSL
: hue, saturation, lightnessLCh
: Lightness, chroma, hueLab
: Lightness, a, b
Constructors
#Color Source
data Color
The representation of a color.
Note:
- The
Eq
instance compares twoColor
s by comparing their (integer) RGB values. This is different from comparing the HSL values (for example, HSL has many different representations of black (arbitrary hue and saturation values). - Colors outside the sRGB gamut which cannot be displayed on a typical
computer screen can not be represented by
Color
.
Instances
#xyz Source
xyz :: Number -> Number -> Number -> Color
Create a Color
from XYZ coordinates in the CIE 1931 color space. Note
that a Color
always represents a color in the sRGB gamut (colors that
can be represented on a typical computer screen) while the XYZ color space
is bigger. This function will tend to create fully saturated colors at the
edge of the sRGB gamut if the coordinates lie outside the sRGB range.
See:
#toXYZ Source
#toHexString Source
toHexString :: Color -> String
Return a hexadecimal representation of the color in the form #rrggbb
,
where rr
, gg
and bb
refer to hexadecimal digits corresponding to
the RGB channel values between 00
and ff
. The alpha channel is not
represented.
#luminance Source
luminance :: Color -> Number
The relative brightness of a color (normalized to 0.0 for darkest black and 1.0 for lightest white), according to the WCAG definition.
See: https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
#lch Source
#isReadable Source
isReadable :: Color -> Color -> Boolean
Determine whether text of one color is readable on a background of a
different color (see contrast
). This function is symmetric in both
arguments.
isReadable c1 c2 = contrast c1 c2 > 4.5
#fromHexString Source
fromHexString :: String -> Maybe Color
Parse a hexadecimal RGB code of the form #rgb
or #rrggbb
. The #
character is required. Each hexadecimal digit is of the form [0-9a-fA-F]
(case insensitive). Returns Nothing
if the string is in a wrong format.
#distance Source
#desaturate Source
desaturate :: Number -> Color -> Color
Decrease the saturation of a color by subtracting a certain amount (number between -1.0 and 1.0) from the saturation channel. If the number is negative, the color is saturated.
#cssStringRGBA Source
cssStringRGBA :: Color -> String
A CSS representation of the color in the form rgb(..)
or rgba(...)
.
#cssStringHSLA Source
cssStringHSLA :: Color -> String
A CSS representation of the color in the form hsl(..)
or hsla(...)
.
#contrast Source
contrast :: Color -> Color -> Number
The contrast ratio of two colors. A minimum contrast ratio of 4.5 is
recommended to ensure that text is readable on a colored background. The
contrast ratio is symmetric on both arguments:
contrast c1 c2 == contrast c2 c1
.
See http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef
#complementary Source
complementary :: Color -> Color
Get the complementary color (hue rotated by 180°).
#brightness Source
brightness :: Color -> Number
The percieved brightness of the color (A number between 0.0 and 1.0).
Re-exports from Graphics.Drawing.Font
#fontString Source
fontString :: Font -> String
Turn a Font
into a String
which can be used with Graphics.Canvas.setFont
.