{-# LANGUAGE StrictData #-}
module NanoUI.Style
( Sizing (..)
, Direction (..)
, AlignX (..)
, AlignY (..)
, Padding (..)
, Layout (..)
, defaultLayout
, Style (..)
, Theme (..)
, defaultTheme
, tomorrowNightMinDarkTheme
, tomorrowMinLightTheme
, tomorrowMidnightMinDarkTheme
, Base16 (..)
, themeFromBase16
, themeFromBase16Dark
, themeFromBase16Light
, base16TomorrowNight
, base16TomorrowLight
, background
, foreground
, borderColor
, borderWidth
, cornerRadius
, hoverBackground
, pressBackground
, fillColor
, buttonStyle
, inputStyle
, panelStyle
, windowStyle
, everyStyle
, accentColor
, textColor
, mutedColor
, linkColor
, selectionColor
, windowColor
, rounded
, tinted
, primary
, destructive
, success
, subtle
, readableOn
, disabledTheme
, themeSeries
, separatorTrackColor
, scrollBarTrackColor
, scrollBarThumbColor
, fadeAlpha
, windowPad
, windowMargin
, padAll
, padXY
, gap
, fillW
, fillH
, grow
, minW
, maxW
, fixedW
, minH
, maxH
, fixedH
, fixedWH
, alignMid
, alignEnd
, tight
, percent
, gridMinColW
, fixedAspectW
, fixedAspectH
, gridCols
, FontVariant (..)
, FontWeight (..)
, FontStyle (..)
, TextDecoration (..)
, LayoutModifier
, fontRegular
, fontHeading
, fontMuted
, fontMono
, fontDanger
, fontSize
, fontSizeScale
, fontColor
, fontWeight
, fontBold
, fontLight
, fontMedium
, fontSemiBold
, fontExtraBold
, fontBlack
, fontStyle
, fontItalic
, fontOblique
, textDecoration
, fontUnderline
, fontStrike
, alignStart
, alignCenter
, alignTop
, alignBottom
, alignBaseline
) where
import Data.Bits ((.&.), (.|.))
import Data.Word (Word8)
import NanoUI.Types (Color (..), colorA, colorLuminance, colorRGBA, contrastRatio, lerpColor)
data Sizing
= Fixed Float
| Fit
| Grow Float
| Shrink Float
| Percent Float
deriving (Sizing -> Sizing -> Bool
(Sizing -> Sizing -> Bool)
-> (Sizing -> Sizing -> Bool) -> Eq Sizing
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Sizing -> Sizing -> Bool
== :: Sizing -> Sizing -> Bool
$c/= :: Sizing -> Sizing -> Bool
/= :: Sizing -> Sizing -> Bool
Eq, Int -> Sizing -> ShowS
[Sizing] -> ShowS
Sizing -> String
(Int -> Sizing -> ShowS)
-> (Sizing -> String) -> ([Sizing] -> ShowS) -> Show Sizing
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Sizing -> ShowS
showsPrec :: Int -> Sizing -> ShowS
$cshow :: Sizing -> String
show :: Sizing -> String
$cshowList :: [Sizing] -> ShowS
showList :: [Sizing] -> ShowS
Show)
data Direction = Row | Column
deriving (Direction -> Direction -> Bool
(Direction -> Direction -> Bool)
-> (Direction -> Direction -> Bool) -> Eq Direction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Direction -> Direction -> Bool
== :: Direction -> Direction -> Bool
$c/= :: Direction -> Direction -> Bool
/= :: Direction -> Direction -> Bool
Eq, Int -> Direction -> ShowS
[Direction] -> ShowS
Direction -> String
(Int -> Direction -> ShowS)
-> (Direction -> String)
-> ([Direction] -> ShowS)
-> Show Direction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Direction -> ShowS
showsPrec :: Int -> Direction -> ShowS
$cshow :: Direction -> String
show :: Direction -> String
$cshowList :: [Direction] -> ShowS
showList :: [Direction] -> ShowS
Show, Int -> Direction
Direction -> Int
Direction -> [Direction]
Direction -> Direction
Direction -> Direction -> [Direction]
Direction -> Direction -> Direction -> [Direction]
(Direction -> Direction)
-> (Direction -> Direction)
-> (Int -> Direction)
-> (Direction -> Int)
-> (Direction -> [Direction])
-> (Direction -> Direction -> [Direction])
-> (Direction -> Direction -> [Direction])
-> (Direction -> Direction -> Direction -> [Direction])
-> Enum Direction
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: Direction -> Direction
succ :: Direction -> Direction
$cpred :: Direction -> Direction
pred :: Direction -> Direction
$ctoEnum :: Int -> Direction
toEnum :: Int -> Direction
$cfromEnum :: Direction -> Int
fromEnum :: Direction -> Int
$cenumFrom :: Direction -> [Direction]
enumFrom :: Direction -> [Direction]
$cenumFromThen :: Direction -> Direction -> [Direction]
enumFromThen :: Direction -> Direction -> [Direction]
$cenumFromTo :: Direction -> Direction -> [Direction]
enumFromTo :: Direction -> Direction -> [Direction]
$cenumFromThenTo :: Direction -> Direction -> Direction -> [Direction]
enumFromThenTo :: Direction -> Direction -> Direction -> [Direction]
Enum, Direction
Direction -> Direction -> Bounded Direction
forall a. a -> a -> Bounded a
$cminBound :: Direction
minBound :: Direction
$cmaxBound :: Direction
maxBound :: Direction
Bounded)
data AlignX = AlignStart | AlignCenter | AlignEnd
deriving (AlignX -> AlignX -> Bool
(AlignX -> AlignX -> Bool)
-> (AlignX -> AlignX -> Bool) -> Eq AlignX
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AlignX -> AlignX -> Bool
== :: AlignX -> AlignX -> Bool
$c/= :: AlignX -> AlignX -> Bool
/= :: AlignX -> AlignX -> Bool
Eq, Int -> AlignX -> ShowS
[AlignX] -> ShowS
AlignX -> String
(Int -> AlignX -> ShowS)
-> (AlignX -> String) -> ([AlignX] -> ShowS) -> Show AlignX
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AlignX -> ShowS
showsPrec :: Int -> AlignX -> ShowS
$cshow :: AlignX -> String
show :: AlignX -> String
$cshowList :: [AlignX] -> ShowS
showList :: [AlignX] -> ShowS
Show, Int -> AlignX
AlignX -> Int
AlignX -> [AlignX]
AlignX -> AlignX
AlignX -> AlignX -> [AlignX]
AlignX -> AlignX -> AlignX -> [AlignX]
(AlignX -> AlignX)
-> (AlignX -> AlignX)
-> (Int -> AlignX)
-> (AlignX -> Int)
-> (AlignX -> [AlignX])
-> (AlignX -> AlignX -> [AlignX])
-> (AlignX -> AlignX -> [AlignX])
-> (AlignX -> AlignX -> AlignX -> [AlignX])
-> Enum AlignX
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: AlignX -> AlignX
succ :: AlignX -> AlignX
$cpred :: AlignX -> AlignX
pred :: AlignX -> AlignX
$ctoEnum :: Int -> AlignX
toEnum :: Int -> AlignX
$cfromEnum :: AlignX -> Int
fromEnum :: AlignX -> Int
$cenumFrom :: AlignX -> [AlignX]
enumFrom :: AlignX -> [AlignX]
$cenumFromThen :: AlignX -> AlignX -> [AlignX]
enumFromThen :: AlignX -> AlignX -> [AlignX]
$cenumFromTo :: AlignX -> AlignX -> [AlignX]
enumFromTo :: AlignX -> AlignX -> [AlignX]
$cenumFromThenTo :: AlignX -> AlignX -> AlignX -> [AlignX]
enumFromThenTo :: AlignX -> AlignX -> AlignX -> [AlignX]
Enum, AlignX
AlignX -> AlignX -> Bounded AlignX
forall a. a -> a -> Bounded a
$cminBound :: AlignX
minBound :: AlignX
$cmaxBound :: AlignX
maxBound :: AlignX
Bounded)
data AlignY = AlignTop | AlignMiddle | AlignBottom | AlignBaseline
deriving (AlignY -> AlignY -> Bool
(AlignY -> AlignY -> Bool)
-> (AlignY -> AlignY -> Bool) -> Eq AlignY
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AlignY -> AlignY -> Bool
== :: AlignY -> AlignY -> Bool
$c/= :: AlignY -> AlignY -> Bool
/= :: AlignY -> AlignY -> Bool
Eq, Int -> AlignY -> ShowS
[AlignY] -> ShowS
AlignY -> String
(Int -> AlignY -> ShowS)
-> (AlignY -> String) -> ([AlignY] -> ShowS) -> Show AlignY
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AlignY -> ShowS
showsPrec :: Int -> AlignY -> ShowS
$cshow :: AlignY -> String
show :: AlignY -> String
$cshowList :: [AlignY] -> ShowS
showList :: [AlignY] -> ShowS
Show, Int -> AlignY
AlignY -> Int
AlignY -> [AlignY]
AlignY -> AlignY
AlignY -> AlignY -> [AlignY]
AlignY -> AlignY -> AlignY -> [AlignY]
(AlignY -> AlignY)
-> (AlignY -> AlignY)
-> (Int -> AlignY)
-> (AlignY -> Int)
-> (AlignY -> [AlignY])
-> (AlignY -> AlignY -> [AlignY])
-> (AlignY -> AlignY -> [AlignY])
-> (AlignY -> AlignY -> AlignY -> [AlignY])
-> Enum AlignY
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: AlignY -> AlignY
succ :: AlignY -> AlignY
$cpred :: AlignY -> AlignY
pred :: AlignY -> AlignY
$ctoEnum :: Int -> AlignY
toEnum :: Int -> AlignY
$cfromEnum :: AlignY -> Int
fromEnum :: AlignY -> Int
$cenumFrom :: AlignY -> [AlignY]
enumFrom :: AlignY -> [AlignY]
$cenumFromThen :: AlignY -> AlignY -> [AlignY]
enumFromThen :: AlignY -> AlignY -> [AlignY]
$cenumFromTo :: AlignY -> AlignY -> [AlignY]
enumFromTo :: AlignY -> AlignY -> [AlignY]
$cenumFromThenTo :: AlignY -> AlignY -> AlignY -> [AlignY]
enumFromThenTo :: AlignY -> AlignY -> AlignY -> [AlignY]
Enum, AlignY
AlignY -> AlignY -> Bounded AlignY
forall a. a -> a -> Bounded a
$cminBound :: AlignY
minBound :: AlignY
$cmaxBound :: AlignY
maxBound :: AlignY
Bounded)
data Padding = Padding
{ Padding -> Float
padL :: {-# UNPACK #-} !Float
, Padding -> Float
padR :: {-# UNPACK #-} !Float
, Padding -> Float
padT :: {-# UNPACK #-} !Float
, Padding -> Float
padB :: {-# UNPACK #-} !Float
}
deriving (Padding -> Padding -> Bool
(Padding -> Padding -> Bool)
-> (Padding -> Padding -> Bool) -> Eq Padding
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Padding -> Padding -> Bool
== :: Padding -> Padding -> Bool
$c/= :: Padding -> Padding -> Bool
/= :: Padding -> Padding -> Bool
Eq, Int -> Padding -> ShowS
[Padding] -> ShowS
Padding -> String
(Int -> Padding -> ShowS)
-> (Padding -> String) -> ([Padding] -> ShowS) -> Show Padding
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Padding -> ShowS
showsPrec :: Int -> Padding -> ShowS
$cshow :: Padding -> String
show :: Padding -> String
$cshowList :: [Padding] -> ShowS
showList :: [Padding] -> ShowS
Show)
windowPad :: Padding
windowPad :: Padding
windowPad = Float -> Float -> Float -> Float -> Padding
Padding Float
10 Float
10 Float
0 Float
10
windowMargin :: Float
windowMargin :: Float
windowMargin = Float
14
data FontVariant
= FontRegular
| FontHeading
| FontMuted
| FontMono
| FontDanger
deriving (FontVariant -> FontVariant -> Bool
(FontVariant -> FontVariant -> Bool)
-> (FontVariant -> FontVariant -> Bool) -> Eq FontVariant
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FontVariant -> FontVariant -> Bool
== :: FontVariant -> FontVariant -> Bool
$c/= :: FontVariant -> FontVariant -> Bool
/= :: FontVariant -> FontVariant -> Bool
Eq, Int -> FontVariant -> ShowS
[FontVariant] -> ShowS
FontVariant -> String
(Int -> FontVariant -> ShowS)
-> (FontVariant -> String)
-> ([FontVariant] -> ShowS)
-> Show FontVariant
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FontVariant -> ShowS
showsPrec :: Int -> FontVariant -> ShowS
$cshow :: FontVariant -> String
show :: FontVariant -> String
$cshowList :: [FontVariant] -> ShowS
showList :: [FontVariant] -> ShowS
Show, Int -> FontVariant
FontVariant -> Int
FontVariant -> [FontVariant]
FontVariant -> FontVariant
FontVariant -> FontVariant -> [FontVariant]
FontVariant -> FontVariant -> FontVariant -> [FontVariant]
(FontVariant -> FontVariant)
-> (FontVariant -> FontVariant)
-> (Int -> FontVariant)
-> (FontVariant -> Int)
-> (FontVariant -> [FontVariant])
-> (FontVariant -> FontVariant -> [FontVariant])
-> (FontVariant -> FontVariant -> [FontVariant])
-> (FontVariant -> FontVariant -> FontVariant -> [FontVariant])
-> Enum FontVariant
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: FontVariant -> FontVariant
succ :: FontVariant -> FontVariant
$cpred :: FontVariant -> FontVariant
pred :: FontVariant -> FontVariant
$ctoEnum :: Int -> FontVariant
toEnum :: Int -> FontVariant
$cfromEnum :: FontVariant -> Int
fromEnum :: FontVariant -> Int
$cenumFrom :: FontVariant -> [FontVariant]
enumFrom :: FontVariant -> [FontVariant]
$cenumFromThen :: FontVariant -> FontVariant -> [FontVariant]
enumFromThen :: FontVariant -> FontVariant -> [FontVariant]
$cenumFromTo :: FontVariant -> FontVariant -> [FontVariant]
enumFromTo :: FontVariant -> FontVariant -> [FontVariant]
$cenumFromThenTo :: FontVariant -> FontVariant -> FontVariant -> [FontVariant]
enumFromThenTo :: FontVariant -> FontVariant -> FontVariant -> [FontVariant]
Enum, FontVariant
FontVariant -> FontVariant -> Bounded FontVariant
forall a. a -> a -> Bounded a
$cminBound :: FontVariant
minBound :: FontVariant
$cmaxBound :: FontVariant
maxBound :: FontVariant
Bounded, Eq FontVariant
Eq FontVariant =>
(FontVariant -> FontVariant -> Ordering)
-> (FontVariant -> FontVariant -> Bool)
-> (FontVariant -> FontVariant -> Bool)
-> (FontVariant -> FontVariant -> Bool)
-> (FontVariant -> FontVariant -> Bool)
-> (FontVariant -> FontVariant -> FontVariant)
-> (FontVariant -> FontVariant -> FontVariant)
-> Ord FontVariant
FontVariant -> FontVariant -> Bool
FontVariant -> FontVariant -> Ordering
FontVariant -> FontVariant -> FontVariant
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: FontVariant -> FontVariant -> Ordering
compare :: FontVariant -> FontVariant -> Ordering
$c< :: FontVariant -> FontVariant -> Bool
< :: FontVariant -> FontVariant -> Bool
$c<= :: FontVariant -> FontVariant -> Bool
<= :: FontVariant -> FontVariant -> Bool
$c> :: FontVariant -> FontVariant -> Bool
> :: FontVariant -> FontVariant -> Bool
$c>= :: FontVariant -> FontVariant -> Bool
>= :: FontVariant -> FontVariant -> Bool
$cmax :: FontVariant -> FontVariant -> FontVariant
max :: FontVariant -> FontVariant -> FontVariant
$cmin :: FontVariant -> FontVariant -> FontVariant
min :: FontVariant -> FontVariant -> FontVariant
Ord)
data FontWeight
= WeightNormal
| WeightBold
| WeightLight
| WeightMedium
| WeightSemiBold
|
| WeightBlack
deriving (FontWeight -> FontWeight -> Bool
(FontWeight -> FontWeight -> Bool)
-> (FontWeight -> FontWeight -> Bool) -> Eq FontWeight
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FontWeight -> FontWeight -> Bool
== :: FontWeight -> FontWeight -> Bool
$c/= :: FontWeight -> FontWeight -> Bool
/= :: FontWeight -> FontWeight -> Bool
Eq, Int -> FontWeight -> ShowS
[FontWeight] -> ShowS
FontWeight -> String
(Int -> FontWeight -> ShowS)
-> (FontWeight -> String)
-> ([FontWeight] -> ShowS)
-> Show FontWeight
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FontWeight -> ShowS
showsPrec :: Int -> FontWeight -> ShowS
$cshow :: FontWeight -> String
show :: FontWeight -> String
$cshowList :: [FontWeight] -> ShowS
showList :: [FontWeight] -> ShowS
Show, Int -> FontWeight
FontWeight -> Int
FontWeight -> [FontWeight]
FontWeight -> FontWeight
FontWeight -> FontWeight -> [FontWeight]
FontWeight -> FontWeight -> FontWeight -> [FontWeight]
(FontWeight -> FontWeight)
-> (FontWeight -> FontWeight)
-> (Int -> FontWeight)
-> (FontWeight -> Int)
-> (FontWeight -> [FontWeight])
-> (FontWeight -> FontWeight -> [FontWeight])
-> (FontWeight -> FontWeight -> [FontWeight])
-> (FontWeight -> FontWeight -> FontWeight -> [FontWeight])
-> Enum FontWeight
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: FontWeight -> FontWeight
succ :: FontWeight -> FontWeight
$cpred :: FontWeight -> FontWeight
pred :: FontWeight -> FontWeight
$ctoEnum :: Int -> FontWeight
toEnum :: Int -> FontWeight
$cfromEnum :: FontWeight -> Int
fromEnum :: FontWeight -> Int
$cenumFrom :: FontWeight -> [FontWeight]
enumFrom :: FontWeight -> [FontWeight]
$cenumFromThen :: FontWeight -> FontWeight -> [FontWeight]
enumFromThen :: FontWeight -> FontWeight -> [FontWeight]
$cenumFromTo :: FontWeight -> FontWeight -> [FontWeight]
enumFromTo :: FontWeight -> FontWeight -> [FontWeight]
$cenumFromThenTo :: FontWeight -> FontWeight -> FontWeight -> [FontWeight]
enumFromThenTo :: FontWeight -> FontWeight -> FontWeight -> [FontWeight]
Enum, FontWeight
FontWeight -> FontWeight -> Bounded FontWeight
forall a. a -> a -> Bounded a
$cminBound :: FontWeight
minBound :: FontWeight
$cmaxBound :: FontWeight
maxBound :: FontWeight
Bounded, Eq FontWeight
Eq FontWeight =>
(FontWeight -> FontWeight -> Ordering)
-> (FontWeight -> FontWeight -> Bool)
-> (FontWeight -> FontWeight -> Bool)
-> (FontWeight -> FontWeight -> Bool)
-> (FontWeight -> FontWeight -> Bool)
-> (FontWeight -> FontWeight -> FontWeight)
-> (FontWeight -> FontWeight -> FontWeight)
-> Ord FontWeight
FontWeight -> FontWeight -> Bool
FontWeight -> FontWeight -> Ordering
FontWeight -> FontWeight -> FontWeight
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: FontWeight -> FontWeight -> Ordering
compare :: FontWeight -> FontWeight -> Ordering
$c< :: FontWeight -> FontWeight -> Bool
< :: FontWeight -> FontWeight -> Bool
$c<= :: FontWeight -> FontWeight -> Bool
<= :: FontWeight -> FontWeight -> Bool
$c> :: FontWeight -> FontWeight -> Bool
> :: FontWeight -> FontWeight -> Bool
$c>= :: FontWeight -> FontWeight -> Bool
>= :: FontWeight -> FontWeight -> Bool
$cmax :: FontWeight -> FontWeight -> FontWeight
max :: FontWeight -> FontWeight -> FontWeight
$cmin :: FontWeight -> FontWeight -> FontWeight
min :: FontWeight -> FontWeight -> FontWeight
Ord)
data FontStyle
= FontStyleNormal
| FontStyleItalic
| FontStyleOblique
deriving (FontStyle -> FontStyle -> Bool
(FontStyle -> FontStyle -> Bool)
-> (FontStyle -> FontStyle -> Bool) -> Eq FontStyle
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FontStyle -> FontStyle -> Bool
== :: FontStyle -> FontStyle -> Bool
$c/= :: FontStyle -> FontStyle -> Bool
/= :: FontStyle -> FontStyle -> Bool
Eq, Int -> FontStyle -> ShowS
[FontStyle] -> ShowS
FontStyle -> String
(Int -> FontStyle -> ShowS)
-> (FontStyle -> String)
-> ([FontStyle] -> ShowS)
-> Show FontStyle
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FontStyle -> ShowS
showsPrec :: Int -> FontStyle -> ShowS
$cshow :: FontStyle -> String
show :: FontStyle -> String
$cshowList :: [FontStyle] -> ShowS
showList :: [FontStyle] -> ShowS
Show, Int -> FontStyle
FontStyle -> Int
FontStyle -> [FontStyle]
FontStyle -> FontStyle
FontStyle -> FontStyle -> [FontStyle]
FontStyle -> FontStyle -> FontStyle -> [FontStyle]
(FontStyle -> FontStyle)
-> (FontStyle -> FontStyle)
-> (Int -> FontStyle)
-> (FontStyle -> Int)
-> (FontStyle -> [FontStyle])
-> (FontStyle -> FontStyle -> [FontStyle])
-> (FontStyle -> FontStyle -> [FontStyle])
-> (FontStyle -> FontStyle -> FontStyle -> [FontStyle])
-> Enum FontStyle
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: FontStyle -> FontStyle
succ :: FontStyle -> FontStyle
$cpred :: FontStyle -> FontStyle
pred :: FontStyle -> FontStyle
$ctoEnum :: Int -> FontStyle
toEnum :: Int -> FontStyle
$cfromEnum :: FontStyle -> Int
fromEnum :: FontStyle -> Int
$cenumFrom :: FontStyle -> [FontStyle]
enumFrom :: FontStyle -> [FontStyle]
$cenumFromThen :: FontStyle -> FontStyle -> [FontStyle]
enumFromThen :: FontStyle -> FontStyle -> [FontStyle]
$cenumFromTo :: FontStyle -> FontStyle -> [FontStyle]
enumFromTo :: FontStyle -> FontStyle -> [FontStyle]
$cenumFromThenTo :: FontStyle -> FontStyle -> FontStyle -> [FontStyle]
enumFromThenTo :: FontStyle -> FontStyle -> FontStyle -> [FontStyle]
Enum, FontStyle
FontStyle -> FontStyle -> Bounded FontStyle
forall a. a -> a -> Bounded a
$cminBound :: FontStyle
minBound :: FontStyle
$cmaxBound :: FontStyle
maxBound :: FontStyle
Bounded, Eq FontStyle
Eq FontStyle =>
(FontStyle -> FontStyle -> Ordering)
-> (FontStyle -> FontStyle -> Bool)
-> (FontStyle -> FontStyle -> Bool)
-> (FontStyle -> FontStyle -> Bool)
-> (FontStyle -> FontStyle -> Bool)
-> (FontStyle -> FontStyle -> FontStyle)
-> (FontStyle -> FontStyle -> FontStyle)
-> Ord FontStyle
FontStyle -> FontStyle -> Bool
FontStyle -> FontStyle -> Ordering
FontStyle -> FontStyle -> FontStyle
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: FontStyle -> FontStyle -> Ordering
compare :: FontStyle -> FontStyle -> Ordering
$c< :: FontStyle -> FontStyle -> Bool
< :: FontStyle -> FontStyle -> Bool
$c<= :: FontStyle -> FontStyle -> Bool
<= :: FontStyle -> FontStyle -> Bool
$c> :: FontStyle -> FontStyle -> Bool
> :: FontStyle -> FontStyle -> Bool
$c>= :: FontStyle -> FontStyle -> Bool
>= :: FontStyle -> FontStyle -> Bool
$cmax :: FontStyle -> FontStyle -> FontStyle
max :: FontStyle -> FontStyle -> FontStyle
$cmin :: FontStyle -> FontStyle -> FontStyle
min :: FontStyle -> FontStyle -> FontStyle
Ord)
data TextDecoration
= DecorationNone
| DecorationUnderline
| DecorationStrikethrough
| DecorationUnderlineStrike
deriving (TextDecoration -> TextDecoration -> Bool
(TextDecoration -> TextDecoration -> Bool)
-> (TextDecoration -> TextDecoration -> Bool) -> Eq TextDecoration
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TextDecoration -> TextDecoration -> Bool
== :: TextDecoration -> TextDecoration -> Bool
$c/= :: TextDecoration -> TextDecoration -> Bool
/= :: TextDecoration -> TextDecoration -> Bool
Eq, Int -> TextDecoration -> ShowS
[TextDecoration] -> ShowS
TextDecoration -> String
(Int -> TextDecoration -> ShowS)
-> (TextDecoration -> String)
-> ([TextDecoration] -> ShowS)
-> Show TextDecoration
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TextDecoration -> ShowS
showsPrec :: Int -> TextDecoration -> ShowS
$cshow :: TextDecoration -> String
show :: TextDecoration -> String
$cshowList :: [TextDecoration] -> ShowS
showList :: [TextDecoration] -> ShowS
Show, Int -> TextDecoration
TextDecoration -> Int
TextDecoration -> [TextDecoration]
TextDecoration -> TextDecoration
TextDecoration -> TextDecoration -> [TextDecoration]
TextDecoration
-> TextDecoration -> TextDecoration -> [TextDecoration]
(TextDecoration -> TextDecoration)
-> (TextDecoration -> TextDecoration)
-> (Int -> TextDecoration)
-> (TextDecoration -> Int)
-> (TextDecoration -> [TextDecoration])
-> (TextDecoration -> TextDecoration -> [TextDecoration])
-> (TextDecoration -> TextDecoration -> [TextDecoration])
-> (TextDecoration
-> TextDecoration -> TextDecoration -> [TextDecoration])
-> Enum TextDecoration
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: TextDecoration -> TextDecoration
succ :: TextDecoration -> TextDecoration
$cpred :: TextDecoration -> TextDecoration
pred :: TextDecoration -> TextDecoration
$ctoEnum :: Int -> TextDecoration
toEnum :: Int -> TextDecoration
$cfromEnum :: TextDecoration -> Int
fromEnum :: TextDecoration -> Int
$cenumFrom :: TextDecoration -> [TextDecoration]
enumFrom :: TextDecoration -> [TextDecoration]
$cenumFromThen :: TextDecoration -> TextDecoration -> [TextDecoration]
enumFromThen :: TextDecoration -> TextDecoration -> [TextDecoration]
$cenumFromTo :: TextDecoration -> TextDecoration -> [TextDecoration]
enumFromTo :: TextDecoration -> TextDecoration -> [TextDecoration]
$cenumFromThenTo :: TextDecoration
-> TextDecoration -> TextDecoration -> [TextDecoration]
enumFromThenTo :: TextDecoration
-> TextDecoration -> TextDecoration -> [TextDecoration]
Enum, TextDecoration
TextDecoration -> TextDecoration -> Bounded TextDecoration
forall a. a -> a -> Bounded a
$cminBound :: TextDecoration
minBound :: TextDecoration
$cmaxBound :: TextDecoration
maxBound :: TextDecoration
Bounded, Eq TextDecoration
Eq TextDecoration =>
(TextDecoration -> TextDecoration -> Ordering)
-> (TextDecoration -> TextDecoration -> Bool)
-> (TextDecoration -> TextDecoration -> Bool)
-> (TextDecoration -> TextDecoration -> Bool)
-> (TextDecoration -> TextDecoration -> Bool)
-> (TextDecoration -> TextDecoration -> TextDecoration)
-> (TextDecoration -> TextDecoration -> TextDecoration)
-> Ord TextDecoration
TextDecoration -> TextDecoration -> Bool
TextDecoration -> TextDecoration -> Ordering
TextDecoration -> TextDecoration -> TextDecoration
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: TextDecoration -> TextDecoration -> Ordering
compare :: TextDecoration -> TextDecoration -> Ordering
$c< :: TextDecoration -> TextDecoration -> Bool
< :: TextDecoration -> TextDecoration -> Bool
$c<= :: TextDecoration -> TextDecoration -> Bool
<= :: TextDecoration -> TextDecoration -> Bool
$c> :: TextDecoration -> TextDecoration -> Bool
> :: TextDecoration -> TextDecoration -> Bool
$c>= :: TextDecoration -> TextDecoration -> Bool
>= :: TextDecoration -> TextDecoration -> Bool
$cmax :: TextDecoration -> TextDecoration -> TextDecoration
max :: TextDecoration -> TextDecoration -> TextDecoration
$cmin :: TextDecoration -> TextDecoration -> TextDecoration
min :: TextDecoration -> TextDecoration -> TextDecoration
Ord)
type LayoutModifier = Layout -> Layout
data Layout = Layout
{ Layout -> Direction
layoutDirection :: !Direction
, Layout -> Sizing
layoutWidth :: !Sizing
, Layout -> Sizing
layoutHeight :: !Sizing
, Layout -> Padding
layoutPadding :: !Padding
, Layout -> Float
layoutGap :: {-# UNPACK #-} !Float
, Layout -> AlignX
layoutAlignX :: !AlignX
, Layout -> AlignY
layoutAlignY :: !AlignY
, Layout -> Float
layoutMinW :: {-# UNPACK #-} !Float
, Layout -> Float
layoutMinH :: {-# UNPACK #-} !Float
, Layout -> Float
layoutMaxW :: {-# UNPACK #-} !Float
, Layout -> Float
layoutMaxH :: {-# UNPACK #-} !Float
, Layout -> FontVariant
layoutFontVariant :: !FontVariant
, Layout -> Int
layoutGridCols :: {-# UNPACK #-} !Int
, Layout -> Float
layoutGridMinColW :: {-# UNPACK #-} !Float
, Layout -> Float
layoutFontSize :: {-# UNPACK #-} !Float
, Layout -> Maybe Color
layoutFontColor :: !(Maybe Color)
, Layout -> FontWeight
layoutFontWeight :: !FontWeight
, Layout -> FontStyle
layoutFontStyle :: !FontStyle
, Layout -> TextDecoration
layoutTextDecoration :: !TextDecoration
}
deriving (Layout -> Layout -> Bool
(Layout -> Layout -> Bool)
-> (Layout -> Layout -> Bool) -> Eq Layout
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Layout -> Layout -> Bool
== :: Layout -> Layout -> Bool
$c/= :: Layout -> Layout -> Bool
/= :: Layout -> Layout -> Bool
Eq, Int -> Layout -> ShowS
[Layout] -> ShowS
Layout -> String
(Int -> Layout -> ShowS)
-> (Layout -> String) -> ([Layout] -> ShowS) -> Show Layout
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Layout -> ShowS
showsPrec :: Int -> Layout -> ShowS
$cshow :: Layout -> String
show :: Layout -> String
$cshowList :: [Layout] -> ShowS
showList :: [Layout] -> ShowS
Show)
defaultLayout :: Layout
defaultLayout :: Layout
defaultLayout =
Layout
{ layoutDirection :: Direction
layoutDirection = Direction
Column
, layoutWidth :: Sizing
layoutWidth = Sizing
Fit
, layoutHeight :: Sizing
layoutHeight = Sizing
Fit
, layoutPadding :: Padding
layoutPadding = Float -> Float -> Float -> Float -> Padding
Padding Float
3 Float
3 Float
3 Float
3
, layoutGap :: Float
layoutGap = Float
8
, layoutAlignX :: AlignX
layoutAlignX = AlignX
AlignStart
, layoutAlignY :: AlignY
layoutAlignY = AlignY
AlignTop
, layoutMinW :: Float
layoutMinW = Float
0
, layoutMinH :: Float
layoutMinH = Float
0
, layoutMaxW :: Float
layoutMaxW = Float
1e9
, layoutMaxH :: Float
layoutMaxH = Float
1e9
, layoutFontVariant :: FontVariant
layoutFontVariant = FontVariant
FontRegular
, layoutGridCols :: Int
layoutGridCols = Int
0
, layoutGridMinColW :: Float
layoutGridMinColW = Float
0
, layoutFontSize :: Float
layoutFontSize = Float
0
, layoutFontColor :: Maybe Color
layoutFontColor = Maybe Color
forall a. Maybe a
Nothing
, layoutFontWeight :: FontWeight
layoutFontWeight = FontWeight
WeightNormal
, layoutFontStyle :: FontStyle
layoutFontStyle = FontStyle
FontStyleNormal
, layoutTextDecoration :: TextDecoration
layoutTextDecoration = TextDecoration
DecorationNone
}
padAll :: Float -> Layout -> Layout
padAll :: Float -> Layout -> Layout
padAll Float
n Layout
l = Layout
l {layoutPadding = Padding n n n n}
padXY :: Float -> Float -> Layout -> Layout
padXY :: Float -> Float -> Layout -> Layout
padXY Float
x Float
y Layout
l = Layout
l {layoutPadding = Padding x x y y}
gap :: Float -> Layout -> Layout
gap :: Float -> Layout -> Layout
gap Float
n Layout
l = Layout
l {layoutGap = n}
fillW :: Layout -> Layout
fillW :: Layout -> Layout
fillW Layout
l = Layout
l {layoutWidth = Grow 1}
fillH :: Layout -> Layout
fillH :: Layout -> Layout
fillH Layout
l = Layout
l {layoutHeight = Grow 1}
grow :: Layout -> Layout
grow :: Layout -> Layout
grow = Layout -> Layout
fillW (Layout -> Layout) -> (Layout -> Layout) -> Layout -> Layout
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Layout -> Layout
fillH
minW :: Float -> Layout -> Layout
minW :: Float -> Layout -> Layout
minW Float
n Layout
l = Layout
l {layoutMinW = n}
maxW :: Float -> Layout -> Layout
maxW :: Float -> Layout -> Layout
maxW Float
n Layout
l = Layout
l {layoutMaxW = n}
fixedW :: Float -> Layout -> Layout
fixedW :: Float -> Layout -> Layout
fixedW Float
n Layout
l = Layout
l {layoutWidth = Fixed n, layoutMinW = n, layoutMaxW = n}
minH :: Float -> Layout -> Layout
minH :: Float -> Layout -> Layout
minH Float
n Layout
l = Layout
l {layoutMinH = n}
maxH :: Float -> Layout -> Layout
maxH :: Float -> Layout -> Layout
maxH Float
n Layout
l = Layout
l {layoutMaxH = n}
fixedH :: Float -> Layout -> Layout
fixedH :: Float -> Layout -> Layout
fixedH Float
n Layout
l = Layout
l {layoutHeight = Fixed n}
fixedWH :: Float -> Float -> Layout -> Layout
fixedWH :: Float -> Float -> Layout -> Layout
fixedWH Float
w Float
h Layout
l = Layout
l {layoutWidth = Fixed w, layoutHeight = Fixed h}
alignMid :: Layout -> Layout
alignMid :: Layout -> Layout
alignMid Layout
l = Layout
l {layoutAlignY = AlignMiddle}
alignEnd :: Layout -> Layout
alignEnd :: Layout -> Layout
alignEnd Layout
l = Layout
l {layoutAlignX = AlignEnd}
tight :: Layout -> Layout
tight :: Layout -> Layout
tight Layout
l = Layout
l {layoutPadding = Padding 0 0 0 0}
percent :: Float -> Layout -> Layout
percent :: Float -> Layout -> Layout
percent Float
p Layout
l = Layout
l {layoutWidth = Percent p}
gridMinColW :: Float -> Layout -> Layout
gridMinColW :: Float -> Layout -> Layout
gridMinColW Float
w Layout
l = Layout
l {layoutGridMinColW = max 0 w}
fixedAspectW :: Float -> Float -> Layout -> Layout
fixedAspectW :: Float -> Float -> Layout -> Layout
fixedAspectW Float
w Float
ratio = Float -> Float -> Layout -> Layout
fixedWH Float
w (Float
w Float -> Float -> Float
forall a. Fractional a => a -> a -> a
/ Float
ratio)
fixedAspectH :: Float -> Float -> Layout -> Layout
fixedAspectH :: Float -> Float -> Layout -> Layout
fixedAspectH Float
h Float
ratio = Float -> Float -> Layout -> Layout
fixedWH (Float
h Float -> Float -> Float
forall a. Num a => a -> a -> a
* Float
ratio) Float
h
gridCols :: Int -> Layout -> Layout
gridCols :: Int -> Layout -> Layout
gridCols Int
n Layout
l = Layout
l {layoutGridCols = max 0 n}
fontRegular :: Layout -> Layout
fontRegular :: Layout -> Layout
fontRegular Layout
l = Layout
l {layoutFontVariant = FontRegular}
fontHeading :: Layout -> Layout
fontHeading :: Layout -> Layout
fontHeading Layout
l = Layout
l {layoutFontVariant = FontHeading}
fontMuted :: Layout -> Layout
fontMuted :: Layout -> Layout
fontMuted Layout
l = Layout
l {layoutFontVariant = FontMuted}
fontMono :: Layout -> Layout
fontMono :: Layout -> Layout
fontMono Layout
l = Layout
l {layoutFontVariant = FontMono}
fontDanger :: Layout -> Layout
fontDanger :: Layout -> Layout
fontDanger Layout
l = Layout
l {layoutFontVariant = FontDanger}
fontSize :: Float -> Layout -> Layout
fontSize :: Float -> Layout -> Layout
fontSize Float
sz Layout
l = Layout
l {layoutFontSize = max 0 sz}
fontSizeScale :: Float -> Layout -> Layout
fontSizeScale :: Float -> Layout -> Layout
fontSizeScale Float
s Layout
l =
let cur :: Float
cur = Layout -> Float
layoutFontSize Layout
l
sz :: Float
sz = if Float
cur Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0 then Float
cur Float -> Float -> Float
forall a. Num a => a -> a -> a
* Float
s else Float
16 Float -> Float -> Float
forall a. Num a => a -> a -> a
* Float
s
in Layout
l {layoutFontSize = max 0 sz}
fontColor :: Color -> Layout -> Layout
fontColor :: Color -> Layout -> Layout
fontColor Color
col Layout
l = Layout
l {layoutFontColor = Just col}
fontWeight :: FontWeight -> Layout -> Layout
fontWeight :: FontWeight -> Layout -> Layout
fontWeight FontWeight
w Layout
l = Layout
l {layoutFontWeight = w}
fontBold :: Layout -> Layout
fontBold :: Layout -> Layout
fontBold = FontWeight -> Layout -> Layout
fontWeight FontWeight
WeightBold
fontLight :: Layout -> Layout
fontLight :: Layout -> Layout
fontLight = FontWeight -> Layout -> Layout
fontWeight FontWeight
WeightLight
fontMedium :: Layout -> Layout
fontMedium :: Layout -> Layout
fontMedium = FontWeight -> Layout -> Layout
fontWeight FontWeight
WeightMedium
fontSemiBold :: Layout -> Layout
fontSemiBold :: Layout -> Layout
fontSemiBold = FontWeight -> Layout -> Layout
fontWeight FontWeight
WeightSemiBold
fontExtraBold :: Layout -> Layout
= FontWeight -> Layout -> Layout
fontWeight FontWeight
WeightExtraBold
fontBlack :: Layout -> Layout
fontBlack :: Layout -> Layout
fontBlack = FontWeight -> Layout -> Layout
fontWeight FontWeight
WeightBlack
fontStyle :: FontStyle -> Layout -> Layout
fontStyle :: FontStyle -> Layout -> Layout
fontStyle FontStyle
s Layout
l = Layout
l {layoutFontStyle = s}
fontItalic :: Layout -> Layout
fontItalic :: Layout -> Layout
fontItalic = FontStyle -> Layout -> Layout
fontStyle FontStyle
FontStyleItalic
fontOblique :: Layout -> Layout
fontOblique :: Layout -> Layout
fontOblique = FontStyle -> Layout -> Layout
fontStyle FontStyle
FontStyleOblique
textDecoration :: TextDecoration -> Layout -> Layout
textDecoration :: TextDecoration -> Layout -> Layout
textDecoration TextDecoration
d Layout
l = Layout
l {layoutTextDecoration = d}
fontUnderline :: Layout -> Layout
fontUnderline :: Layout -> Layout
fontUnderline Layout
l =
let newDeco :: TextDecoration
newDeco = case Layout -> TextDecoration
layoutTextDecoration Layout
l of
TextDecoration
DecorationStrikethrough -> TextDecoration
DecorationUnderlineStrike
TextDecoration
DecorationUnderlineStrike -> TextDecoration
DecorationUnderlineStrike
TextDecoration
_ -> TextDecoration
DecorationUnderline
in Layout
l {layoutTextDecoration = newDeco}
fontStrike :: Layout -> Layout
fontStrike :: Layout -> Layout
fontStrike Layout
l =
let newDeco :: TextDecoration
newDeco = case Layout -> TextDecoration
layoutTextDecoration Layout
l of
TextDecoration
DecorationUnderline -> TextDecoration
DecorationUnderlineStrike
TextDecoration
DecorationUnderlineStrike -> TextDecoration
DecorationUnderlineStrike
TextDecoration
_ -> TextDecoration
DecorationStrikethrough
in Layout
l {layoutTextDecoration = newDeco}
alignStart :: Layout -> Layout
alignStart :: Layout -> Layout
alignStart Layout
l = Layout
l {layoutAlignX = AlignStart}
alignCenter :: Layout -> Layout
alignCenter :: Layout -> Layout
alignCenter Layout
l = Layout
l {layoutAlignX = AlignCenter}
alignTop :: Layout -> Layout
alignTop :: Layout -> Layout
alignTop Layout
l = Layout
l {layoutAlignY = AlignTop}
alignBottom :: Layout -> Layout
alignBottom :: Layout -> Layout
alignBottom Layout
l = Layout
l {layoutAlignY = AlignBottom}
alignBaseline :: Layout -> Layout
alignBaseline :: Layout -> Layout
alignBaseline Layout
l = Layout
l {layoutAlignY = AlignBaseline}
data Style = Style
{ Style -> Color
styleBg :: {-# UNPACK #-} !Color
, Style -> Color
styleFg :: {-# UNPACK #-} !Color
, Style -> Color
styleBorder :: {-# UNPACK #-} !Color
, Style -> Float
styleBorderWidth :: {-# UNPACK #-} !Float
, Style -> Float
styleCornerRadius :: {-# UNPACK #-} !Float
, Style -> Color
styleHoverBg :: {-# UNPACK #-} !Color
, Style -> Color
styleActiveBg :: {-# UNPACK #-} !Color
}
deriving (Style -> Style -> Bool
(Style -> Style -> Bool) -> (Style -> Style -> Bool) -> Eq Style
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Style -> Style -> Bool
== :: Style -> Style -> Bool
$c/= :: Style -> Style -> Bool
/= :: Style -> Style -> Bool
Eq, Int -> Style -> ShowS
[Style] -> ShowS
Style -> String
(Int -> Style -> ShowS)
-> (Style -> String) -> ([Style] -> ShowS) -> Show Style
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Style -> ShowS
showsPrec :: Int -> Style -> ShowS
$cshow :: Style -> String
show :: Style -> String
$cshowList :: [Style] -> ShowS
showList :: [Style] -> ShowS
Show)
data Theme = Theme
{ Theme -> Color
themeWindow :: {-# UNPACK #-} !Color
, Theme -> Style
themePanel :: !Style
, Theme -> Style
themeFloatingWindow :: !Style
, Theme -> Style
themeButton :: !Style
, Theme -> Style
themeInput :: !Style
, Theme -> Color
themeSeparator :: {-# UNPACK #-} !Color
, Theme -> Color
themeAccent :: {-# UNPACK #-} !Color
, Theme -> Color
themeMuted :: {-# UNPACK #-} !Color
, Theme -> Color
themeRed :: {-# UNPACK #-} !Color
, Theme -> Color
themeOrange :: {-# UNPACK #-} !Color
, Theme -> Color
themeYellow :: {-# UNPACK #-} !Color
, Theme -> Color
themeGreen :: {-# UNPACK #-} !Color
, Theme -> Color
themePurple :: {-# UNPACK #-} !Color
, Theme -> Color
themeOverlayDim :: {-# UNPACK #-} !Color
, Theme -> Color
themeOnAccent :: {-# UNPACK #-} !Color
, Theme -> Color
themeSelection :: {-# UNPACK #-} !Color
, Theme -> Color
themeFocusRing :: {-# UNPACK #-} !Color
, Theme -> Color
themeLink :: {-# UNPACK #-} !Color
, Theme -> Color
themeShadow :: {-# UNPACK #-} !Color
, Theme -> Float
themeDisabledFade :: {-# UNPACK #-} !Float
}
deriving (Theme -> Theme -> Bool
(Theme -> Theme -> Bool) -> (Theme -> Theme -> Bool) -> Eq Theme
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Theme -> Theme -> Bool
== :: Theme -> Theme -> Bool
$c/= :: Theme -> Theme -> Bool
/= :: Theme -> Theme -> Bool
Eq, Int -> Theme -> ShowS
[Theme] -> ShowS
Theme -> String
(Int -> Theme -> ShowS)
-> (Theme -> String) -> ([Theme] -> ShowS) -> Show Theme
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Theme -> ShowS
showsPrec :: Int -> Theme -> ShowS
$cshow :: Theme -> String
show :: Theme -> String
$cshowList :: [Theme] -> ShowS
showList :: [Theme] -> ShowS
Show)
background :: Color -> Style -> Style
background :: Color -> Style -> Style
background Color
c Style
s = Style
s {styleBg = c}
foreground :: Color -> Style -> Style
foreground :: Color -> Style -> Style
foreground Color
c Style
s = Style
s {styleFg = c}
borderColor :: Color -> Style -> Style
borderColor :: Color -> Style -> Style
borderColor Color
c Style
s = Style
s {styleBorder = c}
borderWidth :: Float -> Style -> Style
borderWidth :: Float -> Style -> Style
borderWidth Float
w Style
s = Style
s {styleBorderWidth = max 0 w}
cornerRadius :: Float -> Style -> Style
cornerRadius :: Float -> Style -> Style
cornerRadius Float
r Style
s = Style
s {styleCornerRadius = max 0 r}
hoverBackground :: Color -> Style -> Style
hoverBackground :: Color -> Style -> Style
hoverBackground Color
c Style
s = Style
s {styleHoverBg = c}
pressBackground :: Color -> Style -> Style
pressBackground :: Color -> Style -> Style
pressBackground Color
c Style
s = Style
s {styleActiveBg = c}
fillColor :: Color -> Style -> Style
fillColor :: Color -> Style -> Style
fillColor Color
c Style
s =
Style
s
{ styleBg = c
, styleHoverBg = lerpColor c (styleFg s) 0.12
, styleActiveBg = lerpColor c (colorRGBA 0 0 0 (colorA c)) 0.18
}
buttonStyle :: (Style -> Style) -> Theme -> Theme
buttonStyle :: (Style -> Style) -> Theme -> Theme
buttonStyle Style -> Style
f Theme
t = Theme
t {themeButton = f (themeButton t)}
inputStyle :: (Style -> Style) -> Theme -> Theme
inputStyle :: (Style -> Style) -> Theme -> Theme
inputStyle Style -> Style
f Theme
t = Theme
t {themeInput = f (themeInput t)}
panelStyle :: (Style -> Style) -> Theme -> Theme
panelStyle :: (Style -> Style) -> Theme -> Theme
panelStyle Style -> Style
f Theme
t = Theme
t {themePanel = f (themePanel t)}
windowStyle :: (Style -> Style) -> Theme -> Theme
windowStyle :: (Style -> Style) -> Theme -> Theme
windowStyle Style -> Style
f Theme
t = Theme
t {themeFloatingWindow = f (themeFloatingWindow t)}
everyStyle :: (Style -> Style) -> Theme -> Theme
everyStyle :: (Style -> Style) -> Theme -> Theme
everyStyle Style -> Style
f = (Style -> Style) -> Theme -> Theme
buttonStyle Style -> Style
f (Theme -> Theme) -> (Theme -> Theme) -> Theme -> Theme
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Style -> Style) -> Theme -> Theme
inputStyle Style -> Style
f (Theme -> Theme) -> (Theme -> Theme) -> Theme -> Theme
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Style -> Style) -> Theme -> Theme
panelStyle Style -> Style
f (Theme -> Theme) -> (Theme -> Theme) -> Theme -> Theme
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Style -> Style) -> Theme -> Theme
windowStyle Style -> Style
f
accentColor :: Color -> Theme -> Theme
accentColor :: Color -> Theme -> Theme
accentColor Color
c Theme
t = Theme
t {themeAccent = c, themeFocusRing = c, themeSelection = fadeAlpha c (colorA (themeSelection t))}
textColor :: Color -> Theme -> Theme
textColor :: Color -> Theme -> Theme
textColor Color
c = (Style -> Style) -> Theme -> Theme
everyStyle (Color -> Style -> Style
foreground Color
c)
mutedColor :: Color -> Theme -> Theme
mutedColor :: Color -> Theme -> Theme
mutedColor Color
c Theme
t = Theme
t {themeMuted = c}
linkColor :: Color -> Theme -> Theme
linkColor :: Color -> Theme -> Theme
linkColor Color
c Theme
t = Theme
t {themeLink = c}
selectionColor :: Color -> Theme -> Theme
selectionColor :: Color -> Theme -> Theme
selectionColor Color
c Theme
t = Theme
t {themeSelection = c}
windowColor :: Color -> Theme -> Theme
windowColor :: Color -> Theme -> Theme
windowColor Color
c Theme
t = Theme
t {themeWindow = c}
rounded :: Float -> Theme -> Theme
rounded :: Float -> Theme -> Theme
rounded Float
r = (Style -> Style) -> Theme -> Theme
everyStyle (Float -> Style -> Style
cornerRadius Float
r)
tinted :: (Theme -> Color) -> Theme -> Theme
tinted :: (Theme -> Color) -> Theme -> Theme
tinted Theme -> Color
pick Theme
t =
let c :: Color
c = Theme -> Color
pick Theme
t
label :: Color
label = Theme -> Color -> Color
readableOn Theme
t Color
c
in (Style -> Style) -> Theme -> Theme
buttonStyle
( \Style
s ->
Style
s
{ styleBg = c
, styleFg = label
, styleBorder = c
, styleHoverBg = lerpColor c label 0.14
, styleActiveBg = lerpColor c (themeWindow t) 0.22
}
)
Theme
t
primary :: Theme -> Theme
primary :: Theme -> Theme
primary = (Theme -> Color) -> Theme -> Theme
tinted Theme -> Color
themeAccent
destructive :: Theme -> Theme
destructive :: Theme -> Theme
destructive = (Theme -> Color) -> Theme -> Theme
tinted Theme -> Color
themeRed
success :: Theme -> Theme
success :: Theme -> Theme
success = (Theme -> Color) -> Theme -> Theme
tinted Theme -> Color
themeGreen
subtle :: Theme -> Theme
subtle :: Theme -> Theme
subtle =
(Style -> Style) -> Theme -> Theme
buttonStyle ((Style -> Style) -> Theme -> Theme)
-> (Style -> Style) -> Theme -> Theme
forall a b. (a -> b) -> a -> b
$ \Style
s ->
Style
s
{ styleBg = clear
, styleBorder = clear
, styleBorderWidth = 0
, styleHoverBg = fadeAlpha (styleFg s) 30
, styleActiveBg = fadeAlpha (styleFg s) 48
}
where
clear :: Color
clear = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
0
readableOn :: Theme -> Color -> Color
readableOn :: Theme -> Color -> Color
readableOn Theme
t Color
c =
let candidates :: [Color]
candidates = [Theme -> Color
themeOnAccent Theme
t, Style -> Color
styleFg (Theme -> Style
themePanel Theme
t), Theme -> Color
themeWindow Theme
t]
best :: Color -> Color -> Color
best Color
a Color
b = if Color -> Color -> Double
contrastRatio Color
a Color
c Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
>= Color -> Color -> Double
contrastRatio Color
b Color
c then Color
a else Color
b
in (Color -> Color -> Color) -> [Color] -> Color
forall a. (a -> a -> a) -> [a] -> a
forall (t :: * -> *) a. Foldable t => (a -> a -> a) -> t a -> a
foldr1 Color -> Color -> Color
best [Color]
candidates
disabledTheme :: Theme -> Theme
disabledTheme :: Theme -> Theme
disabledTheme Theme
t =
let f :: Float
f = Theme -> Float
themeDisabledFade Theme
t
fade :: Color -> Color
fade Color
c
| Color -> Word8
colorA Color
c Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
0 = Color
c
| Bool
otherwise = Color -> Word8 -> Color
fadeAlpha (Color -> Color -> Float -> Color
lerpColor Color
c (Theme -> Color
themeWindow Theme
t) Float
f) (Color -> Word8
colorA Color
c)
fadeStyle :: Style -> Style
fadeStyle Style
s =
let bg :: Color
bg = Color -> Color
fade (Style -> Color
styleBg Style
s)
in Style
s {styleBg = bg, styleFg = fade (styleFg s), styleBorder = fade (styleBorder s), styleHoverBg = bg, styleActiveBg = bg}
in Theme
t
{ themePanel = fadeStyle (themePanel t)
, themeFloatingWindow = fadeStyle (themeFloatingWindow t)
, themeButton = fadeStyle (themeButton t)
, themeInput = fadeStyle (themeInput t)
, themeSeparator = fade (themeSeparator t)
, themeAccent = fade (themeAccent t)
, themeMuted = fade (themeMuted t)
, themeRed = fade (themeRed t)
, themeOrange = fade (themeOrange t)
, themeYellow = fade (themeYellow t)
, themeGreen = fade (themeGreen t)
, themePurple = fade (themePurple t)
, themeOnAccent = fade (themeOnAccent t)
, themeFocusRing = fade (themeFocusRing t)
, themeLink = fade (themeLink t)
}
flatStyle :: Color -> Color -> Color -> Color -> Color -> Style
flatStyle :: Color -> Color -> Color -> Color -> Color -> Style
flatStyle Color
bg Color
fg Color
border Color
hoverBg Color
activeBg =
Style
{ styleBg :: Color
styleBg = Color
bg
, styleFg :: Color
styleFg = Color
fg
, styleBorder :: Color
styleBorder = Color
border
, styleBorderWidth :: Float
styleBorderWidth = Float
1
, styleCornerRadius :: Float
styleCornerRadius = Float
2
, styleHoverBg :: Color
styleHoverBg = Color
hoverBg
, styleActiveBg :: Color
styleActiveBg = Color
activeBg
}
defaultTheme :: Theme
defaultTheme :: Theme
defaultTheme =
let panelSurface :: Style
panelSurface =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
34 Word8
34 Word8
38 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
236 Word8
234 Word8
230 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
54 Word8
54 Word8
62 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
34 Word8
34 Word8
38 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
30 Word8
30 Word8
34 Word8
255)
in Theme
{ themeWindow :: Color
themeWindow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
24 Word8
24 Word8
27 Word8
255
, themePanel :: Style
themePanel = Style
panelSurface
, themeFloatingWindow :: Style
themeFloatingWindow = Style
panelSurface
, themeButton :: Style
themeButton =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
52 Word8
52 Word8
58 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
248 Word8
247 Word8
245 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
74 Word8
76 Word8
84 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
68 Word8
70 Word8
78 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
42 Word8
42 Word8
48 Word8
255)
, themeInput :: Style
themeInput =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
18 Word8
18 Word8
21 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
236 Word8
234 Word8
230 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
70 Word8
72 Word8
80 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
24 Word8
24 Word8
28 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
14 Word8
14 Word8
17 Word8
255)
, themeSeparator :: Color
themeSeparator = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
62 Word8
64 Word8
72 Word8
255
, themeAccent :: Color
themeAccent = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
88 Word8
156 Word8
246 Word8
255
, themeMuted :: Color
themeMuted = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
176 Word8
172 Word8
164 Word8
255
, themeRed :: Color
themeRed = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
252 Word8
165 Word8
165 Word8
255
, themeOrange :: Color
themeOrange = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
216 Word8
140 Word8
72 Word8
255
, themeYellow :: Color
themeYellow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
212 Word8
176 Word8
88 Word8
255
, themeGreen :: Color
themeGreen = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
104 Word8
168 Word8
124 Word8
255
, themePurple :: Color
themePurple = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
176 Word8
140 Word8
220 Word8
255
, themeOverlayDim :: Color
themeOverlayDim = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
8 Word8
8 Word8
10 Word8
176
, themeOnAccent :: Color
themeOnAccent = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
255 Word8
255 Word8
255 Word8
255
, themeSelection :: Color
themeSelection = Color -> Word8 -> Color
fadeAlpha (Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
88 Word8
156 Word8
246 Word8
255) Word8
115
, themeFocusRing :: Color
themeFocusRing = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
88 Word8
156 Word8
246 Word8
255
, themeLink :: Color
themeLink = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
124 Word8
178 Word8
250 Word8
255
, themeShadow :: Color
themeShadow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
72
, themeDisabledFade :: Float
themeDisabledFade = Float
0.55
}
themeSeries :: Theme -> [Color]
themeSeries :: Theme -> [Color]
themeSeries Theme
t =
[ Theme -> Color
themeRed Theme
t
, Theme -> Color
themeOrange Theme
t
, Theme -> Color
themeYellow Theme
t
, Theme -> Color
themeGreen Theme
t
, Theme -> Color
themeAccent Theme
t
, Theme -> Color
themePurple Theme
t
]
separatorTrackColor :: Style -> Theme -> Color
separatorTrackColor :: Style -> Theme -> Color
separatorTrackColor Style
base Theme
theme =
Color -> Color -> Float -> Color
lerpColor (Style -> Color
styleBg Style
base) (Theme -> Color
themeSeparator Theme
theme) Float
0.28
scrollBarTrackColor :: Style -> Theme -> Color
scrollBarTrackColor :: Style -> Theme -> Color
scrollBarTrackColor Style
base Theme
theme =
Style -> Theme -> Color
separatorTrackColor Style
base Theme
theme
scrollBarThumbColor :: Style -> Theme -> Color
scrollBarThumbColor :: Style -> Theme -> Color
scrollBarThumbColor Style
base Theme
theme =
let solid :: Color
solid = Color -> Color -> Float -> Color
lerpColor (Theme -> Color
themeSeparator Theme
theme) (Style -> Color
styleFg Style
base) Float
0.58
in Color -> Word8 -> Color
fadeAlpha Color
solid Word8
130
fadeAlpha :: Color -> Word8 -> Color
fadeAlpha :: Color -> Word8 -> Color
fadeAlpha (Color Word32
w) Word8
a = Word32 -> Color
Color ((Word32
w Word32 -> Word32 -> Word32
forall a. Bits a => a -> a -> a
.&. Word32
0xFFFFFF00) Word32 -> Word32 -> Word32
forall a. Bits a => a -> a -> a
.|. Word8 -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word8
a)
tomorrowNightMinDarkTheme :: Theme
tomorrowNightMinDarkTheme :: Theme
tomorrowNightMinDarkTheme =
let panelSurface :: Style
panelSurface =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
30 Word8
31 Word8
33 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
234 Word8
234 Word8
234 Word8
255)
Color
edgeCol
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
52 Word8
54 Word8
62 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
26 Word8
27 Word8
29 Word8
255)
in Theme
{ themeWindow :: Color
themeWindow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
23 Word8
24 Word8
26 Word8
255
, themePanel :: Style
themePanel = Style
panelSurface
, themeFloatingWindow :: Style
themeFloatingWindow = Style
panelSurface
, themeButton :: Style
themeButton =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
44 Word8
46 Word8
51 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
245 Word8
245 Word8
245 Word8
255)
Color
edgeCol
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
69 Word8
74 Word8
83 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
28 Word8
29 Word8
32 Word8
255)
, themeInput :: Style
themeInput =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
23 Word8
24 Word8
26 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
234 Word8
234 Word8
234 Word8
255)
Color
edgeCol
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
29 Word8
30 Word8
33 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
19 Word8
20 Word8
22 Word8
255)
, themeSeparator :: Color
themeSeparator = Color
sepCol
, themeAccent :: Color
themeAccent = Color
accentCol
, themeMuted :: Color
themeMuted = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
150 Word8
152 Word8
150 Word8
255
, themeRed :: Color
themeRed = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
204 Word8
102 Word8
102 Word8
255
, themeOrange :: Color
themeOrange = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
222 Word8
147 Word8
95 Word8
255
, themeYellow :: Color
themeYellow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
240 Word8
198 Word8
116 Word8
255
, themeGreen :: Color
themeGreen = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
181 Word8
189 Word8
104 Word8
255
, themePurple :: Color
themePurple = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
178 Word8
148 Word8
187 Word8
255
, themeOverlayDim :: Color
themeOverlayDim = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
160
, themeOnAccent :: Color
themeOnAccent = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
255 Word8
255 Word8
255 Word8
255
, themeSelection :: Color
themeSelection = Color -> Word8 -> Color
fadeAlpha Color
accentCol Word8
115
, themeFocusRing :: Color
themeFocusRing = Color
accentCol
, themeLink :: Color
themeLink = Color
accentCol
, themeShadow :: Color
themeShadow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
72
, themeDisabledFade :: Float
themeDisabledFade = Float
0.55
}
where
edgeCol :: Color
edgeCol = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
77 Word8
80 Word8
87 Word8
255
sepCol :: Color
sepCol = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
55 Word8
59 Word8
65 Word8
255
accentCol :: Color
accentCol = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
103 Word8
150 Word8
230 Word8
255
tomorrowMinLightTheme :: Theme
tomorrowMinLightTheme :: Theme
tomorrowMinLightTheme =
let panelSurface :: Style
panelSurface =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
242 Word8
242 Word8
242 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
55 Word8
59 Word8
65 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
222 Word8
222 Word8
222 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
231 Word8
231 Word8
231 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
219 Word8
219 Word8
219 Word8
255)
in Theme
{ themeWindow :: Color
themeWindow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
255 Word8
255 Word8
255 Word8
255
, themePanel :: Style
themePanel = Style
panelSurface
, themeFloatingWindow :: Style
themeFloatingWindow = Style
panelSurface
, themeButton :: Style
themeButton =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
232 Word8
232 Word8
232 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
55 Word8
59 Word8
65 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
214 Word8
214 Word8
214 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
214 Word8
214 Word8
214 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
196 Word8
196 Word8
196 Word8
255)
, themeInput :: Style
themeInput =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
255 Word8
255 Word8
255 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
55 Word8
59 Word8
65 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
210 Word8
210 Word8
210 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
243 Word8
243 Word8
243 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
255 Word8
255 Word8
255 Word8
255)
, themeSeparator :: Color
themeSeparator = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
222 Word8
222 Word8
222 Word8
255
, themeAccent :: Color
themeAccent = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
82 Word8
134 Word8
188 Word8
255
, themeMuted :: Color
themeMuted = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
140 Word8
140 Word8
140 Word8
255
, themeRed :: Color
themeRed = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
197 Word8
78 Word8
82 Word8
255
, themeOrange :: Color
themeOrange = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
231 Word8
140 Word8
69 Word8
255
, themeYellow :: Color
themeYellow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
231 Word8
197 Word8
71 Word8
255
, themeGreen :: Color
themeGreen = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
113 Word8
140 Word8
0 Word8
255
, themePurple :: Color
themePurple = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
137 Word8
91 Word8
144 Word8
255
, themeOverlayDim :: Color
themeOverlayDim = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
100
, themeOnAccent :: Color
themeOnAccent = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
255 Word8
255 Word8
255 Word8
255
, themeSelection :: Color
themeSelection = Color -> Word8 -> Color
fadeAlpha (Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
82 Word8
134 Word8
188 Word8
255) Word8
80
, themeFocusRing :: Color
themeFocusRing = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
82 Word8
134 Word8
188 Word8
255
, themeLink :: Color
themeLink = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
66 Word8
113 Word8
174 Word8
255
, themeShadow :: Color
themeShadow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
36
, themeDisabledFade :: Float
themeDisabledFade = Float
0.55
}
tomorrowMidnightMinDarkTheme :: Theme
tomorrowMidnightMinDarkTheme :: Theme
tomorrowMidnightMinDarkTheme =
let panelSurface :: Style
panelSurface =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
16 Word8
17 Word8
20 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
238 Word8
238 Word8
238 Word8
255)
Color
edgeCol
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
46 Word8
48 Word8
56 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
12 Word8
13 Word8
15 Word8
255)
in Theme
{ themeWindow :: Color
themeWindow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
255
, themePanel :: Style
themePanel = Style
panelSurface
, themeFloatingWindow :: Style
themeFloatingWindow = Style
panelSurface
, themeButton :: Style
themeButton =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
26 Word8
27 Word8
34 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
238 Word8
238 Word8
238 Word8
255)
Color
edgeCol
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
54 Word8
58 Word8
72 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
56 Word8
60 Word8
81 Word8
255)
, themeInput :: Style
themeInput =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
13 Word8
14 Word8
18 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
238 Word8
238 Word8
238 Word8
255)
Color
edgeCol
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
21 Word8
22 Word8
28 Word8
255)
(Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
8 Word8
9 Word8
11 Word8
255)
, themeSeparator :: Color
themeSeparator = Color
sepCol
, themeAccent :: Color
themeAccent = Color
accentCol
, themeMuted :: Color
themeMuted = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
128 Word8
132 Word8
150 Word8
255
, themeRed :: Color
themeRed = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
213 Word8
78 Word8
83 Word8
255
, themeOrange :: Color
themeOrange = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
231 Word8
140 Word8
69 Word8
255
, themeYellow :: Color
themeYellow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
231 Word8
197 Word8
71 Word8
255
, themeGreen :: Color
themeGreen = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
185 Word8
202 Word8
74 Word8
255
, themePurple :: Color
themePurple = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
195 Word8
151 Word8
216 Word8
255
, themeOverlayDim :: Color
themeOverlayDim = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
160
, themeOnAccent :: Color
themeOnAccent = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
255 Word8
255 Word8
255 Word8
255
, themeSelection :: Color
themeSelection = Color -> Word8 -> Color
fadeAlpha Color
accentCol Word8
115
, themeFocusRing :: Color
themeFocusRing = Color
accentCol
, themeLink :: Color
themeLink = Color
accentCol
, themeShadow :: Color
themeShadow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
96
, themeDisabledFade :: Float
themeDisabledFade = Float
0.55
}
where
edgeCol :: Color
edgeCol = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
48 Word8
52 Word8
70 Word8
255
sepCol :: Color
sepCol = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
48 Word8
52 Word8
70 Word8
255
accentCol :: Color
accentCol = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
140 Word8
182 Word8
226 Word8
255
data Base16 = Base16
{ Base16 -> Color
base00 :: {-# UNPACK #-} !Color
, Base16 -> Color
base01 :: {-# UNPACK #-} !Color
, Base16 -> Color
base02 :: {-# UNPACK #-} !Color
, Base16 -> Color
base03 :: {-# UNPACK #-} !Color
, Base16 -> Color
base04 :: {-# UNPACK #-} !Color
, Base16 -> Color
base05 :: {-# UNPACK #-} !Color
, Base16 -> Color
base06 :: {-# UNPACK #-} !Color
, Base16 -> Color
base07 :: {-# UNPACK #-} !Color
, Base16 -> Color
base08 :: {-# UNPACK #-} !Color
, Base16 -> Color
base09 :: {-# UNPACK #-} !Color
, Base16 -> Color
base0A :: {-# UNPACK #-} !Color
, Base16 -> Color
base0B :: {-# UNPACK #-} !Color
, Base16 -> Color
base0C :: {-# UNPACK #-} !Color
, Base16 -> Color
base0D :: {-# UNPACK #-} !Color
, Base16 -> Color
base0E :: {-# UNPACK #-} !Color
, Base16 -> Color
base0F :: {-# UNPACK #-} !Color
}
deriving (Base16 -> Base16 -> Bool
(Base16 -> Base16 -> Bool)
-> (Base16 -> Base16 -> Bool) -> Eq Base16
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Base16 -> Base16 -> Bool
== :: Base16 -> Base16 -> Bool
$c/= :: Base16 -> Base16 -> Bool
/= :: Base16 -> Base16 -> Bool
Eq, Int -> Base16 -> ShowS
[Base16] -> ShowS
Base16 -> String
(Int -> Base16 -> ShowS)
-> (Base16 -> String) -> ([Base16] -> ShowS) -> Show Base16
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Base16 -> ShowS
showsPrec :: Int -> Base16 -> ShowS
$cshow :: Base16 -> String
show :: Base16 -> String
$cshowList :: [Base16] -> ShowS
showList :: [Base16] -> ShowS
Show)
themeFromBase16 :: Base16 -> Theme
themeFromBase16 :: Base16 -> Theme
themeFromBase16 Base16
b
| Bool
isDark = Base16 -> Theme
themeFromBase16Dark Base16
b
| Bool
otherwise = Base16 -> Theme
themeFromBase16Light Base16
b
where
isDark :: Bool
isDark = Color -> Double
colorLuminance (Base16 -> Color
base00 Base16
b) Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
< Color -> Double
colorLuminance (Base16 -> Color
base05 Base16
b)
themeFromBase16Dark :: Base16 -> Theme
themeFromBase16Dark :: Base16 -> Theme
themeFromBase16Dark Base16
b =
let edgeCol :: Color
edgeCol = Color -> Color -> Float -> Color
lerpColor (Base16 -> Color
base02 Base16
b) (Base16 -> Color
base03 Base16
b) Float
0.35
panelBg :: Color
panelBg = Color -> Color -> Float -> Color
lerpColor (Base16 -> Color
base01 Base16
b) (Base16 -> Color
base02 Base16
b) Float
0.3
panelSurface :: Style
panelSurface =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
Color
panelBg
(Base16 -> Color
base05 Base16
b)
Color
edgeCol
(Color -> Color -> Float -> Color
lerpColor Color
panelBg (Base16 -> Color
base02 Base16
b) Float
0.5)
(Color -> Color -> Float -> Color
lerpColor Color
panelBg (Base16 -> Color
base00 Base16
b) Float
0.4)
in Theme
{ themeWindow :: Color
themeWindow = Base16 -> Color
base00 Base16
b
, themePanel :: Style
themePanel = Style
panelSurface
, themeFloatingWindow :: Style
themeFloatingWindow = Style
panelSurface
, themeButton :: Style
themeButton =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Base16 -> Color
base02 Base16
b)
(Base16 -> Color
base07 Base16
b)
Color
edgeCol
(Color -> Color -> Float -> Color
lerpColor (Base16 -> Color
base02 Base16
b) (Base16 -> Color
base03 Base16
b) Float
0.4)
(Base16 -> Color
base01 Base16
b)
, themeInput :: Style
themeInput =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Base16 -> Color
base00 Base16
b)
(Base16 -> Color
base05 Base16
b)
Color
edgeCol
(Base16 -> Color
base01 Base16
b)
(Base16 -> Color
base00 Base16
b)
, themeSeparator :: Color
themeSeparator = Color
edgeCol
, themeAccent :: Color
themeAccent = Base16 -> Color
base0D Base16
b
, themeMuted :: Color
themeMuted = Base16 -> Color
base03 Base16
b
, themeRed :: Color
themeRed = Base16 -> Color
base08 Base16
b
, themeOrange :: Color
themeOrange = Base16 -> Color
base09 Base16
b
, themeYellow :: Color
themeYellow = Base16 -> Color
base0A Base16
b
, themeGreen :: Color
themeGreen = Base16 -> Color
base0B Base16
b
, themePurple :: Color
themePurple = Base16 -> Color
base0E Base16
b
, themeOverlayDim :: Color
themeOverlayDim = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
160
, themeOnAccent :: Color
themeOnAccent = if Color -> Double
colorLuminance (Base16 -> Color
base0D Base16
b) Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
> Double
0.6 then Base16 -> Color
base00 Base16
b else Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
255 Word8
255 Word8
255 Word8
255
, themeSelection :: Color
themeSelection = Color -> Word8 -> Color
fadeAlpha (Base16 -> Color
base0D Base16
b) Word8
115
, themeFocusRing :: Color
themeFocusRing = Base16 -> Color
base0D Base16
b
, themeLink :: Color
themeLink = Base16 -> Color
base0D Base16
b
, themeShadow :: Color
themeShadow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
72
, themeDisabledFade :: Float
themeDisabledFade = Float
0.55
}
themeFromBase16Light :: Base16 -> Theme
themeFromBase16Light :: Base16 -> Theme
themeFromBase16Light Base16
b =
let edgeCol :: Color
edgeCol = Base16 -> Color
base02 Base16
b
panelBg :: Color
panelBg = Color -> Color -> Float -> Color
lerpColor (Base16 -> Color
base00 Base16
b) (Base16 -> Color
base01 Base16
b) Float
0.5
panelSurface :: Style
panelSurface =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
Color
panelBg
(Base16 -> Color
base05 Base16
b)
Color
edgeCol
(Color -> Color -> Float -> Color
lerpColor Color
panelBg (Base16 -> Color
base00 Base16
b) Float
0.4)
(Color -> Color -> Float -> Color
lerpColor Color
panelBg (Base16 -> Color
base02 Base16
b) Float
0.4)
in Theme
{ themeWindow :: Color
themeWindow = Base16 -> Color
base00 Base16
b
, themePanel :: Style
themePanel = Style
panelSurface
, themeFloatingWindow :: Style
themeFloatingWindow = Style
panelSurface
, themeButton :: Style
themeButton =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Base16 -> Color
base01 Base16
b)
(Base16 -> Color
base05 Base16
b)
Color
edgeCol
(Base16 -> Color
base02 Base16
b)
(Color -> Color -> Float -> Color
lerpColor (Base16 -> Color
base02 Base16
b) (Base16 -> Color
base03 Base16
b) Float
0.35)
, themeInput :: Style
themeInput =
Color -> Color -> Color -> Color -> Color -> Style
flatStyle
(Base16 -> Color
base00 Base16
b)
(Base16 -> Color
base05 Base16
b)
Color
edgeCol
(Color -> Color -> Float -> Color
lerpColor (Base16 -> Color
base00 Base16
b) (Base16 -> Color
base01 Base16
b) Float
0.3)
(Color -> Color -> Float -> Color
lerpColor (Base16 -> Color
base00 Base16
b) (Base16 -> Color
base01 Base16
b) Float
0.6)
, themeSeparator :: Color
themeSeparator = Color
edgeCol
, themeAccent :: Color
themeAccent = Base16 -> Color
base0D Base16
b
, themeMuted :: Color
themeMuted = Base16 -> Color
base03 Base16
b
, themeRed :: Color
themeRed = Base16 -> Color
base08 Base16
b
, themeOrange :: Color
themeOrange = Base16 -> Color
base09 Base16
b
, themeYellow :: Color
themeYellow = Base16 -> Color
base0A Base16
b
, themeGreen :: Color
themeGreen = Base16 -> Color
base0B Base16
b
, themePurple :: Color
themePurple = Base16 -> Color
base0E Base16
b
, themeOverlayDim :: Color
themeOverlayDim = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
100
, themeOnAccent :: Color
themeOnAccent = if Color -> Double
colorLuminance (Base16 -> Color
base0D Base16
b) Double -> Double -> Bool
forall a. Ord a => a -> a -> Bool
> Double
0.6 then Base16 -> Color
base07 Base16
b else Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
255 Word8
255 Word8
255 Word8
255
, themeSelection :: Color
themeSelection = Color -> Word8 -> Color
fadeAlpha (Base16 -> Color
base0D Base16
b) Word8
80
, themeFocusRing :: Color
themeFocusRing = Base16 -> Color
base0D Base16
b
, themeLink :: Color
themeLink = Base16 -> Color
base0D Base16
b
, themeShadow :: Color
themeShadow = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
0 Word8
0 Word8
0 Word8
36
, themeDisabledFade :: Float
themeDisabledFade = Float
0.55
}
base16TomorrowNight :: Base16
base16TomorrowNight :: Base16
base16TomorrowNight =
Base16
{ base00 :: Color
base00 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
29 Word8
31 Word8
33 Word8
255
, base01 :: Color
base01 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
40 Word8
42 Word8
46 Word8
255
, base02 :: Color
base02 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
55 Word8
59 Word8
65 Word8
255
, base03 :: Color
base03 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
150 Word8
152 Word8
150 Word8
255
, base04 :: Color
base04 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
180 Word8
183 Word8
180 Word8
255
, base05 :: Color
base05 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
197 Word8
200 Word8
198 Word8
255
, base06 :: Color
base06 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
224 Word8
224 Word8
224 Word8
255
, base07 :: Color
base07 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
255 Word8
255 Word8
255 Word8
255
, base08 :: Color
base08 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
213 Word8
78 Word8
83 Word8
255
, base09 :: Color
base09 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
231 Word8
140 Word8
69 Word8
255
, base0A :: Color
base0A = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
231 Word8
197 Word8
71 Word8
255
, base0B :: Color
base0B = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
185 Word8
202 Word8
74 Word8
255
, base0C :: Color
base0C = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
112 Word8
192 Word8
186 Word8
255
, base0D :: Color
base0D = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
103 Word8
150 Word8
230 Word8
255
, base0E :: Color
base0E = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
195 Word8
151 Word8
216 Word8
255
, base0F :: Color
base0F = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
163 Word8
104 Word8
90 Word8
255
}
base16TomorrowLight :: Base16
base16TomorrowLight :: Base16
base16TomorrowLight =
Base16
{ base00 :: Color
base00 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
255 Word8
255 Word8
255 Word8
255
, base01 :: Color
base01 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
242 Word8
242 Word8
242 Word8
255
, base02 :: Color
base02 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
222 Word8
222 Word8
222 Word8
255
, base03 :: Color
base03 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
140 Word8
140 Word8
140 Word8
255
, base04 :: Color
base04 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
150 Word8
152 Word8
150 Word8
255
, base05 :: Color
base05 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
55 Word8
59 Word8
65 Word8
255
, base06 :: Color
base06 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
40 Word8
42 Word8
46 Word8
255
, base07 :: Color
base07 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
29 Word8
31 Word8
33 Word8
255
, base08 :: Color
base08 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
197 Word8
78 Word8
82 Word8
255
, base09 :: Color
base09 = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
231 Word8
140 Word8
69 Word8
255
, base0A :: Color
base0A = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
231 Word8
197 Word8
71 Word8
255
, base0B :: Color
base0B = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
113 Word8
140 Word8
0 Word8
255
, base0C :: Color
base0C = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
62 Word8
153 Word8
159 Word8
255
, base0D :: Color
base0D = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
82 Word8
134 Word8
188 Word8
255
, base0E :: Color
base0E = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
137 Word8
91 Word8
144 Word8
255
, base0F :: Color
base0F = Word8 -> Word8 -> Word8 -> Word8 -> Color
colorRGBA Word8
163 Word8
104 Word8
90 Word8
255
}