!Xn      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 jklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneMX      None_j6clayThe other type class is used to escape from the type safety introduced by embedding CSS properties into the typed world of Clay. 6 allows you to cast any  to a specific value type.YclayYCommon list browser prefixes to make experimental properties work in different browsers.ZclaySyntax for CSS function call.[clay&Some auxiliary mathematical functions.'6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\'LMJKHIFGDEBC@A>?<=:;8967NOPQRSTUVWXYZ[\None`ikjlmnopqrstuvwxyz{|}~     ikjlmnopqrstuvwxyz{|}~     None%1=?MQ9clay3The star selector applies to all elements. Maps to * in CSS.:clay<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.;clayNamed alias for <.<clay$The deep selector composer. Maps to  sel1 sel2 in CSS.=clayNamed alias for >.>clay%The child selector composer. Maps to  sel1 > sel2 in CSS.?clay(The adjacent selector composer. Maps to  sel1 + sel2 in CSS.@clayNamed alias for A.AclaySThe filter selector composer, adds a filter to a selector. Maps to something like  sel#filter or  sel.filter! in CSS, depending on the filter.Bclay:Filter elements by id. The preferred syntax is to enable OverloadedStrings and use  "#id-name".Cclay=Filter elements by class. The preferred syntax is to enable OverloadedStrings and use  ".class-name".DclayWFilter 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.EclaypFilter elements by pseudo selector functions. The preferred way is to use one of the predefined functions from  Clay.Pseudo.FclayaFilter 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.GclayWFilter elements based on the presence of a certain attribute with the specified value.HclaybFilter elements based on the presence of a certain attribute that begins with the selected value.IclayaFilter elements based on the presence of a certain attribute that ends with the specified value.JclayoFilter elements based on the presence of a certain attribute that contains the specified value as a substring.KclayFilter elements based on the presence of a certain attribute that have the specified value contained in a space separated list.LclayFilter elements based on the presence of a certain attribute that have the specified value contained in a hyphen separated list.3 !"('#%&$)*+,8543210/76-.9:;<=>?@ABCDEFGHIJKLMN39:;<=>?@ABCDEFGHIJKL,8543210/76-.)*+M"('#%&$ !NNone] \claydSpecial cases, these items occur both as an HTML tag and an HTML attribute. We keep them polymorph.]claydSpecial cases, these items occur both as an HTML tag and an HTML attribute. We keep them polymorph.^claydSpecial cases, these items occur both as an HTML tag and an HTML attribute. We keep them polymorph._claydSpecial cases, these items occur both as an HTML tag and an HTML attribute. We keep them polymorph.`claydSpecial cases, these items occur both as an HTML tag and an HTML attribute. We keep them polymorph.aclaydSpecial cases, these items occur both as an HTML tag and an HTML attribute. We keep them polymorph.bclaydSpecial cases, these items occur both as an HTML tag and an HTML attribute. We keep them polymorph.cclaydSpecial cases, these items occur both as an HTML tag and an HTML attribute. We keep them polymorph.dclaydSpecial cases, these items occur both as an HTML tag and an HTML attribute. We keep them polymorph.r\]^_`abcdefghijklmnopqrstuvwxyz{|}~r\]^_`abcdefghijklmnopqrstuvwxyz{|}~None+m      !"#$%&'()*+,-./0123456789:m      !"#$%&'()*+,-./0123456789:None%=?M;clayThe ;d context is used to collect style rules which are mappings from selectors to style properties. The ; type is a computation in the <6 monad that just collects and doesn't return anything.`clay>Add a new style property to the stylesheet with the specified  6 and value. The value can be any type that is in the 5 typeclass, with other words: can be converted to a .aclay>Add a new style property to the stylesheet with the specified   and value, like ` but use a   key.bclayThe 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.cclayoAssign a stylesheet to a selector. When the selector is nested inside an outer scope it will be composed with ;.dclayoAssign a stylesheet to a selector. When the selector is nested inside an outer scope it will be composed with >.eclayzAssign a stylesheet to a filter selector. When the selector is nested inside an outer scope it will be composed with the @ selector.fclay1Root is used to add style rules to the top scope.gclayPop 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.hclayIApply a set of style rules when the media type and feature queries apply.iclayPApply a set of style rules when the media type and feature queries do not apply.jclayNApply a set of style rules only when the media type and feature queries apply.mclayDefine a new font-face.nclayImport a CSS file from a URLoclayaIndicate the supplied css should override css declarations that would otherwise take precedence.Use sparingly.6;<=>DCBA@?EFGLJIHKMONPQRSTUVWYXZ[\]^_`abcdefghijklmnop6Z[WYXUVSTPQRMON\]GLJIHKEF>DCBA@?<=^_;`abcdefghijklmnopb4c5d5e5None 1=?EGHMVXclay<Type family to define what is the result of a calc operationclayFWhen combining percentages with units using calc, we get a combinationclay"Sizes can be given in percentages.clay5Sizes can be given using a length unit (e.g. em, px).clay Zero size.clay/Unitless size (as recommended for line-height).claySize in centimeters.claySize in millimeters.claySize in inches (1in = 2.54 cm).claySize in pixels.clay#Size in points (1pt = 1/72 of 1in).claySize in picas (1pc = 12pt).clay7Size in em's (computed cssDoubleText of the font-size).clay;SimpleSize in ex'es (x-height of the first avaliable font).clayDSimpleSize in rem's (em's, but always relative to the root element).clay0SimpleSize in vw's (1vw = 1% of viewport width).clay1SimpleSize in vh's (1vh = 1% of viewport height).clay/SimpleSize in vmin's (the smaller of vw or vh).clay.SimpleSize in vmax's (the larger of vw or vh).claySimpleSize in percents.clay1Plus operator to combine sizes into calc functionclay2Minus operator to combine sizes into calc functionclay2Times operator to combine sizes into calc functionclay;Reversed times operator to combine sizes into calc functionclay5Division operator to combine sizes into calc functionclayAngle in degrees.clayAngle in radians.clay1Angle in gradians (also knows as gons or grades).clayAngle in turns.$$66777 Noneclay)A key-value pair with associated comment.clay=Configuration to print to a pretty human readable CSS output.clay<Configuration to print to a compacted unreadable CSS output.clay[Configuration to print to a compacted unreadable CSS output for embedding inline with HTML.clay/Render to CSS using the default configuration (-) and directly print to the standard output.clay[Render a stylesheet with the default configuration. The pretty printer is used by default.clayMRender a stylesheet with a custom configuration and an optional outer scope.clayRender a single CSS . None%% NoneM6,      !"#$%,      !"#$% NoneM()*+,-./0123456789:;<=>?@ABCDE*?+,-./0123456789:;<=>)B@A(CDE None UVWXYZ[\]^_`abcdefghiUVWXYZ[\]^_`abcdefghiNoneclay-name of format according to CSS specification jklmnopqrst mnopqrsjkltNone=?MclayThe five generic font families. 6http://www.w3.org/TR/css3-fonts/#generic-font-families.clayWe 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-propclayAn alias for color.clayThe  style rules takes to lists of font families: zero or more custom font-families and preferably one or more generic font families./xyz{|}~/}~|{zyxNone=?MclayCSS Flexible Box Layout %http://dev.w3.org/csswg/css-flexbox-1))NoneMD !" !"NoneM&clayFocus behaviour.'claySelection mode.(claySelection mode.)claySelection mode.*clay!Enabling user interface elements.+claySelection mode.,claySelection mode.-clayModifiability of an element..claySelection mode./claySelection mode.0claySelection mode.1clayContent selection granularity.2claySelection mode.3claySelection mode.4claySelection mode.5claySelection mode.6clayContent focusing granularity.7clay Focus mode.8clay Focus mode.9clay Focus mode.:clay Focus mode.;clay Focus mode.&'()*+,-./0123456789:;)*+,(-./0'12345&6789:;NoneMnJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~nVUWX\TYZ[Sb]^_`aRycdefgihjklmnopqrstuvwxQz{|}P~ONLMJKNone%gclayAnnotate the supplied ;0 with the supplied comment. Comments work with OverloadedStrings-. This will annotate every non-nested value.3NoneMaA      !"#$%&'(A      !"#$%&'(NoneM3clayThis function will usually take a singleton list, but requiring a (non-empty) list prevents accidentally applying the modifiers (7, 8) incorrectly. (from Control.Applicative) creates a singleton list. ?boxShadow . pure $ none boxShadow . pure $ shadow (px 1) (px 1) Use with {- LANGUAGE OverloadedLists -} for the simplest list syntax. 1boxShadow [none] boxShadow [shadow (px 1) (px 1)]+This is recommended for supplying multiple  values. VboxShadow [shadowWithBlur (em 2) (em 1), bsInset . bsColor red $ shadow (px 1) (px 2)]6clay9While this function is the correct type to work with the ,  or < functions, such applications are unlikely to be meaningful.7clayAdapt the provided  box-shadow with the inset prefix. boxShadow . pure . bsInset8claySupply a color to the provided  box-shadow.9clay,This is the drop-in replacement for the old 37 function (< 0.13). It is possible to continue for now:clayCReplace calls to this function as follows (using -XOverloadedLists) boxShadowWithSpread x y rb rs c 2boxShadow [c `bsColor` shadowWithSpread x y rb rs];clayCReplace calls to this function as follows (using -XOverloadedLists) 1boxShadows [(x1, y1, rb1, c1), (x2, y2, rb2, c2)] aboxShadow [ c1 `bsColor` shadowWithBlur x1 y1 rb1 , c2 `bsColor` shadowWithBlur x2 y2 rb2 ]<clayCReplace calls to this function as follows (using -XOverloadedLists) insetBoxShadow s x y rb c 7boxShadow [bsInset $ c `bsColor` shadowWithBlur x y rb]4clayHorizontal offsetclayVertical offset5clayHorizontal offsetclayVertical offsetclay Blur radius6clayHorizontal offsetclayVertical offsetclay Blur radiusclay Spread radius./0123456789:;<./0123456789:;<89 None=?M*pQclayWe 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.sclayOWe have to prefix these values to avoid conflict with existing property names.tclayOWe have to prefix these values to avoid conflict with existing property names.uclayOWe have to prefix these values to avoid conflict with existing property names.vclayOWe have to prefix these values to avoid conflict with existing property names.wclayOWe have to prefix these values to avoid conflict with existing property names.xclayOWe have to prefix these values to avoid conflict with existing property names.7EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz7QRSPVWTUO[\XYZNde]^_`abcLjkiKmnlJqropMghfIstuvwxHyzGEFNone=?M/,clayWe 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.None=?M0rNoneM6hclayQAn internal function that ensures each-line and hanging are processed correctly.clayAnnotate the supplied  with  each-line or hanging or both. 0eachLine . hanging . indent $ px 3 :: TextIndentclayAnnotate the supplied  with  each-line or hanging or both. 0eachLine . hanging . indent $ px 3 :: TextIndentE      !"#$%&'()*+,-.E     $"#! -.%&'()*+,NoneM9`clayTime in seconds.aclayTime in milliseconds._`a_`aNoneM9jklmnopqrstuvwxyz{|}~jklwxyz{mnopqrstuv|}~NoneM;NoneM;None= 6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\iljkmnopqrstuvwxyz{|}~     )9:<>?ABCDEFGHIJKL\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'(*+,-./12567:;bcdefghijklmno()*+,-./0123456789:;<=>?@ABCDEUVWXYZ[\]^_`abcdefghijklmnopqrstxyz{|}~!"&'()*+,-./0123456789:;JKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmnopqrstuvwxyz{|}~      !"#$%&'(./0123456789:;<EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz     !"#$%&'()*+,-._`ajklmnopqrstuvwxyz{|}~F;cdefgb)9:<>A?BCDEFGHIJKLhijklmon      !"#$%&'(*+,-./12567:\]^_`abcdefghijklmnopqrstuvwxyz{|}~JKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmnopqrstuvwxyz{|}~xyz{|}~     !"#$%&'()*+,-.!"  !!"#$$%&&'(()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Q      !"#$%&'()*+,-./01234567789:;<=>?@ABBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    X  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN#OPQRSTUVWXYZ[[\]^_>`abcddeffgghijkklmnopqrstuvwxyz{|}~                                                 6 v J                  O                         ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 [ \ O      ] ^ _ ` a b c d e fghijklmnopqrstuvwxyzz{{|}~P      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~LG      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\K]^_`abcdefghijklmnopqrstuvwxyz{|}~ "clay-0.13.3-856vM2zfdRoBQoGbwpJlpE Clay.Property Clay.Common Clay.Color Clay.Selector Clay.ElementsClay.AttributesClay.Stylesheet Clay.Size Clay.Render Clay.Pseudo Clay.Media Clay.List Clay.Geometry Clay.FontFace Clay.Font Clay.Flexbox Clay.Filter Clay.Dynamic Clay.Display Clay.Comments Clay.BorderClay.BoxClay.Background Clay.Mask Clay.Gradient Clay.Text Clay.TimeClay.TransformClay.TransitionClay.AnimationClayE5LiteralValvalueValueunValueKeyunKeysPrefixedPlain unPrefixedunPlainmergeplainquotecast cssDoubleText intercalatenoCommas!$fMonoidPrefixed$fSemigroupPrefixed$fIsStringPrefixed $fValNonEmpty$fVal[] $fValEither$fVal(,) $fValMaybe $fValValue $fValDouble $fValInteger $fValText $fValLiteral$fHasResolutionE5$fShowPrefixed $fEqPrefixed $fShowKey$fSemigroupKey $fMonoidKey $fIsStringKey $fShowValue$fSemigroupValue $fMonoidValue$fIsStringValue $fEqValue $fShowLiteral$fSemigroupLiteral$fMonoidLiteral$fIsStringLiteralOtherotherUnsetunsetInitialinitialHiddenhiddenVisiblevisibleNormalnormalNonenoneInheritinheritCentercenterBaselinebaselineAutoautoAllallallValue autoValue baselineValue centerValue inheritValue normalValue noneValue visibleValue hiddenValue initialValue unsetValuebrowserscallfracMod decimalRound $fAllValue $fAutoValue$fBaselineValue $fCenterValue$fInheritValue $fNoneValue $fNormalValue$fVisibleValue $fHiddenValue$fInitialValue $fUnsetValue $fOtherValueColorRgbaHslargbargbhslahslgrayish transparentsetRsetGsetBsetAtoRgbatoHsla*.+.-.clamplightendarkenlerpparse aliceblue antiquewhiteaqua aquamarineazurebeigebisqueblackblanchedalmondblue bluevioletbrown burlywood cadetblue chartreuse chocolatecoralcornflowerbluecornsilkcrimsoncyandarkbluedarkcyan darkgoldenroddarkgray darkgreendarkgrey darkkhaki darkmagentadarkolivegreen darkorange darkorchiddarkred darksalmon darkseagreen darkslateblue darkslategray darkslategrey darkturquoise darkvioletdeeppink deepskybluedimgraydimgrey dodgerblue firebrick floralwhite forestgreenfuchsia gainsboro ghostwhitegold goldenrodgraygreen greenyellowgreyhoneydewhotpink indianredindigoivorykhakilavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyanlightgoldenrodyellow lightgray lightgreen lightgrey lightpink lightsalmon lightseagreen lightskybluelightslategraylightslategreylightsteelblue lightyellowlime limegreenlinenmagentamaroonmediumaquamarine mediumblue mediumorchid mediumpurplemediumseagreenmediumslatebluemediumspringgreenmediumturquoisemediumvioletred midnightblue mintcream mistyrosemoccasin navajowhitenavyoldlaceolive olivedraborange orangeredorchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuffperupinkplum powderbluepurplered rosybrown royalblue saddlebrownsalmon sandybrownseagreenseashellsiennasilverskyblue slateblue slategray slategreysnow springgreen steelbluetantealthistletomato turquoisevioletwheatwhite whitesmokeyellow yellowgreen$fIsStringColor $fOtherColor$fInheritColor $fAutoColor $fNoneColor $fValColor $fShowColor $fEqColorSelector SelectorFFixInoutPathStarElemChildDeepAdjacentCombined RefinementunFilter PredicateIdClassAttrAttrVal AttrBeginsAttrEnds AttrContains AttrSpaceAttrHyphPseudo PseudoFunc PseudoElemstarelementdeep**child|>|+with#byIdbyClasspseudofuncattr@=^=$=*=~=|=refinementFromTextselectorFromText$fIsStringRefinement $fMonoidFix$fSemigroupFix $fIsStringFix $fEqPredicate$fOrdPredicate$fShowPredicate$fShowRefinement$fSemigroupRefinement$fMonoidRefinement $fShowPath$fShowSelectorF $fShowFixabbrcitecommanddata_formlabelspanstyletitleaaddressareaarticleasideaudiobbasebdibdo blockquotebodybrbuttoncanvascaptioncodecolcolgroupdatalistdddeldetailsdfndialogdivdldtemembedfieldset figcaptionfigurefooterh1h2h3h4h5h6headheaderhgrouphrhtmliiframeimginputinskbdkeygenlegendlilinkmain_mapmarkmenumetametermathnavnoscriptobjectoloptgroupoptionoutputpparampreprogressqrprtrubyssampscriptsectionselectsmallsourcestrongsubsummarysupsvgtabletbodytdtemplatetextareatfootththeadtimetrtrackuulvarvideowbraccept acceptCharset accesskeyactionaltasync autocomplete autofocusautoplay challengecharsetcheckedclass_colscolspancontentcontenteditable contextmenucontrolscoords crossorigindatetimedefault_deferdirdirnamedisableddownload draggabledropzoneenctypefor formaction formenctype formmethodformnovalidate formtargetheadersheighthighhrefhreflang httpEquiviconidinert inputmodeismapitemiditempropitemref itemscopeitemtypekeytypekindlanglistlooplowmanifestmax maxlengthmedia mediagroupmethodminmultiplemutedname novalidateopenoptimumpatternping placeholderposterpreload radiogroupreadonlyrelrequiredreversedrowsrowspansandboxscopescopedseamlessselectedshapesizesizes spellchecksrcsrcdocsrclangsrcsetstartsteptabindextarget translatetype_ typemustmatchusemapwidthwrapCssStyleMSRulePropertyNestedQueryFaceKeyframeImport KeyframesAppSelfRootPopSubModifier ImportantComment CommentText unCommentTextFeature MediaQuery NotOrOnlyNotOnly MediaType _Important_CommentrunSrulekeyprefixed-:?