module Data.CSS.Properties.UI
(
cursor,
cursorUrl,
outline,
outlineColor,
outlineStyle,
outlineWidth
)
where
import Data.Colour
import Data.CSS.Build
import Data.CSS.Properties.Types
import Data.CSS.Properties.Utils
import Data.CSS.Types
import Data.Text (Text)
import Web.Routes.RouteT
cursor :: Maybe (Cursor (CssUrl Text)) -> SetProp
cursor = setProp "cursor" . maybeProp "auto"
cursorUrl :: (MonadRoute m) => Maybe (Cursor (URL m)) -> SetPropM m
cursorUrl c = do
renderUrl <- askRouteFn
cursor . fmap (fmap (CssUrl . flip renderUrl [])) $ c
outline ::
(ColourOps f, Real b, ToPropValue (f a))
=> Maybe (f a)
-> BorderStyle
-> BorderWidth b
-> SetProp
outline col style w = setProp "outline" (maybeProp "invert" col, style, w)
outlineColor :: (ColourOps f, ToPropValue (f a)) => Maybe (f a) -> SetProp
outlineColor = setProp "outline-color" . maybeProp "invert"
outlineStyle :: BorderStyle -> SetProp
outlineStyle = setProp "outline-style"
outlineWidth :: (Real a) => BorderWidth a -> SetProp
outlineWidth = setProp "outline-width"