clay 0.9.0.1 → 0.10
raw patch · 5 files changed
+165/−15 lines, 5 filesdep ~basedep ~textPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, text
API changes (from Hackage documentation)
+ Clay.Display: baseline :: VerticalAlignValue Value
+ 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: crosshair :: CursorValue Value
+ Clay.Display: cursor :: Cursor a => a -> Css
+ Clay.Display: cursorDefault :: CursorValue Value
+ Clay.Display: cursorProgress :: CursorValue Value
+ Clay.Display: cursorText :: CursorValue Value
+ Clay.Display: cursorUrl :: Text -> CursorValue Value
+ Clay.Display: eResize :: CursorValue Value
+ Clay.Display: help :: CursorValue Value
+ Clay.Display: instance Auto (CursorValue a)
+ Clay.Display: instance Cursor (CursorValue a)
+ Clay.Display: instance Inherit (CursorValue a)
+ Clay.Display: instance Val (CursorValue a)
+ Clay.Display: instance Val (VerticalAlignValue a)
+ Clay.Display: instance VerticalAlign (Size a)
+ Clay.Display: instance VerticalAlign (VerticalAlignValue a)
+ Clay.Display: middle :: VerticalAlignValue Value
+ Clay.Display: move :: CursorValue Value
+ Clay.Display: nResize :: CursorValue Value
+ Clay.Display: neResize :: CursorValue Value
+ Clay.Display: nwResize :: CursorValue Value
+ Clay.Display: pointer :: CursorValue Value
+ Clay.Display: sResize :: CursorValue Value
+ Clay.Display: seResize :: CursorValue Value
+ Clay.Display: swResize :: CursorValue Value
+ Clay.Display: textBottom :: VerticalAlignValue Value
+ Clay.Display: textTop :: VerticalAlignValue Value
+ Clay.Display: vAlignBottom :: VerticalAlignValue Value
+ Clay.Display: vAlignSub :: VerticalAlignValue Value
+ Clay.Display: vAlignTop :: VerticalAlignValue Value
+ Clay.Display: verticalAlign :: VerticalAlign a => a -> Css
+ Clay.Display: wResize :: CursorValue Value
+ Clay.Display: wait :: CursorValue Value
+ Clay.List: armenian :: ListStyleType
+ Clay.List: circleListStyle :: ListStyleType
+ Clay.List: cjkIdeographic :: ListStyleType
+ Clay.List: data ListStyleImage
+ Clay.List: data ListStylePosition
+ Clay.List: decimalLeadingZero :: ListStyleType
+ Clay.List: georgian :: ListStyleType
+ Clay.List: hebrew :: ListStyleType
+ Clay.List: hiraganaIroha :: ListStyleType
+ Clay.List: imageUrl :: Text -> ListStyleImage
+ Clay.List: inside :: ListStylePosition
+ Clay.List: instance Inherit ListStyleImage
+ Clay.List: instance Inherit ListStylePosition
+ Clay.List: instance Initial ListStyleImage
+ Clay.List: instance Initial ListStylePosition
+ Clay.List: instance None ListStyleImage
+ Clay.List: instance None ListStylePosition
+ Clay.List: instance Other ListStyleImage
+ Clay.List: instance Other ListStylePosition
+ Clay.List: instance Val ListStyleImage
+ Clay.List: instance Val ListStylePosition
+ Clay.List: katakana :: ListStyleType
+ Clay.List: katakanaIroha :: ListStyleType
+ Clay.List: listStyle :: ListStyleType -> ListStylePosition -> ListStyleImage -> Css
+ Clay.List: listStyleImage :: ListStyleImage -> Css
+ Clay.List: listStylePosition :: ListStylePosition -> Css
+ Clay.List: lowerAlpha :: ListStyleType
+ Clay.List: lowerGreek :: ListStyleType
+ Clay.List: lowerLatin :: ListStyleType
+ Clay.List: lowerRoman :: ListStyleType
+ Clay.List: outside :: ListStylePosition
+ Clay.List: square :: ListStyleType
+ Clay.List: upperAlpha :: ListStyleType
+ Clay.List: upperLatin :: ListStyleType
+ Clay.List: upperRoman :: ListStyleType
+ Clay.Size: rem :: Double -> Size Rel
- Clay.Geometry: bottom :: Size Abs -> Css
+ Clay.Geometry: bottom :: Size a -> Css
- Clay.Geometry: left :: Size Abs -> Css
+ Clay.Geometry: left :: Size a -> Css
- Clay.Geometry: margin :: Size Abs -> Size Abs -> Size Abs -> Size Abs -> Css
+ Clay.Geometry: margin :: Size a -> Size a -> Size a -> Size a -> Css
- Clay.Geometry: marginBottom :: Size Abs -> Css
+ Clay.Geometry: marginBottom :: Size a -> Css
- Clay.Geometry: marginLeft :: Size Abs -> Css
+ Clay.Geometry: marginLeft :: Size a -> Css
- Clay.Geometry: marginRight :: Size Abs -> Css
+ Clay.Geometry: marginRight :: Size a -> Css
- Clay.Geometry: marginTop :: Size Abs -> Css
+ Clay.Geometry: marginTop :: Size a -> Css
- Clay.Geometry: padding :: Size Abs -> Size Abs -> Size Abs -> Size Abs -> Css
+ Clay.Geometry: padding :: Size a -> Size a -> Size a -> Size a -> Css
- Clay.Geometry: paddingBottom :: Size Abs -> Css
+ Clay.Geometry: paddingBottom :: Size a -> Css
- Clay.Geometry: paddingLeft :: Size Abs -> Css
+ Clay.Geometry: paddingLeft :: Size a -> Css
- Clay.Geometry: paddingRight :: Size Abs -> Css
+ Clay.Geometry: paddingRight :: Size a -> Css
- Clay.Geometry: paddingTop :: Size Abs -> Css
+ Clay.Geometry: paddingTop :: Size a -> Css
- Clay.Geometry: right :: Size Abs -> Css
+ Clay.Geometry: right :: Size a -> Css
- Clay.Geometry: size :: Size Abs -> Css
+ Clay.Geometry: size :: Size a -> Css
- Clay.Geometry: top :: Size Abs -> Css
+ Clay.Geometry: top :: Size a -> Css
Files
- clay.cabal +11/−5
- src/Clay/Display.hs +64/−0
- src/Clay/Geometry.hs +5/−5
- src/Clay/List.hs +77/−4
- src/Clay/Size.hs +8/−1
clay.cabal view
@@ -1,5 +1,5 @@ Name: clay-Version: 0.9.0.1+Version: 0.10 Synopsis: CSS preprocessor as embedded Haskell. Description: Clay is a CSS preprocessor like LESS and Sass, but implemented as an embedded@@ -11,8 +11,14 @@ . The API documentation can be found in the top level module "Clay". .- > 0.9 -> 0.9.0.1- > - Fixed bug in easing properties.+ > 0.9 -> 0.10+ > - Bumped up text requirement.+ > - Added cursor property.+ > - Added vertical-align property.+ > - Removed Abs constraint from Geometry functions.+ > - Added support for rem dimensions.+ > - Added support for ListStyle.+ > Thanks to Lorenzo Bolla, Fraser Murray, Heather and Sergey! Author: Sebastiaan Visser Maintainer: Sebastiaan Visser <code@fvisser.nl>@@ -67,7 +73,7 @@ Build-Depends: base >= 4 && < 5, mtl >= 1 && < 2.3,- text >= 0.11 && < 1.2+ text >= 0.11 && < 1.3 Test-Suite Test-Clay Type: exitcode-stdio-1.0@@ -76,7 +82,7 @@ Build-Depends: base >= 4 && < 5, mtl >= 1 && < 2.3,- text >= 0.11 && < 1.2,+ text >= 0.11 && < 1.3, HUnit >= 1.2 && < 1.3, test-framework >= 0.8 && < 0.9, test-framework-hunit >= 0.3 && < 0.4
src/Clay/Display.hs view
@@ -61,6 +61,16 @@ , visiblePainted, visibleFill, visibleStroke, painted , fillEvents, strokeEvents, allEvents +-- * Vertical align.++, VerticalAlign(..)+, baseline, middle, vAlignSub, textTop, textBottom, vAlignTop, vAlignBottom++-- * Cursor++, Cursor(..)+, crosshair, cursorDefault, pointer, move, eResize, neResize, nwResize, nResize, seResize, swResize, sResize, wResize, cursorText, wait, cursorProgress, help, cursorUrl+ ) where @@ -71,6 +81,7 @@ import Clay.Property import Clay.Stylesheet import Clay.Common+import Data.Text (Text) ------------------------------------------------------------------------------- @@ -211,3 +222,56 @@ pointerEvents :: PointerEvents -> Css pointerEvents = key "pointer-events"++-------------------------------------------------------------------------------++class (Val a) => VerticalAlign a where+ verticalAlign :: a -> Css+ verticalAlign = key "vertical-align"++newtype VerticalAlignValue a = VerticalAlignValue Value deriving (Val)++instance VerticalAlign (VerticalAlignValue a)+instance VerticalAlign (Size a)++baseline,middle,vAlignSub,textTop,textBottom,vAlignTop,vAlignBottom :: VerticalAlignValue Value++baseline = VerticalAlignValue "baseline"+middle = VerticalAlignValue "middle"+vAlignSub = VerticalAlignValue "sub"+textTop = VerticalAlignValue "text-top"+textBottom = VerticalAlignValue "text-bottom"+vAlignTop = VerticalAlignValue "top"+vAlignBottom = VerticalAlignValue "bottom"++------------------------------------------------------------------------------- ++class (Val a) => Cursor a where+ cursor :: a -> Css+ cursor = key "cursor"++newtype CursorValue a = CursorValue Value deriving (Val,Inherit,Auto)++instance Cursor (CursorValue a)++crosshair,cursorDefault,pointer,move,eResize,neResize,nwResize,nResize,seResize,swResize,sResize,wResize,cursorText,wait,cursorProgress,help :: CursorValue Value+ +crosshair = CursorValue "crosshair"+cursorDefault = CursorValue "cursorDefault"+pointer = CursorValue "pointer"+move = CursorValue "move"+eResize = CursorValue "e-resize"+neResize = CursorValue "ne-resize"+nwResize = CursorValue "nw-resize"+nResize = CursorValue "n-resize"+seResize = CursorValue "se-resize"+swResize = CursorValue "sw-resize"+sResize = CursorValue "sResize"+wResize = CursorValue "sResize"+cursorText = CursorValue "text"+wait = CursorValue "wait"+cursorProgress = CursorValue "progress"+help = CursorValue "help"++cursorUrl :: Text -> CursorValue Value+cursorUrl u = CursorValue $ value ("url(\"" <> u <> "\")")
src/Clay/Geometry.hs view
@@ -23,7 +23,7 @@ ------------------------------------------------------------------------------- -size, top, left, bottom, right :: Size Abs -> Css+size, top, left, bottom, right :: Size a -> Css size = key "size" top = key "top"@@ -42,10 +42,10 @@ ------------------------------------------------------------------------------- -padding :: Size Abs -> Size Abs -> Size Abs -> Size Abs -> Css+padding :: Size a -> Size a -> Size a -> Size a -> Css padding a b c d = key "padding" (a ! b ! c ! d) -paddingTop, paddingLeft, paddingRight, paddingBottom :: Size Abs -> Css+paddingTop, paddingLeft, paddingRight, paddingBottom :: Size a -> Css paddingTop = key "padding-top" paddingLeft = key "padding-left"@@ -54,10 +54,10 @@ ------------------------------------------------------------------------------- -margin :: Size Abs -> Size Abs -> Size Abs -> Size Abs -> Css+margin :: Size a -> Size a -> Size a -> Size a -> Css margin a b c d = key "margin" (a ! b ! c ! d) -marginTop, marginLeft, marginRight, marginBottom :: Size Abs -> Css+marginTop, marginLeft, marginRight, marginBottom :: Size a -> Css marginTop = key "margin-top" marginLeft = key "margin-left"
src/Clay/List.hs view
@@ -3,11 +3,42 @@ ( ListStyleType , listStyleType , disc+, armenian+, circleListStyle+, cjkIdeographic , decimal+, decimalLeadingZero+, georgian+, hebrew , hiragana+, hiraganaIroha+, katakana+, katakanaIroha+, lowerAlpha+, lowerGreek+, lowerLatin+, lowerRoman+, square+, upperAlpha+, upperLatin+, upperRoman++, ListStylePosition+, listStylePosition+, inside+, outside++, ListStyleImage+, listStyleImage+, imageUrl++, listStyle ) where +import Data.Monoid+import Data.Text (Text)+ import Clay.Common import Clay.Property import Clay.Stylesheet@@ -15,11 +46,53 @@ newtype ListStyleType = ListStyleType Value deriving (Val, Initial, Inherit, None, Other) -disc, decimal, hiragana :: ListStyleType+disc, armenian, circleListStyle, cjkIdeographic, decimal, decimalLeadingZero, georgian+ , hebrew, hiragana, hiraganaIroha, katakana, katakanaIroha, lowerAlpha+ , lowerGreek, lowerLatin, lowerRoman, square, upperAlpha, upperLatin, upperRoman :: ListStyleType -disc = ListStyleType "disc"-decimal = ListStyleType "decimal"-hiragana = ListStyleType "hiragana"+disc = ListStyleType "disc"+armenian = ListStyleType "armenian"+circleListStyle = ListStyleType "circle"+cjkIdeographic = ListStyleType "cjk-ideographic"+decimal = ListStyleType "decimal"+decimalLeadingZero = ListStyleType "decimal-leading-zero"+georgian = ListStyleType "georgian"+hebrew = ListStyleType "hebrew"+hiragana = ListStyleType "hiragana"+hiraganaIroha = ListStyleType "hiragana-iroha"+katakana = ListStyleType "katakana"+katakanaIroha = ListStyleType "katakana-iroha"+lowerAlpha = ListStyleType "lower-alpha"+lowerGreek = ListStyleType "lower-greek"+lowerLatin = ListStyleType "lower-latin"+lowerRoman = ListStyleType "lower-roman"+square = ListStyleType "square"+upperAlpha = ListStyleType "upper-alpha"+upperLatin = ListStyleType "upper-latin"+upperRoman = ListStyleType "upper-roman" listStyleType :: ListStyleType -> Css listStyleType = key "list-style-type"++newtype ListStylePosition = ListStylePosition Value+ deriving (Val, Initial, Inherit, None, Other)++inside, outside :: ListStylePosition++inside = ListStylePosition "inside"+outside = ListStylePosition "outside"++listStylePosition :: ListStylePosition -> Css+listStylePosition = key "list-style-position"++newtype ListStyleImage = ListStyleImage Value+ deriving (Val, Initial, Inherit, None, Other)++listStyleImage :: ListStyleImage -> Css+listStyleImage = key "list-style-image"++imageUrl :: Text -> ListStyleImage+imageUrl u = ListStyleImage ("url(" <> value (Literal u) <> ")")++listStyle :: ListStyleType -> ListStylePosition -> ListStyleImage -> Css+listStyle a b c = key "list-style" (a ! b ! c)
src/Clay/Size.hs view
@@ -20,6 +20,7 @@ , em , ex , pct+, rem -- * Shorthands for properties that can be applied separately to each box side. @@ -42,6 +43,7 @@ where import Data.Monoid+import Prelude hiding (rem) import Clay.Common import Clay.Property@@ -49,7 +51,7 @@ ------------------------------------------------------------------------------- --- | Sizes can be relative like percentages.+-- | Sizes can be relative like percentages or rems. data Rel -- | Sizes can be absolute like pixels, points, etc.@@ -85,6 +87,11 @@ pct :: Double -> Size Rel pct i = Size (value i <> "%")++-- | Size in rem's.++rem :: Double -> Size Rel+rem i = Size (value i <> "rem") instance Num (Size Abs) where fromInteger = px