Following up to my "no global variables" in LESS post, here I describe how theming (or rather, micro-theming) can work.
All too often, I see developers attempt to fit an entire site design into a single theme (a set of variables that control the color scheme of the entire site). This results in a ton of non-semantic variables. Instead, we should build small themes (micro-themes), that expose a common interface to all consumers. Micro-themes are composed to create your application.
Consider the new restaurant menu design: