CSS styling with rust-selectors
We use an ad-hoc, very limited implementation of CSS parsing and cascading. Instead, we should refactor the code to be amenable to implementing the interfaces that rust-selectors requires. This is the crate that does CSS cascading in Servo.
Read that article and keep it in mind. Librsvg does not currently have the same code flow: we do cascading and rendering in a single, messy pass that walks up and down the tree several times. Ideally we would do well-separated passes like Servo; I think we can gradually refactor the code to achieve that.