Safe Haskell | None |
---|
Define the types used to describes CSS elements
- data CssSelector
- = Nearby
- | DirectChildren
- | AllOf [CssDescriptor]
- type CssSelectorRule = [CssSelector]
- data CssRule = CssRule {}
- data CssDescriptor
- data CssDeclaration = CssDeclaration {}
- data CssElement
- = CssIdent !Text
- | CssString !Text
- | CssReference !Text
- | CssNumber !Number
- | CssColor !PixelRGBA8
- | CssFunction !Text ![CssElement]
- | CssOpComa
- | CssOpSlash
- class CssMatcheable a where
- cssIdOf :: a -> Maybe Text
- cssClassOf :: a -> [Text]
- cssNameOf :: a -> Text
- cssAttribOf :: a -> Text -> Maybe Text
- type CssContext a = [[a]]
- type Dpi = Int
- data Number
- serializeNumber :: Number -> String
- findMatchingDeclarations :: CssMatcheable a => [CssRule] -> CssContext a -> [CssDeclaration]
- toUserUnit :: Dpi -> Number -> Number
- mapNumber :: (Float -> Float) -> Number -> Number
- tserialize :: TextBuildable a => a -> Builder
Documentation
data CssSelector Source
Define complex selector.
Nearby | Correspond to the |
DirectChildren | Correspond to the |
AllOf [CssDescriptor] | Grouping construct, all the elements of the list must be matched. |
Eq CssSelector | |
Show CssSelector |
type CssSelectorRule = [CssSelector]Source
A CssSelectorRule is a list of all the elements that must be meet in a depth first search fashion.
Represent a CSS selector and the different declarations to apply to the matched elemens.
CssRule | |
|
data CssDescriptor Source
Describe an element of a CSS selector. Multiple elements can be combined in a CssSelector type.
OfClass Text | .IDENT |
OfName Text | IDENT |
OfId Text | #IDENT |
OfPseudoClass Text | `:IDENT` (ignore function syntax) |
AnyElem |
|
WithAttrib Text Text | `` |
Eq CssDescriptor | |
Show CssDescriptor |
data CssDeclaration Source
Represent the content to apply to some CSS matched rules.
CssDeclaration | |
|
Eq CssDeclaration | |
Show CssDeclaration |
data CssElement Source
Value of a CSS property.
CssIdent !Text | |
CssString !Text | |
CssReference !Text | |
CssNumber !Number | |
CssColor !PixelRGBA8 | |
CssFunction !Text ![CssElement] | |
CssOpComa | |
CssOpSlash |
Eq CssElement | |
Show CssElement |
class CssMatcheable a whereSource
Interface for elements to be matched against some CssRule.
cssIdOf :: a -> Maybe TextSource
For an element, tell its optional ID attribute.
cssClassOf :: a -> [Text]Source
For an element, return all of it's class attributes.
Return the name of the tagname of the element
cssAttribOf :: a -> Text -> Maybe TextSource
Return a value of a given attribute if present
type CssContext a = [[a]]Source
Represent a zipper in depth at the first list level, and the previous nodes at in the second list level.
Alias describing a dot per inch information used for size calculation (see toUserUnit).
Encode complex number possibly dependant to the current render size.
Num Float | Simple coordinate in current user coordinate. |
Px Float | With suffix px |
Em Float | Number relative to the current font size. |
Percent Float | Number relative to the current viewport size. |
Pc Float | |
Mm Float | Number in millimeters, relative to DPI. |
Cm Float | Number in centimeters, relative to DPI. |
Point Float | Number in points, relative to DPI. |
Inches Float | Number in inches, relative to DPI. |
serializeNumber :: Number -> StringSource
Encode the number to string which can be used in a CSS or a svg attributes.
findMatchingDeclarations :: CssMatcheable a => [CssRule] -> CssContext a -> [CssDeclaration]Source
Given CSS rules, find all the declaration to apply to the element in a given context.
toUserUnit :: Dpi -> Number -> NumberSource
This function replace all device dependant units to user units given it's DPI configuration. Preserve percentage and em notation.
mapNumber :: (Float -> Float) -> Number -> NumberSource
Helper function to modify inner value of a number
tserialize :: TextBuildable a => a -> BuilderSource
Serialize an element to a text builder.