After many years doing CSS my best workflow has come to this:
reset.css //for resetting browsers
grid.css //if I'm using a css framework
global.css //styles that are shared across the site
section.css //styles that pertain a specific section. The name of the file varies, i.e. "about.css".
You need a good code editor that allows you to open files without tabbing or reaching for the mouse, I use Textmate's Command T to switch fast among my files.
reset.css There's a bunch around, I use the one from htmlboilerplate.com, but there's many good ones available. (Eric Meyer's). You will almost never touch this file.
grid.css I only use this occasionally, when I'm working on sites where the grid is very clear and I take out all the stuff I'm not going to use. I usually go for a three col version of 960.gs and trim it to about 12 lines of css. Never touch this.
global.css Here you put your nav, your footer, you body styles, etc. I think that separating by colors and typography doesn't make sense, because you usually change a widget's appearance.
section.css I count on the body tag having a classname, so I can have body class="about" and then do...
.about section.photo {...}
This way you never override your styles accidentally.
Miscellaneous I avoid the one declaration per line convention when I have similar styles and I want to be able to read them in a table format, i.e.
I usually start from the most generic to the more specific, but I don't worry too much about code order because in the end I just do a search and reach it in no time.
reset.css There's a bunch around, I use the one from htmlboilerplate.com, but there's many good ones available. (Eric Meyer's). You will almost never touch this file.
grid.css I only use this occasionally, when I'm working on sites where the grid is very clear and I take out all the stuff I'm not going to use. I usually go for a three col version of 960.gs and trim it to about 12 lines of css. Never touch this.
global.css Here you put your nav, your footer, you body styles, etc. I think that separating by colors and typography doesn't make sense, because you usually change a widget's appearance.
section.css I count on the body tag having a classname, so I can have body class="about" and then do...
This way you never override your styles accidentally.Miscellaneous I avoid the one declaration per line convention when I have similar styles and I want to be able to read them in a table format, i.e.
I usually start from the most generic to the more specific, but I don't worry too much about code order because in the end I just do a search and reach it in no time.