The approach that I've used is components style themselves, components that contain other components know how to alter the child components, page layouts/templates can alter components, and each individual page can modify from there. I still consider that modular. The only way a component is impacted is when a parent component explicitly alters it.
In your example the articles would have a standard styling and the main/sidebar would alter the styling as needed.