Style sheets are a great alternative to inline component styles. CSS is wonderfully expressive as a language for finding and applying visual characteristics to elements.
Unfortunately, it also has drawbacks. The biggest drawback to CSS is that all styles are in global scope. Some styles are inherited, and styles applied to elements often collide (and cancel each other out).
In small doses, the collisions are avoidable or manageable. In large doses, these collisions can cripple productivity. As a stop-gap, CSS supports the !important
keyword. This often leads to ugly hacks, as everyone wants their styles to be the most important.
In addition to this, common values need to be repeated. Until recently, CSS didn't even support calculated values. If we wanted an element to have an absolute width (for example) in relation to other elements, we had to use JavaScript.
These are some of the problems Sass aims to solve. It's a CSS superset language (CSS + other features), so...