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 +16/−11
- spec/Spec.hs +4/−0
- src/Clay.hs +3/−1
- src/Clay/Border.hs +7/−0
- src/Clay/Box.hs +5/−0
- src/Clay/Color.hs +110/−15
- src/Clay/Common.hs +35/−19
- src/Clay/Display.hs +4/−5
- src/Clay/Flexbox.hs +118/−0
- src/Clay/FontFace.hs +1/−1
- src/Clay/Media.hs +1/−1
- src/Clay/Property.hs +2/−2
- src/Clay/Pseudo.hs +10/−3
- src/Clay/Render.hs +30/−30
- src/Clay/Selector.hs +7/−1
- src/Clay/Size.hs +85/−20
- src/Clay/Stylesheet.hs +6/−0
- src/Clay/Text.hs +2/−2
- src/Test.hs +0/−13
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 ()) @?= ""- ]