Color shades should be declared upfront without resorting to the dynamic brightness modification functions. All shades are also exposed as looked-up colors.
Both light and dark variants. Needs further polishing, but still pretty usable.