Like any good web designer, I know CSS like I know my ABCs. CSS (short for Cascading Style Sheets), along with HTML, is the foundation of so much we do as developers. But I’m here to tell you that there are better ways to code.

Imagine you’re an artist. You’re asked to draw a picture of a sunset, but all you get to work with are some gray paint and a thick, messy brush. You’ll work with what you’ve got—but even if you’re da Vinci, your painting won’t be as good as it could be. To really work your magic, you need better tools (for starters, a few colors would be nice).

This is a little bit like Sass’s relationship to CSS: Sass is a stylesheet syntax that works as an extension of CSS3. It offers a bunch of handy features that make coding faster, cleaner, and more, well, colorful.

Sass first appeared in 2007. It’s short for Syntactically Awesome Stylesheets (seriously), and has two syntaxes:

• Indented syntax. This is the older, rarer Sass syntax. It was inspired by bare-bones coding languages like Haml, and uses line indentation rather than brackets or semicolons to separate blocks. Indented syntax files go by the extension .sass. The problem with this syntax is that it’s not compatible with CSS, and doesn’t look much like it, either. This makes indented syntax tougher for designers to learn and use.

• Sassy CSS (SCSS). This is the most commonly used form of Sass (introduced in Sass 3.0), and uses the file extension .scss. It works like an add-on to CSS3, meaning that every stylesheet that’s valid in CSS3, is valid in SCSS.

Whichever syntax you choose, think of Sass as CSS3 taken to the next level. Those tedious, repetitive features of CSS that you hate? Chances are, using Sass makes them simpler. Sass offers features like:

• Nesting. When you’re writing code for elements with many sub-components, like tables or lists, typing the same selectors over and over can get old fast. Sass helps you avoid this headache by nesting child selectors inside parent selectors. You can also apply nesting to properties of a given selector, like font or border attributes.

• Variables. You can use Sass variables to describe attributes of selectors that you plan to reuse. Variables are called out using the symbol “$.” Let’s say you want all text to show up in a shade of light blue, but don’t want to keep track of the color’s hexadecimal code.

First, write what you want your color variable to represent:

$lightblue: #00CCFF;

Then, apply that variable to your text:

$textcolor: $lightblue;

Variables are lifesavers on big, long-term projects. Rather than committing styles for colors, links, buttons, and tables to memory, write easy-to-remember variables into your code.

• Mixins. Mixins take variables a step further by allowing you to use a single selector to represent a whole section of code (for example, all style elements of a table). You can even add in equations to instruct an element to adjust sizing as needed. Sass also supports conditional states and “for” and “for each” loops. Best of all, mixins are automatically removed from your code when you compile, so they don’t affect file size. Check out Compass for a great library of reusable, open-source mixins.

Intrigued yet? This is just a sampling of what Sass can do. If you’re ready to add some Sass to your code, head here to learn how to install (it’s written in Ruby). And be sure to check out the developers’ complete Sass Reference Guide, which contains everything you need to know to make your stylesheets syntactically awesome.

Upgrading to Sass from CSS3 is like switching from dingy gray paint to a 64-color Crayola box. Once you get the hang of it, you won’t know how you ever did without.

Want to know more about coding with Sass? Atomic’s developers can give you the inside scoop.


As I’m sure you’ve noticed, Web design trends are changing fast. One week, a design technique is creative and cutting-edge. The next, it’s pathetically passé.

Why? Because the thing about trends is, once everybody catches on, they don’t seem all that cool anymore. (That doesn’t apply just to web design. Think of how quickly the Harlem Shake went from clever to ohmygod-make-it-stop overdone.)

I’m not saying you should pooh-pooh Web trends altogether. After all, ideas usually become popular for a reason: because they enhance user experience or offer new ways to present information. But if you’re a designer, try to understand why trends are useful before you imitate them blindly. Then, take those great ideas—and add your own twist.

Here are three trends I’ve noticed all over the Web lately. If you ask me, these are approaching Harlem Shake status. They’re all the rage now, but before long, they could make sites look out of date. Here’s how to use them without being just another hanger-on.

1. Continuous scrolling. As I wrote in a previous post, scrolling can be awesome for small sites, like product launches. Sites like this and this create a natural user experience where readers can passively scroll as they take in the “story” you have to tell.

On the other hand, one-page sites can be bad for SEO, because there’s less for Google to index. They can also be frustrating for users unfamiliar with the format or looking for specific info. If you must use a scrolling site, try anchor tags and “you are here” states to let the user know where they are on the page.

2. jQuery animations. JQuery is a great way to add a little something extra to your site. It can be used in so many ways, from animating drop-down menus to bringing background photos and other site elements to life.

The problem is that designers tend to go overboard. Too much animation can be overwhelming—and can lead to longer loading times, especially on mobile sites.

Here are examples from Apple and Tapmates of jQuery at its best. My advice: use animation in moderation.

3. Flat web design. Flat design—meaning sites without 3-D attributes like shadows, bevels, and gradients—has been huge this year. It’s great for responsive sites, since lack of texture means site elements can change format and load more easily. And flat design simplifies a site’s appearance, making users focus more on content. (It’s also part of a growing trend away from skeuomorphism.)

But I’ll be honest. I think flat design is often just an excuse for lazy designers to work less. The design possibilities in Photoshop are endless. And we should be creating sites that match our clients’ branding—not just ones that are easy.

If sites like this make sense for your brand, fine. But we shouldn’t be building them by default.

There’s no telling what trends 2014 will bring. My advice: don’t get too attached. Because if you think a trend is totally cool, chances are tons of others do, too. And if you want to stand out, you can’t just follow the crowd. To stay ahead of worn-out trends, you have to be ready to abandon convention and try something new.

Want a website unlike any other? Atomic’s designers can help create a site as unique as you are.

As Atomic’s business developer, I’m often the first guy clients talk about revamping their websites. You might think we start by brainstorming cool design ideas and interactive features. Our conversations are actually a lot more straightforward than that, though—but that doesn’t mean they’re not important.

Creating a new website is a little reading like a Choose Your Own Adventure book.

Remember those? You start with a mission. And every few pages, you make a choice that decides where the story takes you next. Before you know it, you’re fighting off mutant spider ants, space vampires, and killer slime. Make one wrong move and you’re in for a sure death. But play your cards right and you’ll live to tell an unbelievable tale (unless you get turned into a grasshopper, that is).

While CYOA missteps end with you getting eaten alive by sand dragons or abandoned in outer space, bad calls in web design can lead your site’s visitors to pretty bleak fates, too: unsure where to look for information, and lost in an abyss of subpages and links.

I’ll go ahead and spoil that story’s ending: After one failed mission, they probably won’t return.

Okay, maybe designing a new website isn’t quite a real-life version of Prisoner of the Ant People. But the choices you make at the beginning of the redesign process really do affect your end product—and whether user experience efforts fail or succeed. So I try to go over a few key questions with clients before we get rolling. Think of me as the narrator of your web design adventure. The choices you make are up to you.

These questions will help decide your site’s fate:

• What do you want your new site to do? Sell a product? Inform users about services?

Have people fill out a contact form? Decide your site’s main goals from the get-go, and you’ll be off to a good start.

• Who are your users? A review of your current site’s analytics will help you make some important decisions about your redesign. Are most of your users browsing on mobile devices? If so, build a responsive site. What terms are people using to find your business? Use those keywords in your copy. Understanding your audience’s needs will help you give them the best experience possible.

• How will you market your site? If nobody knows your site’s out there, it doesn’t matter how much great, user-friendly content you’ve got. You might as well await the lethal sting of a giant scorpion. Do you want to issue a digital press release or make use of other SEM strategies? How will you continue to promote your site once it’s live? We’ll plan your site with your chosen techniques in mind.

• Who will maintain your site internally? Launching your site doesn’t mean the mission’s over—far from it. Designate someone who can upload blog content, news releases, and updated company information regularly. Otherwise, you risk misinformation and broken-link black holes. Content management systems like WordPress are easy even if you don’t know code, but may require a little training at first.

A good user experience means more clicks, leads, and business for our clients. That’s why we ask customers these questions before getting started on a big project—and again during research and planning phases. The answers clients give help guide the layout, design, and information architecture of every website we create.

And when you consider that the alternatives include getting turned into bacon or becoming collateral damage in an interplanetary war, we think that’s a pretty important job.

If this doesn’t make you want to dust of your old CYOA books, I don’t know what will. (All plot references are real, by the way.) And if you want to avoid endings like these, talk to Atomic. We’ll help you guarantee mission success.


Ever visit a restaurant that got the dining experience just right? I don’t mean only great food. I’m talking about a place that really understood what they were about. From the impression when you walked in the door, to the look of the menu, to taste of the meals themselves—this place showed that they were something special. You probably recommended the restaurant to friends, and maybe even became a regular customer. You went for the grub, sure, but it was the experience that kept you going back.

The way we interact with websites isn’t so different. While it might be a little easier (for us non-programmers, at least) to pick out the details that set restaurants apart, it doesn’t take a trained eye to tell the Bob’s Diners from the hip eateries of the web world.

As Atomic’s business developer, I get asked all the time what the big difference is between template-based and custom websites. Why shell out for a custom site when you can get an off-the-shelf template for a fraction of the cost? It’s a valid point—but one you may end up paying for later. Here’s why:

Credibility. Your website reflects your business. A custom-made site says, “I know what I’m doing. This look takes work. Let’s get to know each other. Sit down and stay a while.” And a template looks like, well, a template, no matter which “unique” design you pick. As a veritable fast-food chain of websites, it says…not much.

User experience. Good luck incorporating your company’s branding elements into a template site. All templates have virtually the same navigation and site map, leaving little room for customization. Have extra service lines, a unique business model, or want additional functionality? Too bad. Visitors may never find out about them, because if they don’t fit within the template’s preset formula, you’re out of luck.

Custom design, on the other hand, shakes things up. It gets users excited about all the cool things the Web can do. Plus, it allows for all the business-specific gadgetry your enterprising heart desires (like order tracking, purchase histories, and clear calls to action).

Back-end ease of use. Web code has high standards. These standards help developers organize data so that it’s logical for upgrades. They’re also important for sharing information with search engines, like Google. If standards aren’t obeyed, search engines won’t index your site correctly, making any SEO work you’re doing for naught.

But website templates aren’t always built with standards-compliant code. The worst part? You won’t know if a template is compliant or not until after you’ve purchased it. Reputable web companies build custom websites with clean, well-organized code.

The bottom line is, you just can’t accomplish a memorable user experience using a template (did I mention they’re also prone to hacking?). By the time you spend the time and money to deal with the headaches templates cause, you’ll wish you’d invested in a custom website from the start.

Be the place people are talking about. Don’t be the greasy spoon.

Fortunately for you, custom web design is kind of our thing. Contact Atomic for ideas on how to help your site chuck the cookie cutter.

Usability is a highly sophisticated field. And it’s constantly changing. To navigate that complexity, I keep six core principles of UI design in mind. They help me stay focused on what’s important.

You can apply these guidelines to any UI project you’ve got. Whether you’re designing web applications or washing machines, the principles stay the same.

Here they are.

Consider the people actually using your product. When I’m working on an interface, I imagine not just the general demographic I’m designing for, but the specific people. Instead of imagining “seniors,” for example, I imagine my dad or mom. How would they interact with the screen? What would frustrate them? Or make them smile?

Copywriters tell me that they work the same way. They imagine in great detail the person for whom they’re writing — even inventing details about their clothes, family, and hobbies. It helps them see their target audience clearly, and they write with more focus because of it.

Make it simple. It’s easy to get caught up in the coolness of your design. Or to shove elements in that users “might need.” Every so often, step back and remove every element that you possibly can from your interface. Be ruthless – don’t think anything is too clever or important to strip away.

Then, take a hard look at what’s left. Did you really need those extra elements? Or is the UI cleaner—and more user-friendly—without them?

Draw attention to what’s important. This guideline sounds basic—but it means everything. Think carefully about the number one action you want your users to perform. Then make that action the most prominent.

For Chipotle, that means putting “Create New Order” right at the top of the screen. For Dragon Dictation, it means placing a single red “record” button smack dab in the center of the interface—with nothing else around it.

Create barriers. On the opposite side, think about what actions you don’t want users to take—and put some barriers around them. For example, Amazon doesn’t mind if you read the “About” information on their web app. But it’s safely buried under a generic “More” navigation button.

Why? Because that information’s just not that important. It’s not central to the app’s core function: helping users quickly find and buy merchandise.

Get feedback. As a matter of fact, get lots of feedback. Share the UI with family, friends, focus groups. People who are familiar with web apps, and people who know nothing about them. Industry experts and kids just out of college. The more information you get on how real people interact with your UI, the more you can perfect it.

Just remember: collect all the data you want, but ultimately, you have to decide what’s the best design.

Consider someone performing a task a hundred thousand times. Think about the people who will use your application frequently. What are they going to get sick of? What’s going to slow them down?

For example, I hate the fact that you have to tap “Play” then “Submit” every turn on Words With Friends. That’s two taps for every single action a user performs! Multiply that by five games, two turns a day, for weeks on end. That’s hundreds of extra clicks.

Yeah, it’s just a game. But it still gets annoying. And you don’t want annoyed users for your web app.

Usability is a hugely sophisticated field, lots to learn, changing … never hurts to remember the basics.

When you’re at home, on your own computer, you can use whatever browser you want. Into Chrome? Cool. Love Firefox? Fabulous.

But when you’re a developer, you don’t have that luxury. You have to ensure that your sites work well on all browsers —even those that aren’t your favorite. Worse … you have to ensure they work even on dated versions of those browsers.

And that gets old really fast.

Enter Modernizr.

Modernizr is an open-source JavaScript library that helps you build HTML5 and CSS3-powered websites without having to worry about browser compatibility. Modernizer does this through a series of “feature detection tests.” These tests detect features that a user’s browser can’t handle and downgrades those features accordingly, in a way that works for you.

This gives us developers much greater flexibility in building sites. We can build with a “high-end” target in mind — an ideal version of the site — while maintaining full control over what the “low end” version will look like. No more dumbing-down sites to ensure compatibility with older or non-preferred browsers.

Adopting this bit of tech can also save time and money. By building sites with the future in mind, there’s no need to redo development when a browser adopts more of the new HTML5 or CSS3 standards. Your site will have already been built to make full use of them.

This saves the client money and developers time, allowing those resources to be used for more important things. Like well-thought-out user interfaces, and more research in emerging web and mobile technologies.

So we can keep dreaming about the day when all users adopt a single, brilliant, modern browser.

But until then, we’ll keep writing for all the browsers out there. And Modernizr will make that task a lot less painful.

You’d think that using a certain app over and over might get boring. That you’d hit the limits of what it can do and where you can push it. Be ready to move on to something else.

This hasn’t happened yet with WordPress.

This amazing app got its start as a humble blogging engine back in 2003. It’s since become one of the most predominant content management systems used to manage modern websites. It’s used by literally millions of folks—from individuals to interactive developers to huge corporations. And the sites that are running this framework are seen by tens of millions of people every day.

In fact, we’ve found that as WordPress has grown in flexibility, it can be used to manage nearly any type of website or application. We’ve used it to manage Facebook apps, to create social networks, to build mobile web apps and ecommerce sites … and more.

In my opinion, there are several elements that make this radical usability possible.

First is WordPress’s extremely flexible theme and plugin systems. This combination allows for a huge range of sites to be managed via WordPress.

On top of this, WordPress allows custom site development to occur separate from the core framework files. This allows us to apply WordPress and plugin updates as they occur—giving the site increased stability and security.

In addition, WordPress is built on PHP and MySQL and is open source under the GPL license. This means that clients fully own and control their site, including the core CMS framework. There are no outside vendors, license fees, or hosting requirements involved, outside of the basic technology required.

It’s also cost-effective. Using WordPress saves clients time and money because we don’t have to write every piece of webware from scratch. Instead, we can utilize the ingenuity of a worldwide network of developers and designers who contribute to WordPress and its many plugins.

I continually find amazing uses for WordPress. And I love the ease with which I can create custom plugins and themes to fit nearly any site or application a customer desires. It’s great being part of the active developer community behind WordPress, and I look forward to finding new and fun uses for the platform well in the future.

Everyone knows that when developing a website, you want to think like a customer, not a marketer. You should build the site from the customers’ perspective, to address their pains, needs, and desires.

But there’s a huge gap between knowing you should do this and knowing how to do it. Here are a few techniques I use to “get into the customer’s head” and help create successful, customer-centered websites.

Imagine you’re a shopper. During the planning stage of your site, try to slip into the mindset of a customer. Think about their needs, rather than your own. Most business owners make the mistake of focusing too heavily on their own product specifications. They want to shove as much info as possible into the site—rather than considering what customers need to see before they can even get interested in a product.

For example, if you have a storefront, your customers’ priority might be as simple as finding out your hours and location. They don’t need a lot of product detail — they’ll come to your store to get that. Or if you’re selling high-end products online, customers might want to see your pricing up front. Only if the price suits their budget will they take the time to learn more about the product.

Get an outside view of your site. Pretending to be a customer is a good start, but realistically, it’s almost impossible to see your own site objectively. You’re too close to it. Start getting input from a third party—an interactive firm, a user research group, or even friends and family.

Often, an objective reviewer can spot gaps in your content or navigation almost immediately. Usually, those gaps represent your own instinctive understanding of the site content — an understanding that outside customers won’t have. In other words, you designed the site, and you “get” how it works — but no one else does.

Check out the competition. To get a fresh perspective on your own site, look at what your competitors are doing. How do they structure their navigation? Where do they place calls to action? How quickly do they introduce pricing—or do they introduce it at all?

Their choice aren’t necessarily the right ones. But seeing their approach can provide valuable insight—and again, help you spot gaps or flaws in your site that you otherwise wouldn’t spot.

If all else fails, remember three basic concerns that all customers have. Is your site easy to navigate? Is it easy to find what you’re looking for? Is it visually stimulating? If you answer “yes” to all three questions, you’ve gone a long way toward creating a customer-friendly site.

Designing a website without usability testing is like building a boat without a blueprint. You’ll make something, but whether it floats is a different matter.

Usability testing fascinates me; in fact, I’m enrolled in grad school at DePaul University, studying for an MS in Human-Computer Interaction. And when I heard some debates recently about whether current usability tools were still valid, I took notice. The crux of the issue seemed to be the value of wireframes vs. prototypes, and whether technical specification documents are necessary.

As someone who believes that a focus on usability should be the focus of building a successful web site or application, I definitely had an opinion. I believe that each of these tools has a distinct place in today’s web development cycle. And as a web developer who handles new projects daily, I’ve seen firsthand how these tools expedite development time and directly reduce the number of bugs found and revisions required after development.

Let’s take a look at how each of these tools works.

  • Wireframes – Wireframes are basic layouts for a site or application. The goal of this phase of usability testing is to focus on determining the basic information architecture and interaction design for a site, without the distractions of interactivity or design elements like color, font, and images. By removing these elements, the development team can focus on the best possible placement for the individual elements of the site or application. They can also begin to think about options for interaction design.
  • Prototypes – Prototypes are beta versions of a site or application that allow information flow and interaction testing. The actual functionality of a site isn’t implemented. However, a user can click through interfaces to get an idea how a site will look and feel. By getting feedback from project stakeholders at this stage and making needed changes, you avoid the difficulty and cost of making revisions after development has taken place.
  • Technical Specification Document – This document combines the information flow, interaction design, and functionality decisions reached during the wireframe and prototype phases of development. It’s presented to the site developers along with other tools generated during usability engineering, giving them a complete, accurate understanding of the site’s usability and functionality requirements. This document also enables clear communication between stakeholders (agency, client, users, designers, and developers) regarding what functionality is expected for each interface.

From my perspective, all three of these tools are essential. They enable a reasonably pain-free development process, and significantly cut down on revision and rework. One small change made during usability testing can save literally days of time and struggle — and beau-coup dollars — later in the process.

So for now, I’m sold on these tools. I’ll be ready to learn about better ones as I continue my studies, but for now, they’ll stay in my tool belt.


Nothing drives users crazy like a slow-loading website. Back in the day, we happily waited 30 seconds for pages to load over a 56K modem. Now, we expect pages to load immediately, and we get frustrated and click away when they don’t.

There are a number of ways to optimize sites for speed; some involve server side issues and client side code. Here are four methods that you can and should be implementing on any site you develop.

Optimize images
One way to optimize speed is to get resources from your server to browsers quickly.  One way to do this is to crop, resize, and compress (encode) images appropriately. For example, if you’re using a photo from a 6-megapixel camera as a thumbnail, make sure you’re not transferring that large image across the Net just to have a fraction of it show on your site.

Instead, use tools like Photoshop, Gimp, or even Paint.NET to crop out components you don’t want in the photo, resize the image, and use appropriate compression.

If your image is a photo, we recommend JPG file formats.  Logos and graphics work best as PNGs. And small icons and limited-color objects might be best as GIFs.

Reduce requests to the server
You can also increase speed by combining logos and icons into one larger image—a sprite map—that you show portions of as needed.

Think of loading a webpage like ordering a printer online.  Your printer comes in the mail, and it’s only then you realize you need a special cable. You order the cable, then realize you need paper.  And then ink.

These tiny shipments are similar to HTTP requests.  Most browsers can “order” two things at a time from a web server, but the more items are requested, the longer the page takes to load.

That’s where sprite maps come in.  Using a sprite map is like getting an entire kit of supplies for your printer in one package, instead of in multiple tiny shipments.  With sprite maps, you create one image that contains all of your logos, icons, and backgrounds.  Then, with CSS, you use properties like background-position to restrict which parts of the image show to users at any given time.

This reduces the number of requests to the server and in turn, speeds loading time.

Avoid inline styles and consolidate CSS
Imagine reading a story about a boat. Every time the author mentions the boat, they call it “the rickety white boat from Nantucket.”  Using that phrase over and over would waste space and slow readability.

That’s what developers are doing when they abuse inline styles. Describing every “p” tag in your document as having a specific margin and padding wastes time when the web browser is trying to download the site. Using CSS in external files reduces this bloat. Plus, CSS is cacheable, significantly reducing  load time on subsequent page requests.

Cache is king
One of the best ways to create an incredibly fast browsing experience for returning users is to cache your content on their computer.  One of the easiest ways to do this is to have your web host install mod_speed, from Google.  It’s an Apache module that provides recommended cache lifetimes depending on file type.

Things like images tend not to change very often on your site, and CSS files and Javascript files also tend to be static.  Why have your users download them every time they visit your site? mod_speed configures this for you and is a free download. It also provides the added benefit of “zipping” (actually gzipping) traffic between your server and your visitor’s computer.

To learn more, you can check out tools like YSlow from Yahoo, that give recommendations on caching content, where your holdups are, and even provide tips on whether you are requiring too many  HTTP requests.

Speed = less server load
Users will definitely be happier when you speed up your site. And there’s an added bonus: the faster you deliver content, the faster users will find what they need and leave your site. That means less drain on your servers, giving you the ability to serve more customers with less hardware.

Want to talk about how Atomic can help speed up your website? Contact us today.