mirror of
https://code.sup39.dev/repos/Wqawg
synced 2025-01-08 21:06:47 +09:00
72 lines
1.4 KiB
Haskell
72 lines
1.4 KiB
Haskell
|
{- This file is part of Vervis.
|
||
|
-
|
||
|
- Written in 2016 by fr33domlover <fr33domlover@riseup.net>.
|
||
|
-
|
||
|
- ♡ Copying is an act of love. Please copy, reuse and share.
|
||
|
-
|
||
|
- The author(s) have dedicated all copyright and related and neighboring
|
||
|
- rights to this software to the public domain worldwide. This software is
|
||
|
- distributed without any warranty.
|
||
|
-
|
||
|
- You should have received a copy of the CC0 Public Domain Dedication along
|
||
|
- with this software. If not, see
|
||
|
- <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||
|
-}
|
||
|
|
||
|
-- | Style component palette for use in page templates, in particular Cassius
|
||
|
-- files.
|
||
|
module Style
|
||
|
( -- * Types
|
||
|
Color ()
|
||
|
, Hue ()
|
||
|
-- * Plain Colors
|
||
|
, black
|
||
|
, white
|
||
|
-- * Color Hues
|
||
|
, red
|
||
|
, green
|
||
|
, yellow
|
||
|
, blue
|
||
|
, magenta
|
||
|
, cyan
|
||
|
, gray
|
||
|
-- * Hue to Color
|
||
|
, dark
|
||
|
, light
|
||
|
)
|
||
|
where
|
||
|
|
||
|
data Lightness = Light | Dark
|
||
|
|
||
|
data Color
|
||
|
= Black
|
||
|
| Red Lightness
|
||
|
| Green Lightness
|
||
|
| Yellow Lightness
|
||
|
| Blue Lightness
|
||
|
| Magenta Lightness
|
||
|
| Cyan Lightness
|
||
|
| Gray Lightness
|
||
|
| White
|
||
|
|
||
|
newtype Hue = Hue (Lightness -> Color)
|
||
|
|
||
|
black, white :: Color
|
||
|
black = Black
|
||
|
white = White
|
||
|
|
||
|
red, green, yellow, blue, magenta, cyan, gray :: Hue
|
||
|
red = Hue Red
|
||
|
green = Hue Green
|
||
|
yellow = Hue Yellow
|
||
|
blue = Hue Blue
|
||
|
magenta = Hue Magenta
|
||
|
cyan = Hue Cyan
|
||
|
gray = Hue Gray
|
||
|
|
||
|
dark :: Hue -> Color
|
||
|
dark (Hue h) = h Dark
|
||
|
|
||
|
light :: Hue -> Color
|
||
|
light (Hue h) = h Light
|