Master Pages vs. Themes: Which Do You Choose?

Over the last few months I have heard a lot of confusion and question about if a site should use a master page or a theme.  In this post I am going to go through some basic pros and cons and information to help you make a better decision as to how to brand your SharePoint 2007 site.

If you need more info about either master pages or themes, check out these posts:

What is a Master Page (and component information for both master pages and page layouts)

About Themes (note this refers to WSS v2, but is still applicable for WSS v3)

The first thing I recommend is to assess your design needs.  Set aside terminology and SharePoint features and don’t worry about how to execute the site branding, but identify what you need to change from the default SharePoint look and feel. Here are some questions to ask:

  1. Do you need to change the colors used?  For example change the blue palette to another color palette?  Often you need to incorporate corporate colors, product color schemes or colors that better reflect a mood/emotion or industry you are in.
  2. Do you need to change the images used? Do you need to incorporate certain illustrations, photos or logos? Most everyone at a minimum wants to include their own logo.  Do you need to style a header that matches your branding?
  3. What navigation do you want to use?  Do you want to use both the tabbed horizontal menu and the left navigation, or maybe only one or neither?  If using the menu(s), do you need to alter how they look?  If so, how drastically?
  4. Do you need to move core components of the page layout around?  Don’t think about content, but about the page wrapper (header, nav, footer).  Are there other components you need to incorporate, move or remove?
  5. Do you plan on having a collection of sites and each site needs to have its own color palette?  Some sites have sub sites (such as HR, travel and accounting in an Intranet) color coded.

After making some decisions about your design, you can start looking at what master pages and themes can provide and you can start to decide which is best for the site.

Master pages provide total control of the site layout.  Themes on the other hand re-skin the layout by changing colors and images used in the design.  Since a theme is just a CSS file and images, the layout of the page such as the location of the navigation, can’t be altered.

If you are using the SharePoint site intact with the navigation that comes with the site, and you just need to update the colors and images and add a header to the site, a theme can handle all of that for you.  To see what a theme can change, apply one of the many out of the box themes that SharePoint provides.  Click here for instructions on how to apply a theme.

But testing out a SharePoint theme doesn’t give you a full idea of what you can do with a theme.  The page icon next to the title can be removed, so can the title. Header images can be added in. People often think themes can only update the colors used since that is what the out of the box themes do.  But a lot more can be accomplished.  Click here and here to see two examples of custom themes for WSS v2 sites.

A benefit to themes is that when you apply a theme, it also affects the pages in the _layouts directory, whereas master pages do not.

If a theme doesn’t seem to fit the bill for the design you need to implement in the SharePoint site, then look to master pages.  With master pages you can implement your own navigation systems, custom code and design elements, move elements around on the page or hide SharePoint components you don’t want to use.  It is a more complete solution for totaling changing the way SharePoint looks.

In some situations, both master pages and themes can be used. If you use a master page to style the site, using a custom theme can style the _layouts pages to coordinate with the look of the site.  If you need to apply different color palettes for one design for sub sites, in MOSS use can use the alternate CSS setting, but that isn’t available for WSS sites.  You can create a custom master page for the WSS sites to use, then create and apply different themes to change the color palette of sub sites.

One drawback to a theme is that you have to apply it at the site level for each site.  Master pages on the other hand can be inherited (for MOSS sites) through sub sites.  But this is buggy and more than likely you have to apply the custom master page on each site anyways.  Another possible drawback to themes is they have to be installed on the server thus making them available to all sites in the farm. But there is a way around this if you don’t have access to your server or if you don’t want a theme available to all sites.

You can apply a theme (pick one that most closely resembles what you want to ultimately do with your site design) to your site, and then a copy of the theme CSS file will be created for the site.  You can edit this file in SharePoint Designer (thus creating a copy of it in the content database and customizing the file) and create your customizations for your site.

So, to run down some key points:

Master Pages

  • Can totally change the look of a site.
  • Can hide SharePoint components that you don’t want to use.
  • Will allow you to alter the layout of the page, in addition to changing the colors and images used in the site.
  • Will not affect _layouts pages.  You will need to use a workaround.


  • Can re-skin the layout of a site to use different images and colors.
  • Can only hide SharePoint components that can be controlled through hiding it in the CSS (display: none set on a class/ID).
  • Affects _layouts pages.
  • Can be used as an alternate CSS file application method, similar to alternate CSS setting in MOSS sites.
  • Are installed on the web server unless you customize the file.


20 thoughts on “Master Pages vs. Themes: Which Do You Choose?”

  1. Heather – First, great site and information! Second, a question. I’m curious to know why Microsoft didn’t allow the alternate row shading in web parts (like list views) correlate to the theme selection? I’m specifically about WSS 3.0 where my web part alternate rows are always light blue regardless of the site theme.

  2. Just to add to this article – if you are in a scenario where you have WSS 3 but NOT MOSS available to you. I deal with this scenario a lot for clients who have a central MOSS installation but multiple regional server farms which host WSS only – they don’t have MOSS on them at all.In this case, you don’t have the nice Master Page framework available to you that MOSS provides as part of the Publishing Functionality. You can’t switch master pages using the UI. In this case, generally speaking your only option is to use themes. The only way you can switch master pages in and out is using some clever custom development. I do this using the same approach that I use for switching the application.master (_layouts directory pages) on MOSS. I am not going to post this solution here, but those dealing with this issue the best solution is by inheriting from PageHandlerFactory, and setting the Page.MasterPageFile property in a Page.PreInit event handler.Hope this helps…

  3. Heather,Can you expand on your statement, “[Themes] Can be used as an alternate CSS file application method, similar to alternate CSS setting in MOSS sites.”? To do this, would you copy the theme directory into the _layouts/custom location to refer to the css URL or is it possible to reference the template/themes/xxx directories directly as part of the alternate css URL?Thanks.

  4. – Masterpages will not affect _layouts pages. You will need to use a workaround. What workarounds are that? i’m running to this problem (how to change _layout pages) I know I can use themes, but with a theme I can’t get exactly the same design as in my custom masterpage…

  5. Dear Heather,I have been following your site for a month now, to make a new design for our sharepoint at work. It has been very helpfull for me, thx for that :)I still have a question though. I have made changes in my masterpage and have a css document behind it. I want to make a theme of those. How do I do that?Thx in front!

  6. great comments; I am going to begin outsourcing the hosting of shpt3; and am debating as to whether (or how) I should pay for additional vendor functionality (_layouts access) etc. Branding is so important; and it is not “marketing wise” to let a good brand become diluted.very good information, informative and helps me lots in making decisions on whether to continue hosting locally/vendor/other.

  7. Hi Heather;Very nice and useful article. I’d like to ask a question: I am trying to migrate an old sharepoint 2.0 site to sharepoint 3.0 site. I actually succeeded in that. Everything except default.aspx is using the master pages like default.master, but I can’t seem to understand what default.aspx uses. Since I migrated from 2.0 and if I am not mistaken since in 2.0 we don’t have master pages, can it be the case that it is unconfigurable. If you know anything about it, can you please let me know ?

  8. I am relatively new to ASP.NET and themes. I understand master pages and themes and how to use both. But….I am developing a site that will allow the viewer to change not only the theme used but also the colors used. He will be presented with let’s say 8 sets of 4 pre-defined colors. Each of the 4 colors is to be used in a specific pre-defined way. Handling this is “relatively” easy.Create a set of CSS themes, let’s say 4 of them and them with 8 sets of color changes we could create 32 themes in all and voila the customer is really just selecting one of 32 themes. But on my side the maintenance would be a “nightmare”, especially since there will be many more basic themes than the 4 mentioned above.I need a programmatic way to apply colors to the themes. Once site does this by saving all of the choices in a database and then on the server deliver all of the CSS with each page rather than using a theme. This seems to me to be a really bvad way to do this.Any help would be greatly appreciated.

  9. So how can you edit the Search Results page to match the “skinning” or coloring of sites that already have a custom theme associated with them? I’m not sure if its bugged or not but the search results page is almost correct however the box around the search text box is still the default blue instead of the custom yellow that we have implemented?

  10. Heather … Thank you very much … your site is fantastic … Please keep up the good work!

  11. HiReally usefull blog. can you publish en example of theme css+images?Thank youEfrat

  12. Great article on terms.. But really need a good example.Here’s one challenge I’m up against. I changed the master page on one of my test sites making the title text invisible.. however it continues to show up on my _layouts pages..I understand this is beyond the scope of changing the theme.

  13. Is there a disadvantage of using themes AND a custom master page? We’re now working on a project where we use your Minimal Masterpage (awsome!) and use custom css where we override core.css as well as the theme.css styles.What’s your opinion on this?

  14. Hi Heather,I’m trying to design a corporate intranet site, displaying different themes depending on which division people are in. Out of the box, I’ve noticed that you can’t select the audience to target for themes… Please can you tell me how to get SharePoint to pick up the correct theme automatically depending on the logged in user’s division?Thanks in advance.

  15. I’m looking for a smart set it and forget it work around the default.master vs application.master (/_layouts) issue.The two masters seem very similar.Is there any way I can dyamic point the application.master to the called pages default.master? I understand default.master is inside the database. I found a nice wsp solution that tries to address this, but still requires two master pages be maintain.The whole thing seems like a giant Microsoft shortcomming. For now all I want to do is have a long Image at the top. But I want to be able to control what image and look for individual Site Collections so It can’t be set at the web application level.If anybody knows please email me at jc_pineiro(at)yahooooo(dot)coooom.Thanks!

  16. I say ‘Why not both!’. I am developing in VS 2008 and only have WSS 3. I create solutions and build custom master pages for them. I also moved from the table layout to div elements in the master page. I also created a theme in VS using the import css hack so that I could style the pages as needed. This seems ro combine the best of both ideas and looks pretty good too. Now if I was just better at css div styling…

Comments are closed.