Define colors in dedicated Vervis.Palette module

This commit is contained in:
fr33domlover 2016-06-22 20:58:42 +00:00
parent c7de6119ab
commit 386d499a61
3 changed files with 90 additions and 19 deletions

68
src/Vervis/Palette.hs Normal file
View file

@ -0,0 +1,68 @@
{- 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/>.
-}
-- | Colors to use in UI. Syntax highlighting, diagrams, CSS and so on.
-- Currently the 16 Tango colors are being used here.
module Vervis.Palette
( black
, white
, plain
, darkRed
, darkGreen
, darkYellow
, darkBlue
, darkMagenta
, darkCyan
, darkGray
, lightRed
, lightGreen
, lightYellow
, lightBlue
, lightMagenta
, lightCyan
, lightGray
)
where
import Prelude
import Data.Word (Word8)
type RGB = (Word8, Word8, Word8)
black, white, plain :: RGB
black = (0x00, 0x00, 0x00)
white = (0xEE, 0xEE, 0xEC)
plain = (0xCC, 0xCC, 0xCC)
darkRed, darkGreen, darkYellow, darkBlue, darkMagenta, darkCyan, darkGray
:: RGB
darkRed = (0xCC, 0x00, 0x00)
darkGreen = (0x4E, 0x9A, 0x06)
darkYellow = (0xC4, 0xA0, 0x00)
darkBlue = (0x34, 0x65, 0xA4)
darkMagenta = (0x75, 0x50, 0x7B)
darkCyan = (0x06, 0x98, 0x9A)
darkGray = (0x55, 0x57, 0x53)
lightRed, lightGreen, lightYellow, lightBlue :: RGB
lightMagenta, lightCyan, lightGray :: RGB
lightRed = (0xEF, 0x29, 0x29)
lightGreen = (0x8A, 0xE2, 0x34)
lightYellow = (0xFC, 0xE9, 0x4F)
lightBlue = (0x73, 0x9F, 0xCF)
lightMagenta = (0xAD, 0x7F, 0xA8)
lightCyan = (0x34, 0xE2, 0xE2)
lightGray = (0xD3, 0xD7, 0xCF)

View file

@ -43,6 +43,8 @@ import Text.Cassius (ToCss (..))
import qualified Text.Cassius as C (Color (Color)) import qualified Text.Cassius as C (Color (Color))
import qualified Vervis.Palette as P
data Lightness = Light | Dark data Lightness = Light | Dark
data Color data Color
@ -59,25 +61,25 @@ data Color
instance ToCss Color where instance ToCss Color where
toCss col = toCss col =
let c r g b = toCss $ C.Color r g b let c (r, g, b) = toCss $ C.Color r g b
in case col of in c $ case col of
Black -> c 0x00 0x00 0x00 Black -> P.black
Red Dark -> c 0xCC 0x00 0x00 Red Dark -> P.darkRed
Red Light -> c 0xEF 0x29 0x29 Red Light -> P.lightRed
Green Dark -> c 0x4E 0x9A 0x06 Green Dark -> P.darkGreen
Green Light -> c 0x8A 0xE2 0x34 Green Light -> P.lightGreen
Yellow Dark -> c 0xC4 0xA0 0x00 Yellow Dark -> P.darkYellow
Yellow Light -> c 0xFC 0xE9 0x4F Yellow Light -> P.lightYellow
Blue Dark -> c 0x34 0x65 0xA4 Blue Dark -> P.darkBlue
Blue Light -> c 0x73 0x9F 0xCF Blue Light -> P.lightBlue
Magenta Dark -> c 0x75 0x50 0x7B Magenta Dark -> P.darkMagenta
Magenta Light -> c 0xAD 0x7F 0xA8 Magenta Light -> P.lightMagenta
Cyan Dark -> c 0x06 0x98 0x9A Cyan Dark -> P.darkCyan
Cyan Light -> c 0x34 0xE2 0xE2 Cyan Light -> P.lightCyan
Gray Dark -> c 0x55 0x57 0x53 Gray Dark -> P.darkGray
Gray Light -> c 0xD3 0xD7 0xCF Gray Light -> P.lightGray
White -> c 0xEE 0xEE 0xEC White -> P.white
PlainText -> c 0xCC 0xCC 0xCC PlainText -> P.plain
newtype Hue = Hue (Lightness -> Color) newtype Hue = Hue (Lightness -> Color)

View file

@ -131,6 +131,7 @@ library
Vervis.Model.Repo Vervis.Model.Repo
Vervis.Model.Role Vervis.Model.Role
Vervis.Paginate Vervis.Paginate
Vervis.Palette
Vervis.Path Vervis.Path
Vervis.Query Vervis.Query
Vervis.Readme Vervis.Readme