-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | CSS preprocessor as embedded Haskell. -- -- Clay is a CSS preprocessor like LESS and Sass, but implemented as an -- embedded domain specific language (EDSL) in Haskell. This means that -- all CSS selectors and style rules are first class Haskell functions, -- which makes reuse and composability easy. -- -- The project is described on http://fvisser.nl/clay. -- -- The API documentation can be found in the top level module -- Clay. -- --
--   0.10 -> 0.10.1
--   - Expose a render function for single selectors.
--   - Added super for vertical-align.
--   - Added support for border-collapse.
--   - Allow initial for the content property.
--   - Added support for CSS import.
--   Thanks to Heather, Collin J. Doering, Fraser Murray and Jonathan Fischoff.
--   
@package clay @version 0.11 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 PseudoElem :: 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 GHC.Show.Show a => GHC.Show.Show (Clay.Selector.SelectorF a) instance GHC.Show.Show f => GHC.Show.Show (Clay.Selector.Path f) instance GHC.Show.Show Clay.Selector.Refinement instance GHC.Show.Show Clay.Selector.Predicate instance GHC.Classes.Ord Clay.Selector.Predicate instance GHC.Classes.Eq Clay.Selector.Predicate instance GHC.Show.Show (f (Clay.Selector.Fix f)) => GHC.Show.Show (Clay.Selector.Fix f) instance Data.String.IsString Clay.Selector.Refinement instance Data.String.IsString (Clay.Selector.Fix Clay.Selector.SelectorF) instance GHC.Base.Monoid (Clay.Selector.Fix Clay.Selector.SelectorF) 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) infixr 9 ! instance Data.String.IsString Clay.Property.Literal instance GHC.Base.Monoid Clay.Property.Literal instance GHC.Show.Show Clay.Property.Literal instance GHC.Classes.Eq Clay.Property.Value instance Data.String.IsString Clay.Property.Value instance GHC.Base.Monoid Clay.Property.Value instance GHC.Show.Show Clay.Property.Value instance Data.String.IsString (Clay.Property.Key a) instance GHC.Base.Monoid (Clay.Property.Key a) instance GHC.Show.Show (Clay.Property.Key a) instance GHC.Classes.Eq Clay.Property.Prefixed instance GHC.Show.Show Clay.Property.Prefixed instance Data.String.IsString Clay.Property.Prefixed instance GHC.Base.Monoid Clay.Property.Prefixed instance Clay.Property.Val Data.Text.Internal.Text instance Clay.Property.Val Clay.Property.Literal instance Clay.Property.Val GHC.Integer.Type.Integer instance Data.Fixed.HasResolution Clay.Property.E5 instance Clay.Property.Val GHC.Types.Double instance Clay.Property.Val Clay.Property.Value instance Clay.Property.Val a => Clay.Property.Val (GHC.Base.Maybe a) instance (Clay.Property.Val a, Clay.Property.Val b) => Clay.Property.Val (a, b) instance (Clay.Property.Val a, Clay.Property.Val b) => Clay.Property.Val (Data.Either.Either a b) instance Clay.Property.Val a => Clay.Property.Val [a] -- | 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 Baseline a baseline :: Baseline a => a class Center a center :: Center 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 -- | Some auxiliary mathematical functions. fracMod :: RealFrac a => a -> a -> a decimalRound :: RealFrac a => a -> Int -> a instance Clay.Common.All Clay.Property.Value instance Clay.Common.Auto Clay.Property.Value instance Clay.Common.Baseline Clay.Property.Value instance Clay.Common.Center Clay.Property.Value instance Clay.Common.Inherit Clay.Property.Value instance Clay.Common.Normal Clay.Property.Value instance Clay.Common.None Clay.Property.Value instance Clay.Common.Visible Clay.Property.Value instance Clay.Common.Hidden Clay.Property.Value instance Clay.Common.Other Clay.Property.Value instance Clay.Common.Initial Clay.Property.Value instance Clay.Common.Unset Clay.Property.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 Import :: Text -> 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 infix 4 -: -- | Assign a stylesheet to a selector. When the selector is nested inside -- an outer scope it will be composed with deep. (?) :: Selector -> Css -> Css infixr 5 ? -- | Assign a stylesheet to a selector. When the selector is nested inside -- an outer scope it will be composed with |>. ( Css -> Css infixr 5 with -- selector. (&) :: Refinement -> Css -> Css infixr 5 & -- | 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 -- | Import a CSS file from a URL importUrl :: Text -> Css instance GHC.Base.Monad Clay.Stylesheet.StyleM instance GHC.Base.Applicative Clay.Stylesheet.StyleM instance GHC.Base.Functor Clay.Stylesheet.StyleM instance GHC.Show.Show Clay.Stylesheet.Keyframes instance GHC.Show.Show Clay.Stylesheet.Rule instance GHC.Show.Show Clay.Stylesheet.App instance GHC.Show.Show Clay.Stylesheet.MediaQuery instance GHC.Show.Show Clay.Stylesheet.Feature instance GHC.Show.Show Clay.Stylesheet.NotOrOnly instance Clay.Common.All Clay.Stylesheet.MediaType instance GHC.Show.Show Clay.Stylesheet.MediaType instance Clay.Common.Other Clay.Stylesheet.MediaType instance Clay.Property.Val Clay.Stylesheet.MediaType instance GHC.Base.Monoid Clay.Stylesheet.Css -- | 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 Clay.Common.Auto Clay.Dynamic.UserFocus instance Clay.Common.Normal Clay.Dynamic.UserFocus instance Clay.Common.None Clay.Dynamic.UserFocus instance Clay.Common.Inherit Clay.Dynamic.UserFocus instance Clay.Property.Val Clay.Dynamic.UserFocus instance Clay.Common.All Clay.Dynamic.UserSelect instance Clay.Common.None Clay.Dynamic.UserSelect instance Clay.Common.Inherit Clay.Dynamic.UserSelect instance Clay.Property.Val Clay.Dynamic.UserSelect instance Clay.Common.Inherit Clay.Dynamic.UserModify instance Clay.Property.Val Clay.Dynamic.UserModify instance Clay.Common.None Clay.Dynamic.UserInput instance Clay.Common.Inherit Clay.Dynamic.UserInput instance Clay.Property.Val Clay.Dynamic.UserInput 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 GHC.Show.Show Clay.FontFace.FontFaceSrc instance GHC.Show.Show Clay.FontFace.FontFaceFormat instance Clay.Property.Val Clay.FontFace.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 Clay.Common.Other Clay.List.ListStyleImage instance Clay.Common.None Clay.List.ListStyleImage instance Clay.Common.Inherit Clay.List.ListStyleImage instance Clay.Common.Initial Clay.List.ListStyleImage instance Clay.Property.Val Clay.List.ListStyleImage instance Clay.Common.Other Clay.List.ListStylePosition instance Clay.Common.None Clay.List.ListStylePosition instance Clay.Common.Inherit Clay.List.ListStylePosition instance Clay.Common.Initial Clay.List.ListStylePosition instance Clay.Property.Val Clay.List.ListStylePosition instance Clay.Common.Other Clay.List.ListStyleType instance Clay.Common.None Clay.List.ListStyleType instance Clay.Common.Inherit Clay.List.ListStyleType instance Clay.Common.Initial Clay.List.ListStyleType instance Clay.Property.Val Clay.List.ListStyleType 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 -- | Render a single CSS Selector. renderSelector :: Selector -> Text module Clay.Time data Time -- | Time in seconds. sec :: Double -> Time -- | Time in milliseconds. ms :: Double -> Time instance Clay.Common.Other Clay.Time.Time instance Clay.Common.None Clay.Time.Time instance Clay.Common.Inherit Clay.Time.Time instance Clay.Common.Normal Clay.Time.Time instance Clay.Common.Auto Clay.Time.Time instance Clay.Property.Val Clay.Time.Time instance GHC.Num.Num Clay.Time.Time instance GHC.Real.Fractional Clay.Time.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 Clay.Common.Auto Clay.Transition.TimingFunction instance Clay.Common.Other Clay.Transition.TimingFunction instance Clay.Property.Val Clay.Transition.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 Clay.Common.None Clay.Animation.FillMode instance Clay.Common.Other Clay.Animation.FillMode instance Clay.Property.Val Clay.Animation.FillMode instance Clay.Common.Other Clay.Animation.PlayState instance Clay.Property.Val Clay.Animation.PlayState instance Clay.Common.Unset Clay.Animation.AnimationName instance Clay.Common.Inherit Clay.Animation.AnimationName instance Clay.Common.Initial Clay.Animation.AnimationName instance Data.String.IsString Clay.Animation.AnimationName instance Clay.Common.Other Clay.Animation.AnimationName instance Clay.Property.Val Clay.Animation.AnimationName instance Clay.Common.Normal Clay.Animation.IterationCount instance Clay.Common.Other Clay.Animation.IterationCount instance Clay.Property.Val Clay.Animation.IterationCount instance Clay.Common.Normal Clay.Animation.AnimationDirection instance Clay.Common.Other Clay.Animation.AnimationDirection instance Clay.Property.Val Clay.Animation.AnimationDirection module Clay.Color data Color Rgba :: Integer -> Integer -> Integer -> Float -> Color Hsla :: Integer -> Float -> Float -> Float -> Color Other :: Value -> Color rgba :: Integer -> Integer -> Integer -> Float -> Color rgb :: Integer -> Integer -> Integer -> Color hsla :: Integer -> Float -> Float -> Float -> Color hsl :: Integer -> Float -> Float -> Color grayish :: Integer -> Color transparent :: Color setR :: Integer -> Color -> Color setG :: Integer -> Color -> Color setB :: Integer -> Color -> Color setA :: Float -> Color -> Color toRgba :: Color -> Color toHsla :: Color -> Color (*.) :: Color -> Integer -> Color (+.) :: Color -> Integer -> Color (-.) :: Color -> Integer -> Color clamp :: Ord a => Num a => a -> a lighten :: Float -> Color -> Color darken :: Float -> Color -> Color lerp :: Float -> Color -> Color -> Color parse :: Text -> Color aliceblue :: Color antiquewhite :: Color aqua :: Color aquamarine :: Color azure :: Color beige :: Color bisque :: Color black :: Color blanchedalmond :: Color blue :: Color blueviolet :: Color brown :: Color burlywood :: Color cadetblue :: Color chartreuse :: Color chocolate :: Color coral :: Color cornflowerblue :: Color cornsilk :: Color crimson :: Color cyan :: Color darkblue :: Color darkcyan :: Color darkgoldenrod :: Color darkgray :: Color darkgreen :: Color darkgrey :: Color darkkhaki :: Color darkmagenta :: Color darkolivegreen :: Color darkorange :: Color darkorchid :: Color darkred :: Color darksalmon :: Color darkseagreen :: Color darkslateblue :: Color darkslategray :: Color darkslategrey :: Color darkturquoise :: Color darkviolet :: Color deeppink :: Color deepskyblue :: Color dimgray :: Color dimgrey :: Color dodgerblue :: Color firebrick :: Color floralwhite :: Color forestgreen :: Color fuchsia :: Color gainsboro :: Color ghostwhite :: Color gold :: Color goldenrod :: Color gray :: Color green :: Color greenyellow :: Color grey :: Color honeydew :: Color hotpink :: Color indianred :: Color indigo :: Color ivory :: Color khaki :: Color lavender :: Color lavenderblush :: Color lawngreen :: Color lemonchiffon :: Color lightblue :: Color lightcoral :: Color lightcyan :: Color lightgoldenrodyellow :: Color lightgray :: Color lightgreen :: Color lightgrey :: Color lightpink :: Color lightsalmon :: Color lightseagreen :: Color lightskyblue :: Color lightslategray :: Color lightslategrey :: Color lightsteelblue :: Color lightyellow :: Color lime :: Color limegreen :: Color linen :: Color magenta :: Color maroon :: Color mediumaquamarine :: Color mediumblue :: Color mediumorchid :: Color mediumpurple :: Color mediumseagreen :: Color mediumslateblue :: Color mediumspringgreen :: Color mediumturquoise :: Color mediumvioletred :: Color midnightblue :: Color mintcream :: Color mistyrose :: Color moccasin :: Color navajowhite :: Color navy :: Color oldlace :: Color olive :: Color olivedrab :: Color orange :: Color orangered :: Color orchid :: Color palegoldenrod :: Color palegreen :: Color paleturquoise :: Color palevioletred :: Color papayawhip :: Color peachpuff :: Color peru :: Color pink :: Color plum :: Color powderblue :: Color purple :: Color red :: Color rosybrown :: Color royalblue :: Color saddlebrown :: Color salmon :: Color sandybrown :: Color seagreen :: Color seashell :: Color sienna :: Color silver :: Color skyblue :: Color slateblue :: Color slategray :: Color slategrey :: Color snow :: Color springgreen :: Color steelblue :: Color tan :: Color teal :: Color thistle :: Color tomato :: Color turquoise :: Color violet :: Color wheat :: Color white :: Color whitesmoke :: Color yellow :: Color yellowgreen :: Color instance GHC.Classes.Eq Clay.Color.Color instance GHC.Show.Show Clay.Color.Color instance Clay.Property.Val Clay.Color.Color instance Clay.Common.None Clay.Color.Color instance Clay.Common.Auto Clay.Color.Color instance Clay.Common.Inherit Clay.Color.Color instance Clay.Common.Other Clay.Color.Color instance Data.String.IsString Clay.Color.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 -- | Zero size. nil :: Size a -- | Unitless size (as recommended for line-height). unitless :: Double -> Size a -- | Size in centimeters. cm :: Double -> Size Abs -- | Size in millimeters. mm :: Double -> Size Abs -- | Size in inches (1in = 2.54 cm). inches :: Double -> Size Abs -- | Size in pixels. px :: Double -> Size Abs -- | Size in points (1pt = 1/72 of 1in). pt :: Double -> Size Abs -- | Size in picas (1pc = 12pt). pc :: Double -> Size Abs -- | Size in em's (computed value of the font-size). em :: Double -> Size Rel -- | Size in ex'es (x-height of the first avaliable font). ex :: Double -> Size Rel -- | Size in percents. pct :: Double -> Size Rel -- | Size in rem's (em's, but always relative to the root element). rem :: Double -> Size Rel -- | Size in vw's (1vw = 1% of viewport width). vw :: Double -> Size Rel -- | Size in vh's (1vh = 1% of viewport height). vh :: Double -> Size Rel -- | Size in vmin's (the smaller of vw or vh). vmin :: Double -> Size Rel -- | Size in vmax's (the larger of vw or vh). vmax :: 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 data Grad data Turn -- | Angle in degrees. deg :: Double -> Angle Deg -- | Angle in radians. rad :: Double -> Angle Rad -- | Angle in gradians (also knows as gons or grades). grad :: Double -> Angle Grad -- | Angle in turns. turn :: Double -> Angle Turn instance Clay.Common.Other (Clay.Size.Angle a) instance Clay.Common.Inherit (Clay.Size.Angle a) instance Clay.Common.Auto (Clay.Size.Angle a) instance Clay.Property.Val (Clay.Size.Angle a) instance Clay.Common.Other (Clay.Size.Size a) instance Clay.Common.None (Clay.Size.Size a) instance Clay.Common.Inherit (Clay.Size.Size a) instance Clay.Common.Normal (Clay.Size.Size a) instance Clay.Common.Auto (Clay.Size.Size a) instance Clay.Property.Val (Clay.Size.Size a) instance GHC.Num.Num (Clay.Size.Size Clay.Size.Abs) instance GHC.Real.Fractional (Clay.Size.Size Clay.Size.Abs) instance GHC.Num.Num (Clay.Size.Size Clay.Size.Rel) instance GHC.Real.Fractional (Clay.Size.Size Clay.Size.Rel) instance GHC.Num.Num (Clay.Size.Angle Clay.Size.Deg) instance GHC.Real.Fractional (Clay.Size.Angle Clay.Size.Deg) instance GHC.Num.Num (Clay.Size.Angle Clay.Size.Rad) instance GHC.Real.Fractional (Clay.Size.Angle Clay.Size.Rad) instance GHC.Num.Num (Clay.Size.Angle Clay.Size.Grad) instance GHC.Real.Fractional (Clay.Size.Angle Clay.Size.Grad) instance GHC.Num.Num (Clay.Size.Angle Clay.Size.Turn) instance GHC.Real.Fractional (Clay.Size.Angle Clay.Size.Turn) 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 separate :: 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 middle :: VerticalAlignValue Value vAlignSub :: VerticalAlignValue Value vAlignSuper :: 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 Clay.Common.Auto (Clay.Display.CursorValue a) instance Clay.Common.Inherit (Clay.Display.CursorValue a) instance Clay.Property.Val (Clay.Display.CursorValue a) instance Clay.Common.Baseline (Clay.Display.VerticalAlignValue a) instance Clay.Property.Val (Clay.Display.VerticalAlignValue a) instance Clay.Common.Inherit Clay.Display.PointerEvents instance Clay.Common.None Clay.Display.PointerEvents instance Clay.Common.Visible Clay.Display.PointerEvents instance Clay.Common.Auto Clay.Display.PointerEvents instance Clay.Common.Other Clay.Display.PointerEvents instance Clay.Property.Val Clay.Display.PointerEvents instance Clay.Common.Inherit Clay.Display.Clip instance Clay.Common.Auto Clay.Display.Clip instance Clay.Common.Other Clay.Display.Clip instance Clay.Property.Val Clay.Display.Clip instance Clay.Common.Visible Clay.Display.Visibility instance Clay.Common.Hidden Clay.Display.Visibility instance Clay.Common.Inherit Clay.Display.Visibility instance Clay.Common.Auto Clay.Display.Visibility instance Clay.Common.Other Clay.Display.Visibility instance Clay.Property.Val Clay.Display.Visibility instance Clay.Common.Visible Clay.Display.Overflow instance Clay.Common.Hidden Clay.Display.Overflow instance Clay.Common.Inherit Clay.Display.Overflow instance Clay.Common.Auto Clay.Display.Overflow instance Clay.Common.Other Clay.Display.Overflow instance Clay.Property.Val Clay.Display.Overflow instance Clay.Common.Inherit Clay.Display.Display instance Clay.Common.None Clay.Display.Display instance Clay.Common.Other Clay.Display.Display instance Clay.Property.Val Clay.Display.Display instance Clay.Common.Inherit Clay.Display.Position instance Clay.Common.Other Clay.Display.Position instance Clay.Property.Val Clay.Display.Position instance Clay.Common.Inherit Clay.Display.Clear instance Clay.Common.None Clay.Display.Clear instance Clay.Common.Other Clay.Display.Clear instance Clay.Property.Val Clay.Display.Clear instance Clay.Common.Inherit Clay.Display.FloatStyle instance Clay.Common.None Clay.Display.FloatStyle instance Clay.Property.Val Clay.Display.FloatStyle instance Clay.Display.VerticalAlign (Clay.Display.VerticalAlignValue a) instance Clay.Display.VerticalAlign (Clay.Size.Size a) instance Clay.Display.Cursor (Clay.Display.CursorValue a) 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 borderCollapse :: Visibility -> Css borderSpacing :: Size a -> Css borderSpacing2 :: Size a -> Size a -> Css instance Clay.Common.None Clay.Border.Stroke instance Clay.Common.Auto Clay.Border.Stroke instance Clay.Common.Inherit Clay.Border.Stroke instance Clay.Common.Other Clay.Border.Stroke instance Clay.Property.Val Clay.Border.Stroke module Clay.Box data BoxType paddingBox :: BoxType borderBox :: BoxType contentBox :: BoxType boxSizing :: BoxType -> Css boxShadow :: Size a -> Size a -> Size a -> Color -> Css boxShadowWithSpread :: Size a -> 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 Clay.Common.Inherit Clay.Box.BoxType instance Clay.Property.Val Clay.Box.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 Clay.Common.Other Clay.Background.Location instance Clay.Property.Val Clay.Background.Location instance Clay.Common.Other Clay.Background.Direction instance Clay.Property.Val Clay.Background.Direction instance Clay.Common.Inherit Clay.Background.Side instance Clay.Common.Other Clay.Background.Side instance Clay.Property.Val Clay.Background.Side instance Clay.Common.Inherit Clay.Background.BackgroundAttachment instance Clay.Property.Val Clay.Background.BackgroundAttachment instance Clay.Common.Other Clay.Background.BackgroundAttachment instance Clay.Common.Inherit Clay.Background.BackgroundClip instance Clay.Common.Other Clay.Background.BackgroundClip instance Clay.Property.Val Clay.Background.BackgroundClip instance Clay.Common.Inherit Clay.Background.BackgroundOrigin instance Clay.Common.Other Clay.Background.BackgroundOrigin instance Clay.Property.Val Clay.Background.BackgroundOrigin instance Clay.Common.None Clay.Background.BackgroundImage instance Clay.Common.Inherit Clay.Background.BackgroundImage instance Clay.Common.Other Clay.Background.BackgroundImage instance Clay.Property.Val Clay.Background.BackgroundImage instance Clay.Common.None Clay.Background.BackgroundRepeat instance Clay.Common.Inherit Clay.Background.BackgroundRepeat instance Clay.Common.Other Clay.Background.BackgroundRepeat instance Clay.Property.Val Clay.Background.BackgroundRepeat instance Clay.Common.Inherit Clay.Background.BackgroundSize instance Clay.Common.Other Clay.Background.BackgroundSize instance Clay.Property.Val Clay.Background.BackgroundSize instance Clay.Common.Inherit Clay.Background.BackgroundPosition instance Clay.Common.Other Clay.Background.BackgroundPosition instance Clay.Property.Val Clay.Background.BackgroundPosition instance Clay.Background.Background a => Clay.Background.Background [a] instance (Clay.Background.Background a, Clay.Background.Background b) => Clay.Background.Background (a, b) instance Clay.Background.Background Clay.Color.Color instance Clay.Background.Background Clay.Background.BackgroundPosition instance Clay.Background.Background Clay.Background.BackgroundSize instance Clay.Background.Background Clay.Background.BackgroundRepeat instance Clay.Background.Background Clay.Background.BackgroundOrigin instance Clay.Background.Background Clay.Background.BackgroundClip instance Clay.Background.Background Clay.Background.BackgroundAttachment instance Clay.Background.Background Clay.Background.BackgroundImage instance Clay.Common.Auto Clay.Background.BackgroundSize instance Clay.Background.Loc Clay.Background.Side instance Clay.Background.Loc (Clay.Size.Size a) instance (Clay.Background.Loc a, Clay.Background.Loc b) => Clay.Background.Loc (a, b) 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 Clay.Common.None Clay.Mask.MaskComposite instance Clay.Common.Inherit Clay.Mask.MaskComposite instance Clay.Common.Other Clay.Mask.MaskComposite instance Clay.Property.Val Clay.Mask.MaskComposite instance Clay.Mask.Mask a => Clay.Mask.Mask [a] instance (Clay.Mask.Mask a, Clay.Mask.Mask b) => Clay.Mask.Mask (a, b) instance Clay.Mask.Mask Clay.Mask.MaskComposite instance Clay.Mask.Mask Clay.Background.BackgroundPosition instance Clay.Mask.Mask Clay.Background.BackgroundSize instance Clay.Mask.Mask Clay.Background.BackgroundRepeat instance Clay.Mask.Mask Clay.Background.BackgroundOrigin instance Clay.Mask.Mask Clay.Background.BackgroundClip instance Clay.Mask.Mask Clay.Background.BackgroundAttachment instance Clay.Mask.Mask Clay.Background.BackgroundImage module Clay.Flexbox -- | CSS Flexible Box Layout http://dev.w3.org/csswg/css-flexbox-1 class FlexEnd a flexEnd :: FlexEnd a => a class FlexStart a flexStart :: FlexStart a => a class SpaceAround a spaceAround :: SpaceAround a => a class SpaceBetween a spaceBetween :: SpaceBetween a => a class Stretch a stretch :: Stretch a => a newtype AlignContentValue AlignContentValue :: Value -> AlignContentValue alignContent :: AlignContentValue -> Css newtype AlignItemsValue AlignItemValue :: Value -> AlignItemsValue alignItems :: AlignItemsValue -> Css newtype AlignSelfValue AlignSelfValue :: Value -> AlignSelfValue alignSelf :: AlignSelfValue -> Css flex :: Int -> Int -> Size b -> Css flexBasis :: Size a -> Css newtype FlexDirection FlexDirection :: Value -> FlexDirection row :: FlexDirection rowReverse :: FlexDirection column :: FlexDirection columnReverse :: FlexDirection flexDirection :: FlexDirection -> Css flexFlow :: FlexDirection -> FlexWrap -> Css flexGrow :: Int -> Css flexShrink :: Int -> Css newtype FlexWrap FlexWrap :: Value -> FlexWrap nowrap :: FlexWrap wrap :: FlexWrap wrapReverse :: FlexWrap flexWrap :: FlexWrap -> Css newtype JustifyContentValue JustifyContentValue :: Value -> JustifyContentValue justifyContent :: JustifyContentValue -> Css order :: Int -> Css instance Clay.Flexbox.SpaceBetween Clay.Flexbox.JustifyContentValue instance Clay.Flexbox.SpaceAround Clay.Flexbox.JustifyContentValue instance Clay.Flexbox.FlexStart Clay.Flexbox.JustifyContentValue instance Clay.Flexbox.FlexEnd Clay.Flexbox.JustifyContentValue instance Clay.Common.Center Clay.Flexbox.JustifyContentValue instance Clay.Common.Inherit Clay.Flexbox.JustifyContentValue instance Clay.Common.Other Clay.Flexbox.JustifyContentValue instance Clay.Property.Val Clay.Flexbox.JustifyContentValue instance Clay.Common.Other Clay.Flexbox.FlexWrap instance Clay.Property.Val Clay.Flexbox.FlexWrap instance Clay.Common.Other Clay.Flexbox.FlexDirection instance Clay.Property.Val Clay.Flexbox.FlexDirection instance Clay.Flexbox.Stretch Clay.Flexbox.AlignSelfValue instance Clay.Flexbox.FlexStart Clay.Flexbox.AlignSelfValue instance Clay.Flexbox.FlexEnd Clay.Flexbox.AlignSelfValue instance Clay.Common.Center Clay.Flexbox.AlignSelfValue instance Clay.Common.Baseline Clay.Flexbox.AlignSelfValue instance Clay.Common.Auto Clay.Flexbox.AlignSelfValue instance Clay.Common.Inherit Clay.Flexbox.AlignSelfValue instance Clay.Common.Other Clay.Flexbox.AlignSelfValue instance Clay.Property.Val Clay.Flexbox.AlignSelfValue instance Clay.Flexbox.Stretch Clay.Flexbox.AlignItemsValue instance Clay.Flexbox.FlexStart Clay.Flexbox.AlignItemsValue instance Clay.Flexbox.FlexEnd Clay.Flexbox.AlignItemsValue instance Clay.Common.Center Clay.Flexbox.AlignItemsValue instance Clay.Common.Baseline Clay.Flexbox.AlignItemsValue instance Clay.Common.Inherit Clay.Flexbox.AlignItemsValue instance Clay.Common.Other Clay.Flexbox.AlignItemsValue instance Clay.Property.Val Clay.Flexbox.AlignItemsValue instance Clay.Flexbox.Stretch Clay.Flexbox.AlignContentValue instance Clay.Flexbox.SpaceAround Clay.Flexbox.AlignContentValue instance Clay.Flexbox.SpaceBetween Clay.Flexbox.AlignContentValue instance Clay.Common.Center Clay.Flexbox.AlignContentValue instance Clay.Flexbox.FlexEnd Clay.Flexbox.AlignContentValue instance Clay.Flexbox.FlexStart Clay.Flexbox.AlignContentValue instance Clay.Common.Inherit Clay.Flexbox.AlignContentValue instance Clay.Common.Other Clay.Flexbox.AlignContentValue instance Clay.Property.Val Clay.Flexbox.AlignContentValue instance Clay.Flexbox.FlexEnd Clay.Property.Value instance Clay.Flexbox.FlexStart Clay.Property.Value instance Clay.Flexbox.SpaceAround Clay.Property.Value instance Clay.Flexbox.SpaceBetween Clay.Property.Value instance Clay.Flexbox.Stretch Clay.Property.Value 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 Clay.Common.Other Clay.Font.NamedFont instance Clay.Property.Val Clay.Font.NamedFont instance Clay.Common.Other Clay.Font.FontWeight instance Clay.Common.Normal Clay.Font.FontWeight instance Clay.Common.Inherit Clay.Font.FontWeight instance Clay.Property.Val Clay.Font.FontWeight instance Clay.Common.Other Clay.Font.FontVariant instance Clay.Common.Normal Clay.Font.FontVariant instance Clay.Common.Inherit Clay.Font.FontVariant instance Clay.Property.Val Clay.Font.FontVariant instance Clay.Common.Other Clay.Font.FontStyle instance Clay.Common.Normal Clay.Font.FontStyle instance Clay.Common.Inherit Clay.Font.FontStyle instance Clay.Property.Val Clay.Font.FontStyle instance Clay.Common.Other Clay.Font.FontSize instance Clay.Common.Auto Clay.Font.FontSize instance Clay.Common.Inherit Clay.Font.FontSize instance Clay.Property.Val Clay.Font.FontSize instance Clay.Common.Other Clay.Font.GenericFontFamily instance Clay.Common.Auto Clay.Font.GenericFontFamily instance Clay.Common.Inherit Clay.Font.GenericFontFamily instance Clay.Property.Val Clay.Font.GenericFontFamily instance Clay.Property.Val Clay.Font.Optional instance Clay.Property.Val (Clay.Font.Required a) instance Clay.Font.Font (Clay.Font.Required a) instance Clay.Font.Font (Clay.Font.Optional, Clay.Font.Required a) 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 Clay.Common.Other Clay.Gradient.Extend instance Clay.Property.Val Clay.Gradient.Extend instance Clay.Common.Other Clay.Gradient.Radial instance Clay.Property.Val Clay.Gradient.Radial 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 Clay.Common.Initial Clay.Text.Content instance Clay.Common.Inherit Clay.Text.Content instance Clay.Common.Normal Clay.Text.Content instance Clay.Common.None Clay.Text.Content instance Clay.Property.Val Clay.Text.Content instance Clay.Common.Inherit Clay.Text.TextTransform instance Clay.Common.None Clay.Text.TextTransform instance Clay.Property.Val Clay.Text.TextTransform instance Clay.Common.Other Clay.Text.TextDecoration instance Clay.Common.Inherit Clay.Text.TextDecoration instance Clay.Common.None Clay.Text.TextDecoration instance Clay.Property.Val Clay.Text.TextDecoration instance Clay.Common.Other Clay.Text.WhiteSpace instance Clay.Common.Inherit Clay.Text.WhiteSpace instance Clay.Common.Normal Clay.Text.WhiteSpace instance Clay.Property.Val Clay.Text.WhiteSpace instance Clay.Common.Center Clay.Text.TextAlign instance Clay.Common.Other Clay.Text.TextAlign instance Clay.Common.Inherit Clay.Text.TextAlign instance Clay.Common.Normal Clay.Text.TextAlign instance Clay.Property.Val Clay.Text.TextAlign instance Clay.Common.Other Clay.Text.TextDirection instance Clay.Common.Inherit Clay.Text.TextDirection instance Clay.Common.Normal Clay.Text.TextDirection instance Clay.Property.Val Clay.Text.TextDirection instance Clay.Common.Other Clay.Text.TextIndent instance Clay.Common.Inherit Clay.Text.TextIndent instance Clay.Property.Val Clay.Text.TextIndent instance Clay.Common.Other Clay.Text.TextRendering instance Clay.Common.Inherit Clay.Text.TextRendering instance Clay.Common.Auto Clay.Text.TextRendering instance Clay.Property.Val Clay.Text.TextRendering 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 Clay.Common.None Clay.Transform.Transformation instance Clay.Property.Val Clay.Transform.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 Clay.Common.Inherit Clay.Filter.Filter instance Clay.Common.None Clay.Filter.Filter instance Clay.Property.Val Clay.Filter.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 Clay.Common.Other Clay.Media.Resolution instance Clay.Property.Val Clay.Media.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. cite :: 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. data_ :: 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. label :: 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. style :: 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 a :: Selector address :: Selector area :: Selector article :: Selector aside :: Selector audio :: Selector b :: Selector base :: Selector bdi :: Selector bdo :: Selector blockquote :: Selector body :: Selector br :: Selector button :: Selector canvas :: Selector caption :: Selector code :: Selector col :: Selector colgroup :: Selector datalist :: Selector dd :: Selector del :: Selector details :: Selector dfn :: Selector dialog :: Selector div :: Selector dl :: Selector dt :: Selector em :: Selector embed :: Selector fieldset :: Selector figcaption :: Selector figure :: Selector footer :: Selector h1 :: Selector h2 :: Selector h3 :: Selector h4 :: Selector h5 :: Selector h6 :: Selector head :: Selector header :: Selector hgroup :: Selector hr :: Selector html :: Selector i :: Selector iframe :: Selector img :: Selector input :: Selector ins :: Selector kbd :: Selector keygen :: Selector legend :: Selector li :: Selector link :: Selector main_ :: Selector map :: Selector mark :: Selector math :: Selector menu :: Selector meta :: Selector meter :: Selector nav :: Selector noscript :: Selector object :: Selector ol :: Selector optgroup :: Selector option :: Selector output :: Selector p :: Selector param :: Selector pre :: Selector progress :: Selector q :: Selector rp :: Selector rt :: Selector ruby :: Selector s :: Selector samp :: Selector script :: Selector section :: Selector select :: Selector small :: Selector source :: Selector strong :: Selector sub :: Selector summary :: Selector sup :: Selector svg :: Selector table :: Selector tbody :: Selector td :: Selector template :: Selector textarea :: Selector tfoot :: Selector th :: Selector thead :: Selector time :: Selector tr :: Selector track :: Selector u :: Selector ul :: Selector var :: Selector video :: Selector wbr :: Selector module Clay.Attributes accept :: Refinement acceptCharset :: Refinement accesskey :: Refinement action :: Refinement alt :: Refinement async :: Refinement autocomplete :: Refinement autofocus :: Refinement autoplay :: Refinement challenge :: Refinement charset :: Refinement checked :: Refinement class_ :: Refinement cols :: Refinement colspan :: Refinement content :: Refinement contenteditable :: Refinement contextmenu :: Refinement controls :: Refinement coords :: Refinement crossorigin :: Refinement datetime :: Refinement default_ :: Refinement defer :: Refinement dir :: Refinement dirname :: Refinement disabled :: Refinement download :: Refinement draggable :: Refinement dropzone :: Refinement enctype :: Refinement for :: Refinement formaction :: Refinement formenctype :: Refinement formmethod :: Refinement formnovalidate :: Refinement formtarget :: Refinement headers :: Refinement height :: Refinement hidden :: Refinement high :: Refinement href :: Refinement hreflang :: Refinement httpEquiv :: Refinement icon :: Refinement id :: Refinement inert :: Refinement inputmode :: Refinement ismap :: Refinement itemid :: Refinement itemprop :: Refinement itemref :: Refinement itemscope :: Refinement itemtype :: Refinement keytype :: Refinement kind :: Refinement lang :: Refinement list :: Refinement loop :: Refinement low :: Refinement manifest :: Refinement max :: Refinement maxlength :: Refinement media :: Refinement mediagroup :: Refinement method :: Refinement min :: Refinement multiple :: Refinement muted :: Refinement name :: Refinement novalidate :: Refinement open :: Refinement optimum :: Refinement pattern :: Refinement ping :: Refinement placeholder :: Refinement poster :: Refinement preload :: Refinement radiogroup :: Refinement readonly :: Refinement rel :: Refinement required :: Refinement reversed :: Refinement rows :: Refinement rowspan :: Refinement sandbox :: Refinement scope :: Refinement scoped :: Refinement seamless :: Refinement selected :: Refinement shape :: Refinement size :: Refinement sizes :: Refinement spellcheck :: Refinement src :: Refinement srcdoc :: Refinement srclang :: Refinement srcset :: Refinement start :: Refinement step :: Refinement tabindex :: Refinement target :: Refinement translate :: Refinement type_ :: Refinement typemustmatch :: Refinement usemap :: Refinement value :: Refinement width :: Refinement wrap :: Refinement module Clay.Pseudo after :: Refinement before :: Refinement firstLetter :: Refinement firstLine :: Refinement selection :: Refinement backdrop :: Refinement link :: Refinement visited :: Refinement active :: Refinement hover :: Refinement focus :: Refinement firstChild :: Refinement lastChild :: Refinement checked :: Refinement default_ :: Refinement disabled :: Refinement empty :: Refinement enabled :: Refinement firstOfType :: Refinement indeterminate :: Refinement inRange :: Refinement invalid :: Refinement lastOfType :: Refinement onlyChild :: Refinement onlyOfType :: Refinement optional :: Refinement outOfRange :: Refinement required :: Refinement root :: Refinement target :: Refinement valid :: Refinement lang :: Text -> Refinement nthChild :: Text -> Refinement nthLastChild :: Text -> Refinement nthLastOfType :: Text -> Refinement nthOfType :: 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 -- | Render a single CSS Selector. renderSelector :: Selector -> Text -- | 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 infixr 5 ? -- | Assign a stylesheet to a selector. When the selector is nested inside -- an outer scope it will be composed with |>. ( Css -> Css infixr 5 with -- selector. (&) :: Refinement -> Css -> Css infixr 5 & -- | 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 infix 4 -: 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 -- | Import a CSS file from a URL importUrl :: Text -> Css