Aaron Spuler

themes@spuler.usAaron Spuler

Mozilla Community Spotlight on: Aaron Spuler

To better know what it takes to create a theme for Mozilla, we contacted Aaron Spuler, one of the better recognized theme creators among the community, and he kindly agreed to an interview.

What is your background?

Aaron Spuler: I am 26 years old, and in my last semester at Texas State University, earning a Bachelor of Science degree in the Computer Science field. I got married August 16, 2003. I am currently looking for a job in the San Antonio, Texas area.

When did you start making themes? Which was the first one?

I am not for sure when the exact date that my first theme was released, but it was sometime between the release of Mozilla 1.0 (5/31/2002) and Mozilla 1.1 (8/26/2002). I know this because I still have an old version of my first theme on my website for Mozilla 1.0.

The very first theme I made was one called Blue. It is a fusion of two pre-existing themes: the default "Modern" theme, and the Orbit 3+1 theme. I re-colored the icons from the "Orbit 3+1" theme from yellow to blue, and replaced the icons in the "Modern" theme. At first, I was just playing around, and I changed the icons because I thought the re-colored icons from Orbit 3+1 looked cooler than the default "Modern" theme's icons.

What theme are you currently working on?

I am working on a theme right now based on the iCandy Junior icons by FOOOD. Someone on the MozillaZine forums put out a request for a theme with those icons for the Mozilla Firefox browser. I looked at those icons and decided to act on the request. I got about 90% of the way done with the theme, making do with the icons provided in the iCandy Junior set, and showed my work to the icon author, Jono (he goes by the name FOOOD online), to ask permission to release the theme. FOOOD loved the work I had done, and offered to make some custom icons for me to complete the theme, to give it a more polished look. He custom made twenty icons for the theme. I released the Mozilla Firefox theme on January 13, 2004.

There was a great response from this theme, and immediately people asked for a complimentary theme for the Mozilla Thunderbird email client. I sorted through what icons were available to me and showed FOOOD my ideas and asked if he would mind making some more custom icons for the theme. He really came through with the Thunderbird theme. He said that he did not want things to only sort-of fit - he would rather custom make icons to make the theme really shine. FOOOD made 48 custom icons for the theme - some beautiful icons. I released the Mozilla Thunderbird theme March 16, 2004.

I am currently putting the final additions on the Mozilla and Netscape versions of the iCandy Junior theme, and FOOOD is again making a few more custom icons to complete the theme.

Have you made themes/skins for other applications like Winamp?

After releasing the iCandy Junior theme for Mozilla Firefox, people asked me to port the theme to the Y'z Toolbar application - which themes Internet Explorer and the Explorer windows in Windows XP. There really is no documentation available for making Y'z Toolbar themes, so it took me quite a while to do this theme. I found a template for the Y'z Toolbar and had to figure what each image represented and replace it with the appropriate icon from the iCandy Junior set. I released the Y'z Toolbar theme February 27, 2004. That is the only theme I have done that was not for a Mozilla product.

How long does it take to you to create a new theme? What does it depend on?

The time to make a theme has really gone down since I first started. For my first three themes, the time to make a theme was really quite long. My first theme, Blue, took the longest though. I had absolutely no clue what I was doing or how to do it. There was a steep learning curve.

My second theme, Rain, did take quite a while also. Basically, Rain and Blue are about 95% the same - including the icons. The only real difference is that the Blue theme is based on the Mozilla "Modern" theme, and the Rain theme is based on the Mozilla "Classic" theme - meaning Rain looks like an application that would fit in with all the other applications on your computer. It takes on the colors of your operating system.

My first two themes are, quite literally, a mess. They were useful for learning how to theme, and I am glad that people enjoy them, but when I look back upon them now I really see how much more I am able to do now. They are legacy themes - meaning that I will not port them to the Mozilla Firefox or Mozilla Thunderbird applications.

When I made my third theme, Smoke, I started over (meaning I did not re-use any of the old code from Rain and started modifying the Mozilla "Classic" theme) and really strived to make a good template for future themes. Now that I have that template, I just have to replace the icons with the icons for a new theme. I would say on average, from start to finish, it would take about two weeks to make a theme now. I think the biggest part of that time is spent looking at the icon set I am going to use for the theme, and deciding what icon will be used for each button in the theme.

When deciding to make a theme, I first find an icon set that I like. If the icon set has enough icons to fill out a theme, and if I have the time and interest, then I can start converting the icons into transparent *.png images to put into a theme.

How did you get started? What resources would you suggest to people interested in starting a theme project?

I got my start by asking a few of the theme authors how they made their themes. I pretty much took their advice and ran with it. The advice I was given was something to the effect of: "The theme *.jar files are just zipped archives. Use WinZip to unzip the theme, and then look at the CSS file if you want to change the behavior of buttons or other components. The easiest way to make a new theme is to find one that you like, and change the icons." So, that's what I did. It was a long hard road to finish my first theme. Honestly, I did not know if I would even finish it. I knew absolutely nothing of CSS - I had heard the term before but never seen any code of it. I asked many questions to other theme authors (probably too many in their eyes), and had to figure out a lot on my own. A semi-decent knowledge of CSS would be a big help in theming Mozilla products.

For others starting theme projects - do not be afraid to ask questions! The MozillaZine Themes forum is an invaluable resource, and mostly everyone there is willing to help each other out when it comes to theme creation and maintenance. I would not recommend trying to write a theme from scratch - there are way too many files in the theme structure and you have to have them in the correct place. Take a theme that you like the behavior of (don't worry about the icons - you are going to change those when you make your theme) and use that as your base theme. Be sure to get permission from the icon author before re-distributing their work - it is just the right thing to do.

It is known that from time to time the API or the way themes are supported changes for Mozilla products, causing new releases that just break "old" themes. Has it happened to you? How frequently can you say it changes? What would you suggest to avoid or minimize the effect of these changes to theme creators?

This is true - sometimes the theme API's are changed and it does break themes. I have seen this happen three times: from Mozilla 1.1 to Mozilla 1.2, from Mozilla 1.4 to Mozilla 1.5, and from Mozilla Firefox 0.7 and Mozilla Thunderbird 0.3 to Mozilla Firefox 0.8 and Mozilla Thunderbird 0.4 (the Firefox 0.7 -> 0.8 and Thunderbird 0.3 -> 0.4 change happened at the same time). Generally, it was something minor, but had a big impact on the themes.

I do not even remember what the change was between Mozilla 1.1 and 1.2, because I do not have any themes supporting Mozilla 1.0 and 1.1 except Blue. Between Mozilla 1.4 and 1.5, there was a change, a very minor one (changing instances of ":" in the code to "::" in the CSS files), but it made the themes incompatible. The change for Mozilla Firefox 0.7 and Mozilla Thunderbird 0.3 to Mozilla Firefox 0.8 and Mozilla Thunderbird 0.4 involved changing instances of "/widgets/" to "/bindings/" in the CSS files.

For major changes like this, there was an announcement made on the MozillaZine Themes forum, so that fix was not too hard to implement. However, there are some minor changes usually made between milestone releases that are not publicized. Those are the harder ones to fix. That usually involves downloading a nightly build and looking at the code for the part that is screwing up in my theme, and comparing it to the default theme's code for the same part. Some fixes like this are easy but some do take a bit of time to figure out. To minimize the effect on theme creators, I would recommend more notification either made to the MozillaZine Themes forum, or setting up a mailing list that theme creators can subscribe to providing all the latest information regarding themes.

What suggestions would you make to the Mozilla Foundation regarding themes support?

Honestly, the theme support is pretty darn good. I only have one big issue with it. The issue I have with the themes support deals with cross platform compatibility. The whole idea behind Mozilla is to have a program with the same code that runs on several different operating systems. The code just has to be compiled for that operating system. The themes that I create try to use as many native widgets from the operating system as possible. The only problem is that there seems to be an issue with native scrollbars. The code that works on Windows, Linux, and all other operating systems does not draw scrollbars for Mac OS X. Therefore, I have to maintain two versions of each theme that I create - and the only difference between the two is one CSS file, located in the global directory of the theme hierarchy called scrollbars.css. If you look at the scrollbars.css file for Mac OS X themes and non-Mac OS X themes, you will see that the code is quite a bit different. I am not the only theme author plagued by this bug - all theme authors that wish to have native scrollbars for their themes have to deal with this issue. I filed a bug in bugzilla for this issue about six months ago but no real headway has been made on it.

What plans do you have in the future?

I am looking for a programming job so that I won't be a bum after graduation. Luckily, my wife has a job, but I don't want her to be the only income in our household. I will keep on making themes in my spare time, because it is fun to do so.

Have you considered offering theme creation for individuals or organiations as a service? Even for private or business customers? Such as creating say, themes based on family pictures or organization themes?

Sure, that would be great. I love to design user interfaces. I think that the look and feel of a program adds a lot to people's opinion of a program. I know that should not matter, but in the real world it does. Theme creation as a service would be a fun job for me. I do not have the artistic talent to create the icons, but I do have a good eye for aesthetic sensibility and intuitive usability. Anyone that can provide me with the necessary artwork can have a theme made. I would be more than happy to offer my services for hire.

Any other comments?

I think I have covered everything pretty thoroughly. I do need to thank the respective icon artists for their work. Hermik provided the icons for the Smoke theme. Those icons made for great subtle styled theme. Paul Davey provided the icons for the Apollo and Neptune themes. This kid has incredible talent - can you believe that he is only 14 years old? Keep it up, I can't wait to see more icons from you! I would like to do a theme from every icon set that you make. Milosz Wlazlo provided the icons for the Playground theme. Those icons have a great whimsical, child-like look and feel to them that makes me smile. FOOOD provided the icons for the iCandy Junior theme. You were an absolute pleasure to work with, very accommodating and willing to do whatever it takes to make a good quality product.

If anyone wishes to contact me, feel free to send me an email. To view my themes, please visit https://www.spuler.us.