| Safe Haskell | None |
|---|
Graphics.Svg.CssTypes
Description
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.
Constructors
| Nearby | Correspond to the |
| DirectChildren | Correspond to the |
| AllOf [CssDescriptor] | Grouping construct, all the elements of the list must be matched. |
Instances
| 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.
Constructors
| CssRule | |
Fields
| |
data CssDescriptor Source
Describe an element of a CSS selector. Multiple elements can be combined in a CssSelector type.
Constructors
| OfClass Text | .IDENT |
| OfName Text | IDENT |
| OfId Text | #IDENT |
| OfPseudoClass Text | `:IDENT` (ignore function syntax) |
| AnyElem |
|
| WithAttrib Text Text | `` |
Instances
| Eq CssDescriptor | |
| Show CssDescriptor |
data CssDeclaration Source
Represent the content to apply to some CSS matched rules.
Constructors
| CssDeclaration | |
Fields
| |
Instances
| Eq CssDeclaration | |
| Show CssDeclaration |
data CssElement Source
Value of a CSS property.
Constructors
| CssIdent !Text | |
| CssString !Text | |
| CssReference !Text | |
| CssNumber !Number | |
| CssColor !PixelRGBA8 | |
| CssFunction !Text ![CssElement] | |
| CssOpComa | |
| CssOpSlash |
Instances
| Eq CssElement | |
| Show CssElement |
class CssMatcheable a whereSource
Interface for elements to be matched against some CssRule.
Methods
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
Instances
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.
Constructors
| 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.