In a previous article, we customized Storefront 3 to our liking, giving us a branded page with a matching color scheme.

If your deployment is front-ended by Netscaler like many others, you’ll notice that we have a disjointed look between internal access and external access. This example is based off of Storefront 3 and Netscaler 11.

Below is the Storefront scheme we’ll match with our Netscaler (slightly different from the first article).

We’ve got a swanky, futuristic office scene with bright yellow lettering and a subtle log on button. Let’s get to work on matching this up with our external access site!

Introduced in Netscaler 11 are “Portal Themes.” These give us much more power in the GUI to do customizations we were unable to do previously. Once you have your Netscaler Gateway vServer up and configured, move to the Portal Themes menu under Netscaler Gateway:

Notice that we have an X1 theme which will already have the layout of Storefront 3. We’ll want to start with this, and customize from there. Click “Add”, and name your theme accordingly. Use the X1 theme as a template:

Now that we have a new portal theme, we need to bind it to our vServer. Go to your vServer properties page, and add the Portal Themes property to the page:

From the Portal Themes menu, select the previously created portal theme, and then click “Bind”. We will now have our new Portal Theme which is based off of the X1 template bound to our vServer. Next step is to customize the theme. Go back to the Netscaler Gateway / Portal Themes menu, and click to edit your custom theme. Once on the edit page, you’ll notice that there is much more available to edit than just the logon page. The Portal Themes encompass default home pages as well as the logon page. To assist in what areas we want to edit, see the graphic below:

*Center logo must be 60px or less.
*Background Image must be a minimum of 1280×1024

For most, this amount of customization is fine, but I notice one thing that doesn’t quite match up – the Log On button:
 vs. 

Here’s where we get a little tricky. Since this is not a GUI item, we’re going to have to get into the actual CSS file rather than utilize the GUI. Our long term problem is that if we ever come back to the GUI to make a change, our custom CSS gets wiped out. Utilize the GUI to its fullest extent before digging deeper into CSS.

When our portal theme was created, Netscaler created a file system for our theme @
/var/netscaler/logon/themes/<your theme name>. We need to find the CSS file in the /css folder of that directory. The custom.css file is our interest:

Take the custom.css file and use WinSCP to bring it over to your editing workstation. Utilizing a web browser’s inspection tools (CTRL + SHIFT + I), we find that the CSS for the button is “.custombutton”. Looking in our custom.css file, we find two tags:

.custombutton {
 background : #333333;
 }
 .custombutton:hover {
 background: #333333;
 }

This implementation does not utilize a hover action, so I can either delete the hover CSS, or I can change it to match. In this case, I’ll simply change it to match in case I change my mind later. The new CSS looks like this:

.custombutton {
 background : #333333;
 color: #FFFF00;
 border-style: solid;
 border-color: #000000;
 border-width: 4px;
 }
 .custombutton:hover {
 background: #333333;
 color: #FFFF00;
 border-style: solid;
 border-color: #000000;
 border-width: 4px;
 }

Copy the custom.css file back to the originating folder and overwrite the old file. I also give a little insurance policy by creating a backup of the CSS file, just in case someone uses the GUI later on. I can quickly revert if the custom CSS gets wiped out.

Let’s have a look at our finished product:

Fantastic!

Last but not least, another feature of the new Portal Themes is text within the page. This was not easy to edit in previous Netscaler versions, but Portal Themes makes this simple. On the right side of your Portal Themes page (If not previously selected), click on “Login Page”, then edit the text labels:

In case you’re wondering, this modifies the XML files within /var/netscaler/logon/themes/<your_theme_name>/resources

Our finished product:

As you can see, Netscaler 11’s Portal Themes add a lot more flexibility than any other version of Netscaler ever had. We can easily customize many aspects of the user experience as well as go even deeper using standard CSS. I hope you found this article beneficial and we look forward to seeing some beautiful deployments!

More Info: Portal Themes Documentation