For as long as I've been caring about the layout and content of the source files I use for any project, I've been prone to splitting the CSS for any web applications I do into two separate files, usually named something like Presentation.css and Layout.css.

The logic behind these names seemed clear enough in my head. Keep all the positioning statements in Layout.css and all the colouring and styling statements in Presentation.css.

Lately, I'm thinking of taking the pragmatic approach of separating my CSS by implementation. This would mean stuff like Base.css which would hold the site-wide CSS rules, Menu.css holding the menu rules, Tabs.css holding the page tab rules.

I think this kind of file layout will lessen the load on the server, as only the CSS relating to the specifically implemented features on a given page will be pulled down and cached. Also, if you want to fix the spacing on the tabs, you know where to go straight away.

Probably seems obvious in hindsight, but then again so does everything.