What the title says, pretty much. This is for a website with a formal tone.
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.
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