# TodoMVC embedded in a complex static UI shell The complex DOM workloads embed the different TodoMVC implementations in a static UI shell that mimics a complex web page or application. This UI shell is made up of a large DOM and complex CSS. The purpose is to capture the performance impact on executing seemingly isolated actions (e.g. adding/deleting todo items) in the context of a complex website. CSS complexity is represented by rules composed by complex selectors and combinators. These CSS rules are further split into **matching** and **non-matching** rules. The matching selectors fully match an element added by the TodoMVC benchmark, but not elements in the UI shell. The non-matching selectors partially match elements added by the TodoMVC benchmark (at least the right most selectors do), but entirely match the elements in the UI shell. This ensures that the performance impact of both the matching and non-matching CSS rules is captured within the measured time. ## Complex DOM workload description The static UI shell has the following characteristics: - The DOM has around 6000 elements. - The static UI shell is styled using the @spectrum-css Adobe library, which relies on css variables for uniform styling. - The @spectrum-css rules of the static UI shell are post processed using postcss and purgecss. - Additional styling is applied through ~50 non-matching CSS rules. - E.g. `.backlog-group li > div > :checked ~ label`. All TodoMVC implementations now have a `show-priority` class name in the `