Expand description
A simple CSS 2.1 parser and selector.
This is not a browser-grade CSS parser. If you need one, use cssparser + selectors.
Since itβs very simple we will start with limitations:
Β§Limitations
- At-rules are not supported. They will be skipped during parsing.
- Property values are not parsed.
In CSS like
* { width: 5px }
you will get awidth
property with a5px
value as a string. - CDO/CDC comments are not supported.
- Parser is case sensitive. All keywords must be lowercase.
- Unicode escape, like
\26
, is not supported.
Β§Features
- Selector matching support.
- The rules are sorted by specificity.
!important
parsing support.- Has a high-level parsers and low-level, zero-allocation tokenizers.
- No unsafe.
ModulesΒ§
StructsΒ§
- Declaration
- A declaration.
- Declaration
Tokenizer - A declaration tokenizer.
- Rule
- A rule.
- Selector
- A selector.
- Selector
Tokenizer - A selector tokenizer.
- Style
Sheet - A style sheet.
- TextPos
- A position in text.
EnumsΒ§
- Attribute
Operator - An attribute selector operator.
- Error
- A list of possible errors.
- Pseudo
Class - A pseudo-class.
- Selector
Token - A selector token.
TraitsΒ§
- Element
- A trait to query an element node metadata.
FunctionsΒ§
- consume_
at_ πrule - consume_
block π - consume_
declaration π - consume_
declarations π - consume_
rule_ πset - consume_
statement π - consume_
term π - consume_
until_ πblock_ end