janky but works, and should report if theres a situation its not ready to handle.
instead of adding dark: variants to each element, a preprocessor script adds them. still needs to be implemented to typescript.