mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 17:56:50 -06:00
The SVG import's style cascade tested every <style> rule against each element it was asked about. The import asks about the objects outside <defs> and the like when the file contains `display`, about each shape when the file contains `non-scaling-stroke`, and about each <text>, its spans and its ancestors. On a file with 2,000 class rules and 100,000 rectangles, `vectorcraft-cli info` took 3.54 s with one `display` attribute in the file and 2.03 s without it. The rules are now filed under the id of their selector's rightmost compound, else under its first class, else under its type. An element is tested against the rules filed under its id, its classes and its type, and the rules filed under none of these, in source order. It matches the same rules in the same order and gets the same properties. The file with the `display` attribute now takes 2.10 s. Docs: docs/target-app-parity.md.