Archive for September, 2011

The Guide To CSS Animation: Principles and Examples





 



 


With CSS animation now supported in both Firefox and Webkit browsers, there is no better time to give it a try. Regardless of its technical form, whether traditional, computer-generated 3-D, Flash or CSS, animation always follows the same basic principles. In this article, we will take our first steps with CSS animation and consider the main guidelines for creating animation with CSS. We’ll be working through an example, building up the animation using the principles of traditional animation. Finally, we’ll see some real-world usages.

screenshot

CSS Animation Properties

Before diving into the details, let’s set up the basic CSS:

Animation is a new CSS property that allows for animation of most HTML elements (such as div, h1 and span) without JavaScript or Flash. At the moment, it’s supported in Webkit browsers, including Safari 4+, Safari for iOS (iOS 2+), Chrome 1+ and, more recently, Firefox 5. Unsupported browsers will simply ignore your animation code, so ensure that your page doesn’t rely on it!

Because the technology is still relatively new, prefixes for the browser vendors are required. So far, the syntax is exactly the same for each browser, with only a prefix change required. In the code examples below, we use the -webkit syntax.

All you need to get some CSS animation happening is to attach an animation to an element in the CSS:

/* This is the animation code. */
@-webkit-keyframes example {
   from { transform: scale(2.0); }
   to   { transform: scale(1.0); }
}

/* This is the element that we apply the animation to. */
div {
   -webkit-animation-name: example;
   -webkit-animation-duration: 1s;
   -webkit-animation-timing-function: ease; /* ease is the default */
   -webkit-animation-delay: 1s;             /* 0 is the default */
   -webkit-animation-iteration-count: 2;    /* 1 is the default */
   -webkit-animation-direction: alternate;  /* normal is the default */
}

First, we have the animation code itself. This can appear anywhere in the CSS, as long as the element that you’re animating can find the relevant animation-name.

When assigning the animation to your element, you can also use the shorthand:

div {
-webkit-animation: example 1s ease 1s 2 alternate;
}

We can cut this down further by not entering all of the values. Without a value specified, the browser will fall back to the default.

Those are the basics. We’ll work through more code in the following section.

Applying Principles of Traditional Animation

Disney — the masters of traditional animation, in my opinion — developed the 12 principles of traditional animation early on and documented them in its famous book The Illusion of Life. These basic principles can be applied to all manner of animation, and you needn’t be an expert in animation to follow along. We’ll be working through an example of CSS animation that uses the 12 principles, turning a basic animation into a more believable illusion.

These may just be bouncing balls, but you can see a world of difference between the two versions.

This example demonstrates the features of CSS animation. In the code below, we use empty divs to show how it works; this isn’t the most semantic way to code, as we all know, but the point is to show how simple it is to bring a page to life in a way that we haven’t been able to do before in the browser.

Squash and Stretch

screenshot

The crude bouncing ball is a great demonstration of this first point. If the ball falls at a high velocity and hits the floor, you’ll see it squash down from the force and then stretch back out as it bounces up.

At a basic level, this should give our animation a sense of weight and flexibility. If we dropped a bowling ball, we wouldn’t expect it to flex at all — it might just damage the floor.

We can apply this squash and stretch effect through a CSS3 property, transform:

@-webkit-keyframes example {
   0% { -webkit-transform: scaleY(1.0); }
   50% { -webkit-transform: scaleY(1.2); }
   100% { -webkit-transform: scaleY(1.0); }
}

This will scale the object lengthwise (on the y axis, up and down) to 1.2 times the original size, and then revert to the original size.

We’re also using more complex timing for this animation. You can use from and to for basic animations. But you can also specify many actions for your animation using percentages, as shown here.

That covers the squashing. Now we need to move the object using translate. We can combine transforms together:

50% {
-webkit-transform: translateY(-300px) scaleY(1.2);
}

The translate property allows us to manipulate the object without changing any of its base properties (such as position, width or height), which makes it ideal for CSS animation. This particular translate property makes it look like the ball is bouncing off the floor at the mid-point of the animation.

(Please note: to view the sample animations, you’ll need the latest version of Firefox, Chrome or Safari. At the time of writing, Safari provides the best viewing experience of CSS animation.)

Yes, it still looks rubbish, but this small adjustment is the first step in making this animation more believable.

Anticipation

Anticipation adds suspense, or a sense of power, before the main action. For example, the bend in your legs before you jump helps viewers anticipate what will come next. In the case of our bouncing ball, simply adding a shadow beforehand suggests that something is falling from above.

We’ve added another div for the shadow, so that we can animate it separate from the ball.

To create anticipation here, we keep the ball from dropping into the scene immediately. We do this simply by adjusting the percentage timings so that there is no movement between the start point and the first action.

@-webkit-keyframes example {
   0% { -webkit-transform: translateY(-300px) scaleY(1.2); }
   35% { -webkit-transform: translateY(-300px) scaleY(1.2); } /* Same position as 0% */
   65% { -webkit-transform: translateY(0px) scaleY(1.2); }    /* Starts moving after 35% to this position */
   67% { -webkit-transform: translateY(10px) scaleY(0.8); }
   85% { -webkit-transform: translateY(-100px) scaleY(1.2); }
   100% { -webkit-transform: translateY(0px); }
}

At the 35% point of the animation, the ball is in the same location, positioned off the stage, not moving. Then, between 35% and 65%, it suddenly moves onto the stage, and the rest of the animation follows.

You can also use animation-delay to create anticipation:

div {
-webkit-animation-delay: 1s;
}

However, this could have an undesired effect. The animation-delay property simply ignores any animation code until the specified time. So, if your animation starts in a position different from the element that you are animating, then the object will appear to suddenly jump as soon as the delayed animation starts.

This property works best for looping animations that begin and end in the same location.

Staging

screenshot

Try to give a stage to the scene; put the animation in context. Thinking back to Disney films, what would they be without the fantastic background artwork? That’s half of the magic!

The stage is also key to focusing attention. Much like on a theater stage, lighting will be cast on the most important area. The stage should add to the illusion. With our bouncing ball, I’ve added a simple background to focus on where the ball will land. Now the viewer knows that the action will take place in the center, and the scene is no longer lost in snow.

Straight-Ahead vs. Pose to Pose

In traditional animation, this is a choice in how to construct your animation. The straight-ahead option is to draw out every frame in the sequence. The pose-to-pose option is to create a few keyframes throughout the sequence, and then fill in the gaps later. Filling in these gaps is known as “in-betweening,� or “tweening,� a familiar term for those used to animating in Flash.

With CSS animation, we typically use the latter, pose to pose. That is, we’ll add keyframes of action, and then the browser will “tween� the intermediate frames automatically. However, we can learn from the straight-ahead technique, too. The browser can do only so many effects; sometimes, you have to do it the hard way and put in more animation hard-graft to get the desired effect.

Follow-Through and Overlapping

Also known as physics! Follow-through and overlapping are more commonly used in character animation for body movement, such as to show arms swaying as the character drops them or long hair falling. Think of someone with a big stomach turning quickly: their body will turn first, and their bulging gut will follow shortly after.

For us, this means getting the physics right when the ball drops. In the demonstrations above, the ball drops unnaturally, as if beyond the control of gravity. We want the ball to drop and then bounce. However, this is better achieved through the next principle.

Slow In and Out

This has to do with speeding up and slowing down. Imagine a car that is speeding along and has to come to a stop. If it were to stop instantly, it wouldn’t be believable. We know that cars take time to slow down, so we would have to animate the car braking and slowly coming to a stop.

This is also relevant to showing the effect of gravity. Imagine a child on a swing. As they approach the highest point, they will slow down. As they come back down and gain speed, their fastest point will be at the bottom of the arc. Then they will rise up on the opposite side, and the action repeats.

screenshot

Back to our example, by adjusting the in and out speeds, we can make the ball much more believable (finally).

When the ball hits the floor, the impact will make it bounce back up instantly. As it reaches its highest point, it will slow down. Now it looks like the ball is really dropping.

In CSS, we can control this with the animation-timing-function property:

-webkit-animation-timing-function: ease-out;

This property takes the following values:

  • ease-inSlow at the beginning, and then speeds up.
  • ease-outFast at the beginning, and then slows to a stop.
  • ease-in-outStarts slow, speeds up in the middle, and then slows to a stop.
  • linearMoves at an even speed from start to finish.

You can also use the bezier-curve function to create your own easing speeds.

Arcs

screenshot

Similar to the follow-through principle of physics, arcs follow the basic principle of “what goes up must come down.� Arcs are useful in thinking about the trajectory of an object.

Let’s throw the ball in from the left of the stage. A convincing animation would predict the arc along which the ball will fall; and in our example it will have to predict the next arc along which the ball will fall when it bounces.

This animation can be a bit more fiddly to adjust in CSS. We want to animate the ball going up and down and side to side simultaneously. So, we want our ball to move in smoothly from the left, while continuing the bouncing animation that we’ve been working on. Rather than attempt to capture both actions as one animation, we’ll do two separate animations, which is easiest. For this demonstration, we’ll wrap our ball in another div and animate it separately.

The HTML:

<div class="ball-arc">
   <div class="ball"></div>
</div>

And the CSS:

.ball-arc {
-webkit-animation: ball-x 2.5s cubic-bezier(0, 0, 0.35, 1);
}
   /* cubic-bezier here is to adjust the animation-timing speed.
   This example makes the ball take longer to slow down. */

@-webkit-keyframes ball-x {
   0% { -webkit-transform: translateX(-275px); }
   100% { -webkit-transform: translateX(0px); }
}

Here, we have one animation to move the ball sideways (ball-x) and another animation to bounce the ball (ball-y). The only downside to this method is that if you want something really complex, you could end up with a code soup with poor semantics!

Secondary Action

A secondary action is a subtlety that makes the animation much more real. It addresses the details. For example, if we had someone with long hair walking, the primary action would be the walking, and the secondary action would be the bounce of the hair, or perhaps the ruffling of the clothes in the wind.

In our example, it’s much simpler. By applying more detail to the ball, we make the secondary action the spinning of the ball. This will give the illusion that the ball is being thrown in.

Rather than add another div for this animation, we can be more specific by adding it to the new img element that we’re using to give the ball texture.

.ball img {
-webkit-animation: spin 2.5s;
}

@-webkit-keyframes spin {
   0% { -webkit-transform: rotate(-180deg); }
   100% { -webkit-transform: rotate(360deg); }
}

Timing

screenshot

This is simply the timing of your animation. The better the timing of the animation, the more realistic it will look.

Our ball is a perfect example of this. The current speed is about right for a ball this light. If it were a bowling ball, we would expect it to drop much more quickly. Whereas, if the animation were any slower, then it would look like we were playing tennis in space. The correct timing basically helps your animation look realistic.

You can easily adjust this with the animation-duration property, and you can adjust the individual timings of your animation using percentage values.

Exaggeration

Cartoons are known for exaggeration, or impossible physics. A cartoon character can contort into any shape and still manage to spring back to normal. In most cases, though, exaggeration is used for emphasis, to bring to life an action that would otherwise look flat in animation.

Nevertheless, use exaggeration modestly. Disney had a rule to base its animations on reality but push it slightly further. Imagine a character running into a wall; its body would squash into the wall more than expected, to emphasize the force of impact.

We’re using exaggeration in combination with squash and stretch to make it really obvious when the ball hits the floor. I’ve also added a subtle wobble to the animation. Finally, we also stretch the ball in and out as it bounces up and down to emphasize the speed.

Just as when we added one animation onto another, here we’ll add another div, which will wobble in sync with the ball hitting the floor:

@-webkit-keyframes wobble {

0%, 24%, 54%, 74%, 86%, 96%, 100% {
   -webkit-transform: scaleX(1.0);
/* Make the ball a normal size at these points */
}

25%, 55%, 75% {
   -webkit-transform: scaleX(1.3) scaleY(0.8) translateY(10px);
/* Points hitting the floor: squash effect */
}

30%, 60%, 80% {
   -webkit-transform: scaleX(0.8) scaleY(1.2);
/* Wobble inwards after hitting the floor */
}

75%, 87% {
   -webkit-transform: scaleX(1.2);
/* Subtler squash for the last few bounces */
}

97% -webkit-transform: scaleX(1.1);
/* Even subtler squash for last bounce */
}

}

The code looks more complex than it is. It’s simple trial and error. Keep trying until you get the right effect!

Solid Drawing and Appeal

I have nothing more to teach you… at least not in code. These final two animation principles cannot be shown in code. They are skills you will have to perfect in order to make truly amazing animations.

When Disney started production on Snow White, it had its animators go back to life drawing classes and learn the human form again. This attention to detail is evident in the film, which goes to show that good animation requires solid drawing skills and sound knowledge of the form you are animating.

Most CSS animation will likely not be as complex as intricate figure animations, but the basic principle holds true. Whether a door is opening to reveal content or a “contact us� envelope is being sealed and delivered, the animation should be believable, not robotic… unless you’re animating a machine.

The appeal, or charisma, of each character will be unique. But as Disney has always shown, anything can have character: a teapot, a tree, even spoons. But with CSS, consider how the overall animation will contribute to the design and make the overall experience more satisfying. We don’t want to make clippy animations here.

Go Forth And Animate!

CSS animation is a great new feature. As with every new CSS feature, it will be overused and misused at first. There is even the slight danger that we’ll see a return of those long-winded Flash-style animated splash pages. Although I have faith in the Web community not to do this.

CSS animation can be used to really bring a website to life. While the code for our bouncing ball may not be the most semantic, it hopefully shows how simple it can be to bring almost anything on the page to life with CSS.

It can bring much-needed interaction to your elements (sans Flash!); it can add excitement to the page; and in combination with JavaScript, it can even be an alternative way to animate for games. By taking in the 12 principles above and working away at your animation, you can make your websites more convincing, enticing and exciting, leading to a better experience overall.

CSS Animation Tools

While knowing the CSS itself is great, plenty of tools are popping up that will help you animate. The 12 principles apply regardless, but if you’re worried about the code, these great tools let you try out CSS animation without getting too technical.

CSS Animation in the Wild

Finally, to get you excited about what is possible, here are some great examples of CSS animation being used on live websites:

(al) (vf) (kw)


© Tom Waterhouse for Smashing Magazine, 2011.


How to Make Images Unique


  

We all use images — photos and illustrations — in our daily design work. Lots of them. And while the best way to make sure your images are unique is to have custom photography or illustration done for you every time, this is not very realistic. Often, due to time and/or budget constraints, we have to use royalty-free images. And, royalty-free images, by definition, are available to anyone who pays their fee (very reasonable, compared to the fees for rights-managed images that grant you exclusivity).

The first time it happens to you, will forever be etched into your memory: seeing the same photo which had been carefully chosen for a particular client’s project (when they did not have the time or the budget to set up a photo shoot), used in an advertisement by another company. If you are lucky, it will at least be in a different industry. But what happens when it is a direct competitor? This is a rather unsettling thought.

Here are some tips, tricks and examples of what you can do to make sure your images are slightly more unique than what everyone else is using — even if you do purchase them from a royalty-free site.

Don’t Go With the Most Obvious Choice

Before you choose the image, keep in mind that often search results on the royalty-free sites are sorted by popularity — meaning that the images that have been downloaded the most times will show up first. This, of course, increases the risk of someone else using the same image. Sometimes simply browsing a little longer can help you find something relevant, yet not quite as popular.

Also, before you even start searching, think of less obvious ways to illustrate your point. You don’t have to always use computer and code images to illustrate a website or a brochure for an information technology company. Maybe something completely unexpected can work just as well? How about using pie or toast to illustrate the ease of use, or dogs to illustrate friendliness and loyalty? You get the idea; there are many ways to make a point with a picture, and they don’t always have to be the same images everyone else uses to convey the same kinds of ideas.

Choose a Detail

Once you have chosen your images, there are any number of ways that you can alter them to make it more unique. Sometimes just focusing in on one part of the image can make it very different from the original. Crop and zoom in on a detail that is very relevant to your message, and the let the rest fall by the wayside.

Instead of using the photo of many fallen leaves, why not focus on just one?

Or you could even go one step further and actually extract an element from the image that works well for your project purposes (clipping paths in Photoshop will be very helpful with this).

Instead of using the typical cookie tray, you can extract a couple of cookies and integrate them with the title.

Color Shifts

Sometimes in order to put a more unique slant on your images simply playing around with the colors can produce striking effects, and even enhance the message you are intending the images to communicate.

For example, creating a black and white version of an image, with just one element remaining in color will place a strong focus on that element. So instead of cropping to make a certain element stand out you can use the colors to highlight any one aspect that really speaks to or with your message.

Other ways that you can use the color to your advantage here is by adding some colors that are not normally found in nature. This is a fantastic way to attract attention.

Furthermore, adjusting the saturation, contrast and luminosity levels of your images can do a lot to transform them from subtle to striking.

Try Different Effects

Depending on the style that you are looking for, sometimes enhancing the image can be as easy as running a filter. This is not necessarily recommended just because they look pretty, but when you have a project that calls for a particular style, they can be handy for getting the image to the place you need.

For example, using a poster-like effect for an art gallery brochure can be very impactful on its viewers, and compliment its theme and message in ways the image unfiltered could not.

Another example would be to use a filter to add a hand-drawn look to the imagery included in a project for a family-run bakery. This effect can really add to the home-made feel and ideas the bakery wants to convey to their customer base.

Combining Images

When taking this route, the possibilities are virtually endless. With the right amount of work and retouching you can almost guarantee that the images you use for your client will be unique, even on a more limited budget.

Blending mediums can be an effective way to make your point here as well. An example of this would be to combine a photo and an illustration for a fun, not quite real effect.

Another example of this would be like using a part-photo, part-illustration to better demonstrate the process of a home remodeling company.

You can also add your client’s logo to a scene or object that emphasizes their benefit. This is a really easy way to tie the two together.

When combining images, you can also play with the size and perspective to alter them from their original, and to better serve the message you need to convey. For that larger than life quality.

You can further use this technique to emphasize custom-made objects by showing them “in the making” — even if it isn’t quite the real process.

Don’t Settle for the Same Old Image

There are numerous tutorials and techniques available to designers these days to really take our images to the next level. What we often forget, is that this can serve much more of a purpose than just demonstrating our skills. It can allow us to deliver much more unique imaging to our clients.

Further Resources

Below are a few useful posts and resources for helping you put the advice offered here into action when your next client comes calling.

(rb)


Freebie: Facebook Fan Page GUI PSD





 



 


Today we are glad to release a yet another freebie: a Facebook Fan Page GUI PSD, designed by Hike and released for Smashing Magazine and its readers. The PSD will speed up the process of creating previews, thus sparing you from drawing all the comps and letting you customize all the texts, buttons and data as you need. All layers are vectorized, allowing you to scale up the GUI without loss of quality. The mock-up is 100% pixel-accurate, it has 4 viewing modes (default wall, wireframe wall, default tab, wireframe tab), all layers labeled and grouped. Smart guides are included. The PSD is compatible with Adobe Photoshop CS3+.

With every update Facebook performs to its fan page design, Hike reproduces it 24 hours later and updates its download link with the latest version. The main idea behind this PSD was to provide all designers and agencies with a useful tool that will improvs their daily workflow when it comes to preparing Facebook-related previews for their clients or internal presentations. As usual, the goodie is absolutely free to use in private and commercial projects.

Download the PSD for free!

You can use the freebie for all your projects for free and without any restrictions. Please link to this article if you want to spread the word. You may modify the file as you wish.

Screenshot

Features

  • 100% pixel-accurate
  • 4 viewing modes (default wall, wireframe wall, default tab, wireframe tab)
  • Fully vectorized
  • Limitless scaling
  • All layers labeled
  • Smartly grouped
  • Completely editable
  • Includes smart guides
  • CS3+ compatible
  • Always up to date

Previews

tab_wireframe
Tab wireframe (large preview)

wall_default
Default wall (large preview)

wall_wireframe
Wall wireframe (large preview)

layerpalette
Layer Pallett (large preview)

Behind the Design

As always, here are some insights from the designer:

“From our own experience we knew how time consuming it could be to have to recreate or prepare a decent Facebook template that allows you to implement custom tab graphics, profile banners etc. It’s a real pain and waste of time and it only takes away your focus from the actual artwork. At Hike we once decided to invest multiple days into creating a complete Photoshop template that would allow us to create design previews on the fly.

What sets this PSD apart from similar files is the fact that with every update Facebook performs to its fan page design, Hike reproduces it 24 hours later and updates its download link with the latest version. As listed under Features above, we actually reproduced each and every pixel of Facebook’s fan page UI. The PSD includes 4 viewing modes for the most common design tasks and it’s fully vectorized. Thanks to smart grouping and clever labeling, everybody will easily get along in our PSD. If you have suggestions for improving the file or feel like something is still missing, feel free to post it on our Fan Page wall and we will respond. Follow @HikeSocialApps for updates!”

Thank you, guys! We appreciate your work and your good intentions.


© Smashing Editorial for Smashing Magazine, 2011.


The S.M.A.R.T. User Experience Strategy


  

I was a competitive road cyclist for four years. My bikes were good, but my race results were much less impressive. Instead of medals and trophies, all I had to show for it were shaved legs and a farmer’s tan.

Regardless, on the road to becoming a competitive athlete, I followed a rigorous training plan with concrete goals. These goals were specific, measurable, attainable, realistic and timely. With this training plan, I was able to quantitatively and qualitatively assess my progress and adjust my routine to match.

Cycling race.
(Image: Stig Nygaard)

In the years since, I’ve hung up my racing jersey and replaced it with a designer’s hat. While wearing this hat, I (and many others) have been told to “create a good user experience.� We’ve heard this in creative briefs, project kick-off meetings and critiques. It may have been a bullet point in a PowerPoint presentation or uttered by someone trying to sell a client or company on the value of their services. But there’s a fundamental problem with stating that your goal is to “create a good user experience.�

It’s not specific, directly measurable, actionable, relevant or trackable. Thus, it will create disagreement and disorganization, sending many projects into chaos. However, we can avoid this by using S.M.A.R.T. goal-setting criteria when defining user and business goals.

Bad Vs. Good Methodology

Before we get started, let’s look at how a poor methodology can derail an entire project.

There was once a project to redesign a significant section of a company’s website. This section introduced visitors to the brand’s history and technology, and analytics indicated that customers who visited this section had a much higher conversion rate. Stakeholders believed that improvements to the content and navigation could result in even higher conversions. This was seen as a golden opportunity to increase sales by improving the awareness and presentation of the brand’s story. Thus, a complete project to redesign this section of the website was born.

Here is a summary of the project from the stakeholders’ perspective:

  • High-level project goal
    Increase conversions and sales.
  • High-level project strategy
    Leverage the history and technology section of the website.
  • High-level project tactic
    Improve the content and navigation of the section to increase user engagement, better communicate the benefits of the products, and drive users into the conversion funnel.

Unfortunately, rather than communicate this to the design team, the goal for this redesigned section of the website was presented as follows:

Create a good user experience.

Sigh. There’s that phrase again.

The Problem

The designers were given a nebulous tactic masquerading as a goal. This meant that they had minimal understanding of the true objective of the project, which put them in a poor position to understand the problem and to hone the strategy and tactics to solve it.

To make matters worse, the lack of well-defined high-level goals, strategies and tactics made it difficult for the designers to define the architecture of the experience, in turn making it nearly impossible to set user goals and business goals for every page that needed to be designed.

Banksy art.
(Image: numberstumper)

To make a long story short, the designers spent four months working through unsuccessful concept pitches and design revisions. The concept behind the designs constantly changed, and the content and features failed to support a cohesive user story. Meanwhile, designers and stakeholders had different expectations of what this section of the website was meant to accomplish, so solutions rarely satisfied both parties. Nobody knew the needs of the user, and the needs of the business were but a neglected thought in the shadow of “creating a good user experience.�

After these four months, there was zero progress. Not only was the project’s situation dire, but the lack of approved and delivered work was eroding the team’s morale. With no concrete user or business goals to satisfy, the team aimlessly pursued a “good user experience.� It was like being told to drive but not given a destination.

The Solution

I was subsequently pulled into this team as the project and design lead. My first priority was to bring awareness and understanding of the high-level project goals, and then lead the team through a comprehensive exercise to document the user goals. Although we didn’t have access to detailed user studies and customer information to create data-driven personas, we did our best with anecdotal experiences, competitive analyses, and website analytics to create user goals for each page. We then worked with the cross-functional teams to understand the business goals and KPIs.

Using these goals, I led the designers to write thorough content and feature requirements. The benefit to this approach was that all content and features were made to serve documented user or business goals. This encouraged product simplicity and reduced scope creep. These goals and requirements were then reviewed and refined with all stakeholders. Once expectations were universally understood and accepted, the team proceeded to create the architecture, interactions and designs.

This comprehensive methodology took less than three months. But the magic is not the methodology itself, but the discipline to identify concrete goals that satisfy five basic criteria.

UX S.M.A.R.T. Goal Criteria

As I mentioned earlier in my competitive cycling example, my improvement as an athlete was based on goals that each met the five criteria of the S.M.A.R.T. goal-setting technique:

  1. Specific,
  2. Measurable,
  3. Attainable,
  4. Realistic,
  5. Time-based.

This technique can be applied to documenting the criteria for user goals and business goals:

  1. Specific,
  2. Measurable,
  3. Actionable,
  4. Relevant,
  5. Trackable.

With these criteria in mind, what would be considered a S.M.A.R.T. goal?

UX S.M.A.R.T. goal criteria.

S.M.A.R.T. User Goal Examples

Let’s use the product detail page for a fictional e-commerce website to illustrate. A product detail page is a page on which shoppers can learn more about a product for sale and add it to their shopping cart. It typically includes images of the product, the price, a description, and an “Add to Cart� button. Here is an example from a well-known fruit company:

A product detail page at store.apple.com.
The product detail page for earbuds in the Apple Store. Notice the images, price, description and “Add to Cart� button.

Based on a competitive analysis of many e-commerce product detail pages (and on personal experience from working with and studying how consumers make purchasing decisions), here are some user goals for the product detail page of a fictional e-commerce website.

Primary user goal (UG1):

I want to learn more about this product’s design, features and specifications to determine whether it fits my budget, needs and preferences.

Secondary user goal (UG2):

I want to purchase this product.

These goals meet the UX S.M.A.R.T. goal criteria because they are:

  • Specific
    By stating exactly what the user needs to accomplish, these goals help us maintain scope and stay focused on designing content and functionality that is critical to our user’s success.
  • Measurable
    For the primary goal, we can measure clicks to determine how users are engaging with the content. Alternatively, one-on-one interviews or customer surveys could provide qualitative insight into whether your content is relevant to the user’s interests. For the secondary goal, we can measure the percentage of visitors to the page who click “Add to Cart.�
  • Actionable
    Because the goal is specific, we can readily identify content and functionality that satisfies the user’s goals. In this example, because users want to learn more about the product’s design, large product images should be included.
  • Relevant
    These goals are appropriate for a product detail page, but not for a return policy or terms and conditions page. By keeping the goals highly relevant, the content and features that we introduce to satisfy those goals will be relevant, too.
  • Trackable
    There’s no point being measurable if the data cannot be tracked over time. This is essential to determining the immediate, short-term and long-term success of our design and its future iterations.

In contrast, here’s a DUMB user goal:

I want a Web page that’s easy to use. (i.e. I want a good user experience.)

That’s not a witty acronym, and it doesn’t hide the fact that this user goal is not specific, measurable, actionable, relevant or trackable. It fails all five criteria because it fails the first: specificity. A good user experience has many facets, and without targeting a specific aspect of the page or product experience, there’s no action (strategy and tactic) to address it. If a goal is not actionable, then it has no reason to exist because there is no end towards which effort and action can be directed. Similarly, if the goals are not measurable, then there is no way to gauge the successes or failures of our actions, and subsequently no way to understand the product’s performance over time.

S.M.A.R.T. Business Goal Examples

UX S.M.A.R.T. goal criteria can also be applied to business goals. They are particularly relevant because businesses are run by numbers: number of clicks, number of customers, number of dollars, the list of measurable metrics continues. So, let’s take real-life business goals for the same product detail page of our e-commerce website as an example:

Primary business goal (BG1):

We want to increase the ratio of add-to-carts to page views for the product detail page to x%.

Secondary business goal (BG2):

We want to increase cross-sells to y% of total add-to-carts.

Just like the preceding user goal examples, these business goals meet the UX S.M.A.R.T. goal criteria because they are:

  • Specific
    By stating exactly what metrics the design needs to affect, these goals help us maintain scope and stay focused on designing content and functionality that will put us in a position to hit our targets.
  • Measurable
    For the primary goal of increasing conversions, we can measure the number of page views and how many resulted in an add-to-cart. For the secondary goal of increasing cross-sells, we can measure the number of clicks on cross-selling products.
  • Actionable
    Because the goals are specific, we can create more targeted strategies to accomplish them. For the primary goal of increasing add-to-carts, this could mean making the content on the page more relevant to users’ goals, or something as simple as improving the success of the add-to-cart button. For the secondary goal of increasing cross-sells, this could entail changing the visibility of cross-selling items (assuming we have already done a good job of selecting which related products to promote).
  • Relevant
    The relevance of this goal depends on the high-level objectives of the project. If the objective is to reduce the number of customer support calls each day, then this goal might not be relevant. But if the objective is to increase total sales revenue across all products, then it is very relevant.
  • Trackable
    We can count the number of page views and add-to-carts over an extended period of time.

By contrast, here’s a dumb business goal for the product detail page:

I want to make more money.

This is a poor business goal because it’s not specific and might not be relevant to this page at all. There are many ways to make more money, and without specificity in the strategy to accomplish this, creating a successful plan of action will be much more difficult. Remember, if a goal is not actionable, then it has no reason to exist because there’s no end towards which effort and action can be directed.

UX S.M.A.R.T. Goals Applied

So, now we understand the criteria behind well-defined S.M.A.R.T. goals and have applied them to the user and business goals for the product detail page of a fictional e-commerce website. How can we use this to our advantage as we move forward with the architecture and design of the page?

Associated Content and Feature Requirements

Because the goals we’ve defined are specific and actionable, we are able to propose content and features that directly satisfy them. Let’s revisit the four high-level goals of our product detail page and attach appropriate requirements to them.

Primary user goal (UG1):

I want to learn more about this product’s design, features and specifications to determine whether it fits my budget, needs and preferences.

Content and features required to satisfy this goal:

  • Relevant images that represent the product as a whole;
  • Relevant images (such as enlarged views and alternate angles) that show the product in detail;
  • General description that provides a brief overview of the product’s purpose and benefits;
  • Specifications that are relevant to consumers of this product type;
  • Product variations or options (such as color, size);
  • Selling price.

Secondary user goal (UG2):

I want to purchase this product.

Content and features required to satisfy this goal:

  • Selector for product variations or options;
  • Customer satisfaction guarantee (such as return policy, privacy policy);
  • Quantity selector;
  • “Add to Cartâ€� function.

Primary business goal: (BG1):

We want to increase the ratio of add-to-carts to page views for the product detail page to x%.

Content and features required to satisfy this goal:

  • Reference user goal 1,
  • Reference user goal 2.

Secondary business goal (BG2):

We want to increase cross-sells to y% of total add-to-carts.

Content and features required to satisfy this goal:

  • Related products that the user might also be interested in (for example, if the user is looking at the detail page for a small digital camera, recommend a small case to put it in).

Because everything must serve a documented goal, scope creep during the project’s lifecycle is reduced. This is not to suggest that content and features beyond these goals cannot be included. Components such as global navigation or a site-wide search box might be required even though they are not the purpose of the page. Determining what belongs on a page is admittedly not as black and white as these example might lead one to believe.

That said, setting content and feature requirements based on S.M.A.R.T. goals does help to determine the visual hierarchy of information on the page. This is extremely helpful during the wireframing stage.

Product detail page wireframe.
A wireframe for the product detail page of a fictional e-commerce website. The user goals (UG1 and UG2) and business goals (BG1 and BG2) correspond to those outlined above. Download the complete wireframe for this example.

As we can see in the above annotated wireframe, the content and features that satisfy primary user and business goals (labelled UG1 and BG1) are more prominent in scale and placement than those that satisfy the secondary goals (UG2 and BG2).

Now, having applied S.M.A.R.T. goals across the planning and architectural phases of a project, we can see the benefits of this UX strategy, as follows:

  • Goals are specific, measurable, actionable, relevant and trackable.
  • Because the goals are specific and actionable, we can attach appropriate content and feature requirements to each one. Because the goals are relevant, these requirements are relevant, too.
  • The hierarchy of the content and features is determined by the hierarchy of the goals that they are attached to. This informs the architecture of the wireframes.

With these benefits in mind, we can begin to understand how this positively affects other stages in the project’s lifecycle:

  • Wireframes with well-informed structures and content are solid foundations on which to design higher-fidelity mock-ups.
  • Because the goals are measurable and trackable, we can determine the success of the design during testing, learn from it, and make improvements in subsequent iterations.

Ultimately, these all contribute to our ability to understand the problem and craft an appropriate strategy and tactic to solve it. Our discipline in gaining focus in the earliest stages of a project will determine our ability to maintain focus when designing the functional aspects of the product at the end.

Conclusion

A great user experience is the result of setting concrete goals that meet both user goals and business goals. Unfortunately, I have seen many teams kick off a project with nothing more than a goal of, “Let’s create a great UX!� While a noble thing to strive for, it’s not specific, actionable or measurable. It contributes nothing to the planning or design phases, and it is the UX equivalent of a motivational high-five.

Banksy flower thrower.
(Image: Dickson Fong. Original artwork: Banksy.)

Banksy once said:

“Artwork that is only about wanting to be famous will never make you famous. Fame is a byproduct of doing something else. You don’t go to a restaurant and order a meal because you want to have a shit.”

Likewise, a good user experience is the byproduct of many brand, product, design and development decisions. As designers, we must collaborate with our clients and ensure that we thoroughly understand the needs of their business and target audience. Only then can we be empowered to create appropriate strategies and tactics to achieve them.

So, don’t try to “create a good user experience.� Create a S.M.A.R.T. one.

Additional Resources

(al)


© Dickson Fong for Smashing Magazine, 2011.


25 Useful Free WordPress Plugins For Multi-Author Blogs


  

There are successful bloggers who exclusively write all of the content on their blogs however the vast majority of the top blogs on the web have a number of writers producing content for them on a regular basis. When you manage a multi author blog you spend less of your time writing articles and more time reviewing articles, scheduling articles and managing authors.

Today we would like to show you 25 WordPress plugins that will help you run a multi-author site quicker and more efficiently. The list includes plugins that help you manage your staff and plugins that make the posting process better for you and for your authors. It’s important for authors to get credit for the work that they do therefore several author profile plugins that let you increase an authors presence on your articles have also been included in the list.

*As always, all plugins have been tested for the purpose of this article.

Managing Authors

The following plugins will help you manage and communicate with your staff more efficiently.

1. Adminimize

Adminimize is a powerful free plugin that lets you control who has power over every aspect of your website. You can deactivate every possible option you can think of and control what admin, editors, authors, contributors and subscribers can do. The plugin automatically recognises any new user groups you have created too.

In short, it gives you complete control over what every user on your site can and cannot do. It works well with a number of other popular plugins too and is updated fairly regularly.

Adminimize

2. User Role Editor

A large percentage of blog owners won’t need the extended functionality that Adminimize provides. WordPress does not allow contributors to upload images so it’s a useful way of adding this functionality easily (if not, it’s a pain for guest posters to add images to posts).

In short, User Role Editor allows you to control exactly what each user group can and cannot do.

User Role Editor

3. Members

Like User Role Editor, the Members WordPress plugin features a useful role manager that allows you to modify what certain user groups can and cannot do.

The plugin lets you control who can see content using shortcodes. By using this feature you can post secret messages to authors and staff or create private informational pages for them (everyone else will see a blank page).

Members

4. Dashboard Notepad

What sets Dashboard Notepad apart from other notepad plugins is the ability to configure who can read the notes and who can edit them. It’s a useful way of communicating with your staff and leaving notes for yourself for future articles.

Dashboard Notepad

5. Private Messages For WordPress

If you are looking for a more direct way of liaising with your staff, you may want to consider Private Messages For WordPress. The plugin allows user groups the ability of messaging each other. You can set the number of messages each user group is allowed in their inbox. By setting the number of messages for a given user group to -1 you can remove their ability to send messages. Therefore, to create a private messaging option for editors only, you just have to remove the option for authors, contributors and subscribers.

Private Messages For WordPress

6. Admin Message Board

Adds a private discussion area that all admins can view and add to. For some strange reason the plugin mimics Twitter and restricts messages to 140 characters or less.

Admin Msg Board

7. Pre Publish Reminder

A useful plugin that lets you add notes for authors on the sidebar or below the post area. For example, you could remind them of formatting rules or remind them to always add a featured image. Handy if you have staff members who keep forgetting important elements of your posting rules.

Pre Publish Reminder

8. Blog Metrics

Yoasts Blog Metrics makes it easy to monitor exactly what sort of contribution each author is making to your website. The plugins shows the average number of posts per month, average number of words per post, average number of comments and average number of words in the comments. It’s a useful way of gauging the value of each of your authors.

Blog Metrics

Managing Posts

The following plugins improve the procedure of posting in some way for you and/or your staff.

9. Co Authors Plus

A simple yet useful little plugin that lets you assign more than one author to a post or page. Handy for blog owners who publish a lot of collaborative posts.

Co-Authors Plus

10. WP CMS Post Control

Lets you remove certain controls of the post editor area from certain user groups. For example, for contributors you can remove the ability to set the post slug or featured image for any articles they submit.

WP-CMS Post Control

11. WP Document Revisions

A collaborative document and file system that multi-author blogs should find useful. Users can create and modify documents through the admin area and leave notes for others to advise them what they have updated in the article.

This could be particularly useful if you are working on an eBook or preparing fresh content for a new area of your site. Could also be used as a FAQ or Wiki system for staff.

WP Document Revisions

12. Audit Trail

Audit Trail allows you to track the actions of your all users (including admin). It shows you when a user last logged in, their IP address and the article they were working on. The ‘Trail’ allows you to see who has been working online via your site on a given day and see exactly what they did.

Audit Trail

13. Editorial Calendar

Editorial Calendar makes scheduling articles a breeze with its easy to use drag and drop interface. The plugin creates a new calendar page therefore you can still use the traditional posts index page when you want.

Editorial Calendar

14. Future Posts Calendar

Adds a simple calendar into the top of your post editor sidebar that shows dates of upcoming articles. You can also add the calendar to your WordPress admin dashboard.

Future Posts Calendar

15. Auto Schedule Posts

If the publication date of your articles isn’t that important for your website (e.g. a dating website may not be concerned about whether an article publishes today or three weeks from now), then you should find Auto Schedule Posts incredibly useful.

The plugin lets you set certain parameters about when you want your articles to publish every week. It will then schedule articles for any days that don’t already have a post scheduled.

Auto Schedule Posts

16. Insights

Adds a productive box underneath your post editor that allows you to search the web for blogs, images, videos, news, Wikipedia articles and more. Authors can then insert or link to the items they find. If your authors are writing articles for you every day they should find the plugin saves them a lot of time.

Insights

Author Profiles

Authors are a vital part of every blogs success, therefore it’s only fair that they get some credit for their work. Noupe, for example, clearly displays the authors name at the top of an article and includes a bio box at the bottom of every article too.

The following plugins will give your authors more exposure and let your readers get to know them better.

17. WP Biographia

Arguably the best looking author bio plugin available for WordPress, WP Biographia gives you complete control over what is shown in the bio area and adds Facebook, Twitter, LinkedIn and Google+ profile fields to every users profile. You can choose whether the box is shown on posts, pages, archives and/or the home page and you can customise the colour scheme and border too.

Without a doubt the plugins best feature is the ability to display author bios in the RSS feed. 99% of blogs don’t include a link to the authors posts or website through their RSS feed therefore the guest poster loses a lot of potential traffic from RSS readers. WP Biographia corrects this by displaying a beautiful looking bio at the end of every post in the RSS feed.

WP Biographia

18. Top Authors

A highly configurable top authors widget that lets you list your most frequent authors using their username, avatar or both. You can exclude admin and authors without posts if required.

Top Authors

19. Post Avatar

Let authors choose from a pre-defined list of images for their profile avatar. Images can be inserted automatically or manually into posts.

Post Avatar

20. User Photo

Allow a user to assign a photo to their profile for use in posts and comments. You can set the dimensions for the photo and the JPEG compression level via the admin area.

User Photo

21. Post Author

Adds an author information box above or below your content. Post revisions can be shown and an avatar can be added to the bio box too.

Post Author

22. Cool Author Box

A simple plugin that automatically adds a cool looking author bio box underneath your posts and pages.

Cool Author Box

23. Author Exposed

Once installed an author box will appear when someone clicks on the link of an author. The box shows the authors name, email address and website. It also links to their Gravatar image, and shows a short bio for the author with links to the author’s other posts.

Author Exposed

Advertising

Two WordPress plugins for those of you who want to share advertising revenue with your authors:

24. Author Advertising Plugin

Lets you set aside a percentage of advertising space to be shared amongst authors on your website. It supports any advertising program such as Google Adsense, Yahoo Publisher etc. Authors need to input their publisher ID in order to take part in the program (you can determine what user groups can take part in the program).

In order to install the plugin properly you will need to create the table manually via phpMyAdmin (the code is provided via the admin area).

Author Advertising

25. WordPress Multiple Author Ad management

Allows authors to have control over the advertisements that are displayed on their own posts. Custom banners, text links, PayPal donations and Google Adsense are all supported.

WordPress Multiple Author Ad management

Overview

If you don’t set things up correctly for your authors, you may find yourself in a position where you are spending more time managing authors and correcting their mistakes than you would if you wrote the articles yourself. By automating as many aspects of the moderating process and making things easier for your staff you can save both you and them a lot of time.

(rb)


  •   
  • Copyright © 1996-2010 BlogmyQuery - BMQ. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress