CSS is a nightmare. In Rails, Sass makes it more bearable, but class naming is always frustrating: you must pick a convention before your project starts and follow it religiously, or your CSS rules will soon find themselves being applied way too liberally. Even with strict conventions, reality soon outpaces theory and your CSS directory becomes a mess.
In Rails, the truly annoying bit is the contrast with partials: CSS is a mess, but partials are organized so nicely. Why not organize your CSS to line up with your partials?
No more excuses. Here is a solution, fully functional and documented: HTML Namespacing.
How? By using parallel directory structures. In your Rails framework, you can create a convention to tie the following files together automatically:
app/views/foos/_foo.html.haml: specifies the HTML
app/stylesheets/views/foos/_foo.sass: specifies the CSS
Give HTML namespacing a try. It is easy to integrate into existing projects, and it can save you headaches.