-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | CSS preprocessor as embedded Haskell.
--
@package clay
@version 0.10
module Clay.Selector
-- | The star selector applies to all elements. Maps to * in CSS.
star :: Selector
-- | Select elements by name. The preferred syntax is to enable
-- OverloadedStrings and actually just use
-- "element-name" or use one of the predefined elements from
-- Clay.Elements.
element :: Text -> Selector
-- | Named alias for **.
deep :: Selector -> Selector -> Selector
-- | The deep selector composer. Maps to sel1 sel2 in CSS.
(**) :: Selector -> Selector -> Selector
-- | Named alias for |>.
child :: Selector -> Selector -> Selector
-- | The child selector composer. Maps to sel1 > sel2 in CSS.
(|>) :: Selector -> Selector -> Selector
-- | The adjacent selector composer. Maps to sel1 + sel2 in CSS.
(|+) :: Selector -> Selector -> Selector
-- | Named alias for `#`.
with :: Selector -> Refinement -> Selector
-- | The filter selector composer, adds a filter to a selector. Maps to
-- something like sel#filter or sel.filter in CSS,
-- depending on the filter.
(#) :: Selector -> Refinement -> Selector
-- | Filter elements by id. The preferred syntax is to enable
-- OverloadedStrings and use "#id-name".
byId :: Text -> Refinement
-- | Filter elements by class. The preferred syntax is to enable
-- OverloadedStrings and use ".class-name".
byClass :: Text -> Refinement
-- | Filter elements by pseudo selector or pseudo class. The preferred
-- syntax is to enable OverloadedStrings and use
-- ":pseudo-selector" or use one of the predefined ones from
-- Clay.Pseudo.
pseudo :: Text -> Refinement
-- | Filter elements by pseudo selector functions. The preferred way is to
-- use one of the predefined functions from Clay.Pseudo.
func :: Text -> [Text] -> Refinement
-- | Filter elements based on the presence of a certain attribute. The
-- preferred syntax is to enable OverloadedStrings and use
-- "@attr" or use one of the predefined ones from
-- Clay.Attributes.
attr :: Text -> Refinement
-- | Filter elements based on the presence of a certain attribute with the
-- specified value.
(@=) :: Text -> Text -> Refinement
-- | Filter elements based on the presence of a certain attribute that
-- begins with the selected value.
(^=) :: Text -> Text -> Refinement
-- | Filter elements based on the presence of a certain attribute that ends
-- with the specified value.
($=) :: Text -> Text -> Refinement
-- | Filter elements based on the presence of a certain attribute that
-- contains the specified value as a substring.
(*=) :: Text -> Text -> Refinement
-- | Filter elements based on the presence of a certain attribute that have
-- the specified value contained in a space separated list.
(~=) :: Text -> Text -> Refinement
-- | Filter elements based on the presence of a certain attribute that have
-- the specified value contained in a hyphen separated list.
(|=) :: Text -> Text -> Refinement
data Predicate
Id :: Text -> Predicate
Class :: Text -> Predicate
Attr :: Text -> Predicate
AttrVal :: Text -> Text -> Predicate
AttrBegins :: Text -> Text -> Predicate
AttrEnds :: Text -> Text -> Predicate
AttrContains :: Text -> Text -> Predicate
AttrSpace :: Text -> Text -> Predicate
AttrHyph :: Text -> Text -> Predicate
Pseudo :: Text -> Predicate
PseudoFunc :: Text -> [Text] -> Predicate
newtype Refinement
Refinement :: [Predicate] -> Refinement
unFilter :: Refinement -> [Predicate]
filterFromText :: Text -> Refinement
data Path f
Star :: Path f
Elem :: Text -> Path f
Child :: f -> f -> Path f
Deep :: f -> f -> Path f
Adjacent :: f -> f -> Path f
Combined :: f -> f -> Path f
newtype Fix f
In :: f (Fix f) -> Fix f
out :: Fix f -> f (Fix f)
data SelectorF a
SelectorF :: Refinement -> (Path a) -> SelectorF a
type Selector = Fix SelectorF
text :: Text -> Selector
instance Show (f (Fix f)) => Show (Fix f)
instance Eq Predicate
instance Ord Predicate
instance Show Predicate
instance Show Refinement
instance Show f => Show (Path f)
instance Show a => Show (SelectorF a)
instance Monoid (Fix SelectorF)
instance IsString (Fix SelectorF)
instance IsString Refinement
module Clay.Property
data Prefixed
Prefixed :: [(Text, Text)] -> Prefixed
unPrefixed :: Prefixed -> [(Text, Text)]
Plain :: Text -> Prefixed
unPlain :: Prefixed -> Text
merge :: Prefixed -> Prefixed -> Prefixed
plain :: Prefixed -> Text
quote :: Text -> Text
newtype Key a
Key :: Prefixed -> Key a
unKeys :: Key a -> Prefixed
cast :: Key a -> Key ()
newtype Value
Value :: Prefixed -> Value
unValue :: Value -> Prefixed
class Val a
value :: Val a => a -> Value
newtype Literal
Literal :: Text -> Literal
data E5
E5 :: E5
intersperse :: Monoid a => a -> [a] -> a
noCommas :: Val a => [a] -> Value
(!) :: a -> b -> (a, b)
instance Show Prefixed
instance Show (Key a)
instance Monoid (Key a)
instance IsString (Key a)
instance Show Value
instance Monoid Value
instance IsString Value
instance Show Literal
instance Monoid Literal
instance IsString Literal
instance Val a => Val [a]
instance (Val a, Val b) => Val (Either a b)
instance (Val a, Val b) => Val (a, b)
instance Val a => Val (Maybe a)
instance Val Value
instance Val Double
instance HasResolution E5
instance Val Integer
instance Val Literal
instance Val Text
instance Monoid Prefixed
instance IsString Prefixed
-- | A bunch of type classes representing common values shared between
-- multiple CSS properties, like Auto, Inherit,
-- None, Normal and several more.
--
-- All the common value type classes have an instance for the Value type,
-- making them easily derivable for custom value types.
module Clay.Common
class All a
all :: All a => a
class Auto a
auto :: Auto a => a
class Inherit a
inherit :: Inherit a => a
class None a
none :: None a => a
class Normal a
normal :: Normal a => a
class Visible a
visible :: Visible a => a
class Hidden a
hidden :: Hidden a => a
class Initial a
initial :: Initial a => a
class Unset a
unset :: Unset a => a
-- | The other type class is used to escape from the type safety introduced
-- by embedding CSS properties into the typed world of Clay. Other
-- allows you to cast any Value to a specific value type.
class Other a
other :: Other a => Value -> a
-- | Common list browser prefixes to make experimental properties work in
-- different browsers.
browsers :: Prefixed
-- | Syntax for CSS function call.
call :: (IsString s, Monoid s) => s -> s -> s
instance Unset Value
instance Initial Value
instance Other Value
instance Hidden Value
instance Visible Value
instance None Value
instance Normal Value
instance Inherit Value
instance Auto Value
instance All Value
module Clay.Stylesheet
newtype MediaType
MediaType :: Value -> MediaType
data NotOrOnly
Not :: NotOrOnly
Only :: NotOrOnly
data MediaQuery
MediaQuery :: (Maybe NotOrOnly) -> MediaType -> [Feature] -> MediaQuery
data Feature
Feature :: Text -> (Maybe Value) -> Feature
data App
Self :: Refinement -> App
Root :: Selector -> App
Pop :: Int -> App
Child :: Selector -> App
Sub :: Selector -> App
data Keyframes
Keyframes :: Text -> [(Double, [Rule])] -> Keyframes
data Rule
Property :: (Key ()) -> Value -> Rule
Nested :: App -> [Rule] -> Rule
Query :: MediaQuery -> [Rule] -> Rule
Face :: [Rule] -> Rule
Keyframe :: Keyframes -> Rule
newtype StyleM a
S :: (Writer [Rule] a) -> StyleM a
runS :: Css -> [Rule]
rule :: Rule -> Css
-- | The Css context is used to collect style rules which are
-- mappings from selectors to style properties. The Css type is a
-- computation in the StyleM monad that just collects and doesn't
-- return anything.
type Css = StyleM ()
-- | Add a new style property to the stylesheet with the specified
-- Key and value. The value can be any type that is in the
-- Val typeclass, with other words: can be converted to a
-- Value.
key :: Val a => Key a -> a -> Css
-- | Add a new style property to the stylesheet with the specified
-- Key and value, like key but use a Prefixed key.
prefixed :: Val a => Prefixed -> a -> Css
-- | The colon operator can be used to add style rules to the current
-- context for which there is no embedded version available. Both the key
-- and the value are plain text values and rendered as is to the output
-- CSS.
(-:) :: Key Text -> Text -> Css
-- | Assign a stylesheet to a selector. When the selector is nested inside
-- an outer scope it will be composed with deep.
(?) :: Selector -> Css -> Css
-- | Assign a stylesheet to a selector. When the selector is nested inside
-- an outer scope it will be composed with |>.
() :: Selector -> Css -> Css
-- | Assign a stylesheet to a filter selector. When the selector is nested
-- inside an outer scope it will be composed with the with
-- selector.
(&) :: Refinement -> Css -> Css
-- | Root is used to add style rules to the top scope.
root :: Selector -> Css -> Css
-- | Pop is used to add style rules to selectors defined in an outer scope.
-- The counter specifies how far up the scope stack we want to add the
-- rules.
pop :: Int -> Css -> Css
-- | Apply a set of style rules when the media type and feature queries
-- apply.
query :: MediaType -> [Feature] -> Css -> Css
-- | Apply a set of style rules when the media type and feature queries do
-- not apply.
queryNot :: MediaType -> [Feature] -> Css -> Css
-- | Apply a set of style rules only when the media type and feature
-- queries apply.
queryOnly :: MediaType -> [Feature] -> Css -> Css
keyframes :: Text -> [(Double, Css)] -> Css
keyframesFromTo :: Text -> Css -> Css -> Css
-- | Define a new font-face.
fontFace :: Css -> Css
instance Val MediaType
instance Other MediaType
instance Show MediaType
instance All MediaType
instance Show NotOrOnly
instance Show Feature
instance Show MediaQuery
instance Show App
instance Show Rule
instance Show Keyframes
instance Functor StyleM
instance Applicative StyleM
instance Monad StyleM
-- | Dynamic user interface element control. This CSS3 functionality is
-- still in draft, though it is implemented in several browsers. See
-- http://www.w3.org/TR/2000/WD-css3-userint-20000216#dynamic and
-- your target browsers' vendor documentation for more information.
module Clay.Dynamic
-- | Selection mode.
data UserInput
-- | Enabling user interface elements.
userInput :: UserInput -> Css
-- | Selection mode.
inputEnabled :: UserInput
-- | Selection mode.
inputDisabled :: UserInput
-- | Selection mode.
data UserModify
-- | Modifiability of an element.
userModify :: UserModify -> Css
-- | Selection mode.
readOnly :: UserModify
-- | Selection mode.
readWrite :: UserModify
-- | Selection mode.
writeOnly :: UserModify
-- | Selection mode.
data UserSelect
-- | Content selection granularity.
userSelect :: UserSelect -> Css
-- | Selection mode.
selectText :: UserSelect
-- | Selection mode.
selectToggle :: UserSelect
-- | Selection mode.
selectElement :: UserSelect
-- | Selection mode.
selectElements :: UserSelect
-- | Focus behaviour.
data UserFocus
-- | Content focusing granularity.
userFocus :: UserFocus -> Css
-- | Focus mode.
selectAll :: UserFocus
-- | Focus mode.
selectBefore :: UserFocus
-- | Focus mode.
selectAfter :: UserFocus
-- | Focus mode.
selectSame :: UserFocus
-- | Focus mode.
selectMenu :: UserFocus
instance Val UserInput
instance Inherit UserInput
instance None UserInput
instance Val UserModify
instance Inherit UserModify
instance Val UserSelect
instance Inherit UserSelect
instance None UserSelect
instance All UserSelect
instance Val UserFocus
instance Inherit UserFocus
instance None UserFocus
instance Normal UserFocus
instance Auto UserFocus
module Clay.FontFace
data FontFaceFormat
WOFF :: FontFaceFormat
TrueType :: FontFaceFormat
OpenType :: FontFaceFormat
EmbeddedOpenType :: FontFaceFormat
SVG :: FontFaceFormat
data FontFaceSrc
FontFaceSrcUrl :: Text -> (Maybe FontFaceFormat) -> FontFaceSrc
FontFaceSrcLocal :: Text -> FontFaceSrc
fontFaceSrc :: [FontFaceSrc] -> Css
instance Show FontFaceFormat
instance Show FontFaceSrc
instance Val FontFaceSrc
module Clay.List
data ListStyleType
listStyleType :: ListStyleType -> Css
disc :: ListStyleType
armenian :: ListStyleType
circleListStyle :: ListStyleType
cjkIdeographic :: ListStyleType
decimal :: ListStyleType
decimalLeadingZero :: ListStyleType
georgian :: ListStyleType
hebrew :: ListStyleType
hiragana :: ListStyleType
hiraganaIroha :: ListStyleType
katakana :: ListStyleType
katakanaIroha :: ListStyleType
lowerAlpha :: ListStyleType
lowerGreek :: ListStyleType
lowerLatin :: ListStyleType
lowerRoman :: ListStyleType
square :: ListStyleType
upperAlpha :: ListStyleType
upperLatin :: ListStyleType
upperRoman :: ListStyleType
data ListStylePosition
listStylePosition :: ListStylePosition -> Css
inside :: ListStylePosition
outside :: ListStylePosition
data ListStyleImage
listStyleImage :: ListStyleImage -> Css
imageUrl :: Text -> ListStyleImage
listStyle :: ListStyleType -> ListStylePosition -> ListStyleImage -> Css
instance Val ListStyleType
instance Initial ListStyleType
instance Inherit ListStyleType
instance None ListStyleType
instance Other ListStyleType
instance Val ListStylePosition
instance Initial ListStylePosition
instance Inherit ListStylePosition
instance None ListStylePosition
instance Other ListStylePosition
instance Val ListStyleImage
instance Initial ListStyleImage
instance Inherit ListStyleImage
instance None ListStyleImage
instance Other ListStyleImage
module Clay.Render
data Config
Config :: Builder -> Builder -> Builder -> Bool -> Bool -> Bool -> Bool -> Config
indentation :: Config -> Builder
newline :: Config -> Builder
sep :: Config -> Builder
finalSemicolon :: Config -> Bool
warn :: Config -> Bool
align :: Config -> Bool
banner :: Config -> Bool
-- | Configuration to print to a pretty human readable CSS output.
pretty :: Config
-- | Configuration to print to a compacted unreadable CSS output.
compact :: Config
-- | Render a stylesheet with the default configuration. The pretty printer
-- is used by default.
render :: Css -> Text
-- | Render to CSS using the default configuration (pretty) and
-- directly print to the standard output.
putCss :: Css -> IO ()
-- | Render a stylesheet with a custom configuration and an optional outer
-- scope.
renderWith :: Config -> [App] -> Css -> Text
module Clay.Time
data Time
-- | Time in seconds.
sec :: Double -> Time
-- | Time in milliseconds.
ms :: Double -> Time
instance Val Time
instance Auto Time
instance Normal Time
instance Inherit Time
instance None Time
instance Other Time
instance Fractional Time
instance Num Time
module Clay.Transition
transition :: Text -> Time -> TimingFunction -> Time -> Css
transitions :: [(Text, Time, TimingFunction, Time)] -> Css
transitionProperty :: Text -> Css
transitionProperties :: [Text] -> Css
transitionDuration :: Time -> Css
transitionDurations :: [Time] -> Css
data TimingFunction
transitionTimingFunction :: TimingFunction -> Css
ease :: TimingFunction
easeIn :: TimingFunction
easeOut :: TimingFunction
easeInOut :: TimingFunction
linear :: TimingFunction
stepStart :: TimingFunction
stepStop :: TimingFunction
stepsStart :: Integer -> TimingFunction
stepsStop :: Integer -> TimingFunction
cubicBezier :: Double -> Double -> Double -> Double -> TimingFunction
transitionDelay :: Time -> Css
transitionDelays :: [Time] -> Css
instance Val TimingFunction
instance Other TimingFunction
instance Auto TimingFunction
module Clay.Animation
animation :: AnimationName -> Time -> TimingFunction -> Time -> IterationCount -> AnimationDirection -> FillMode -> Css
animations :: [(AnimationName, Time, TimingFunction, Time, IterationCount, AnimationDirection, FillMode)] -> Css
animationDelay :: Time -> Css
animationDelays :: [Time] -> Css
data AnimationDirection
animationDirection :: AnimationDirection -> Css
animationDirections :: [AnimationDirection] -> Css
alternate :: AnimationDirection
reverse :: AnimationDirection
alternateReverse :: AnimationDirection
animationDuration :: Time -> Css
animationDurations :: [Time] -> Css
data IterationCount
animationIterationCount :: IterationCount -> Css
animationIterationCounts :: [IterationCount] -> Css
infinite :: IterationCount
iterationCount :: Double -> IterationCount
data AnimationName
animationName :: AnimationName -> Css
data PlayState
animationPlayState :: PlayState -> Css
running :: PlayState
paused :: PlayState
data FillMode
animationFillMode :: FillMode -> Css
forwards :: FillMode
backwards :: FillMode
animationTimingFunction :: TimingFunction -> Css
instance Val AnimationDirection
instance Other AnimationDirection
instance Normal AnimationDirection
instance Val IterationCount
instance Other IterationCount
instance Normal IterationCount
instance Val AnimationName
instance Other AnimationName
instance IsString AnimationName
instance Initial AnimationName
instance Inherit AnimationName
instance Unset AnimationName
instance Val PlayState
instance Other PlayState
instance Val FillMode
instance Other FillMode
instance None FillMode
module Clay.Color
data Color
Rgba :: Integer -> Integer -> Integer -> Integer -> Color
Hsla :: Integer -> Float -> Float -> Integer -> Color
Other :: Value -> Color
rgba :: Integer -> Integer -> Integer -> Integer -> Color
rgb :: Integer -> Integer -> Integer -> Color
hsla :: Integer -> Float -> Float -> Integer -> Color
hsl :: Integer -> Float -> Float -> Color
grayish :: Integer -> Color
transparent :: Color
setR :: Integer -> Color -> Color
setG :: Integer -> Color -> Color
setB :: Integer -> Color -> Color
setA :: Integer -> Color -> Color
(*.) :: Color -> Integer -> Color
(+.) :: Color -> Integer -> Color
(-.) :: Color -> Integer -> Color
clamp :: Integer -> Integer
parse :: Text -> Color
aliceblue :: Color
yellowgreen :: Color
yellow :: Color
whitesmoke :: Color
white :: Color
wheat :: Color
violet :: Color
turquoise :: Color
tomato :: Color
thistle :: Color
teal :: Color
tan :: Color
steelblue :: Color
springgreen :: Color
snow :: Color
slategrey :: Color
slategray :: Color
slateblue :: Color
skyblue :: Color
silver :: Color
sienna :: Color
seashell :: Color
seagreen :: Color
sandybrown :: Color
salmon :: Color
saddlebrown :: Color
royalblue :: Color
rosybrown :: Color
red :: Color
purple :: Color
powderblue :: Color
plum :: Color
pink :: Color
peru :: Color
peachpuff :: Color
papayawhip :: Color
palevioletred :: Color
paleturquoise :: Color
palegreen :: Color
palegoldenrod :: Color
orchid :: Color
orangered :: Color
orange :: Color
olivedrab :: Color
olive :: Color
oldlace :: Color
navy :: Color
navajowhite :: Color
moccasin :: Color
mistyrose :: Color
mintcream :: Color
midnightblue :: Color
mediumvioletred :: Color
mediumturquoise :: Color
mediumspringgreen :: Color
mediumslateblue :: Color
mediumseagreen :: Color
mediumpurple :: Color
mediumorchid :: Color
mediumblue :: Color
mediumaquamarine :: Color
maroon :: Color
magenta :: Color
linen :: Color
limegreen :: Color
lime :: Color
lightyellow :: Color
lightsteelblue :: Color
lightslategrey :: Color
lightslategray :: Color
lightskyblue :: Color
lightseagreen :: Color
lightsalmon :: Color
lightpink :: Color
lightgrey :: Color
lightgreen :: Color
lightgray :: Color
lightgoldenrodyellow :: Color
lightcyan :: Color
lightcoral :: Color
lightblue :: Color
lemonchiffon :: Color
lawngreen :: Color
lavenderblush :: Color
lavender :: Color
khaki :: Color
ivory :: Color
indigo :: Color
indianred :: Color
hotpink :: Color
honeydew :: Color
grey :: Color
greenyellow :: Color
green :: Color
gray :: Color
goldenrod :: Color
gold :: Color
ghostwhite :: Color
gainsboro :: Color
fuchsia :: Color
forestgreen :: Color
floralwhite :: Color
firebrick :: Color
dodgerblue :: Color
dimgrey :: Color
dimgray :: Color
deepskyblue :: Color
deeppink :: Color
darkviolet :: Color
darkturquoise :: Color
darkslategrey :: Color
darkslategray :: Color
darkslateblue :: Color
darkseagreen :: Color
darksalmon :: Color
darkred :: Color
darkorchid :: Color
darkorange :: Color
darkolivegreen :: Color
darkmagenta :: Color
darkkhaki :: Color
darkgrey :: Color
darkgreen :: Color
darkgray :: Color
darkgoldenrod :: Color
darkcyan :: Color
darkblue :: Color
cyan :: Color
crimson :: Color
cornsilk :: Color
cornflowerblue :: Color
coral :: Color
chocolate :: Color
chartreuse :: Color
cadetblue :: Color
burlywood :: Color
brown :: Color
blueviolet :: Color
blue :: Color
blanchedalmond :: Color
black :: Color
bisque :: Color
beige :: Color
azure :: Color
aquamarine :: Color
aqua :: Color
antiquewhite :: Color
instance Show Color
instance IsString Color
instance Other Color
instance Inherit Color
instance Auto Color
instance None Color
instance Val Color
module Clay.Size
data Size a
-- | Sizes can be absolute like pixels, points, etc.
data Abs
-- | Sizes can be relative like percentages or rems.
data Rel
nil :: Size a
-- | Size in pixels.
px :: Integer -> Size Abs
-- | Size in points.
pt :: Double -> Size Abs
-- | Size in em's.
em :: Double -> Size Abs
-- | Size in ex'es.
ex :: Double -> Size Abs
-- | Size in percentages.
pct :: Double -> Size Rel
-- | Size in rem's.
rem :: Double -> Size Rel
sym :: (a -> a -> a -> a -> Css) -> a -> Css
sym2 :: (a -> a -> a -> a -> Css) -> a -> a -> Css
sym3 :: (a -> a -> a -> a -> Css) -> a -> a -> a -> Css
data Angle a
data Deg
data Rad
-- | Angle in degrees.
deg :: Double -> Angle Deg
-- | Angle in radians.
rad :: Double -> Angle Rad
instance Val (Size a)
instance Auto (Size a)
instance Normal (Size a)
instance Inherit (Size a)
instance None (Size a)
instance Other (Size a)
instance Val (Angle a)
instance Auto (Angle a)
instance Inherit (Angle a)
instance Other (Angle a)
instance Fractional (Angle Rad)
instance Num (Angle Rad)
instance Fractional (Angle Deg)
instance Num (Angle Deg)
instance Fractional (Size Rel)
instance Num (Size Rel)
instance Fractional (Size Abs)
instance Num (Size Abs)
module Clay.Border
data Stroke
solid :: Stroke
dotted :: Stroke
dashed :: Stroke
double :: Stroke
wavy :: Stroke
groove :: Stroke
ridge :: Stroke
inset :: Stroke
outset :: Stroke
border :: Stroke -> Size Abs -> Color -> Css
borderTop :: Stroke -> Size Abs -> Color -> Css
borderLeft :: Stroke -> Size Abs -> Color -> Css
borderBottom :: Stroke -> Size Abs -> Color -> Css
borderRight :: Stroke -> Size Abs -> Color -> Css
borderColor4 :: Color -> Color -> Color -> Color -> Css
borderColor :: Color -> Css
borderLeftColor :: Color -> Css
borderRightColor :: Color -> Css
borderTopColor :: Color -> Css
borderBottomColor :: Color -> Css
borderStyle4 :: Stroke -> Stroke -> Stroke -> Stroke -> Css
borderStyle :: Stroke -> Css
borderLeftStyle :: Stroke -> Css
borderRightStyle :: Stroke -> Css
borderTopStyle :: Stroke -> Css
borderBottomStyle :: Stroke -> Css
borderWidth4 :: Size Abs -> Size Abs -> Size Abs -> Size Abs -> Css
borderWidth :: Size Abs -> Css
borderLeftWidth :: Size Abs -> Css
borderRightWidth :: Size Abs -> Css
borderTopWidth :: Size Abs -> Css
borderBottomWidth :: Size Abs -> Css
outline :: Stroke -> Size Abs -> Color -> Css
outlineTop :: Stroke -> Size Abs -> Color -> Css
outlineLeft :: Stroke -> Size Abs -> Color -> Css
outlineBottom :: Stroke -> Size Abs -> Color -> Css
outlineRight :: Stroke -> Size Abs -> Color -> Css
outlineColor4 :: Color -> Color -> Color -> Color -> Css
outlineColor :: Color -> Css
outlineLeftColor :: Color -> Css
outlineRightColor :: Color -> Css
outlineTopColor :: Color -> Css
outlineBottomColor :: Color -> Css
outlineStyle4 :: Stroke -> Stroke -> Stroke -> Stroke -> Css
outlineStyle :: Stroke -> Css
outlineLeftStyle :: Stroke -> Css
outlineRightStyle :: Stroke -> Css
outlineTopStyle :: Stroke -> Css
outlineBottomStyle :: Stroke -> Css
outlineWidth4 :: Size Abs -> Size Abs -> Size Abs -> Size Abs -> Css
outlineWidth :: Size Abs -> Css
outlineLeftWidth :: Size Abs -> Css
outlineRightWidth :: Size Abs -> Css
outlineTopWidth :: Size Abs -> Css
outlineBottomWidth :: Size Abs -> Css
outlineOffset :: Size Abs -> Css
borderRadius :: Size a -> Size a -> Size a -> Size a -> Css
borderTopLeftRadius :: Size a -> Size a -> Css
borderTopRightRadius :: Size a -> Size a -> Css
borderBottomLeftRadius :: Size a -> Size a -> Css
borderBottomRightRadius :: Size a -> Size a -> Css
instance Val Stroke
instance Other Stroke
instance Inherit Stroke
instance Auto Stroke
instance None Stroke
module Clay.Box
data BoxType
paddingBox :: BoxType
borderBox :: BoxType
contentBox :: BoxType
boxSizing :: BoxType -> Css
boxShadow :: Size a -> Size a -> Size a -> Color -> Css
boxShadows :: [(Size a, Size a, Size a, Color)] -> Css
insetBoxShadow :: Stroke -> Size a -> Size a -> Size a -> Color -> Css
instance Val BoxType
instance Inherit BoxType
module Clay.Background
-- | We implement the generic background property as a type class that
-- accepts multiple value types. This allows us to combine different
-- background aspects into a shorthand syntax.
class Val a => Background a where background = key "background"
background :: Background a => a -> Css
backgroundColor :: Color -> Css
data BackgroundPosition
backgroundPosition :: BackgroundPosition -> Css
backgroundPositions :: [BackgroundPosition] -> Css
placed :: Side -> Side -> BackgroundPosition
positioned :: Size a -> Size a -> BackgroundPosition
data BackgroundSize
backgroundSize :: BackgroundSize -> Css
backgroundSizes :: [BackgroundSize] -> Css
contain :: BackgroundSize
cover :: BackgroundSize
by :: Size a -> Size b -> BackgroundSize
data BackgroundRepeat
backgroundRepeat :: BackgroundRepeat -> Css
backgroundRepeats :: [BackgroundRepeat] -> Css
repeat :: BackgroundRepeat
space :: BackgroundRepeat
round :: BackgroundRepeat
noRepeat :: BackgroundRepeat
xyRepeat :: BackgroundRepeat -> BackgroundRepeat -> BackgroundRepeat
repeatX :: BackgroundRepeat
repeatY :: BackgroundRepeat
data BackgroundOrigin
backgroundOrigin :: BackgroundOrigin -> Css
backgroundOrigins :: [BackgroundOrigin] -> Css
origin :: BoxType -> BackgroundOrigin
data BackgroundClip
backgroundClip :: BackgroundClip -> Css
backgroundClips :: [BackgroundClip] -> Css
boxClip :: BoxType -> BackgroundClip
data BackgroundAttachment
backgroundAttachment :: BackgroundAttachment -> Css
backgroundAttachments :: [BackgroundAttachment] -> Css
attachFixed :: BackgroundAttachment
attachScroll :: BackgroundAttachment
data BackgroundImage
backgroundImage :: BackgroundImage -> Css
backgroundImages :: [BackgroundImage] -> Css
url :: Text -> BackgroundImage
data Side
-- | We have to prefix these values to avoid conflict with existing
-- property names.
sideTop :: Side
-- | We have to prefix these values to avoid conflict with existing
-- property names.
sideLeft :: Side
-- | We have to prefix these values to avoid conflict with existing
-- property names.
sideRight :: Side
-- | We have to prefix these values to avoid conflict with existing
-- property names.
sideBottom :: Side
-- | We have to prefix these values to avoid conflict with existing
-- property names.
sideCenter :: Side
-- | We have to prefix these values to avoid conflict with existing
-- property names.
sideMiddle :: Side
data Direction
straight :: Side -> Direction
angular :: Angle a -> Direction
data Location
class Val a => Loc a where location = Location . value
instance Val BackgroundPosition
instance Other BackgroundPosition
instance Inherit BackgroundPosition
instance Val BackgroundSize
instance Other BackgroundSize
instance Inherit BackgroundSize
instance Val BackgroundRepeat
instance Other BackgroundRepeat
instance Inherit BackgroundRepeat
instance None BackgroundRepeat
instance Val BackgroundImage
instance Other BackgroundImage
instance Inherit BackgroundImage
instance None BackgroundImage
instance Val BackgroundOrigin
instance Other BackgroundOrigin
instance Inherit BackgroundOrigin
instance Val BackgroundClip
instance Other BackgroundClip
instance Inherit BackgroundClip
instance Other BackgroundAttachment
instance Val BackgroundAttachment
instance Inherit BackgroundAttachment
instance Val Side
instance Other Side
instance Inherit Side
instance Val Direction
instance Other Direction
instance Val Location
instance Other Location
instance (Loc a, Loc b) => Loc (a, b)
instance Loc (Size a)
instance Loc Side
instance Auto BackgroundSize
instance Background BackgroundImage
instance Background BackgroundAttachment
instance Background BackgroundClip
instance Background BackgroundOrigin
instance Background BackgroundRepeat
instance Background BackgroundSize
instance Background BackgroundPosition
instance Background Color
instance (Background a, Background b) => Background (a, b)
instance Background a => Background [a]
module Clay.Mask
-- | We implement the generic mask property as a type class that accepts
-- multiple value types. This allows us to combine different mask aspects
-- into a shorthand syntax.
class Val a => Mask a where mask = pkey "mask"
mask :: Mask a => a -> Css
data MaskComposite
clear :: MaskComposite
copy :: MaskComposite
sourceOver :: MaskComposite
sourceIn :: MaskComposite
sourceOut :: MaskComposite
sourceAtop :: MaskComposite
destinationOver :: MaskComposite
destinationIn :: MaskComposite
destinationOut :: MaskComposite
destinationAtop :: MaskComposite
xor :: MaskComposite
maskComposite :: MaskComposite -> Css
maskComposites :: [MaskComposite] -> Css
maskPosition :: BackgroundPosition -> Css
maskPositions :: [BackgroundPosition] -> Css
maskSize :: BackgroundSize -> Css
maskSizes :: [BackgroundSize] -> Css
maskRepeat :: BackgroundRepeat -> Css
maskRepeats :: [BackgroundRepeat] -> Css
maskOrigin :: BackgroundOrigin -> Css
maskOrigins :: [BackgroundOrigin] -> Css
maskClip :: BackgroundClip -> Css
maskClips :: [BackgroundClip] -> Css
maskAttachment :: BackgroundAttachment -> Css
maskAttachments :: [BackgroundAttachment] -> Css
maskImage :: BackgroundImage -> Css
maskImages :: [BackgroundImage] -> Css
instance Val MaskComposite
instance Other MaskComposite
instance Inherit MaskComposite
instance None MaskComposite
instance Mask BackgroundImage
instance Mask BackgroundAttachment
instance Mask BackgroundClip
instance Mask BackgroundOrigin
instance Mask BackgroundRepeat
instance Mask BackgroundSize
instance Mask BackgroundPosition
instance Mask MaskComposite
instance (Mask a, Mask b) => Mask (a, b)
instance Mask a => Mask [a]
module Clay.Display
float :: FloatStyle -> Css
data FloatStyle
floatLeft :: FloatStyle
floatRight :: FloatStyle
clear :: Clear -> Css
data Clear
both :: Clear
clearLeft :: Clear
clearRight :: Clear
data Position
position :: Position -> Css
static :: Position
absolute :: Position
fixed :: Position
relative :: Position
data Display
display :: Display -> Css
inline :: Display
block :: Display
listItem :: Display
runIn :: Display
inlineBlock :: Display
table :: Display
inlineTable :: Display
tableRowGroup :: Display
tableHeaderGroup :: Display
tableFooterGroup :: Display
tableRow :: Display
tableColumnGroup :: Display
tableColumn :: Display
tableCell :: Display
tableCaption :: Display
displayNone :: Display
displayInherit :: Display
flex :: Display
inlineFlex :: Display
grid :: Display
inlineGrid :: Display
data Overflow
scroll :: Overflow
overflow :: Overflow -> Css
overflowX :: Overflow -> Css
overflowY :: Overflow -> Css
data Visibility
collapse :: Visibility
visibility :: Visibility -> Css
data Clip
clip :: Clip -> Css
rect :: Size a -> Size a -> Size a -> Size a -> Clip
opacity :: Double -> Css
zIndex :: Integer -> Css
data PointerEvents
pointerEvents :: PointerEvents -> Css
visiblePainted :: PointerEvents
visibleFill :: PointerEvents
visibleStroke :: PointerEvents
painted :: PointerEvents
fillEvents :: PointerEvents
strokeEvents :: PointerEvents
allEvents :: PointerEvents
class Val a => VerticalAlign a where verticalAlign = key "vertical-align"
verticalAlign :: VerticalAlign a => a -> Css
baseline :: VerticalAlignValue Value
middle :: VerticalAlignValue Value
vAlignSub :: VerticalAlignValue Value
textTop :: VerticalAlignValue Value
textBottom :: VerticalAlignValue Value
vAlignTop :: VerticalAlignValue Value
vAlignBottom :: VerticalAlignValue Value
class Val a => Cursor a where cursor = key "cursor"
cursor :: Cursor a => a -> Css
crosshair :: CursorValue Value
cursorDefault :: CursorValue Value
pointer :: CursorValue Value
move :: CursorValue Value
eResize :: CursorValue Value
neResize :: CursorValue Value
nwResize :: CursorValue Value
nResize :: CursorValue Value
seResize :: CursorValue Value
swResize :: CursorValue Value
sResize :: CursorValue Value
wResize :: CursorValue Value
cursorText :: CursorValue Value
wait :: CursorValue Value
cursorProgress :: CursorValue Value
help :: CursorValue Value
cursorUrl :: Text -> CursorValue Value
instance Val FloatStyle
instance None FloatStyle
instance Inherit FloatStyle
instance Val Clear
instance Other Clear
instance None Clear
instance Inherit Clear
instance Val Position
instance Other Position
instance Inherit Position
instance Val Display
instance Other Display
instance None Display
instance Inherit Display
instance Val Overflow
instance Other Overflow
instance Auto Overflow
instance Inherit Overflow
instance Hidden Overflow
instance Visible Overflow
instance Val Visibility
instance Other Visibility
instance Auto Visibility
instance Inherit Visibility
instance Hidden Visibility
instance Visible Visibility
instance Val Clip
instance Other Clip
instance Auto Clip
instance Inherit Clip
instance Val PointerEvents
instance Other PointerEvents
instance Auto PointerEvents
instance Visible PointerEvents
instance None PointerEvents
instance Inherit PointerEvents
instance Val (VerticalAlignValue a)
instance Val (CursorValue a)
instance Inherit (CursorValue a)
instance Auto (CursorValue a)
instance Cursor (CursorValue a)
instance VerticalAlign (Size a)
instance VerticalAlign (VerticalAlignValue a)
module Clay.Font
-- | We implement the generic font property as a type class that accepts
-- multiple value types. This allows us to combine different font aspects
-- into a shorthand syntax. Fonts require a mandatory part and have a
-- optional a part.
--
-- http://www.w3.org/TR/css3-fonts/#font-prop
class Val a => Font a where font = key "font"
font :: Font a => a -> Css
data Optional
Optional :: (Maybe FontWeight) -> (Maybe FontVariant) -> (Maybe FontStyle) -> Optional
data Required a
Required :: (Size a) -> (Maybe (Size a)) -> [Text] -> [GenericFontFamily] -> Required a
-- | An alias for color.
fontColor :: Color -> Css
color :: Color -> Css
-- | The fontFamily style rules takes to lists of font families:
-- zero or more custom font-families and preferably one or more generic
-- font families.
fontFamily :: [Text] -> [GenericFontFamily] -> Css
sansSerif :: GenericFontFamily
serif :: GenericFontFamily
monospace :: GenericFontFamily
cursive :: GenericFontFamily
fantasy :: GenericFontFamily
data FontSize
fontSize :: Size a -> Css
fontSizeCustom :: FontSize -> Css
xxSmall :: FontSize
xSmall :: FontSize
small :: FontSize
medium :: FontSize
large :: FontSize
xLarge :: FontSize
xxLarge :: FontSize
smaller :: FontSize
larger :: FontSize
data FontStyle
fontStyle :: FontStyle -> Css
italic :: FontStyle
oblique :: FontStyle
data FontVariant
fontVariant :: FontVariant -> Css
smallCaps :: FontVariant
data FontWeight
fontWeight :: FontWeight -> Css
bold :: FontWeight
bolder :: FontWeight
lighter :: FontWeight
weight :: Integer -> FontWeight
data NamedFont
caption :: NamedFont
icon :: NamedFont
menu :: NamedFont
messageBox :: NamedFont
smallCaption :: NamedFont
statusBar :: NamedFont
lineHeight :: Size a -> Css
instance Val GenericFontFamily
instance Inherit GenericFontFamily
instance Auto GenericFontFamily
instance Other GenericFontFamily
instance Val FontSize
instance Inherit FontSize
instance Auto FontSize
instance Other FontSize
instance Val FontStyle
instance Inherit FontStyle
instance Normal FontStyle
instance Other FontStyle
instance Val FontVariant
instance Inherit FontVariant
instance Normal FontVariant
instance Other FontVariant
instance Val FontWeight
instance Inherit FontWeight
instance Normal FontWeight
instance Other FontWeight
instance Val NamedFont
instance Other NamedFont
instance Font (Optional, Required a)
instance Font (Required a)
instance Val (Required a)
instance Val Optional
module Clay.Geometry
size :: Size a -> Css
top :: Size a -> Css
left :: Size a -> Css
bottom :: Size a -> Css
right :: Size a -> Css
width :: Size a -> Css
height :: Size a -> Css
minWidth :: Size a -> Css
minHeight :: Size a -> Css
maxWidth :: Size a -> Css
maxHeight :: Size a -> Css
padding :: Size a -> Size a -> Size a -> Size a -> Css
paddingTop :: Size a -> Css
paddingLeft :: Size a -> Css
paddingRight :: Size a -> Css
paddingBottom :: Size a -> Css
margin :: Size a -> Size a -> Size a -> Size a -> Css
marginTop :: Size a -> Css
marginLeft :: Size a -> Css
marginRight :: Size a -> Css
marginBottom :: Size a -> Css
module Clay.Gradient
type Ramp = [(Color, Size Rel)]
linearGradient :: Direction -> Ramp -> BackgroundImage
hGradient :: Color -> Color -> BackgroundImage
vGradient :: Color -> Color -> BackgroundImage
data Radial
circle :: Extend -> Radial
ellipse :: Extend -> Radial
circular :: Size Abs -> Radial
elliptical :: Size a -> Size a -> Radial
data Extend
closestSide :: Extend
closestCorner :: Extend
farthestSide :: Extend
farthestCorner :: Extend
radialGradient :: Loc l => l -> Radial -> Ramp -> BackgroundImage
repeatingLinearGradient :: Direction -> Ramp -> BackgroundImage
hRepeatingGradient :: Color -> Color -> BackgroundImage
vRepeatingGradient :: Color -> Color -> BackgroundImage
repeatingRadialGradient :: Loc l => l -> Radial -> Ramp -> BackgroundImage
instance Val Radial
instance Other Radial
instance Val Extend
instance Other Extend
module Clay.Text
letterSpacing :: Size a -> Css
wordSpacing :: Size a -> Css
data TextRendering
textRendering :: TextRendering -> Css
optimizeSpeed :: TextRendering
optimizeLegibility :: TextRendering
geometricPrecision :: TextRendering
textShadow :: Size a -> Size a -> Size a -> Color -> Css
data TextIndent
textIndent :: TextIndent -> Css
eachLine :: TextIndent
hanging :: TextIndent
indent :: Size a -> TextIndent
data TextDirection
direction :: TextDirection -> Css
ltr :: TextDirection
rtl :: TextDirection
data TextAlign
textAlign :: TextAlign -> Css
justify :: TextAlign
matchParent :: TextAlign
start :: TextAlign
end :: TextAlign
alignSide :: Side -> TextAlign
alignString :: Char -> TextAlign
data WhiteSpace
whiteSpace :: WhiteSpace -> Css
pre :: WhiteSpace
nowrap :: WhiteSpace
preWrap :: WhiteSpace
preLine :: WhiteSpace
data TextDecoration
textDecoration :: TextDecoration -> Css
textDecorationStyle :: Stroke -> Css
textDecorationLine :: TextDecoration -> Css
textDecorationColor :: Color -> Css
underline :: TextDecoration
overline :: TextDecoration
lineThrough :: TextDecoration
blink :: TextDecoration
data TextTransform
textTransform :: TextTransform -> Css
capitalize :: TextTransform
uppercase :: TextTransform
lowercase :: TextTransform
fullWidth :: TextTransform
data Content
content :: Content -> Css
contents :: [Content] -> Css
attrContent :: Text -> Content
stringContent :: Text -> Content
uriContent :: Text -> Content
urlContent :: Text -> Content
openQuote :: Content
closeQuote :: Content
noOpenQuote :: Content
noCloseQuote :: Content
instance Val TextRendering
instance Auto TextRendering
instance Inherit TextRendering
instance Other TextRendering
instance Val TextIndent
instance Inherit TextIndent
instance Other TextIndent
instance Val TextDirection
instance Normal TextDirection
instance Inherit TextDirection
instance Other TextDirection
instance Val TextAlign
instance Normal TextAlign
instance Inherit TextAlign
instance Other TextAlign
instance Val WhiteSpace
instance Normal WhiteSpace
instance Inherit WhiteSpace
instance Other WhiteSpace
instance Val TextDecoration
instance None TextDecoration
instance Inherit TextDecoration
instance Other TextDecoration
instance Val TextTransform
instance None TextTransform
instance Inherit TextTransform
instance Val Content
instance None Content
instance Normal Content
instance Inherit Content
module Clay.Transform
data Transformation
transform :: Transformation -> Css
transforms :: [Transformation] -> Css
translate :: Size Abs -> Size Abs -> Transformation
translateX :: Size Abs -> Transformation
translateY :: Size Abs -> Transformation
translateZ :: Size Abs -> Transformation
translate3d :: Size Abs -> Size Abs -> Size Abs -> Transformation
scale :: Double -> Double -> Transformation
scaleX :: Double -> Transformation
scaleY :: Double -> Transformation
scaleZ :: Double -> Transformation
scale3d :: Double -> Double -> Double -> Transformation
rotate :: Angle a -> Transformation
rotateX :: Angle a -> Transformation
rotateY :: Angle a -> Transformation
rotateZ :: Angle a -> Transformation
rotate3d :: Double -> Double -> Double -> Angle a -> Transformation
skew :: Angle a -> Angle a -> Transformation
skewX :: Angle a -> Transformation
skewY :: Angle a -> Transformation
perspective :: Double -> Transformation
matrix :: Double -> Double -> Double -> Double -> Double -> Double -> Transformation
matrix3d :: Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Transformation
instance Val Transformation
instance None Transformation
module Clay.Filter
data Filter
filter :: Filter -> Css
filters :: [Filter] -> Css
url :: Text -> Filter
blur :: Size Abs -> Filter
brightness :: Double -> Filter
contrast :: Size Rel -> Filter
dropShadow :: Size Abs -> Size Abs -> Size Abs -> Color -> Filter
grayscale :: Size Rel -> Filter
hueRotate :: Angle a -> Filter
invert :: Size Rel -> Filter
opacity :: Size Rel -> Filter
saturate :: Size Rel -> Filter
sepia :: Size Rel -> Filter
instance Val Filter
instance None Filter
instance Inherit Filter
module Clay.Media
aural :: MediaType
braille :: MediaType
handheld :: MediaType
print :: MediaType
projection :: MediaType
screen :: MediaType
tty :: MediaType
tv :: MediaType
embossed :: MediaType
width :: Size Abs -> Feature
minWidth :: Size Abs -> Feature
maxWidth :: Size Abs -> Feature
height :: Size Abs -> Feature
minHeight :: Size Abs -> Feature
maxHeight :: Size Abs -> Feature
deviceWidth :: Size Abs -> Feature
minDeviceWidth :: Size Abs -> Feature
maxDeviceWidth :: Size Abs -> Feature
deviceHeight :: Size Abs -> Feature
minDeviceHeight :: Size Abs -> Feature
maxDeviceHeight :: Size Abs -> Feature
aspectRatio :: (Integer, Integer) -> Feature
minAspectRatio :: (Integer, Integer) -> Feature
maxAspectRatio :: (Integer, Integer) -> Feature
deviceAspectRatio :: (Integer, Integer) -> Feature
minDeviceAspectRatio :: (Integer, Integer) -> Feature
maxDeviceAspectRatio :: (Integer, Integer) -> Feature
color :: Feature
monochrome :: Feature
scan :: Feature
grid :: Feature
minColor :: Integer -> Feature
maxColor :: Integer -> Feature
colorIndex :: Integer -> Feature
minColorIndex :: Integer -> Feature
maxColorIndex :: Integer -> Feature
minMonochrome :: Integer -> Feature
maxMonochrome :: Integer -> Feature
resolution :: Val a => a -> Feature
minResolution :: Val a => a -> Feature
maxResolution :: Val a => a -> Feature
data Resolution
dpi :: Integer -> Resolution
dppx :: Integer -> Resolution
instance Val Resolution
instance Other Resolution
module Clay.Elements
-- | Special cases, these items occur both as an HTML tag and an HTML
-- attribute. We keep them polymorph.
abbr :: IsString a => a
-- | Special cases, these items occur both as an HTML tag and an HTML
-- attribute. We keep them polymorph.
title :: IsString a => a
-- | Special cases, these items occur both as an HTML tag and an HTML
-- attribute. We keep them polymorph.
style :: IsString a => a
-- | Special cases, these items occur both as an HTML tag and an HTML
-- attribute. We keep them polymorph.
span :: IsString a => a
-- | Special cases, these items occur both as an HTML tag and an HTML
-- attribute. We keep them polymorph.
label :: IsString a => a
-- | Special cases, these items occur both as an HTML tag and an HTML
-- attribute. We keep them polymorph.
form :: IsString a => a
-- | Special cases, these items occur both as an HTML tag and an HTML
-- attribute. We keep them polymorph.
data_ :: IsString a => a
-- | Special cases, these items occur both as an HTML tag and an HTML
-- attribute. We keep them polymorph.
command :: IsString a => a
-- | Special cases, these items occur both as an HTML tag and an HTML
-- attribute. We keep them polymorph.
cite :: IsString a => a
a :: Selector
wbr :: Selector
video :: Selector
var :: Selector
ul :: Selector
u :: Selector
track :: Selector
tr :: Selector
time :: Selector
thead :: Selector
th :: Selector
tfoot :: Selector
textarea :: Selector
template :: Selector
td :: Selector
tbody :: Selector
table :: Selector
svg :: Selector
sup :: Selector
summary :: Selector
sub :: Selector
strong :: Selector
source :: Selector
small :: Selector
select :: Selector
section :: Selector
script :: Selector
samp :: Selector
s :: Selector
ruby :: Selector
rt :: Selector
rp :: Selector
q :: Selector
progress :: Selector
pre :: Selector
param :: Selector
p :: Selector
output :: Selector
option :: Selector
optgroup :: Selector
ol :: Selector
object :: Selector
noscript :: Selector
nav :: Selector
meter :: Selector
meta :: Selector
menu :: Selector
math :: Selector
mark :: Selector
map :: Selector
main_ :: Selector
link :: Selector
li :: Selector
legend :: Selector
keygen :: Selector
kbd :: Selector
ins :: Selector
input :: Selector
img :: Selector
iframe :: Selector
i :: Selector
html :: Selector
hr :: Selector
hgroup :: Selector
header :: Selector
head :: Selector
h6 :: Selector
h5 :: Selector
h4 :: Selector
h3 :: Selector
h2 :: Selector
h1 :: Selector
footer :: Selector
figure :: Selector
figcaption :: Selector
fieldset :: Selector
embed :: Selector
em :: Selector
dt :: Selector
dl :: Selector
div :: Selector
dialog :: Selector
dfn :: Selector
details :: Selector
del :: Selector
dd :: Selector
datalist :: Selector
colgroup :: Selector
col :: Selector
code :: Selector
caption :: Selector
canvas :: Selector
button :: Selector
br :: Selector
body :: Selector
blockquote :: Selector
bdo :: Selector
bdi :: Selector
base :: Selector
b :: Selector
audio :: Selector
aside :: Selector
article :: Selector
area :: Selector
address :: Selector
module Clay.Attributes
accept :: Refinement
wrap :: Refinement
width :: Refinement
value :: Refinement
usemap :: Refinement
typemustmatch :: Refinement
type_ :: Refinement
translate :: Refinement
target :: Refinement
tabindex :: Refinement
step :: Refinement
start :: Refinement
srcset :: Refinement
srclang :: Refinement
srcdoc :: Refinement
src :: Refinement
spellcheck :: Refinement
sizes :: Refinement
size :: Refinement
shape :: Refinement
selected :: Refinement
seamless :: Refinement
scoped :: Refinement
scope :: Refinement
sandbox :: Refinement
rowspan :: Refinement
rows :: Refinement
reversed :: Refinement
required :: Refinement
rel :: Refinement
readonly :: Refinement
radiogroup :: Refinement
preload :: Refinement
poster :: Refinement
placeholder :: Refinement
ping :: Refinement
pattern :: Refinement
optimum :: Refinement
open :: Refinement
novalidate :: Refinement
name :: Refinement
muted :: Refinement
multiple :: Refinement
min :: Refinement
method :: Refinement
mediagroup :: Refinement
media :: Refinement
maxlength :: Refinement
max :: Refinement
manifest :: Refinement
low :: Refinement
loop :: Refinement
list :: Refinement
lang :: Refinement
kind :: Refinement
keytype :: Refinement
itemtype :: Refinement
itemscope :: Refinement
itemref :: Refinement
itemprop :: Refinement
itemid :: Refinement
ismap :: Refinement
inputmode :: Refinement
inert :: Refinement
id :: Refinement
icon :: Refinement
httpEquiv :: Refinement
hreflang :: Refinement
href :: Refinement
high :: Refinement
hidden :: Refinement
height :: Refinement
headers :: Refinement
formtarget :: Refinement
formnovalidate :: Refinement
formmethod :: Refinement
formenctype :: Refinement
formaction :: Refinement
for :: Refinement
enctype :: Refinement
dropzone :: Refinement
draggable :: Refinement
download :: Refinement
disabled :: Refinement
dirname :: Refinement
dir :: Refinement
defer :: Refinement
default_ :: Refinement
datetime :: Refinement
crossorigin :: Refinement
coords :: Refinement
controls :: Refinement
contextmenu :: Refinement
contenteditable :: Refinement
content :: Refinement
colspan :: Refinement
cols :: Refinement
class_ :: Refinement
checked :: Refinement
charset :: Refinement
challenge :: Refinement
autoplay :: Refinement
autofocus :: Refinement
autocomplete :: Refinement
async :: Refinement
alt :: Refinement
action :: Refinement
accesskey :: Refinement
acceptCharset :: Refinement
module Clay.Pseudo
after :: Refinement
before :: Refinement
link :: Refinement
lastChild :: Refinement
firstChild :: Refinement
focus :: Refinement
hover :: Refinement
active :: Refinement
visited :: Refinement
checked :: Refinement
valid :: Refinement
target :: Refinement
root :: Refinement
required :: Refinement
outOfRange :: Refinement
optional :: Refinement
onlyOfType :: Refinement
onlyChild :: Refinement
lastOfType :: Refinement
invalid :: Refinement
inRange :: Refinement
indeterminate :: Refinement
firstOfType :: Refinement
enabled :: Refinement
empty :: Refinement
disabled :: Refinement
default_ :: Refinement
lang :: Text -> Refinement
nthOfType :: Text -> Refinement
nthLastOfType :: Text -> Refinement
nthLastChild :: Text -> Refinement
nthChild :: Text -> Refinement
module Clay
-- | Render a stylesheet with the default configuration. The pretty printer
-- is used by default.
render :: Css -> Text
-- | Render a stylesheet with a custom configuration and an optional outer
-- scope.
renderWith :: Config -> [App] -> Css -> Text
-- | Render to CSS using the default configuration (pretty) and
-- directly print to the standard output.
putCss :: Css -> IO ()
-- | Configuration to print to a pretty human readable CSS output.
pretty :: Config
-- | Configuration to print to a compacted unreadable CSS output.
compact :: Config
-- | The Css context is used to collect style rules which are
-- mappings from selectors to style properties. The Css type is a
-- computation in the StyleM monad that just collects and doesn't
-- return anything.
type Css = StyleM ()
-- | Assign a stylesheet to a selector. When the selector is nested inside
-- an outer scope it will be composed with deep.
(?) :: Selector -> Css -> Css
-- | Assign a stylesheet to a selector. When the selector is nested inside
-- an outer scope it will be composed with |>.
() :: Selector -> Css -> Css
-- | Assign a stylesheet to a filter selector. When the selector is nested
-- inside an outer scope it will be composed with the with
-- selector.
(&) :: Refinement -> Css -> Css
-- | Root is used to add style rules to the top scope.
root :: Selector -> Css -> Css
-- | Pop is used to add style rules to selectors defined in an outer scope.
-- The counter specifies how far up the scope stack we want to add the
-- rules.
pop :: Int -> Css -> Css
-- | The colon operator can be used to add style rules to the current
-- context for which there is no embedded version available. Both the key
-- and the value are plain text values and rendered as is to the output
-- CSS.
(-:) :: Key Text -> Text -> Css
type Selector = Fix SelectorF
data Refinement
-- | The star selector applies to all elements. Maps to * in CSS.
star :: Selector
-- | Select elements by name. The preferred syntax is to enable
-- OverloadedStrings and actually just use
-- "element-name" or use one of the predefined elements from
-- Clay.Elements.
element :: Text -> Selector
-- | The deep selector composer. Maps to sel1 sel2 in CSS.
(**) :: Selector -> Selector -> Selector
-- | The child selector composer. Maps to sel1 > sel2 in CSS.
(|>) :: Selector -> Selector -> Selector
-- | The filter selector composer, adds a filter to a selector. Maps to
-- something like sel#filter or sel.filter in CSS,
-- depending on the filter.
(#) :: Selector -> Refinement -> Selector
-- | The adjacent selector composer. Maps to sel1 + sel2 in CSS.
(|+) :: Selector -> Selector -> Selector
-- | Filter elements by id. The preferred syntax is to enable
-- OverloadedStrings and use "#id-name".
byId :: Text -> Refinement
-- | Filter elements by class. The preferred syntax is to enable
-- OverloadedStrings and use ".class-name".
byClass :: Text -> Refinement
-- | Filter elements by pseudo selector or pseudo class. The preferred
-- syntax is to enable OverloadedStrings and use
-- ":pseudo-selector" or use one of the predefined ones from
-- Clay.Pseudo.
pseudo :: Text -> Refinement
-- | Filter elements by pseudo selector functions. The preferred way is to
-- use one of the predefined functions from Clay.Pseudo.
func :: Text -> [Text] -> Refinement
-- | Filter elements based on the presence of a certain attribute. The
-- preferred syntax is to enable OverloadedStrings and use
-- "@attr" or use one of the predefined ones from
-- Clay.Attributes.
attr :: Text -> Refinement
-- | Filter elements based on the presence of a certain attribute with the
-- specified value.
(@=) :: Text -> Text -> Refinement
-- | Filter elements based on the presence of a certain attribute that
-- begins with the selected value.
(^=) :: Text -> Text -> Refinement
-- | Filter elements based on the presence of a certain attribute that ends
-- with the specified value.
($=) :: Text -> Text -> Refinement
-- | Filter elements based on the presence of a certain attribute that
-- contains the specified value as a substring.
(*=) :: Text -> Text -> Refinement
-- | Filter elements based on the presence of a certain attribute that have
-- the specified value contained in a space separated list.
(~=) :: Text -> Text -> Refinement
-- | Filter elements based on the presence of a certain attribute that have
-- the specified value contained in a hyphen separated list.
(|=) :: Text -> Text -> Refinement
-- | Apply a set of style rules when the media type and feature queries
-- apply.
query :: MediaType -> [Feature] -> Css -> Css
-- | Apply a set of style rules when the media type and feature queries do
-- not apply.
queryNot :: MediaType -> [Feature] -> Css -> Css
-- | Apply a set of style rules only when the media type and feature
-- queries apply.
queryOnly :: MediaType -> [Feature] -> Css -> Css
keyframes :: Text -> [(Double, Css)] -> Css
keyframesFromTo :: Text -> Css -> Css -> Css
-- | Define a new font-face.
fontFace :: Css -> Css