Cache them if you can →

Some great tips, as usual, from Steve. I’d also point out that you need a strategy for how to you plan to update the resources you are telling browsers to cache. I typically favor the “update a query string var” approach.

FavePersonal: Colors

One of the most fun features of FavePersonal is experimenting with different color palettes.

We’ve made it easy to experiment with different colors and find a set that makes your site feel like it’s your own. No need to fiddle through dozens of color pickers, you can choose from full color palettes, preview them, and instantly apply them to your site.

You can browse through existing color combinations to find some initial inspiration. Use the tabs at the top (and the pagination links at the bottom) to navigate through the most popular, highest rated and newest palettes, or just look at a random set. Not seeing anything that grabs you? Try a search. For example, “desert rose” will bring back just what you might expect.

FavePersonal Color Settings

Whenever you see a palette you think looks interesting, just click the Preview button to see how it might look applied to FavePersonal. If you like what you see, you can Select it to move that palette to the selected colors area at the top of the screen. From there, just hit Save Changes, and the color palette will be applied to your site.

But maybe you’ve found a color palette that is almost right, but you want to tweak it a little bit. No problem. Once the palette is selected (shown at the top of the colors screen) you can customize it however you like.

The first thing you may want to experiment with is how the colors are applied to different areas of the FavePersonal theme. FavePersonal takes the color from each of the five positions and puts it into a specific areas in the site. This is done in a way that should provide an appropriate amount of contrast between different elements on the site (but you’ll see that some themes work better than others). By clicking and dragging on the colors to re-order them, you can have them applied to different areas of your site. Click the Preview button to see how things look after moving them around.

When you have the colors applied to the areas of the site in a way that you like, you might want to apply a few tweaks (or maybe you have an explicit color scheme you want to enter). No problem. Click on each of the colors to reveal a full color picker where you can make minor adjustments (I want a darker or lighter share of blue here) or just choose another color altogether. Then click Preview to get an idea how it might look, and Save Changes to apply it to your site.

Have you come up with an original color combination that you love? Add it to Adobe Kuler and you’ll be able to re-apply it to your site easily by using the search feature (you can search for your username or the name of your palette).

I think we’ve succeeded in providing a good way for folks to choose good looking color schemes without “needing to be a designer”, while also providing the fine grain control that other folks (like me) want for their site.

While we were creating FavePersonal it was fun to see our team experimenting with the Colors feature and really getting sucked in to it – it’s a great way to lose spend a few hours.

Don’t take my word for it though, go try it out for yourself with our online demo (click the Theme Admin button to log in).


I think it was two or three years ago that I first had the idea for using color palettes with a theme in this way. I was pretty sure it would work, but hadn’t really seen it done in the manner I was imagining. I started doing some prototyping and ran into a snag.

In order to apply a color palette to a design with (generally) positive results, you need to be able to reasonably predict the colors that will have contrast between them. When looking at color palettes from a number of sources, I found that they came through without any particular ordering of the colors.

Step one became coming up with an algorithm that would work to get the colors sorted in a reasonable fashion. This is not a trivial problem, but interestingly the more complex we attempted to make the solution, the worse things got. Eventually, after running a few different approaches against a test set of color palettes, the most simple and naive approach seemed to yield the best results.

Basically I took the numeric value of the first digit of the RGB values from the hex color, add them together to get a total numeric value for each color, then sort the colors by that value.

View the code on Gist.

I think this could be refined a little further, perhaps adding a slight bias towards blue or green over red in order to better handle cases where you might prefer certain colors that are close in “brightness” to be considered “darker” than others.1 For FavePersonal I decided that it was better to handle this by allowing people to drag and drop to re-arrange the colors in the palette instead.

We’ve released the colors feature we created for FavePersonal on Github. It’s a designer/developer tool as it’s not something that works as a stand-alone plugin, but it works quite nicely when integrated as a feature of a theme.


  1. Enhancements welcome, fork away! 

In-Flight Wi-Fi Usage Growth →

I’ll go to great lengths to book a long flight with Wi-Fi. For me it’s the difference between unproductive versus being more productive than usual. Best thing to ever happen to air travel.

It’s the exact opposite for me. I’m incredibly productive on planes because I don’t have an internet connection (and the associated interruptions of email, etc.).

Side effect of linking to your own blog posts: you get a glimpse (via pingbacks) of how many places are re-posting your content.

Announcing FavePersonal

I’m very proud to announce the launch of FavePersonal; a WordPress theme designed for personal websites. I have been using (and building and testing) FavePersonal on this site since August of last year and I am very pleased with what we’ve created.

The features for FavePersonal were driven by my goals for version three of this site. I wanted the site to be personal, be a great showcase for my content and to integrate with my other social interactions online.

Personal

One of the features I know people will enjoy playing with is the Colors feature. Instead of fiddling with lots of different color pickers, you can select from thousands of existing color palettes (via Adobe Kuler integration) and instantly preview and apply the scheme to your site.

The header options and bio widget features were created to help tell the “this is who I am, and what this site is” story. Most visitors arrive on an internal site page via search engine or direct link. These features serve to provide some context about both you, and your site.

All Kinds of Post Content

With FavePersonal we have integrated our post formats admin UI functionality to make it easy to post photos, galleries, videos, etc. Each of these types of content is elegantly managed and delivered, from the back-end admin interface all the way through to customized layouts appropriate for each type of content, and formatted elegantly for mobile devices (even extending to your RSS feeds).

See some examples on this site:

Social

If my site is going to represent me on the web, it’s not telling a complete story if it ignores my participation on other social networks. FavePersonal tightly integrates with (and includes) the Social plugin to create a two way integration between your website, Twitter and Facebook. You can post status updates on your site then pass them on to your Twitter and Facebook accounts. Social will bring retweets, likes and reactions from those sites back to your site as comments.

Additionally, your visitors can log in with their social profiles when they comment directly on your site.

Mobile-Friendly

FavePersonal was designed from the ground up to be responsive. Not only does it look great on your computer, but also on your phone and tablet device.

Are you on a mobile browser now? Check out the online demo and see how it works. Be sure to rotate and see how it adapts to portait and landscape orientations.

Of course it is optimized for fast page loads and also features clean HTML5 markup that is both human and machine (SEO) friendly.


This is just a very brief sampling of what we’ve put into FavePersonal. We’ve been working on this theme for over a year.1 We’ve given every feature a ton of thought, debate, tweaking, building, throwing away, re-building and testing to get things the way we want them. I’ve been told I can be a bit :scare: particular :/scare: , which is a kind way of saying I’m a pain in the arse and we’ll re-design things as many times as it takes to get it right. My team has been very patient with me, coming up with great ideas and solutions and building them in elegant ways. We’ve built deep features on solid foundations that won’t break or surprise you as you lean on them and come to rely on them.

I’m going to be following up with a series of posts that go into more detail about the various features of FavePersonal, discussing some of the design decisions we made, and sharing customizations I’ve put into my own child theme. I’ll also point to some of the code we’ve released on our GitHub account for anyone who would be interested. I’ve got a pretty good sized list. :)

When I started using FavePersonal in August of last year (2011) it became the third version of this site since it launched in 2002 (check out original version from 2002 and the previous version from 2006). With each iteration I always received a number of “is your theme available?” inquiries. In the past, my themes have always been built with too many content assumptions, etc. for me to effectively share it, but I made sure we didn’t do that with FavePersonal.

Check out the FavePersonal page on the Crowd Favorite website to see our feature videos, try out online demo and purchase (our new store2 supports PayPal as well as credit cards).

I hope you like it as much as I do!


  1. Creating a robust WordPress theme is not a small undertaking
  2. Powered by WooCommerce