Is it a good idea to have a popup menu on a website, where a user can change the overall colour scheme of a website, as in logo, fonts, background, everything? This would be in a web application, not a normal static website or a company portfolio.
Giving the user a choice between different designs in a webapplication is a nice-to-have, some users will probably welcome this option. However it does only make sense if your webapplication does not need these colors because of corporate identity.
For example, Outlook's online web access application give you the choice between different designs:
However, I advice against giving the user the ability the change every single color.
Conclusion: It's a nice-to-have. If you want to implement it, give them a choice between designs that look nice. Don't make it possible to adapt every little detail.
I'm going to go a little further here:
When to use it:
Personalization can be very valuable to engaging the users, but the decision of how much to enable for personalization and the measurement of the payoff on the investment requires more consideration
TL;DR: don't. It is already possible, but practically nobody does it, because practically nobody needs it. If you really want to support those who want eye candy, offer alternative themes created by yourself.
Windows had this option in 98 se. It probably has it still, but I haven't looked for it.
If you have seen quickly clicked together themes in (desktop) applications which support them, you will know why this is a bad idea. It is really hard to make a good theme. And it has a very limited usefulness.
People who just want to get some work done won't even care to change the colors. People who have the time to spare on a creative project might want to invest the time, but 1) do you have such users? and 2) what would their motivation be to spend effort on customizing your application? If it is something they use for hours every day, it might matter, but nobody is going to do this for a site they visit for an hour every two weeks.
If you want to make the site more fun with a different look, design a few themes yourself, and offer them for switching with a single click. This will make most of the "I don't want this drab blue which looks like all other applications out there" crowd happy. Of course, it means that you have to invest much more effort in design, as each element has to look good with each of the themes, and every design change has to be tested with all of them.
Assuming that you have a few hard-core determined users who absolutely need their own color scheme and are willing to spend lots of time and effort on creating it: you don't need to do this for them. The browser programmers already did. They only need to use a custom css for your site (I don't remember if this is a stock feature in browsers or needs an extension) and they can change everything they wish, from a simple change in text size up to a complete new design which you wouldn't recognize.
Yes it is really a good idea. Users will be happy to customize the web application according to their taste (especially non-technical users).
I would suggest you providing the user a set of nicely pre-designed templates in different colors to select. So that he would NEITHER have a tough time by changing each color to make it look like the one he likes nor end up messing the web application :)