packages feed

clay 0.10.1 → 0.11

raw patch · 19 files changed

+446/−124 lines, 19 filesdep +hspecdep +hspec-expectationsdep −HUnitdep −test-frameworkdep −test-framework-hunitnew-uploaderPVP ok

version bump matches the API change (PVP)

Dependencies added: hspec, hspec-expectations

Dependencies removed: HUnit, test-framework, test-framework-hunit

API changes (from Hackage documentation)

- Clay.Animation: instance Inherit AnimationName
- Clay.Animation: instance Initial AnimationName
- Clay.Animation: instance IsString AnimationName
- Clay.Animation: instance None FillMode
- Clay.Animation: instance Normal AnimationDirection
- Clay.Animation: instance Normal IterationCount
- Clay.Animation: instance Other AnimationDirection
- Clay.Animation: instance Other AnimationName
- Clay.Animation: instance Other FillMode
- Clay.Animation: instance Other IterationCount
- Clay.Animation: instance Other PlayState
- Clay.Animation: instance Unset AnimationName
- Clay.Animation: instance Val AnimationDirection
- Clay.Animation: instance Val AnimationName
- Clay.Animation: instance Val FillMode
- Clay.Animation: instance Val IterationCount
- Clay.Animation: instance Val PlayState
- Clay.Background: instance (Background a, Background b) => Background (a, b)
- Clay.Background: instance (Loc a, Loc b) => Loc (a, b)
- Clay.Background: instance Auto BackgroundSize
- Clay.Background: instance Background BackgroundAttachment
- Clay.Background: instance Background BackgroundClip
- Clay.Background: instance Background BackgroundImage
- Clay.Background: instance Background BackgroundOrigin
- Clay.Background: instance Background BackgroundPosition
- Clay.Background: instance Background BackgroundRepeat
- Clay.Background: instance Background BackgroundSize
- Clay.Background: instance Background Color
- Clay.Background: instance Background a => Background [a]
- Clay.Background: instance Inherit BackgroundAttachment
- Clay.Background: instance Inherit BackgroundClip
- Clay.Background: instance Inherit BackgroundImage
- Clay.Background: instance Inherit BackgroundOrigin
- Clay.Background: instance Inherit BackgroundPosition
- Clay.Background: instance Inherit BackgroundRepeat
- Clay.Background: instance Inherit BackgroundSize
- Clay.Background: instance Inherit Side
- Clay.Background: instance Loc (Size a)
- Clay.Background: instance Loc Side
- Clay.Background: instance None BackgroundImage
- Clay.Background: instance None BackgroundRepeat
- Clay.Background: instance Other BackgroundAttachment
- Clay.Background: instance Other BackgroundClip
- Clay.Background: instance Other BackgroundImage
- Clay.Background: instance Other BackgroundOrigin
- Clay.Background: instance Other BackgroundPosition
- Clay.Background: instance Other BackgroundRepeat
- Clay.Background: instance Other BackgroundSize
- Clay.Background: instance Other Direction
- Clay.Background: instance Other Location
- Clay.Background: instance Other Side
- Clay.Background: instance Val BackgroundAttachment
- Clay.Background: instance Val BackgroundClip
- Clay.Background: instance Val BackgroundImage
- Clay.Background: instance Val BackgroundOrigin
- Clay.Background: instance Val BackgroundPosition
- Clay.Background: instance Val BackgroundRepeat
- Clay.Background: instance Val BackgroundSize
- Clay.Background: instance Val Direction
- Clay.Background: instance Val Location
- Clay.Background: instance Val Side
- Clay.Border: instance Auto Stroke
- Clay.Border: instance Inherit Stroke
- Clay.Border: instance None Stroke
- Clay.Border: instance Other Stroke
- Clay.Border: instance Val Stroke
- Clay.Box: instance Inherit BoxType
- Clay.Box: instance Val BoxType
- Clay.Color: instance Auto Color
- Clay.Color: instance Inherit Color
- Clay.Color: instance IsString Color
- Clay.Color: instance None Color
- Clay.Color: instance Other Color
- Clay.Color: instance Show Color
- Clay.Color: instance Val Color
- Clay.Common: instance All Value
- Clay.Common: instance Auto Value
- Clay.Common: instance Hidden Value
- Clay.Common: instance Inherit Value
- Clay.Common: instance Initial Value
- Clay.Common: instance None Value
- Clay.Common: instance Normal Value
- Clay.Common: instance Other Value
- Clay.Common: instance Unset Value
- Clay.Common: instance Visible Value
- Clay.Display: baseline :: VerticalAlignValue Value
- Clay.Display: instance Auto (CursorValue a)
- Clay.Display: instance Auto Clip
- Clay.Display: instance Auto Overflow
- Clay.Display: instance Auto PointerEvents
- Clay.Display: instance Auto Visibility
- Clay.Display: instance Cursor (CursorValue a)
- Clay.Display: instance Hidden Overflow
- Clay.Display: instance Hidden Visibility
- Clay.Display: instance Inherit (CursorValue a)
- Clay.Display: instance Inherit Clear
- Clay.Display: instance Inherit Clip
- Clay.Display: instance Inherit Display
- Clay.Display: instance Inherit FloatStyle
- Clay.Display: instance Inherit Overflow
- Clay.Display: instance Inherit PointerEvents
- Clay.Display: instance Inherit Position
- Clay.Display: instance Inherit Visibility
- Clay.Display: instance None Clear
- Clay.Display: instance None Display
- Clay.Display: instance None FloatStyle
- Clay.Display: instance None PointerEvents
- Clay.Display: instance Other Clear
- Clay.Display: instance Other Clip
- Clay.Display: instance Other Display
- Clay.Display: instance Other Overflow
- Clay.Display: instance Other PointerEvents
- Clay.Display: instance Other Position
- Clay.Display: instance Other Visibility
- Clay.Display: instance Val (CursorValue a)
- Clay.Display: instance Val (VerticalAlignValue a)
- Clay.Display: instance Val Clear
- Clay.Display: instance Val Clip
- Clay.Display: instance Val Display
- Clay.Display: instance Val FloatStyle
- Clay.Display: instance Val Overflow
- Clay.Display: instance Val PointerEvents
- Clay.Display: instance Val Position
- Clay.Display: instance Val Visibility
- Clay.Display: instance VerticalAlign (Size a)
- Clay.Display: instance VerticalAlign (VerticalAlignValue a)
- Clay.Display: instance Visible Overflow
- Clay.Display: instance Visible PointerEvents
- Clay.Display: instance Visible Visibility
- Clay.Dynamic: instance All UserSelect
- Clay.Dynamic: instance Auto UserFocus
- Clay.Dynamic: instance Inherit UserFocus
- Clay.Dynamic: instance Inherit UserInput
- Clay.Dynamic: instance Inherit UserModify
- Clay.Dynamic: instance Inherit UserSelect
- Clay.Dynamic: instance None UserFocus
- Clay.Dynamic: instance None UserInput
- Clay.Dynamic: instance None UserSelect
- Clay.Dynamic: instance Normal UserFocus
- Clay.Dynamic: instance Val UserFocus
- Clay.Dynamic: instance Val UserInput
- Clay.Dynamic: instance Val UserModify
- Clay.Dynamic: instance Val UserSelect
- Clay.Filter: instance Inherit Filter
- Clay.Filter: instance None Filter
- Clay.Filter: instance Val Filter
- Clay.Font: instance Auto FontSize
- Clay.Font: instance Auto GenericFontFamily
- Clay.Font: instance Font (Optional, Required a)
- Clay.Font: instance Font (Required a)
- Clay.Font: instance Inherit FontSize
- Clay.Font: instance Inherit FontStyle
- Clay.Font: instance Inherit FontVariant
- Clay.Font: instance Inherit FontWeight
- Clay.Font: instance Inherit GenericFontFamily
- Clay.Font: instance Normal FontStyle
- Clay.Font: instance Normal FontVariant
- Clay.Font: instance Normal FontWeight
- Clay.Font: instance Other FontSize
- Clay.Font: instance Other FontStyle
- Clay.Font: instance Other FontVariant
- Clay.Font: instance Other FontWeight
- Clay.Font: instance Other GenericFontFamily
- Clay.Font: instance Other NamedFont
- Clay.Font: instance Val (Required a)
- Clay.Font: instance Val FontSize
- Clay.Font: instance Val FontStyle
- Clay.Font: instance Val FontVariant
- Clay.Font: instance Val FontWeight
- Clay.Font: instance Val GenericFontFamily
- Clay.Font: instance Val NamedFont
- Clay.Font: instance Val Optional
- Clay.FontFace: instance Show FontFaceFormat
- Clay.FontFace: instance Show FontFaceSrc
- Clay.FontFace: instance Val FontFaceSrc
- Clay.Gradient: instance Other Extend
- Clay.Gradient: instance Other Radial
- Clay.Gradient: instance Val Extend
- Clay.Gradient: instance Val Radial
- Clay.List: instance Inherit ListStyleImage
- Clay.List: instance Inherit ListStylePosition
- Clay.List: instance Inherit ListStyleType
- Clay.List: instance Initial ListStyleImage
- Clay.List: instance Initial ListStylePosition
- Clay.List: instance Initial ListStyleType
- Clay.List: instance None ListStyleImage
- Clay.List: instance None ListStylePosition
- Clay.List: instance None ListStyleType
- Clay.List: instance Other ListStyleImage
- Clay.List: instance Other ListStylePosition
- Clay.List: instance Other ListStyleType
- Clay.List: instance Val ListStyleImage
- Clay.List: instance Val ListStylePosition
- Clay.List: instance Val ListStyleType
- Clay.Mask: instance (Mask a, Mask b) => Mask (a, b)
- Clay.Mask: instance Inherit MaskComposite
- Clay.Mask: instance Mask BackgroundAttachment
- Clay.Mask: instance Mask BackgroundClip
- Clay.Mask: instance Mask BackgroundImage
- Clay.Mask: instance Mask BackgroundOrigin
- Clay.Mask: instance Mask BackgroundPosition
- Clay.Mask: instance Mask BackgroundRepeat
- Clay.Mask: instance Mask BackgroundSize
- Clay.Mask: instance Mask MaskComposite
- Clay.Mask: instance Mask a => Mask [a]
- Clay.Mask: instance None MaskComposite
- Clay.Mask: instance Other MaskComposite
- Clay.Mask: instance Val MaskComposite
- Clay.Media: instance Other Resolution
- Clay.Media: instance Val Resolution
- Clay.Property: instance (Val a, Val b) => Val (Either a b)
- Clay.Property: instance (Val a, Val b) => Val (a, b)
- Clay.Property: instance HasResolution E5
- Clay.Property: instance IsString (Key a)
- Clay.Property: instance IsString Literal
- Clay.Property: instance IsString Prefixed
- Clay.Property: instance IsString Value
- Clay.Property: instance Monoid (Key a)
- Clay.Property: instance Monoid Literal
- Clay.Property: instance Monoid Prefixed
- Clay.Property: instance Monoid Value
- Clay.Property: instance Show (Key a)
- Clay.Property: instance Show Literal
- Clay.Property: instance Show Prefixed
- Clay.Property: instance Show Value
- Clay.Property: instance Val Double
- Clay.Property: instance Val Integer
- Clay.Property: instance Val Literal
- Clay.Property: instance Val Text
- Clay.Property: instance Val Value
- Clay.Property: instance Val a => Val (Maybe a)
- Clay.Property: instance Val a => Val [a]
- Clay.Property: unKeys :: Key a -> Prefixed
- Clay.Property: unPlain :: Prefixed -> Text
- Clay.Property: unPrefixed :: Prefixed -> [(Text, Text)]
- Clay.Property: unValue :: Value -> Prefixed
- Clay.Render: align :: Config -> Bool
- Clay.Render: banner :: Config -> Bool
- Clay.Render: finalSemicolon :: Config -> Bool
- Clay.Render: indentation :: Config -> Builder
- Clay.Render: newline :: Config -> Builder
- Clay.Render: sep :: Config -> Builder
- Clay.Render: warn :: Config -> Bool
- Clay.Selector: instance Eq Predicate
- Clay.Selector: instance IsString (Fix SelectorF)
- Clay.Selector: instance IsString Refinement
- Clay.Selector: instance Monoid (Fix SelectorF)
- Clay.Selector: instance Ord Predicate
- Clay.Selector: instance Show (f (Fix f)) => Show (Fix f)
- Clay.Selector: instance Show Predicate
- Clay.Selector: instance Show Refinement
- Clay.Selector: instance Show a => Show (SelectorF a)
- Clay.Selector: instance Show f => Show (Path f)
- Clay.Selector: out :: Fix f -> f (Fix f)
- Clay.Selector: unFilter :: Refinement -> [Predicate]
- Clay.Size: instance Auto (Angle a)
- Clay.Size: instance Auto (Size a)
- Clay.Size: instance Fractional (Angle Deg)
- Clay.Size: instance Fractional (Angle Rad)
- Clay.Size: instance Fractional (Size Abs)
- Clay.Size: instance Fractional (Size Rel)
- Clay.Size: instance Inherit (Angle a)
- Clay.Size: instance Inherit (Size a)
- Clay.Size: instance None (Size a)
- Clay.Size: instance Normal (Size a)
- Clay.Size: instance Num (Angle Deg)
- Clay.Size: instance Num (Angle Rad)
- Clay.Size: instance Num (Size Abs)
- Clay.Size: instance Num (Size Rel)
- Clay.Size: instance Other (Angle a)
- Clay.Size: instance Other (Size a)
- Clay.Size: instance Val (Angle a)
- Clay.Size: instance Val (Size a)
- Clay.Stylesheet: instance All MediaType
- Clay.Stylesheet: instance Applicative StyleM
- Clay.Stylesheet: instance Functor StyleM
- Clay.Stylesheet: instance Monad StyleM
- Clay.Stylesheet: instance Other MediaType
- Clay.Stylesheet: instance Show App
- Clay.Stylesheet: instance Show Feature
- Clay.Stylesheet: instance Show Keyframes
- Clay.Stylesheet: instance Show MediaQuery
- Clay.Stylesheet: instance Show MediaType
- Clay.Stylesheet: instance Show NotOrOnly
- Clay.Stylesheet: instance Show Rule
- Clay.Stylesheet: instance Val MediaType
- Clay.Text: instance Auto TextRendering
- Clay.Text: instance Inherit Content
- Clay.Text: instance Inherit TextAlign
- Clay.Text: instance Inherit TextDecoration
- Clay.Text: instance Inherit TextDirection
- Clay.Text: instance Inherit TextIndent
- Clay.Text: instance Inherit TextRendering
- Clay.Text: instance Inherit TextTransform
- Clay.Text: instance Inherit WhiteSpace
- Clay.Text: instance Initial Content
- Clay.Text: instance None Content
- Clay.Text: instance None TextDecoration
- Clay.Text: instance None TextTransform
- Clay.Text: instance Normal Content
- Clay.Text: instance Normal TextAlign
- Clay.Text: instance Normal TextDirection
- Clay.Text: instance Normal WhiteSpace
- Clay.Text: instance Other TextAlign
- Clay.Text: instance Other TextDecoration
- Clay.Text: instance Other TextDirection
- Clay.Text: instance Other TextIndent
- Clay.Text: instance Other TextRendering
- Clay.Text: instance Other WhiteSpace
- Clay.Text: instance Val Content
- Clay.Text: instance Val TextAlign
- Clay.Text: instance Val TextDecoration
- Clay.Text: instance Val TextDirection
- Clay.Text: instance Val TextIndent
- Clay.Text: instance Val TextRendering
- Clay.Text: instance Val TextTransform
- Clay.Text: instance Val WhiteSpace
- Clay.Time: instance Auto Time
- Clay.Time: instance Fractional Time
- Clay.Time: instance Inherit Time
- Clay.Time: instance None Time
- Clay.Time: instance Normal Time
- Clay.Time: instance Num Time
- Clay.Time: instance Other Time
- Clay.Time: instance Val Time
- Clay.Transform: instance None Transformation
- Clay.Transform: instance Val Transformation
- Clay.Transition: instance Auto TimingFunction
- Clay.Transition: instance Other TimingFunction
- Clay.Transition: instance Val TimingFunction
+ Clay: infix 4 -:
+ Clay: infixr 5 &
+ Clay.Animation: instance Clay.Common.Inherit Clay.Animation.AnimationName
+ Clay.Animation: instance Clay.Common.Initial Clay.Animation.AnimationName
+ Clay.Animation: instance Clay.Common.None Clay.Animation.FillMode
+ Clay.Animation: instance Clay.Common.Normal Clay.Animation.AnimationDirection
+ Clay.Animation: instance Clay.Common.Normal Clay.Animation.IterationCount
+ Clay.Animation: instance Clay.Common.Other Clay.Animation.AnimationDirection
+ Clay.Animation: instance Clay.Common.Other Clay.Animation.AnimationName
+ Clay.Animation: instance Clay.Common.Other Clay.Animation.FillMode
+ Clay.Animation: instance Clay.Common.Other Clay.Animation.IterationCount
+ Clay.Animation: instance Clay.Common.Other Clay.Animation.PlayState
+ Clay.Animation: instance Clay.Common.Unset Clay.Animation.AnimationName
+ Clay.Animation: instance Clay.Property.Val Clay.Animation.AnimationDirection
+ Clay.Animation: instance Clay.Property.Val Clay.Animation.AnimationName
+ Clay.Animation: instance Clay.Property.Val Clay.Animation.FillMode
+ Clay.Animation: instance Clay.Property.Val Clay.Animation.IterationCount
+ Clay.Animation: instance Clay.Property.Val Clay.Animation.PlayState
+ Clay.Animation: instance Data.String.IsString Clay.Animation.AnimationName
+ Clay.Background: instance (Clay.Background.Background a, Clay.Background.Background b) => Clay.Background.Background (a, b)
+ Clay.Background: instance (Clay.Background.Loc a, Clay.Background.Loc b) => Clay.Background.Loc (a, b)
+ Clay.Background: instance Clay.Background.Background Clay.Background.BackgroundAttachment
+ Clay.Background: instance Clay.Background.Background Clay.Background.BackgroundClip
+ Clay.Background: instance Clay.Background.Background Clay.Background.BackgroundImage
+ Clay.Background: instance Clay.Background.Background Clay.Background.BackgroundOrigin
+ Clay.Background: instance Clay.Background.Background Clay.Background.BackgroundPosition
+ Clay.Background: instance Clay.Background.Background Clay.Background.BackgroundRepeat
+ Clay.Background: instance Clay.Background.Background Clay.Background.BackgroundSize
+ Clay.Background: instance Clay.Background.Background Clay.Color.Color
+ Clay.Background: instance Clay.Background.Background a => Clay.Background.Background [a]
+ Clay.Background: instance Clay.Background.Loc (Clay.Size.Size a)
+ Clay.Background: instance Clay.Background.Loc Clay.Background.Side
+ Clay.Background: instance Clay.Common.Auto Clay.Background.BackgroundSize
+ Clay.Background: instance Clay.Common.Inherit Clay.Background.BackgroundAttachment
+ Clay.Background: instance Clay.Common.Inherit Clay.Background.BackgroundClip
+ Clay.Background: instance Clay.Common.Inherit Clay.Background.BackgroundImage
+ Clay.Background: instance Clay.Common.Inherit Clay.Background.BackgroundOrigin
+ Clay.Background: instance Clay.Common.Inherit Clay.Background.BackgroundPosition
+ Clay.Background: instance Clay.Common.Inherit Clay.Background.BackgroundRepeat
+ Clay.Background: instance Clay.Common.Inherit Clay.Background.BackgroundSize
+ Clay.Background: instance Clay.Common.Inherit Clay.Background.Side
+ Clay.Background: instance Clay.Common.None Clay.Background.BackgroundImage
+ Clay.Background: instance Clay.Common.None Clay.Background.BackgroundRepeat
+ Clay.Background: instance Clay.Common.Other Clay.Background.BackgroundAttachment
+ Clay.Background: instance Clay.Common.Other Clay.Background.BackgroundClip
+ Clay.Background: instance Clay.Common.Other Clay.Background.BackgroundImage
+ Clay.Background: instance Clay.Common.Other Clay.Background.BackgroundOrigin
+ Clay.Background: instance Clay.Common.Other Clay.Background.BackgroundPosition
+ Clay.Background: instance Clay.Common.Other Clay.Background.BackgroundRepeat
+ Clay.Background: instance Clay.Common.Other Clay.Background.BackgroundSize
+ Clay.Background: instance Clay.Common.Other Clay.Background.Direction
+ Clay.Background: instance Clay.Common.Other Clay.Background.Location
+ Clay.Background: instance Clay.Common.Other Clay.Background.Side
+ Clay.Background: instance Clay.Property.Val Clay.Background.BackgroundAttachment
+ Clay.Background: instance Clay.Property.Val Clay.Background.BackgroundClip
+ Clay.Background: instance Clay.Property.Val Clay.Background.BackgroundImage
+ Clay.Background: instance Clay.Property.Val Clay.Background.BackgroundOrigin
+ Clay.Background: instance Clay.Property.Val Clay.Background.BackgroundPosition
+ Clay.Background: instance Clay.Property.Val Clay.Background.BackgroundRepeat
+ Clay.Background: instance Clay.Property.Val Clay.Background.BackgroundSize
+ Clay.Background: instance Clay.Property.Val Clay.Background.Direction
+ Clay.Background: instance Clay.Property.Val Clay.Background.Location
+ Clay.Background: instance Clay.Property.Val Clay.Background.Side
+ Clay.Border: borderSpacing :: Size a -> Css
+ Clay.Border: borderSpacing2 :: Size a -> Size a -> Css
+ Clay.Border: instance Clay.Common.Auto Clay.Border.Stroke
+ Clay.Border: instance Clay.Common.Inherit Clay.Border.Stroke
+ Clay.Border: instance Clay.Common.None Clay.Border.Stroke
+ Clay.Border: instance Clay.Common.Other Clay.Border.Stroke
+ Clay.Border: instance Clay.Property.Val Clay.Border.Stroke
+ Clay.Box: boxShadowWithSpread :: Size a -> Size a -> Size a -> Size a -> Color -> Css
+ Clay.Box: instance Clay.Common.Inherit Clay.Box.BoxType
+ Clay.Box: instance Clay.Property.Val Clay.Box.BoxType
+ Clay.Color: darken :: Float -> Color -> Color
+ Clay.Color: instance Clay.Common.Auto Clay.Color.Color
+ Clay.Color: instance Clay.Common.Inherit Clay.Color.Color
+ Clay.Color: instance Clay.Common.None Clay.Color.Color
+ Clay.Color: instance Clay.Common.Other Clay.Color.Color
+ Clay.Color: instance Clay.Property.Val Clay.Color.Color
+ Clay.Color: instance Data.String.IsString Clay.Color.Color
+ Clay.Color: instance GHC.Classes.Eq Clay.Color.Color
+ Clay.Color: instance GHC.Show.Show Clay.Color.Color
+ Clay.Color: lerp :: Float -> Color -> Color -> Color
+ Clay.Color: lighten :: Float -> Color -> Color
+ Clay.Color: toHsla :: Color -> Color
+ Clay.Color: toRgba :: Color -> Color
+ Clay.Common: baseline :: Baseline a => a
+ Clay.Common: center :: Center a => a
+ Clay.Common: class Baseline a
+ Clay.Common: class Center a
+ Clay.Common: decimalRound :: RealFrac a => a -> Int -> a
+ Clay.Common: fracMod :: RealFrac a => a -> a -> a
+ Clay.Common: instance Clay.Common.All Clay.Property.Value
+ Clay.Common: instance Clay.Common.Auto Clay.Property.Value
+ Clay.Common: instance Clay.Common.Baseline Clay.Property.Value
+ Clay.Common: instance Clay.Common.Center Clay.Property.Value
+ Clay.Common: instance Clay.Common.Hidden Clay.Property.Value
+ Clay.Common: instance Clay.Common.Inherit Clay.Property.Value
+ Clay.Common: instance Clay.Common.Initial Clay.Property.Value
+ Clay.Common: instance Clay.Common.None Clay.Property.Value
+ Clay.Common: instance Clay.Common.Normal Clay.Property.Value
+ Clay.Common: instance Clay.Common.Other Clay.Property.Value
+ Clay.Common: instance Clay.Common.Unset Clay.Property.Value
+ Clay.Common: instance Clay.Common.Visible Clay.Property.Value
+ Clay.Display: instance Clay.Common.Auto (Clay.Display.CursorValue a)
+ Clay.Display: instance Clay.Common.Auto Clay.Display.Clip
+ Clay.Display: instance Clay.Common.Auto Clay.Display.Overflow
+ Clay.Display: instance Clay.Common.Auto Clay.Display.PointerEvents
+ Clay.Display: instance Clay.Common.Auto Clay.Display.Visibility
+ Clay.Display: instance Clay.Common.Baseline (Clay.Display.VerticalAlignValue a)
+ Clay.Display: instance Clay.Common.Hidden Clay.Display.Overflow
+ Clay.Display: instance Clay.Common.Hidden Clay.Display.Visibility
+ Clay.Display: instance Clay.Common.Inherit (Clay.Display.CursorValue a)
+ Clay.Display: instance Clay.Common.Inherit Clay.Display.Clear
+ Clay.Display: instance Clay.Common.Inherit Clay.Display.Clip
+ Clay.Display: instance Clay.Common.Inherit Clay.Display.Display
+ Clay.Display: instance Clay.Common.Inherit Clay.Display.FloatStyle
+ Clay.Display: instance Clay.Common.Inherit Clay.Display.Overflow
+ Clay.Display: instance Clay.Common.Inherit Clay.Display.PointerEvents
+ Clay.Display: instance Clay.Common.Inherit Clay.Display.Position
+ Clay.Display: instance Clay.Common.Inherit Clay.Display.Visibility
+ Clay.Display: instance Clay.Common.None Clay.Display.Clear
+ Clay.Display: instance Clay.Common.None Clay.Display.Display
+ Clay.Display: instance Clay.Common.None Clay.Display.FloatStyle
+ Clay.Display: instance Clay.Common.None Clay.Display.PointerEvents
+ Clay.Display: instance Clay.Common.Other Clay.Display.Clear
+ Clay.Display: instance Clay.Common.Other Clay.Display.Clip
+ Clay.Display: instance Clay.Common.Other Clay.Display.Display
+ Clay.Display: instance Clay.Common.Other Clay.Display.Overflow
+ Clay.Display: instance Clay.Common.Other Clay.Display.PointerEvents
+ Clay.Display: instance Clay.Common.Other Clay.Display.Position
+ Clay.Display: instance Clay.Common.Other Clay.Display.Visibility
+ Clay.Display: instance Clay.Common.Visible Clay.Display.Overflow
+ Clay.Display: instance Clay.Common.Visible Clay.Display.PointerEvents
+ Clay.Display: instance Clay.Common.Visible Clay.Display.Visibility
+ Clay.Display: instance Clay.Display.Cursor (Clay.Display.CursorValue a)
+ Clay.Display: instance Clay.Display.VerticalAlign (Clay.Display.VerticalAlignValue a)
+ Clay.Display: instance Clay.Display.VerticalAlign (Clay.Size.Size a)
+ Clay.Display: instance Clay.Property.Val (Clay.Display.CursorValue a)
+ Clay.Display: instance Clay.Property.Val (Clay.Display.VerticalAlignValue a)
+ Clay.Display: instance Clay.Property.Val Clay.Display.Clear
+ Clay.Display: instance Clay.Property.Val Clay.Display.Clip
+ Clay.Display: instance Clay.Property.Val Clay.Display.Display
+ Clay.Display: instance Clay.Property.Val Clay.Display.FloatStyle
+ Clay.Display: instance Clay.Property.Val Clay.Display.Overflow
+ Clay.Display: instance Clay.Property.Val Clay.Display.PointerEvents
+ Clay.Display: instance Clay.Property.Val Clay.Display.Position
+ Clay.Display: instance Clay.Property.Val Clay.Display.Visibility
+ Clay.Dynamic: instance Clay.Common.All Clay.Dynamic.UserSelect
+ Clay.Dynamic: instance Clay.Common.Auto Clay.Dynamic.UserFocus
+ Clay.Dynamic: instance Clay.Common.Inherit Clay.Dynamic.UserFocus
+ Clay.Dynamic: instance Clay.Common.Inherit Clay.Dynamic.UserInput
+ Clay.Dynamic: instance Clay.Common.Inherit Clay.Dynamic.UserModify
+ Clay.Dynamic: instance Clay.Common.Inherit Clay.Dynamic.UserSelect
+ Clay.Dynamic: instance Clay.Common.None Clay.Dynamic.UserFocus
+ Clay.Dynamic: instance Clay.Common.None Clay.Dynamic.UserInput
+ Clay.Dynamic: instance Clay.Common.None Clay.Dynamic.UserSelect
+ Clay.Dynamic: instance Clay.Common.Normal Clay.Dynamic.UserFocus
+ Clay.Dynamic: instance Clay.Property.Val Clay.Dynamic.UserFocus
+ Clay.Dynamic: instance Clay.Property.Val Clay.Dynamic.UserInput
+ Clay.Dynamic: instance Clay.Property.Val Clay.Dynamic.UserModify
+ Clay.Dynamic: instance Clay.Property.Val Clay.Dynamic.UserSelect
+ Clay.Filter: instance Clay.Common.Inherit Clay.Filter.Filter
+ Clay.Filter: instance Clay.Common.None Clay.Filter.Filter
+ Clay.Filter: instance Clay.Property.Val Clay.Filter.Filter
+ Clay.Flexbox: AlignContentValue :: Value -> AlignContentValue
+ Clay.Flexbox: AlignItemValue :: Value -> AlignItemsValue
+ Clay.Flexbox: AlignSelfValue :: Value -> AlignSelfValue
+ Clay.Flexbox: FlexDirection :: Value -> FlexDirection
+ Clay.Flexbox: FlexWrap :: Value -> FlexWrap
+ Clay.Flexbox: JustifyContentValue :: Value -> JustifyContentValue
+ Clay.Flexbox: alignContent :: AlignContentValue -> Css
+ Clay.Flexbox: alignItems :: AlignItemsValue -> Css
+ Clay.Flexbox: alignSelf :: AlignSelfValue -> Css
+ Clay.Flexbox: class FlexEnd a
+ Clay.Flexbox: class FlexStart a
+ Clay.Flexbox: class SpaceAround a
+ Clay.Flexbox: class SpaceBetween a
+ Clay.Flexbox: class Stretch a
+ Clay.Flexbox: column :: FlexDirection
+ Clay.Flexbox: columnReverse :: FlexDirection
+ Clay.Flexbox: flex :: Int -> Int -> Size b -> Css
+ Clay.Flexbox: flexBasis :: Size a -> Css
+ Clay.Flexbox: flexDirection :: FlexDirection -> Css
+ Clay.Flexbox: flexEnd :: FlexEnd a => a
+ Clay.Flexbox: flexFlow :: FlexDirection -> FlexWrap -> Css
+ Clay.Flexbox: flexGrow :: Int -> Css
+ Clay.Flexbox: flexShrink :: Int -> Css
+ Clay.Flexbox: flexStart :: FlexStart a => a
+ Clay.Flexbox: flexWrap :: FlexWrap -> Css
+ Clay.Flexbox: instance Clay.Common.Auto Clay.Flexbox.AlignSelfValue
+ Clay.Flexbox: instance Clay.Common.Baseline Clay.Flexbox.AlignItemsValue
+ Clay.Flexbox: instance Clay.Common.Baseline Clay.Flexbox.AlignSelfValue
+ Clay.Flexbox: instance Clay.Common.Center Clay.Flexbox.AlignContentValue
+ Clay.Flexbox: instance Clay.Common.Center Clay.Flexbox.AlignItemsValue
+ Clay.Flexbox: instance Clay.Common.Center Clay.Flexbox.AlignSelfValue
+ Clay.Flexbox: instance Clay.Common.Center Clay.Flexbox.JustifyContentValue
+ Clay.Flexbox: instance Clay.Common.Inherit Clay.Flexbox.AlignContentValue
+ Clay.Flexbox: instance Clay.Common.Inherit Clay.Flexbox.AlignItemsValue
+ Clay.Flexbox: instance Clay.Common.Inherit Clay.Flexbox.AlignSelfValue
+ Clay.Flexbox: instance Clay.Common.Inherit Clay.Flexbox.JustifyContentValue
+ Clay.Flexbox: instance Clay.Common.Other Clay.Flexbox.AlignContentValue
+ Clay.Flexbox: instance Clay.Common.Other Clay.Flexbox.AlignItemsValue
+ Clay.Flexbox: instance Clay.Common.Other Clay.Flexbox.AlignSelfValue
+ Clay.Flexbox: instance Clay.Common.Other Clay.Flexbox.FlexDirection
+ Clay.Flexbox: instance Clay.Common.Other Clay.Flexbox.FlexWrap
+ Clay.Flexbox: instance Clay.Common.Other Clay.Flexbox.JustifyContentValue
+ Clay.Flexbox: instance Clay.Flexbox.FlexEnd Clay.Flexbox.AlignContentValue
+ Clay.Flexbox: instance Clay.Flexbox.FlexEnd Clay.Flexbox.AlignItemsValue
+ Clay.Flexbox: instance Clay.Flexbox.FlexEnd Clay.Flexbox.AlignSelfValue
+ Clay.Flexbox: instance Clay.Flexbox.FlexEnd Clay.Flexbox.JustifyContentValue
+ Clay.Flexbox: instance Clay.Flexbox.FlexEnd Clay.Property.Value
+ Clay.Flexbox: instance Clay.Flexbox.FlexStart Clay.Flexbox.AlignContentValue
+ Clay.Flexbox: instance Clay.Flexbox.FlexStart Clay.Flexbox.AlignItemsValue
+ Clay.Flexbox: instance Clay.Flexbox.FlexStart Clay.Flexbox.AlignSelfValue
+ Clay.Flexbox: instance Clay.Flexbox.FlexStart Clay.Flexbox.JustifyContentValue
+ Clay.Flexbox: instance Clay.Flexbox.FlexStart Clay.Property.Value
+ Clay.Flexbox: instance Clay.Flexbox.SpaceAround Clay.Flexbox.AlignContentValue
+ Clay.Flexbox: instance Clay.Flexbox.SpaceAround Clay.Flexbox.JustifyContentValue
+ Clay.Flexbox: instance Clay.Flexbox.SpaceAround Clay.Property.Value
+ Clay.Flexbox: instance Clay.Flexbox.SpaceBetween Clay.Flexbox.AlignContentValue
+ Clay.Flexbox: instance Clay.Flexbox.SpaceBetween Clay.Flexbox.JustifyContentValue
+ Clay.Flexbox: instance Clay.Flexbox.SpaceBetween Clay.Property.Value
+ Clay.Flexbox: instance Clay.Flexbox.Stretch Clay.Flexbox.AlignContentValue
+ Clay.Flexbox: instance Clay.Flexbox.Stretch Clay.Flexbox.AlignItemsValue
+ Clay.Flexbox: instance Clay.Flexbox.Stretch Clay.Flexbox.AlignSelfValue
+ Clay.Flexbox: instance Clay.Flexbox.Stretch Clay.Property.Value
+ Clay.Flexbox: instance Clay.Property.Val Clay.Flexbox.AlignContentValue
+ Clay.Flexbox: instance Clay.Property.Val Clay.Flexbox.AlignItemsValue
+ Clay.Flexbox: instance Clay.Property.Val Clay.Flexbox.AlignSelfValue
+ Clay.Flexbox: instance Clay.Property.Val Clay.Flexbox.FlexDirection
+ Clay.Flexbox: instance Clay.Property.Val Clay.Flexbox.FlexWrap
+ Clay.Flexbox: instance Clay.Property.Val Clay.Flexbox.JustifyContentValue
+ Clay.Flexbox: justifyContent :: JustifyContentValue -> Css
+ Clay.Flexbox: newtype AlignContentValue
+ Clay.Flexbox: newtype AlignItemsValue
+ Clay.Flexbox: newtype AlignSelfValue
+ Clay.Flexbox: newtype FlexDirection
+ Clay.Flexbox: newtype FlexWrap
+ Clay.Flexbox: newtype JustifyContentValue
+ Clay.Flexbox: nowrap :: FlexWrap
+ Clay.Flexbox: order :: Int -> Css
+ Clay.Flexbox: row :: FlexDirection
+ Clay.Flexbox: rowReverse :: FlexDirection
+ Clay.Flexbox: spaceAround :: SpaceAround a => a
+ Clay.Flexbox: spaceBetween :: SpaceBetween a => a
+ Clay.Flexbox: stretch :: Stretch a => a
+ Clay.Flexbox: wrap :: FlexWrap
+ Clay.Flexbox: wrapReverse :: FlexWrap
+ Clay.Font: instance Clay.Common.Auto Clay.Font.FontSize
+ Clay.Font: instance Clay.Common.Auto Clay.Font.GenericFontFamily
+ Clay.Font: instance Clay.Common.Inherit Clay.Font.FontSize
+ Clay.Font: instance Clay.Common.Inherit Clay.Font.FontStyle
+ Clay.Font: instance Clay.Common.Inherit Clay.Font.FontVariant
+ Clay.Font: instance Clay.Common.Inherit Clay.Font.FontWeight
+ Clay.Font: instance Clay.Common.Inherit Clay.Font.GenericFontFamily
+ Clay.Font: instance Clay.Common.Normal Clay.Font.FontStyle
+ Clay.Font: instance Clay.Common.Normal Clay.Font.FontVariant
+ Clay.Font: instance Clay.Common.Normal Clay.Font.FontWeight
+ Clay.Font: instance Clay.Common.Other Clay.Font.FontSize
+ Clay.Font: instance Clay.Common.Other Clay.Font.FontStyle
+ Clay.Font: instance Clay.Common.Other Clay.Font.FontVariant
+ Clay.Font: instance Clay.Common.Other Clay.Font.FontWeight
+ Clay.Font: instance Clay.Common.Other Clay.Font.GenericFontFamily
+ Clay.Font: instance Clay.Common.Other Clay.Font.NamedFont
+ Clay.Font: instance Clay.Font.Font (Clay.Font.Optional, Clay.Font.Required a)
+ Clay.Font: instance Clay.Font.Font (Clay.Font.Required a)
+ Clay.Font: instance Clay.Property.Val (Clay.Font.Required a)
+ Clay.Font: instance Clay.Property.Val Clay.Font.FontSize
+ Clay.Font: instance Clay.Property.Val Clay.Font.FontStyle
+ Clay.Font: instance Clay.Property.Val Clay.Font.FontVariant
+ Clay.Font: instance Clay.Property.Val Clay.Font.FontWeight
+ Clay.Font: instance Clay.Property.Val Clay.Font.GenericFontFamily
+ Clay.Font: instance Clay.Property.Val Clay.Font.NamedFont
+ Clay.Font: instance Clay.Property.Val Clay.Font.Optional
+ Clay.FontFace: instance Clay.Property.Val Clay.FontFace.FontFaceSrc
+ Clay.FontFace: instance GHC.Show.Show Clay.FontFace.FontFaceFormat
+ Clay.FontFace: instance GHC.Show.Show Clay.FontFace.FontFaceSrc
+ Clay.Gradient: instance Clay.Common.Other Clay.Gradient.Extend
+ Clay.Gradient: instance Clay.Common.Other Clay.Gradient.Radial
+ Clay.Gradient: instance Clay.Property.Val Clay.Gradient.Extend
+ Clay.Gradient: instance Clay.Property.Val Clay.Gradient.Radial
+ Clay.List: instance Clay.Common.Inherit Clay.List.ListStyleImage
+ Clay.List: instance Clay.Common.Inherit Clay.List.ListStylePosition
+ Clay.List: instance Clay.Common.Inherit Clay.List.ListStyleType
+ Clay.List: instance Clay.Common.Initial Clay.List.ListStyleImage
+ Clay.List: instance Clay.Common.Initial Clay.List.ListStylePosition
+ Clay.List: instance Clay.Common.Initial Clay.List.ListStyleType
+ Clay.List: instance Clay.Common.None Clay.List.ListStyleImage
+ Clay.List: instance Clay.Common.None Clay.List.ListStylePosition
+ Clay.List: instance Clay.Common.None Clay.List.ListStyleType
+ Clay.List: instance Clay.Common.Other Clay.List.ListStyleImage
+ Clay.List: instance Clay.Common.Other Clay.List.ListStylePosition
+ Clay.List: instance Clay.Common.Other Clay.List.ListStyleType
+ Clay.List: instance Clay.Property.Val Clay.List.ListStyleImage
+ Clay.List: instance Clay.Property.Val Clay.List.ListStylePosition
+ Clay.List: instance Clay.Property.Val Clay.List.ListStyleType
+ Clay.Mask: instance (Clay.Mask.Mask a, Clay.Mask.Mask b) => Clay.Mask.Mask (a, b)
+ Clay.Mask: instance Clay.Common.Inherit Clay.Mask.MaskComposite
+ Clay.Mask: instance Clay.Common.None Clay.Mask.MaskComposite
+ Clay.Mask: instance Clay.Common.Other Clay.Mask.MaskComposite
+ Clay.Mask: instance Clay.Mask.Mask Clay.Background.BackgroundAttachment
+ Clay.Mask: instance Clay.Mask.Mask Clay.Background.BackgroundClip
+ Clay.Mask: instance Clay.Mask.Mask Clay.Background.BackgroundImage
+ Clay.Mask: instance Clay.Mask.Mask Clay.Background.BackgroundOrigin
+ Clay.Mask: instance Clay.Mask.Mask Clay.Background.BackgroundPosition
+ Clay.Mask: instance Clay.Mask.Mask Clay.Background.BackgroundRepeat
+ Clay.Mask: instance Clay.Mask.Mask Clay.Background.BackgroundSize
+ Clay.Mask: instance Clay.Mask.Mask Clay.Mask.MaskComposite
+ Clay.Mask: instance Clay.Mask.Mask a => Clay.Mask.Mask [a]
+ Clay.Mask: instance Clay.Property.Val Clay.Mask.MaskComposite
+ Clay.Media: instance Clay.Common.Other Clay.Media.Resolution
+ Clay.Media: instance Clay.Property.Val Clay.Media.Resolution
+ Clay.Property: [unKeys] :: Key a -> Prefixed
+ Clay.Property: [unPlain] :: Prefixed -> Text
+ Clay.Property: [unPrefixed] :: Prefixed -> [(Text, Text)]
+ Clay.Property: [unValue] :: Value -> Prefixed
+ Clay.Property: infixr 9 !
+ Clay.Property: instance (Clay.Property.Val a, Clay.Property.Val b) => Clay.Property.Val (Data.Either.Either a b)
+ Clay.Property: instance (Clay.Property.Val a, Clay.Property.Val b) => Clay.Property.Val (a, b)
+ Clay.Property: instance Clay.Property.Val Clay.Property.Literal
+ Clay.Property: instance Clay.Property.Val Clay.Property.Value
+ Clay.Property: instance Clay.Property.Val Data.Text.Internal.Text
+ Clay.Property: instance Clay.Property.Val GHC.Integer.Type.Integer
+ Clay.Property: instance Clay.Property.Val GHC.Types.Double
+ Clay.Property: instance Clay.Property.Val a => Clay.Property.Val (GHC.Base.Maybe a)
+ Clay.Property: instance Clay.Property.Val a => Clay.Property.Val [a]
+ Clay.Property: instance Data.Fixed.HasResolution Clay.Property.E5
+ Clay.Property: instance Data.String.IsString (Clay.Property.Key a)
+ Clay.Property: instance Data.String.IsString Clay.Property.Literal
+ Clay.Property: instance Data.String.IsString Clay.Property.Prefixed
+ Clay.Property: instance Data.String.IsString Clay.Property.Value
+ Clay.Property: instance GHC.Base.Monoid (Clay.Property.Key a)
+ Clay.Property: instance GHC.Base.Monoid Clay.Property.Literal
+ Clay.Property: instance GHC.Base.Monoid Clay.Property.Prefixed
+ Clay.Property: instance GHC.Base.Monoid Clay.Property.Value
+ Clay.Property: instance GHC.Classes.Eq Clay.Property.Prefixed
+ Clay.Property: instance GHC.Classes.Eq Clay.Property.Value
+ Clay.Property: instance GHC.Show.Show (Clay.Property.Key a)
+ Clay.Property: instance GHC.Show.Show Clay.Property.Literal
+ Clay.Property: instance GHC.Show.Show Clay.Property.Prefixed
+ Clay.Property: instance GHC.Show.Show Clay.Property.Value
+ Clay.Pseudo: backdrop :: Refinement
+ Clay.Pseudo: firstLetter :: Refinement
+ Clay.Pseudo: firstLine :: Refinement
+ Clay.Pseudo: selection :: Refinement
+ Clay.Render: [align] :: Config -> Bool
+ Clay.Render: [banner] :: Config -> Bool
+ Clay.Render: [finalSemicolon] :: Config -> Bool
+ Clay.Render: [indentation] :: Config -> Builder
+ Clay.Render: [newline] :: Config -> Builder
+ Clay.Render: [sep] :: Config -> Builder
+ Clay.Render: [warn] :: Config -> Bool
+ Clay.Selector: PseudoElem :: Text -> Predicate
+ Clay.Selector: [out] :: Fix f -> f (Fix f)
+ Clay.Selector: [unFilter] :: Refinement -> [Predicate]
+ Clay.Selector: instance Data.String.IsString (Clay.Selector.Fix Clay.Selector.SelectorF)
+ Clay.Selector: instance Data.String.IsString Clay.Selector.Refinement
+ Clay.Selector: instance GHC.Base.Monoid (Clay.Selector.Fix Clay.Selector.SelectorF)
+ Clay.Selector: instance GHC.Classes.Eq Clay.Selector.Predicate
+ Clay.Selector: instance GHC.Classes.Ord Clay.Selector.Predicate
+ Clay.Selector: instance GHC.Show.Show (f (Clay.Selector.Fix f)) => GHC.Show.Show (Clay.Selector.Fix f)
+ Clay.Selector: instance GHC.Show.Show Clay.Selector.Predicate
+ Clay.Selector: instance GHC.Show.Show Clay.Selector.Refinement
+ Clay.Selector: instance GHC.Show.Show a => GHC.Show.Show (Clay.Selector.SelectorF a)
+ Clay.Selector: instance GHC.Show.Show f => GHC.Show.Show (Clay.Selector.Path f)
+ Clay.Size: cm :: Double -> Size Abs
+ Clay.Size: data Grad
+ Clay.Size: data Turn
+ Clay.Size: grad :: Double -> Angle Grad
+ Clay.Size: inches :: Double -> Size Abs
+ Clay.Size: instance Clay.Common.Auto (Clay.Size.Angle a)
+ Clay.Size: instance Clay.Common.Auto (Clay.Size.Size a)
+ Clay.Size: instance Clay.Common.Inherit (Clay.Size.Angle a)
+ Clay.Size: instance Clay.Common.Inherit (Clay.Size.Size a)
+ Clay.Size: instance Clay.Common.None (Clay.Size.Size a)
+ Clay.Size: instance Clay.Common.Normal (Clay.Size.Size a)
+ Clay.Size: instance Clay.Common.Other (Clay.Size.Angle a)
+ Clay.Size: instance Clay.Common.Other (Clay.Size.Size a)
+ Clay.Size: instance Clay.Property.Val (Clay.Size.Angle a)
+ Clay.Size: instance Clay.Property.Val (Clay.Size.Size a)
+ Clay.Size: instance GHC.Num.Num (Clay.Size.Angle Clay.Size.Deg)
+ Clay.Size: instance GHC.Num.Num (Clay.Size.Angle Clay.Size.Grad)
+ Clay.Size: instance GHC.Num.Num (Clay.Size.Angle Clay.Size.Rad)
+ Clay.Size: instance GHC.Num.Num (Clay.Size.Angle Clay.Size.Turn)
+ Clay.Size: instance GHC.Num.Num (Clay.Size.Size Clay.Size.Abs)
+ Clay.Size: instance GHC.Num.Num (Clay.Size.Size Clay.Size.Rel)
+ Clay.Size: instance GHC.Real.Fractional (Clay.Size.Angle Clay.Size.Deg)
+ Clay.Size: instance GHC.Real.Fractional (Clay.Size.Angle Clay.Size.Grad)
+ Clay.Size: instance GHC.Real.Fractional (Clay.Size.Angle Clay.Size.Rad)
+ Clay.Size: instance GHC.Real.Fractional (Clay.Size.Angle Clay.Size.Turn)
+ Clay.Size: instance GHC.Real.Fractional (Clay.Size.Size Clay.Size.Abs)
+ Clay.Size: instance GHC.Real.Fractional (Clay.Size.Size Clay.Size.Rel)
+ Clay.Size: mm :: Double -> Size Abs
+ Clay.Size: pc :: Double -> Size Abs
+ Clay.Size: turn :: Double -> Angle Turn
+ Clay.Size: unitless :: Double -> Size a
+ Clay.Size: vh :: Double -> Size Rel
+ Clay.Size: vmax :: Double -> Size Rel
+ Clay.Size: vmin :: Double -> Size Rel
+ Clay.Size: vw :: Double -> Size Rel
+ Clay.Stylesheet: infix 4 -:
+ Clay.Stylesheet: infixr 5 &
+ Clay.Stylesheet: instance Clay.Common.All Clay.Stylesheet.MediaType
+ Clay.Stylesheet: instance Clay.Common.Other Clay.Stylesheet.MediaType
+ Clay.Stylesheet: instance Clay.Property.Val Clay.Stylesheet.MediaType
+ Clay.Stylesheet: instance GHC.Base.Applicative Clay.Stylesheet.StyleM
+ Clay.Stylesheet: instance GHC.Base.Functor Clay.Stylesheet.StyleM
+ Clay.Stylesheet: instance GHC.Base.Monad Clay.Stylesheet.StyleM
+ Clay.Stylesheet: instance GHC.Base.Monoid Clay.Stylesheet.Css
+ Clay.Stylesheet: instance GHC.Show.Show Clay.Stylesheet.App
+ Clay.Stylesheet: instance GHC.Show.Show Clay.Stylesheet.Feature
+ Clay.Stylesheet: instance GHC.Show.Show Clay.Stylesheet.Keyframes
+ Clay.Stylesheet: instance GHC.Show.Show Clay.Stylesheet.MediaQuery
+ Clay.Stylesheet: instance GHC.Show.Show Clay.Stylesheet.MediaType
+ Clay.Stylesheet: instance GHC.Show.Show Clay.Stylesheet.NotOrOnly
+ Clay.Stylesheet: instance GHC.Show.Show Clay.Stylesheet.Rule
+ Clay.Text: instance Clay.Common.Auto Clay.Text.TextRendering
+ Clay.Text: instance Clay.Common.Center Clay.Text.TextAlign
+ Clay.Text: instance Clay.Common.Inherit Clay.Text.Content
+ Clay.Text: instance Clay.Common.Inherit Clay.Text.TextAlign
+ Clay.Text: instance Clay.Common.Inherit Clay.Text.TextDecoration
+ Clay.Text: instance Clay.Common.Inherit Clay.Text.TextDirection
+ Clay.Text: instance Clay.Common.Inherit Clay.Text.TextIndent
+ Clay.Text: instance Clay.Common.Inherit Clay.Text.TextRendering
+ Clay.Text: instance Clay.Common.Inherit Clay.Text.TextTransform
+ Clay.Text: instance Clay.Common.Inherit Clay.Text.WhiteSpace
+ Clay.Text: instance Clay.Common.Initial Clay.Text.Content
+ Clay.Text: instance Clay.Common.None Clay.Text.Content
+ Clay.Text: instance Clay.Common.None Clay.Text.TextDecoration
+ Clay.Text: instance Clay.Common.None Clay.Text.TextTransform
+ Clay.Text: instance Clay.Common.Normal Clay.Text.Content
+ Clay.Text: instance Clay.Common.Normal Clay.Text.TextAlign
+ Clay.Text: instance Clay.Common.Normal Clay.Text.TextDirection
+ Clay.Text: instance Clay.Common.Normal Clay.Text.WhiteSpace
+ Clay.Text: instance Clay.Common.Other Clay.Text.TextAlign
+ Clay.Text: instance Clay.Common.Other Clay.Text.TextDecoration
+ Clay.Text: instance Clay.Common.Other Clay.Text.TextDirection
+ Clay.Text: instance Clay.Common.Other Clay.Text.TextIndent
+ Clay.Text: instance Clay.Common.Other Clay.Text.TextRendering
+ Clay.Text: instance Clay.Common.Other Clay.Text.WhiteSpace
+ Clay.Text: instance Clay.Property.Val Clay.Text.Content
+ Clay.Text: instance Clay.Property.Val Clay.Text.TextAlign
+ Clay.Text: instance Clay.Property.Val Clay.Text.TextDecoration
+ Clay.Text: instance Clay.Property.Val Clay.Text.TextDirection
+ Clay.Text: instance Clay.Property.Val Clay.Text.TextIndent
+ Clay.Text: instance Clay.Property.Val Clay.Text.TextRendering
+ Clay.Text: instance Clay.Property.Val Clay.Text.TextTransform
+ Clay.Text: instance Clay.Property.Val Clay.Text.WhiteSpace
+ Clay.Time: instance Clay.Common.Auto Clay.Time.Time
+ Clay.Time: instance Clay.Common.Inherit Clay.Time.Time
+ Clay.Time: instance Clay.Common.None Clay.Time.Time
+ Clay.Time: instance Clay.Common.Normal Clay.Time.Time
+ Clay.Time: instance Clay.Common.Other Clay.Time.Time
+ Clay.Time: instance Clay.Property.Val Clay.Time.Time
+ Clay.Time: instance GHC.Num.Num Clay.Time.Time
+ Clay.Time: instance GHC.Real.Fractional Clay.Time.Time
+ Clay.Transform: instance Clay.Common.None Clay.Transform.Transformation
+ Clay.Transform: instance Clay.Property.Val Clay.Transform.Transformation
+ Clay.Transition: instance Clay.Common.Auto Clay.Transition.TimingFunction
+ Clay.Transition: instance Clay.Common.Other Clay.Transition.TimingFunction
+ Clay.Transition: instance Clay.Property.Val Clay.Transition.TimingFunction
- Clay.Color: Hsla :: Integer -> Float -> Float -> Integer -> Color
+ Clay.Color: Hsla :: Integer -> Float -> Float -> Float -> Color
- Clay.Color: Rgba :: Integer -> Integer -> Integer -> Integer -> Color
+ Clay.Color: Rgba :: Integer -> Integer -> Integer -> Float -> Color
- Clay.Color: clamp :: Integer -> Integer
+ Clay.Color: clamp :: Ord a => Num a => a -> a
- Clay.Color: hsla :: Integer -> Float -> Float -> Integer -> Color
+ Clay.Color: hsla :: Integer -> Float -> Float -> Float -> Color
- Clay.Color: rgba :: Integer -> Integer -> Integer -> Integer -> Color
+ Clay.Color: rgba :: Integer -> Integer -> Integer -> Float -> Color
- Clay.Color: setA :: Integer -> Color -> Color
+ Clay.Color: setA :: Float -> Color -> Color
- Clay.Display: class Val a => Cursor a where cursor = key "cursor"
+ Clay.Display: class (Val a) => Cursor a where cursor = key "cursor"
- Clay.Display: class Val a => VerticalAlign a where verticalAlign = key "vertical-align"
+ Clay.Display: class (Val a) => VerticalAlign a where verticalAlign = key "vertical-align"
- Clay.Size: em :: Double -> Size Abs
+ Clay.Size: em :: Double -> Size Rel
- Clay.Size: ex :: Double -> Size Abs
+ Clay.Size: ex :: Double -> Size Rel
- Clay.Size: px :: Integer -> Size Abs
+ Clay.Size: px :: Double -> Size Abs

Files

clay.cabal view
@@ -1,5 +1,5 @@ Name:     clay-Version:  0.10.1+Version:  0.11 Synopsis: CSS preprocessor as embedded Haskell. Description:   Clay is a CSS preprocessor like LESS and Sass, but implemented as an embedded@@ -31,6 +31,11 @@ Cabal-Version: >= 1.8 Build-Type:    Simple +Tested-With:+  GHC==7.8.4,+  GHC==7.10.3,+  GHC==8.0.1+ Source-Repository head   Type:     git   Location: git://github.com/sebastiaanvisser/clay.git@@ -51,6 +56,7 @@     Clay.Display     Clay.Elements     Clay.Filter+    Clay.Flexbox     Clay.Font     Clay.FontFace     Clay.Geometry@@ -71,20 +77,19 @@    GHC-Options: -Wall   Build-Depends:-    base  >= 4    && < 5,+    base  >= 4.5  && < 5,     mtl   >= 1    && < 2.3,     text  >= 0.11 && < 1.3  Test-Suite Test-Clay   Type: exitcode-stdio-1.0-  HS-Source-Dirs: src-  Main-Is: Test.hs+  HS-Source-Dirs: spec, src+  main-is: Spec.hs   Build-Depends:-    base                 >= 4    && < 5,-    mtl                  >= 1    && < 2.3,-    text                 >= 0.11 && < 1.3,-    HUnit                >= 1.2  && < 1.3,-    test-framework       >= 0.8  && < 0.9,-    test-framework-hunit >= 0.3  && < 0.4+    base                 >= 4.5  && < 5,+    base                 >= 4     && < 5,+    mtl                  >= 1     && < 2.3,+    text                 >= 0.11  && < 1.3,+    hspec-expectations   >= 0.7.2 && < 0.8,+    hspec                >= 2.2.0 && < 2.3   Ghc-Options: -Wall-
+ spec/Spec.hs view
@@ -0,0 +1,4 @@+{-# OPTIONS_GHC -F -pgmF hspec-discover #-}++-- Automatically provides a main function+-- If you have trouble with this, make sure hspec-discover is installed and in your PATH
src/Clay.hs view
@@ -99,6 +99,7 @@ , module Clay.Box , module Clay.Display , module Clay.Dynamic+, module Clay.Flexbox , module Clay.Font , module Clay.FontFace , module Clay.Geometry@@ -117,7 +118,7 @@ ) where -import Prelude hiding ((**))+import Prelude ()  import Clay.Render import Clay.Stylesheet@@ -140,6 +141,7 @@ import Clay.Common import Clay.Display    hiding (table) import Clay.Dynamic+import Clay.Flexbox    hiding (flex, nowrap, wrap) import Clay.Font       hiding (menu, caption, small, icon) import Clay.FontFace import Clay.Geometry
src/Clay/Border.hs view
@@ -28,6 +28,7 @@  -- * Collapsing borders model for a table , borderCollapse+, borderSpacing, borderSpacing2 ) where @@ -171,3 +172,9 @@  borderCollapse :: Visibility -> Css borderCollapse = key "border-collapse"++borderSpacing :: Size a -> Css+borderSpacing a = key "border-spacing" a++borderSpacing2 :: Size a -> Size a -> Css+borderSpacing2 a b = key "border-spacing" (a ! b)
src/Clay/Box.hs view
@@ -4,6 +4,7 @@ , paddingBox, borderBox, contentBox , boxSizing , boxShadow+, boxShadowWithSpread , boxShadows , insetBoxShadow )@@ -38,6 +39,10 @@  boxShadow :: Size a -> Size a -> Size a -> Color -> Css boxShadow x y w c = prefixed (browsers <> "box-shadow") (x ! y ! w ! c)++boxShadowWithSpread :: Size a -> Size a -> Size a -> Size a -> Color -> Css+boxShadowWithSpread x y blurRadius spreadRadius color =+    prefixed (browsers <> "box-shadow") (x ! y ! blurRadius ! spreadRadius ! color)  boxShadows :: [(Size a, Size a, Size a, Color)] -> Css boxShadows = prefixed (browsers <> "box-shadow") . map (\(a, b, c, d) -> a ! b ! c ! d)
src/Clay/Color.hs view
@@ -16,24 +16,24 @@ -- * Color datatype.  data Color-  = Rgba Integer Integer Integer Integer-  | Hsla Integer Float   Float   Integer+  = Rgba Integer Integer Integer Float+  | Hsla Integer Float   Float   Float   | Other Value-  deriving Show+  deriving (Show, Eq)  -- * Color constructors. -rgba :: Integer -> Integer -> Integer -> Integer -> Color+rgba :: Integer -> Integer -> Integer -> Float -> Color rgba = Rgba  rgb :: Integer -> Integer -> Integer -> Color-rgb r g b = rgba r g b 255+rgb r g b = rgba r g b 1 -hsla :: Integer -> Float -> Float -> Integer -> Color+hsla :: Integer -> Float -> Float -> Float -> Color hsla = Hsla  hsl :: Integer -> Float -> Float -> Color-hsl r g b = hsla r g b 255+hsl r g b = hsla r g b 1  grayish :: Integer -> Color grayish g = rgb g g g@@ -55,11 +55,65 @@ setB b (Rgba r g _ a) = Rgba r g b a setB _ o              = o -setA :: Integer -> Color -> Color+setA :: Float -> Color -> Color setA a (Rgba r g b _) = Rgba r g b a setA a (Hsla r g b _) = Hsla r g b a setA _ o              = o +-- * Color conversions.++toRgba :: Color -> Color+toRgba color =+    case color of+        Hsla h s l a -> toRgba' rgb' a+              where sextant = fromIntegral h / 60.0+                    chroma = (s *) . (1.0 -) . abs $ (2.0 * l) - 1.0+                    x = (chroma *) . (1.0 -) . abs $ (sextant `fracMod` 2) - 1.0+                    lightnessAdjustment = l - (chroma / 2.0)++                    toRgbPart component = truncate . (* 255.0) $ component + lightnessAdjustment+                    toRgba' (r, g, b) = Rgba (toRgbPart r) (toRgbPart g) (toRgbPart b)++                    rgb' | h >= 0   && h <  60 = (chroma, x     ,  0)+                         | h >= 60  && h < 120 = (x     , chroma,  0)+                         | h >= 120 && h < 180 = (0     , chroma,  x)+                         | h >= 180 && h < 240 = (0     , x     ,  chroma)+                         | h >= 240 && h < 300 = (x     , 0     ,  chroma)+                         | otherwise           = (chroma, 0     ,  x)++        c@(Rgba _ _ _ _) -> c+        +        Other _          -> error "Invalid to pass Other to toRgba."+++toHsla :: Color -> Color+toHsla color =+    case color of+        Rgba redComponent greenComponent blueComponent alphaComponent -> Hsla h (decimalRound s 3) (decimalRound l 3) alphaComponent+            where r = fromIntegral redComponent   / 255.0+                  g = fromIntegral greenComponent / 255.0+                  b = fromIntegral blueComponent  / 255.0++                  minColor = minimum [r, g, b]+                  maxColor = maximum [r, g, b]+                  delta = maxColor - minColor++                  l = (minColor + maxColor) / 2.0+                  s = if delta == 0.0 then 0.0+                      else (delta /) . (1.0 -) . abs $ (2.0 * l) - 1.0++                  h' | delta == 0.0 = 0.0+                     | r == maxColor = ((g - b) / delta) `fracMod` 6.0+                     | g == maxColor = ((b - r) / delta) + 2.0+                     | otherwise     = ((r - g) / delta) + 4.0++                  h'' = truncate $ 60 * h'+                  h = if h'' < 0 then h''+ 360 else h''++        c@(Hsla _ _ _ _) -> c+        +        Other _          -> error "Invalid to pass Other to toHsla."+ -- * Computing with colors.  (*.) :: Color -> Integer -> Color@@ -74,22 +128,63 @@ (-.) (Rgba r g b a) i = Rgba (clamp (r - i)) (clamp (g - i)) (clamp (b - i)) a (-.) o              _ = o -clamp :: Integer -> Integer-clamp i = max (min i 255) 0+clamp :: Ord a => Num a => a -> a+clamp i = max (min i (fromIntegral (255 :: Integer))) (fromIntegral (0 :: Integer)) +lighten :: Float -> Color -> Color+lighten factor color =+    case color of+        c@(Hsla {}) -> toHsla $ lighten factor (toRgba c)+        c@(Rgba {}) -> lerp factor c (Rgba 255 255 255 255)+        Other _     -> error "Other cannot be lightened."++darken :: Float -> Color -> Color+darken factor color =+    case color of+        c@(Hsla {}) -> toHsla $ darken factor (toRgba c)+        c@(Rgba {}) -> lerp factor c (Rgba 0 0 0 255)+        Other _     -> error "Other cannot be darkened."++lerp :: Float -> Color -> Color -> Color+lerp factor startColor boundColor =+    case (startColor, boundColor) of+        (Other _, _) -> error "Other cannot be lerped." +        (_, Other _) -> error "Other cannot be lerped." +        (color@(Hsla {}), bound) -> toHsla $ lerp factor (toRgba color) bound++        (start, color@(Hsla {})) -> toHsla $ lerp factor start (toRgba color)++        (Rgba r g b a, Rgba r' g' b' a') ->+            Rgba+                (lerpComponent factor r r')+                (lerpComponent factor g g')+                (lerpComponent factor b b')+                (lerpAlpha factor a a')+            where lerpComponent :: Float -> Integer -> Integer -> Integer+                  lerpComponent amount start bound =+                    let difference = bound - start+                        adjustment = truncate $ fromIntegral difference * amount+                    in clamp $ start + adjustment+                  lerpAlpha :: Float -> Float -> Float -> Float+                  lerpAlpha amount start bound =+                    let difference = bound - start+                        adjustment = fromIntegral $ (truncate $ difference * amount :: Integer)+                    in clamp $ start + adjustment+ -------------------------------------------------------------------------------  instance Val Color where   value clr =     case clr of-      Rgba r g b 255 -> Value $mconcat ["rgb(",  p r, ",", p g, ",", p b,            ")"]+      Rgba r g b 1.0 -> Value $mconcat ["#",  p' r, p' g, p' b]       Rgba r g b a   -> Value $mconcat ["rgba(", p r, ",", p g, ",", p b, ",", ah a, ")"]-      Hsla h s l 255 -> Value $mconcat ["hsl(",  p h, ",", f s, ",", f l,            ")"]+      Hsla h s l 1.0 -> Value $mconcat ["hsl(",  p h, ",", f s, ",", f l,            ")"]       Hsla h s l a   -> Value $mconcat ["hsla(", p h, ",", f s, ",", f l, ",", ah a, ")"]       Other o        -> o     where p  = fromString . show+          p' = fromString . printf "%02x"           f  = fromString . printf "%.4f%%"-          ah = fromString . printf "%.4f" . (/ (256 :: Double)) . fromIntegral+          ah = fromString . take 6 . show  instance None    Color where none    = Other "none" instance Auto    Color where auto    = Other "auto"@@ -104,9 +199,9 @@   case Text.uncons t of     Just ('#', cs) | Text.all isHexDigit cs ->       case Text.unpack cs of-        [a, b, c, d, e, f, g, h] -> rgba (hex a b) (hex c d) (hex e f) (hex g h)+        [a, b, c, d, e, f, g, h] -> rgba (hex a b) (hex c d) (hex e f) (fromIntegral (hex g h :: Integer) / 255.0)         [a, b, c, d, e, f      ] -> rgb  (hex a b) (hex c d) (hex e f)-        [a, b, c, d            ] -> rgba (hex a a) (hex b b) (hex c c) (hex d d)+        [a, b, c, d            ] -> rgba (hex a a) (hex b b) (hex c c) (fromIntegral (hex d d :: Integer) / 255.0)         [a, b, c               ] -> rgb  (hex a a) (hex b b) (hex c c)         _                        -> err     _                            -> err
src/Clay/Common.hs view
@@ -15,15 +15,17 @@  ------------------------------------------------------------------------------- -class All     a where all     :: a-class Auto    a where auto    :: a-class Inherit a where inherit :: a-class None    a where none    :: a-class Normal  a where normal  :: a-class Visible a where visible :: a-class Hidden  a where hidden  :: a-class Initial a where initial :: a-class Unset   a where unset   :: a+class All      a where all      :: a+class Auto     a where auto     :: a+class Baseline a where baseline :: a+class Center   a where center   :: a+class Inherit  a where inherit  :: a+class None     a where none     :: a+class Normal   a where normal   :: a+class Visible  a where visible  :: a+class Hidden   a where hidden   :: a+class Initial  a where initial  :: a+class Unset    a where unset    :: 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@@ -31,16 +33,18 @@  class Other   a where other   :: Value -> a -instance All     Value where all     = "all"-instance Auto    Value where auto    = "auto"-instance Inherit Value where inherit = "inherit"-instance Normal  Value where normal  = "normal"-instance None    Value where none    = "none"-instance Visible Value where visible = "visible"-instance Hidden  Value where hidden  = "hidden"-instance Other   Value where other   = id-instance Initial Value where initial = "initial"-instance Unset   Value where unset   = "unset"+instance All      Value where all      = "all"+instance Auto     Value where auto     = "auto"+instance Baseline Value where baseline = "baseline"+instance Center   Value where center   = "center"+instance Inherit  Value where inherit  = "inherit"+instance Normal   Value where normal   = "normal"+instance None     Value where none     = "none"+instance Visible  Value where visible  = "visible"+instance Hidden   Value where hidden   = "hidden"+instance Other    Value where other    = id+instance Initial  Value where initial  = "initial"+instance Unset    Value where unset    = "unset"  ------------------------------------------------------------------------------- @@ -63,3 +67,15 @@ call :: (IsString s, Monoid s) => s -> s -> s call fn arg = fn <> "(" <> arg <> ")" +-------------------------------------------------------------------------------++-- | Some auxiliary mathematical functions.++fracMod :: RealFrac a => a -> a -> a+fracMod x y = (x -) . (* y) $ evenMultiples x y+    where evenMultiples x' y' = fromIntegral (truncate (x' / y') :: Integer)++decimalRound :: RealFrac a => a -> Int -> a+decimalRound x decimalPlaces = shiftedAndRounded x / powersOf10+    where powersOf10 = 10 ^ decimalPlaces+          shiftedAndRounded x' = fromIntegral (round $ x' * powersOf10 :: Integer)
src/Clay/Display.hs view
@@ -65,13 +65,13 @@ -- * Vertical align.  , VerticalAlign(..)-, baseline, middle, vAlignSub, vAlignSuper, textTop, textBottom, vAlignTop, vAlignBottom+, middle, vAlignSub, vAlignSuper, textTop, textBottom, vAlignTop, vAlignBottom  -- * Cursor  , Cursor(..) , crosshair, cursorDefault, pointer, move, eResize, neResize, nwResize, nResize, seResize, swResize, sResize, wResize, cursorText, wait, cursorProgress, help, cursorUrl-          + ) where @@ -232,14 +232,13 @@     verticalAlign :: a -> Css     verticalAlign = key "vertical-align" -newtype VerticalAlignValue a = VerticalAlignValue Value deriving (Val)+newtype VerticalAlignValue a = VerticalAlignValue Value deriving (Val, Baseline)  instance VerticalAlign (VerticalAlignValue a) instance VerticalAlign (Size a) -baseline,middle,vAlignSub,vAlignSuper,textTop,textBottom,vAlignTop,vAlignBottom :: VerticalAlignValue Value+middle,vAlignSub,vAlignSuper,textTop,textBottom,vAlignTop,vAlignBottom :: VerticalAlignValue Value -baseline = VerticalAlignValue "baseline" middle = VerticalAlignValue "middle" vAlignSub = VerticalAlignValue "sub" vAlignSuper = VerticalAlignValue "super"
+ src/Clay/Flexbox.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE FlexibleInstances, GeneralizedNewtypeDeriving, OverloadedStrings #-}+module Clay.Flexbox where++import Clay.Common     (Auto, Baseline, Center, Inherit, Other)+import Clay.Property+import Clay.Size       (Size)+import Clay.Stylesheet+import Data.String     (fromString)++-- | CSS Flexible Box Layout+-- http://dev.w3.org/csswg/css-flexbox-1++class FlexEnd      a where flexEnd      :: a+class FlexStart    a where flexStart    :: a+class SpaceAround  a where spaceAround  :: a+class SpaceBetween a where spaceBetween :: a+class Stretch      a where stretch      :: a++instance FlexEnd Value      where flexEnd      = "flex-end"+instance FlexStart Value    where flexStart    = "flex-start"+instance SpaceAround Value  where spaceAround  = "space-around"+instance SpaceBetween Value where spaceBetween = "space-between"+instance Stretch Value      where stretch      = "stretch"++-------------------------------------------------------------------------------++newtype AlignContentValue = AlignContentValue Value+  deriving (Val, Other, Inherit, FlexStart, FlexEnd+          , Center, SpaceBetween, SpaceAround, Stretch)++alignContent :: AlignContentValue -> Css+alignContent = key "align-content"++-------------------------------------------------------------------------------++newtype AlignItemsValue = AlignItemValue Value+  deriving (Val, Other, Inherit, Baseline+          , Center, FlexEnd, FlexStart, Stretch)++alignItems :: AlignItemsValue -> Css+alignItems = key "align-items"++-------------------------------------------------------------------------------++newtype AlignSelfValue = AlignSelfValue Value+  deriving (Val, Other, Inherit, Auto, Baseline+          , Center, FlexEnd, FlexStart, Stretch)++alignSelf :: AlignSelfValue -> Css+alignSelf = key "align-self"++-------------------------------------------------------------------------------++flex :: Int -> Int -> Size b -> Css+flex g s b = key "flex" (gs ! ss ! value b)+  where gs = fromString (show g) :: Value+        ss = fromString (show s) :: Value++-------------------------------------------------------------------------------++flexBasis :: Size a -> Css+flexBasis = key "flex-basis"++-------------------------------------------------------------------------------++newtype FlexDirection = FlexDirection Value+  deriving (Val, Other)++row, rowReverse, column, columnReverse :: FlexDirection++row           = FlexDirection "row"+rowReverse    = FlexDirection "row-reverse"+column        = FlexDirection "column"+columnReverse = FlexDirection "column-reverse"++flexDirection :: FlexDirection -> Css+flexDirection = key "flex-direction"++-------------------------------------------------------------------------------++flexFlow :: FlexDirection -> FlexWrap -> Css+flexFlow d w = key "flex-flow" (d ! w)++-------------------------------------------------------------------------------++flexGrow :: Int -> Css+flexGrow i = key "flex-grow" (fromString (show i) :: Value)++flexShrink :: Int  -> Css+flexShrink i = key "flex-shrink" (fromString (show i) :: Value)++-------------------------------------------------------------------------------++newtype FlexWrap = FlexWrap Value+  deriving (Val, Other)++nowrap, wrap, wrapReverse :: FlexWrap++nowrap = FlexWrap "nowrap"+wrap = FlexWrap "wrap"+wrapReverse = FlexWrap "wrap-reverse"++flexWrap :: FlexWrap -> Css+flexWrap = key "flex-wrap"++-------------------------------------------------------------------------------++newtype JustifyContentValue = JustifyContentValue Value+  deriving (Val, Other, Inherit, Center, FlexEnd+          , FlexStart, SpaceAround, SpaceBetween)++justifyContent :: JustifyContentValue -> Css+justifyContent = key "justify-content"++-------------------------------------------------------------------------------++order :: Int -> Css+order i = key "order" (fromString (show i) :: Value)
src/Clay/FontFace.hs view
@@ -10,7 +10,7 @@ import Clay.Stylesheet (Css, key)  import Data.Monoid ((<>))-import Data.Functor((<$>))+import Data.Functor ((<$>)) import Data.Maybe (fromMaybe) import Data.Text (Text) 
src/Clay/Media.hs view
@@ -13,7 +13,7 @@ , minDeviceWidth, maxDeviceWidth, deviceHeight, minDeviceHeight , maxDeviceHeight --- * Aspect ration features.+-- * Aspect ratio features.  , aspectRatio, minAspectRatio, maxAspectRatio, deviceAspectRatio , minDeviceAspectRatio, maxDeviceAspectRatio
src/Clay/Property.hs view
@@ -10,7 +10,7 @@ import Data.Text (Text, replace)  data Prefixed = Prefixed { unPrefixed :: [(Text, Text)] } | Plain { unPlain :: Text }-  deriving Show+  deriving (Show, Eq)  instance IsString Prefixed where   fromString s = Plain (fromString s)@@ -48,7 +48,7 @@ -------------------------------------------------------------------------------  newtype Value = Value { unValue :: Prefixed }-  deriving (Show, Monoid, IsString)+  deriving (Show, Monoid, IsString, Eq)  class Val a where   value :: a -> Value
src/Clay/Pseudo.hs view
@@ -8,11 +8,18 @@ -- List of specific pseudo classes, from: -- https://developer.mozilla.org/en-US/docs/CSS/Pseudo-classes -after, before :: Refinement+-- * Pseudo elements -after  = ":after"-before = ":before"+after, before, firstLetter, firstLine, selection, backdrop :: Refinement +after       = "::after"+before      = "::before"+firstLetter = "::first-letter"+firstLine   = "::first-line"+selection   = "::selection"+backdrop    = "::backdrop"++-- * Pseudo classes link, visited, active, hover, focus, firstChild, lastChild :: Refinement  link       = ":link"
src/Clay/Render.hs view
@@ -6,32 +6,32 @@ , render , putCss , renderWith- , renderSelector ) where -import Control.Applicative-import Control.Monad.Writer-import Data.Either-import Data.Foldable (foldMap)-import Data.List (sort)-import Data.Maybe-import Data.Text (Text, pack)-import Data.Text.Lazy.Builder-import Prelude hiding ((**))+import           Control.Applicative+import           Control.Monad.Writer+import           Data.Either+import           Data.Foldable          (foldMap)+import           Data.List              (sort)+import           Data.Maybe+import           Data.Text              (Text, pack)+import           Data.Text.Lazy.Builder+import           Prelude                hiding ((**)) -import qualified Data.Text         as Text-import qualified Data.Text.Lazy    as Lazy-import qualified Data.Text.Lazy.IO as Lazy+import qualified Data.Text              as Text+import qualified Data.Text.Lazy         as Lazy+import qualified Data.Text.Lazy.IO      as Lazy -import Clay.Stylesheet hiding (Child, query, rule)-import Clay.Common (browsers)-import Clay.Property-import Clay.Selector+import           Clay.Common            (browsers)+import           Clay.Property+import           Clay.Selector+import           Clay.Stylesheet        hiding (Child, query, rule) -import qualified Clay.Stylesheet as Rule+import qualified Clay.Stylesheet        as Rule + data Config = Config   { indentation    :: Builder   , newline        :: Builder@@ -264,16 +264,16 @@ predicate :: Predicate -> Builder predicate ft = mconcat $   case ft of-    Id           a   -> [ "#", fromText a                                             ]-    Class        a   -> [ ".", fromText a                                             ]-    Attr         a   -> [ "[", fromText a,                     "]"                    ]-    AttrVal      a v -> [ "[", fromText a,  "='", fromText v, "']"                    ]-    AttrBegins   a v -> [ "[", fromText a, "^='", fromText v, "']"                    ]-    AttrEnds     a v -> [ "[", fromText a, "$='", fromText v, "']"                    ]-    AttrContains a v -> [ "[", fromText a, "*='", fromText v, "']"                    ]-    AttrSpace    a v -> [ "[", fromText a, "~='", fromText v, "']"                    ]-    AttrHyph     a v -> [ "[", fromText a, "|='", fromText v, "']"                    ]-    Pseudo       a   -> [ ":", fromText a                                             ]-    PseudoFunc   a p -> [ ":", fromText a, "(", intersperse "," (map fromText p), ")" ]-+    Id           a   -> [ "#" , fromText a                                             ]+    Class        a   -> [ "." , fromText a                                             ]+    Attr         a   -> [ "[" , fromText a,                     "]"                    ]+    AttrVal      a v -> [ "[" , fromText a,  "='", fromText v, "']"                    ]+    AttrBegins   a v -> [ "[" , fromText a, "^='", fromText v, "']"                    ]+    AttrEnds     a v -> [ "[" , fromText a, "$='", fromText v, "']"                    ]+    AttrContains a v -> [ "[" , fromText a, "*='", fromText v, "']"                    ]+    AttrSpace    a v -> [ "[" , fromText a, "~='", fromText v, "']"                    ]+    AttrHyph     a v -> [ "[" , fromText a, "|='", fromText v, "']"                    ]+    Pseudo       a   -> [ ":" , fromText a                                             ]+    PseudoFunc   a p -> [ ":" , fromText a, "(", intersperse "," (map fromText p), ")" ]+    PseudoElem   a   -> [ "::", fromText a                                             ] 
src/Clay/Selector.hs view
@@ -5,6 +5,8 @@   , GeneralizedNewtypeDeriving   , StandaloneDeriving   , UndecidableInstances+  , ViewPatterns+  , PatternGuards   #-} module Clay.Selector where @@ -146,6 +148,7 @@   | AttrHyph     Text Text   | Pseudo       Text   | PseudoFunc   Text [Text]+  | PseudoElem   Text   deriving (Eq, Ord, Show)  newtype Refinement = Refinement { unFilter :: [Predicate] }@@ -159,7 +162,10 @@   case Text.uncons t of     Just ('#', s) -> [Id     s]     Just ('.', s) -> [Class  s]-    Just (':', s) -> [Pseudo s]+    Just (':', s)+      | Just (':',s') <- Text.uncons s+                  -> [PseudoElem s']+      | otherwise -> [Pseudo s]     Just ('@', s) -> [Attr   s]     _             -> [Attr   t] 
src/Clay/Size.hs view
@@ -12,15 +12,24 @@ , Abs , Rel , nil+, unitless  -- * Size constructors. +, cm+, mm+, inches , px , pt+, pc , em , ex , pct , rem+, vw+, vh+, vmin+, vmax  -- * Shorthands for properties that can be applied separately to each box side. @@ -33,11 +42,15 @@ , Angle , Deg , Rad+, Grad+, Turn  -- * Constructing angles.  , deg , rad+, grad+, turn  ) where@@ -60,41 +73,62 @@ newtype Size a = Size Value   deriving (Val, Auto, Normal, Inherit, None, Other) +-- | Zero size. nil :: Size a nil = Size "0" --- | Size in pixels.+-- | Unitless size (as recommended for line-height).+unitless :: Double -> Size a+unitless i = Size (value i) -px :: Integer -> Size Abs-px i = Size (value i <> "px")+cm, mm, inches, px, pt, pc :: Double -> Size Abs --- | Size in points.+-- | Size in centimeters.+cm i = Size (value i <> "cm") -pt :: Double -> Size Abs+-- | Size in millimeters.+mm i = Size (value i <> "mm")++-- | Size in inches (1in = 2.54 cm).+inches i = Size (value i <> "in")++-- | Size in pixels.+px i = Size (value i <> "px")++-- | Size in points (1pt = 1/72 of 1in). pt i = Size (value i <> "pt") --- | Size in em's.+-- | Size in picas (1pc = 12pt).+pc i = Size (value i <> "pc") -em :: Double -> Size Abs-em i = Size (value i <> "em")+em, ex, pct, rem, vw, vh, vmin, vmax :: Double -> Size Rel --- | Size in ex'es.+-- | Size in em's (computed value of the font-size).+em i = Size (value i <> "em") -ex :: Double -> Size Abs+-- | Size in ex'es (x-height of the first avaliable font). ex i = Size (value i <> "ex") --- | Size in percentages.--pct :: Double -> Size Rel+-- | Size in percents. pct i = Size (value i <> "%") --- | Size in rem's.--rem :: Double -> Size Rel+-- | Size in rem's (em's, but always relative to the root element). rem i = Size (value i <> "rem") +-- | Size in vw's (1vw = 1% of viewport width).+vw i = Size (value i <> "vw")++-- | Size in vh's (1vh = 1% of viewport height).+vh i = Size (value i <> "vh")++-- | Size in vmin's (the smaller of vw or vh).+vmin i = Size (value i <> "vmin")++-- | Size in vmax's (the larger of vw or vh).+vmax i = Size (value i <> "vmax")+ instance Num (Size Abs) where-  fromInteger = px+  fromInteger = px . fromInteger   (+)    = error   "plus not implemented for Size"   (*)    = error  "times not implemented for Size"   abs    = error    "abs not implemented for Size"@@ -102,7 +136,7 @@   negate = error "negate not implemented for Size"  instance Fractional (Size Abs) where-  fromRational = em . fromRational+  fromRational = px . fromRational   recip  = error  "recip not implemented for Size"  instance Num (Size Rel) where@@ -132,20 +166,28 @@  data Deg data Rad+data Grad+data Turn  newtype Angle a = Angle Value   deriving (Val, Auto, Inherit, Other)  -- | Angle in degrees.- deg :: Double -> Angle Deg deg i = Angle (value i <> "deg")  -- | Angle in radians.- rad :: Double -> Angle Rad rad i = Angle (value i <> "rad") +-- | Angle in gradians (also knows as gons or grades).+grad :: Double -> Angle Grad+grad i = Angle (value i <> "grad")++-- | Angle in turns.+turn :: Double -> Angle Turn+turn i = Angle (value i <> "turn")+ instance Num (Angle Deg) where   fromInteger = deg . fromInteger   (+)    = error   "plus not implemented for Angle"@@ -170,3 +212,26 @@   fromRational = rad . fromRational   recip  = error  "recip not implemented for Angle" +instance Num (Angle Grad) where+  fromInteger = grad . fromInteger+  (+)    = error   "plus not implemented for Angle"+  (*)    = error  "times not implemented for Angle"+  abs    = error    "abs not implemented for Angle"+  signum = error "signum not implemented for Angle"+  negate = error "negate not implemented for Angle"++instance Fractional (Angle Grad) where+  fromRational = grad . fromRational+  recip  = error  "recip not implemented for Angle"++instance Num (Angle Turn) where+  fromInteger = turn . fromInteger+  (+)    = error   "plus not implemented for Angle"+  (*)    = error  "times not implemented for Angle"+  abs    = error    "abs not implemented for Angle"+  signum = error "signum not implemented for Angle"+  negate = error "negate not implemented for Angle"++instance Fractional (Angle Turn) where+  fromRational = turn . fromRational+  recip  = error  "recip not implemented for Angle"
src/Clay/Stylesheet.hs view
@@ -1,4 +1,6 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE TypeSynonymInstances #-}+{-# LANGUAGE FlexibleInstances #-} module Clay.Stylesheet where  import Control.Applicative@@ -60,6 +62,10 @@ -- `StyleM` monad that just collects and doesn't return anything.  type Css = StyleM ()++instance Monoid Css where+  mempty = pure ()+  mappend = liftA2 mappend  -- | 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
src/Clay/Text.hs view
@@ -145,12 +145,12 @@ -------------------------------------------------------------------------------  newtype TextAlign = TextAlign Value-  deriving (Val, Normal, Inherit, Other)+  deriving (Val, Normal, Inherit, Other, Center)  justify, matchParent, start, end :: TextAlign  justify     = TextAlign "justify"-matchParent = TextAlign "matchParent"+matchParent = TextAlign "match-parent" start       = TextAlign "start" end         = TextAlign "end" 
− src/Test.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-module Main where--import Test.Framework (defaultMain)-import Test.Framework.Providers.HUnit (testCase)-import Test.HUnit.Base ((@?=))--import Clay.Render (renderWith, compact)--main :: IO ()-main = defaultMain-  [ testCase "empty Clay produces empty compact CSS" $ renderWith compact [] (return ()) @?= ""-  ]