What the title says, pretty much. This is for a website with a formal tone.
For an informal tone you could very well get away with just using 'skin' (without translating it).
Since you want a formal tone you could use
For "theme" what is used is:
You can see the use of the word "tema" in iGoogle.
For "skin" you can use "apariencia" as suggested by Laura.