Add style palette module for later use

This commit is contained in:
fr33domlover 2016-02-18 13:36:25 +00:00
parent a5f6bf280b
commit ab98930caa
2 changed files with 72 additions and 0 deletions

71
src/Style.hs Normal file
View file

@ -0,0 +1,71 @@
{- 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

View file

@ -46,6 +46,7 @@ library
Handler.Home
Handler.Person
Handler.Project
Style
-- other-modules:
default-extensions: TemplateHaskell
QuasiQuotes