stylist-2.7.0.1: Apply CSS styles to a document tree.
Safe HaskellNone
LanguageHaskell2010

Data.CSS.Style

Description

Queries computed styles out of a specially-parsed CSS stylesheet. See in particular QueryableStyleSheet, queryRules, & cascade`.

Synopsis

Documentation

type QueryableStyleSheet parser = QueryableStyleSheet' (ImportanceSplitter (PropertyExpander parser (OrderedRuleStore (WhereLowerer (InterpretedRuleStore StyleIndex))))) parser Source #

A parsed CSS stylesheet from which you can query styles to match an element.

data QueryableStyleSheet' store parser Source #

More generic version of QueryableStyleSheet.

Constructors

QueryableStyleSheet' 

Fields

  • store :: store

    Internal datastructure for efficient style lookup.

  • parser :: parser

    The PropertyParser to use for property syntax validation.

  • priorities :: [Int]

    Whether author, useragent, or user styles are currently being parsed. The tail of this list indicates which Cascade Layer is active.

  • layers :: Tree

    Parse data for @layer, to give webdevs explicit control over the cascade.

  • layerNamespace :: [Text]
     

Instances

Instances details
(RuleStore s, PropertyParser p) => StyleSheet (QueryableStyleSheet' s p) Source # 
Instance details

Defined in Data.CSS.Style

queryableStyleSheet :: PropertyParser p => QueryableStyleSheet p Source #

Constructs an empty QueryableStyleSheet'.

queryRules :: (PropertyParser p, RuleStore s) => QueryableStyleSheet' s p -> Element -> HashMap Text [StyleRule'] Source #

Looks up style rules matching the specified element, grouped by psuedoelement.

class PropertyParser a where #

Minimal complete definition

temp, longhand

Methods

temp :: a #

inherit :: a -> a #

priority :: a -> [Text] #

shorthand :: a -> Text -> [Token] -> [(Text, [Token])] #

longhand :: a -> a -> Text -> [Token] -> Maybe a #

getVars :: a -> Props #

setVars :: Props -> a -> a #

pseudoEl :: a -> Text -> (a -> Maybe a -> a) -> a #

Instances

Instances details
PropertyParser TrivialPropertyParser 
Instance details

Defined in Stylist

Methods

temp :: TrivialPropertyParser #

inherit :: TrivialPropertyParser -> TrivialPropertyParser #

priority :: TrivialPropertyParser -> [Text] #

shorthand :: TrivialPropertyParser -> Text -> [Token] -> [(Text, [Token])] #

longhand :: TrivialPropertyParser -> TrivialPropertyParser -> Text -> [Token] -> Maybe TrivialPropertyParser #

getVars :: TrivialPropertyParser -> Props #

setVars :: Props -> TrivialPropertyParser -> TrivialPropertyParser #

pseudoEl :: TrivialPropertyParser -> Text -> (TrivialPropertyParser -> Maybe TrivialPropertyParser -> TrivialPropertyParser) -> TrivialPropertyParser #

PropertyParser TrivialPropertyParser Source # 
Instance details

Defined in Data.CSS.Style.Cascade

PropertyParser p => PropertyParser (VarParser p) Source # 
Instance details

Defined in Data.CSS.Style

Methods

temp :: VarParser p #

inherit :: VarParser p -> VarParser p #

priority :: VarParser p -> [Text] #

shorthand :: VarParser p -> Text -> [Token] -> [(Text, [Token])] #

longhand :: VarParser p -> VarParser p -> Text -> [Token] -> Maybe (VarParser p) #

getVars :: VarParser p -> Props #

setVars :: Props -> VarParser p -> VarParser p #

pseudoEl :: VarParser p -> Text -> (VarParser p -> Maybe (VarParser p) -> VarParser p) -> VarParser p #

PropertyParser p => PropertyParser (TextStyle p) Source # 
Instance details

Defined in Data.CSS.Preprocessor.Text

Methods

temp :: TextStyle p #

inherit :: TextStyle p -> TextStyle p #

priority :: TextStyle p -> [Text] #

shorthand :: TextStyle p -> Text -> [Token] -> [(Text, [Token])] #

longhand :: TextStyle p -> TextStyle p -> Text -> [Token] -> Maybe (TextStyle p) #

getVars :: TextStyle p -> Props #

setVars :: Props -> TextStyle p -> TextStyle p #

pseudoEl :: TextStyle p -> Text -> (TextStyle p -> Maybe (TextStyle p) -> TextStyle p) -> TextStyle p #

cascade :: PropertyParser p => QueryableStyleSheet p -> Element -> Props -> p -> p Source #

Facade over queryRules & cascade`. Instead of exposing pseudoelements to callers it exposes pseudoelements to the PropertyParser implementation.

cascade' :: PropertyParser p => [StyleRule'] -> Props -> p -> p Source #

Selects used property values from the given style rules, & populates into a new PropertyParser inheriting from the one given.

data VarParser a Source #

PropertyParser that lowers var() calls before forwarding to another.

Constructors

VarParser 

Fields

Instances

Instances details
PropertyParser p => PropertyParser (VarParser p) Source # 
Instance details

Defined in Data.CSS.Style

Methods

temp :: VarParser p #

inherit :: VarParser p -> VarParser p #

priority :: VarParser p -> [Text] #

shorthand :: VarParser p -> Text -> [Token] -> [(Text, [Token])] #

longhand :: VarParser p -> VarParser p -> Text -> [Token] -> Maybe (VarParser p) #

getVars :: VarParser p -> Props #

setVars :: Props -> VarParser p -> VarParser p #

pseudoEl :: VarParser p -> Text -> (VarParser p -> Maybe (VarParser p) -> VarParser p) -> VarParser p #

data Element #

Constructors

ElementNode 

Fields

data Attribute #

Constructors

Attribute Text Text String 

Instances

Instances details
Eq Attribute 
Instance details

Defined in Stylist

Methods

(==) :: Attribute -> Attribute -> Bool

(/=) :: Attribute -> Attribute -> Bool

Ord Attribute 
Instance details

Defined in Stylist

Methods

compare :: Attribute -> Attribute -> Ordering

(<) :: Attribute -> Attribute -> Bool

(<=) :: Attribute -> Attribute -> Bool

(>) :: Attribute -> Attribute -> Bool

(>=) :: Attribute -> Attribute -> Bool

max :: Attribute -> Attribute -> Attribute

min :: Attribute -> Attribute -> Attribute