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.
As long as "theme" and "skin" refer to technical concepts, it's necessary to be careful not to invent yet another fancy translation instead of using the one that is commonly used in the technical environment.
Regarding "skin", I would translate it neither as "piel" (weird) nor as "apariencia" (understandable, but not technically specific). As a matter of fact, the Spanish Wikipedia article is "skin". Again, both entries point to each other.
However, both Spanish articles start with:
And their content is almost the same. On the other hand, the English versions are quite different, but they don't explain or make it easy to understand the difference between both concepts, as illustrated by this StackOverflow discussion.
So, if I had to translate either concept I would consider the following:
When the specific website has a single mechanism to control its aspect and you can refer to it either as "theme" or "skin" in English, I would use "tema" in Spanish.
When the website has two different mechanisms to control its aspect (named "theme" and "skin" in English), I would translate them as "tema" and "skin" respectively.