The way to do this is to use plone.app.theming. If you need to integrate Plone with other back-end servers, legacy systems, or any webservice, you can use Diazo to all combine it in a unified look & feel.
An older (Plone 4.2) quick guide which may help to understand Diazo better:
Using Diazo is also possible as a standalone service.
Normally the Diazo theme transformation is running inside the Plone process. You can compile the Diazo rules to low level XSLT and let a webserver do the actual transformation, or run the Diazo transformations in a WSGI enabled service.
General information CSS and other resources in Plone:
Up to version 4.1, Plone was using an older style of theming. Using that is not considered best practice anymore.
See older versions of these docs if you need the information.