3 unstable releases

0.2.1 Jul 20, 2021
0.2.0 Aug 17, 2019
0.1.0 Jan 14, 2017

#1192 in Parser implementations

Download history 15186/week @ 2023-12-12 13711/week @ 2023-12-19 10769/week @ 2023-12-26 17252/week @ 2024-01-02 17743/week @ 2024-01-09 23416/week @ 2024-01-16 24220/week @ 2024-01-23 24430/week @ 2024-01-30 25713/week @ 2024-02-06 25804/week @ 2024-02-13 28077/week @ 2024-02-20 22728/week @ 2024-02-27 23138/week @ 2024-03-05 25867/week @ 2024-03-12 26241/week @ 2024-03-19 22729/week @ 2024-03-26

101,449 downloads per month
Used in 284 crates (6 directly)

MIT/Apache

45KB
1K SLoC

simplecss

Build Status Crates.io Documentation Rust 1.37+

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 a width property with a 5px 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.
  • !import parsing support.
  • Has a high-level parsers and low-level, zero-allocation tokenizers.
  • No unsafe.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~87KB