csskit

Contributing

If you're interested in working on csskit, then this is the right jumping off point.

What is csskit written in?

csskit is written in Rust, a systems programming language. It's a little trickier than JavaScript but it is a lot more powerful due to the ability to more tightly control how memory is used.

csskit is broken into a set of modules, each doing it's own thing.

  • css_lexer is the foundational "lexer" crate which takes a set the raw character data from a css sheet and turns them into "tokens".
  • css_parse builds on top of css_lexer to provide a library for parsing CSS-alike languages (CSS, SCSS, and so on).
  • css_ast builds on top of css_parse to provide all of the structured types in the CSS language such as StyleValues, Selectors, PseudoClasses and so on.
  • csskit_lsp provides the functionality for the LSP server, for IDE integration.
  • csskit_higlight is a library to provide syntax highlighting for languages supported by csskit.
  • css_feature_data is a library which generates Rust data structures from the web-features database, powering the "Baseline" & browser support data.

There are many other utility modules, so explore the documentation to get a feel for the project. This contribution section will be expanded over time.