S      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                               !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None      None-3The star selector applies to all elements. Maps to * in CSS. .;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. /Named alias for . 0$The deep selector composer. Maps to  sel1 sel2 in CSS. 1Named alias for 2. 2%The child selector composer. Maps to  sel1 > sel2 in CSS. 3(The adjacent selector composer. Maps to  sel1 + sel2 in CSS. 4Named alias for `#`. 5CThe filter selector composer, adds a filter to a selector. Maps to  something like sel#filter or  sel.filter" in CSS, depending on the filter. 69Filter elements by id. The preferred syntax is to enable  OverloadedStrings and use "#id-name". 7<Filter elements by class. The preferred syntax is to enable  OverloadedStrings and use " .class-name". 8IFilter 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. 9JFilter elements by pseudo selector functions. The preferred way is to use & one of the predefined functions from  Clay.Pseudo. :BFilter 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. ;FFilter elements based on the presence of a certain attribute with the  specified value. <GFilter elements based on the presence of a certain attribute that ends  with the specified value. =KFilter elements based on the presence of a certain attribute that have the 6 specified value contained in a space separated list. >KFilter elements based on the presence of a certain attribute that have the 7 specified value contained in a hyphen separated list. 1 !"#$%&'()*+,-./0123456789:;<=>?@. !"#$%&'()*+,-./0123456789:;<=>?@.-./0123456789:;<=>#,+*)('&%$ !"?@ !"# ,+*)('&%$-./0123456789:;<=>?@NoneAJThe other type class is used to escape from the type safety introduced by 8 embedding CSS properties into the typed world of Clay. A allows you to  cast any  to a specific value type. OECommon list browser prefixes to make experimental properties work in  different browsers. ABCDEFGHIJKLMNOABCDEFGHIJKLMNOMNKLIJGHEFCDABOABCDEFGHIJKLMNONone PThe P@ context is used to collect style rules which are mappings from $ selectors to style properties. The P type is a computation in the  Q# monad that just collects and doesn't return anything. f>Add a new style property to the stylesheet with the specified  and 1 value. The value can be any type that is in the  typeclass, with other  words: can be converted to a . g>Add a new style property to the stylesheet with the specified  and  value, like f but use a   key. hIThe colon operator can be used to add style rules to the current context N 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. iIAssign a stylesheet to a selector. When the selector is nested inside an & outer scope it will be composed with /. jIAssign a stylesheet to a selector. When the selector is nested inside an & outer scope it will be composed with 2. kFAssign a stylesheet to a filter selector. When the selector is nested 4 inside an outer scope it will be composed with the 4 selector. l2Root is used to add style rules to the top scope. mKPop is used to add style rules to selectors defined in an outer scope. The H counter specifies how far up the scope stack we want to add the rules. nJApply a set of style rules when the media type and feature queries apply. oQApply a set of style rules when the media type and feature queries do not apply. pOApply a set of style rules only when the media type and feature queries apply. !PQRSTUVWXYZ[\]^_`abcdefghijklmnop!PQRSTUVWXYZ[\]^_`abcdefghijklmnop!deacb_`]^W\[ZYXSVUTQRPfghijklmnopPQRSVUTW\[ZYX]^_`acbdefghijklmnopNoney>Configuration to print to a pretty human readable CSS output. z=Configuration to print to a compacted unreadable CSS output. {/Render to CSS using the default configuration (y) and directly  print to the standard output. |JRender a stylesheet with the default configuration. The pretty printer is  used by default. }FRender a stylesheet with a custom configuration and an optional outer  scope. qrstuvwxyz{|} qrstuvwxyz{|} qrstuvwxyz|{}qrstuvwxyz{|}NoneTime in seconds. Time in milliseconds. ~~~~NoneNone      !"#$%&'()*+,-./0123456789:      !"#$%&'()*+,-./0123456789::9876543210/.-,+*)('&%$#"!            !"#$%&'()*+,-./0123456789: None ?0Sizes can be absolute like pixels, points, etc. @(Sizes can be relative like percentages. ASize in pixels. BSize in points. C Size in em's. D Size in ex'es. ESize in percentages. IAngle in degrees. JAngle in radians. ;<=>?@ABCDEFGHIJ;<=>?@ABCDEFGHIJ>?@ABCDEFHG;=<IJ;<=>?@ABCDEFGHIJ None9KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None NoneJWe implement the generic background property as a type class that accepts N multiple value types. This allows us to combine different background aspects  into a shorthand syntax. HWe have to prefix these values to avoid conflict with existing property  names. HWe have to prefix these values to avoid conflict with existing property  names. HWe have to prefix these values to avoid conflict with existing property  names. HWe have to prefix these values to avoid conflict with existing property  names. HWe have to prefix these values to avoid conflict with existing property  names. HWe have to prefix these values to avoid conflict with existing property  names. N55B None@999NoneDWe implement the generic font property as a type class that accepts M multiple value types. This allows us to combine different font aspects into J a shorthand syntax. Fonts require a mandatory part and have a optional a  part. An alias for color. 6           !"#-      !"#-      !"#.           !"#None$%&'()*+,-./012345678$%&'()*+,-./012345678$%&'()*+,-./012345678$%&'()*+,-./012345678None9:;<=>?@ABCDEF9:;<=>?@ABCDEF:;<=9ABCDE>?@F9:;<=>?@ABCDEFNone@GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8OPNTQRSUMYVWXL\Z[Kc]^_`abJdefghIopmnijklHuqrstG}~vwxyz{|8GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneNone0 --/ None ASpecial cases, these items occur both as an HTML tag and an HTML $ attribute. We keep them polymorph. ASpecial cases, these items occur both as an HTML tag and an HTML $ attribute. We keep them polymorph. ASpecial cases, these items occur both as an HTML tag and an HTML $ attribute. We keep them polymorph. ASpecial cases, these items occur both as an HTML tag and an HTML $ attribute. We keep them polymorph. ASpecial cases, these items occur both as an HTML tag and an HTML $ attribute. We keep them polymorph. ASpecial cases, these items occur both as an HTML tag and an HTML $ attribute. We keep them polymorph. ASpecial cases, these items occur both as an HTML tag and an HTML $ attribute. We keep them polymorph. ASpecial cases, these items occur both as an HTML tag and an HTML $ attribute. We keep them polymorph. ASpecial cases, these items occur both as an HTML tag and an HTML $ attribute. We keep them polymorph. n      !"#$%&'()*+,-./01n      !"#$%&'()*+,-./01n10/.-,+*)('&%$#"!      n      !"#$%&'()*+,-./01Nonem23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~m23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~m2~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543m23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneNone! -.02356789:;<=>ABCDEFGHIJKLMNOPhijklmnopyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdfghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<?@BCDEFGHIJKMNOPQRSTUVWZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ |}{yzPijklmh -.02536789:;<=>nop! !"#$%&'(()*+,-./01233456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij0klmnnoopqrsstuvwxyz{|}~S      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~357468 'O)     o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR4VSTUV(WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~.i39GB| G J         W                                 CQRSTUVWXFclay-0.2 Clay.Property Clay.Selector Clay.CommonClay.Stylesheet Clay.Render Clay.TimeClay.Transition Clay.Color Clay.Size Clay.BorderClay.BoxClay.Background Clay.Display Clay.Font Clay.Geometry Clay.Gradient Clay.TextClay.Transform Clay.Media Clay.ElementsClay.Attributes Clay.PseudoClayLiteralValvalueValueunValueKeyunKeysPrefixedPlainmergeplaincast interspersenoCommas!Selector SelectorFFixInoutPathCombinedAdjacentDeepChildElemStar RefinementunFilter Predicate PseudoFuncPseudoAttrHyph AttrSpaceAttrEndsAttrValAttrClassIdstarelementdeep**child|>|+with#byIdbyClasspseudofuncattr@=$=~=|=filterFromTexttextOtherotherHiddenhiddenVisiblevisibleNormalnormalNonenoneInheritinheritAutoautobrowsersCssStyleMSRuleQueryNestedPropertyAppSubPopRootSelfFeature MediaQuery NotOrOnlyOnlyNot MediaTypekeyprefixed-:?