The easiest way to do this is to use "plone.app.theming". But 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.
- Plone 5 Resource Registry
- Barceloneta theme
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. But 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. If you want this advanced stand alone set up, please take a look at documentation on www.diazo.org, especially the Compilation and Deployment chapters.
General information on the stylesheets 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.