The underlying secret to beautiful user interface design is realism: making 2D objects on your screen appear to sit in 3D space with volume, surface properties and undulations that might appear in real life. These faux 3D objects have highlights and shadows just like objects on your desk might have, and they have textures that emulate real objects from glass to sandpaper and everything in between. Designing beautiful user interfaces has more to do with the why than the how.
If you're trying to design a realistic-looking user interface element then you have to think about what that object would look like in the real world. What's the easiest way to do that? Look at it from the side. What would a button look like if you viewed it from the side of your monitor? Let's take a look.

Here's a button-shaped panel that's designed to look slightly raised and have a matte surface. It's thin, has a subtle convex shape, and has a small edge that goes around the outside. In a 3D space, the light source would illuminate the edges (slightly brighter on the topmost edge) and would not fully illuminate the bottom slope of the panel past the apex. The object would cast a small shadow since it's not raised off the surface very much.
Pastebot, the new app from Tapbots, has a table view filled with panels that look similar to the one from above. Let's see what it'd look like with multiple panels next to each other.

This looks like a realistic series of panels because of the Top Edge Highlight up against the Inset Shadow which, from the side, would look like this: <. The Inset Shadow appears because the light source does not illuminate that area but then the next panel starts and pokes out, catching the light and showing a highlight.
Design elements that we think look great are usually the ones that look the most realistic, as if they could be in front of us on our desk or on the wall. Paying close attention to how light would strike the object as if it were real is crucial to executing a realistic user interface element.
In my internet globe icon tutorial I stressed the impact an object's material has on its overall look. Not accustomed to thinking about an object's material? Get used to it! It adds a new dimension to your design and keeps the object's realism in the front of your mind. If you're designing an interface element and can't immediately name what type of material you're emulating then how can you execute it with perfect realism?
I recently linked to some beautiful Dock replacements for your Mac and many of these illustrate how important the material is to your overall design. In one named Phantom the designer uses two different materials to make the Dock: a textured, grainy surface coupled with a semi-transparent glass edge. The textured surface seems like the back of a notebook pad or a heavily-used wallet whereas the front edge looks like a clear, solid block of lucite.

Apple has been using shiny, gloss-laden user interface elements in Mac OS X for awhile but recently there has been some chatter that they were gearing up for a total interface refresh using matte elements. This full refresh never happened but matte interface elements have been steadily making their way into Mac OS X for a number of years.

With the latest version of iTunes, many user interface elements like scrollbar sliders and buttons have been given the updated, matte look.
Apple's also been using the matte look in some of their Pro software, most notably Final Cut Server. In that application's interface, Apple's removed the gloss from nearly everything and kept convex buttons close to flat with only a slight highlight on the edge. Also, the icons on buttons are not set into the button (accomplished via a thin, white drop shadow on the bottom, a style used throughout Mac OS X) but instead sit on top of the button through the use of a dark drop shadow on the icon. The entire interface pane is slightly raised and looks like dark, textured steel, making the application look like the instrument panel to a high-tech piece of equipment.

Here's an assortment of icons that all show how different surface materials contribute to the overall look of the element:

Next time you want to create something shiny, think about what type of material you're really executing: is it plastic? Glass? Reflective aluminum? If you're designing a matte element, think about just how grainy and textured it should be. Paper or sandpaper? Cardboard or anodized aluminum like an iMac? Is there transparency? Are you emulating something in real life or creating a material that's more hyperrealistic?
It's one thing to look at beautiful interface elements, icons and illustrations and quite another to build them yourself. Here are some ways that I build designs using Photoshop.
Noise Layer
Matte interfaces are hot right now and one of the key elements of a matte surface is that it's not perfectly symmetrical, it has some texture and grain to it. The easiest way to accomplish this is by creating a layer of one flat color and then using the Noise Filter to add some texture. The key is to keep it subtle and barely noticeable.

Radial Highlights
The main light source comes from the top but that doesn't mean you can't introduce a secondary light source for emphasis. Below I've created a custom navigation bar for an iPhone application that uses a subtle radial highlight for added dimension and detail. The Blend Mode has been set to Overlay to brighten and saturate the overall color and the transparency has been knocked way down to keep it realistic. Also note the edge highlights to make it look more like a raised surface.

Creative Layer Styles
Layer Styles are a key part of my design workflow, I use them for everything. Usually I'll draw a vector object, set the Fill to 0%, and design the entire thing using Layer Styles. Anyone can add a Drop Shadow to something, but if you get creative with Layer Styles then it enables you to really transform what you're working on. For example, you can only apply one Stroke but you can emulate 3-4 different stroke styles through creative use of the Inner Glow and Outer Glow styles if you crank up the Spread and Choke sliders and turn your glows into solid lines.
Once you turn glows and drop shadow styles into solid lines you can achieve a lot of effects with minimal effort. Below are some Layer Styles applied to rounded rectangles that use 1px glows and shadows. The PSD file for the following examples is released under a Creative Commons license: Button Examples

When something looks "off" in an interface, it probably looks fake, like it wouldn't exist in the real world. How do you keep your interface elements looking real? Here are some things to always keep in mind:
Ping URL: http://flyosity.com/cgi-bin/mt/mt-tb.cgi/16
36 Comments
liam | December 30, 2009 5:42 PM | Reply
I love that heading: "Reality Is Subtle" It's a very good point to keep in mind. It's something I always try to stick to, but even still I found this post really helpful.
Definitely a great write up, fantastic examples and great points. Nice job.
Larkef | December 30, 2009 5:43 PM | Reply
Great post man. This is a topic to my heart. I found your examples great and your suggestions useful.
Derek Moore | December 30, 2009 5:46 PM | Reply
This is so great. It's made what I have been doing for the past 6 months, make sense. Great clarity to interface design.
Cheers!
Pasquale | December 30, 2009 6:05 PM | Reply
You might also want to look at this wonderful artist's work:
http://artsammich.blogspot.com/2009/10/thinking-artist.html
He is very observant to the physics that determine the appearance of particular materials & their reaction to light.
Mislav Marohnić | December 30, 2009 6:08 PM | Reply
I love your attention to detail. Great article!
chris rhee | December 30, 2009 6:23 PM | Reply
Good post! I remember you wrote something similar about light sources on 9rules (or maybe BusinessLogs). I totally agree about subtlety in design. ("I put the B in subtle" was my design motto.) To me, designs look "off" when the effects are too harsh.
David Myers | December 30, 2009 6:25 PM | Reply
Great article - I think a lot of designers don't think of relating to a 3d environment.
Dan Gayle | December 30, 2009 6:30 PM | Reply
Brilliant tutorial! I've been working on exactly this sort of thing, but 99% of "UI Tutorials" are about photoshop/fireworks techniques, rather than principles.
I tend to use Illustrator, since it allows me to use styles like you have set here, plus I can resize everything at will without distortion. An added plus is that you CAN add multiple strokes and fills.
Thanks!
TJ | December 30, 2009 6:46 PM | Reply
Great stuff. Just the kind of thing I was looking for
Kevin | December 30, 2009 7:09 PM | Reply
Awesome! That is the first time I have ever seen anybody write such an in-depth article centered around buttons.
Chris Wallace | December 30, 2009 7:21 PM | Reply
The day I learned this was the day I became a man- er, better designer. More people need to understand this fundamental approach to styling interfaces.
Abhin | December 30, 2009 7:27 PM | Reply
nice tutorial.... :)
Jeremy Olson | December 30, 2009 7:30 PM | Reply
Very, very helpful and down to earth. While I don't necessarily agree that "The underlying secret to [all] beautiful user interface design is realism"—I think other styles can work too—I do really like the realism style and found a lot of great tips in here. Thanks for putting this together!
kirkoconnor | December 30, 2009 7:50 PM | Reply
Simple and brilliant.
A great article for non-designers that have to add design to their work and need to know why some things done by professionals just seem to work so well.
Thanks for the .psd of the buttons too. It will help heeps in my learning curve.
Crystal | December 30, 2009 8:11 PM | Reply
Great detailed post. The 'realistic' user interface is perhaps one of my favorite looks, so this guide was very interesting and useful for me. I'd love more like it!
Joel Cipriano | December 30, 2009 8:33 PM | Reply
I think that I came close with this web site draft http://bit.ly/84O7Z3, but using "Inner Shadow" with noise, instead "Noise Filter".
Jason Robb | December 30, 2009 8:34 PM | Reply
Oh my, I could almost kiss you for writing this post. Thank you!
The reality is subtle section is pure gold. Drop shadows will ruin a design if they're not done right. Totally agree. Like lipstick on a pig.
Thanks again, Mike.
Cheers,
Jason R.
Chris O'Donnell | December 30, 2009 8:59 PM | Reply
This is simply awesome, sir. I figured either you or Andrew (or both!?) would post something like this eventually.
kuswanto | December 30, 2009 9:46 PM | Reply
Great explanation. Most of designer who never touch any UI related project are unaware about 3D leveling. They assume drops hadow is to make the button pretty, not to make the but more important and standout.
This article is shared :-)
Brandi | December 30, 2009 11:29 PM | Reply
This is so great that I had to comment. I'm usually just a lurker, taking in knowledge and nodding my head in quiet approval at the good stuff.....this required written props. Theory rocks...thanks. :)
Surfer Dude | December 30, 2009 11:47 PM | Reply
Great article set beautifully.. I am not a graphic artist and had to read it a couple of times. Good stuff!
Design Informer | December 30, 2009 11:52 PM | Reply
Great article Mike. Very useful. I'm really in awe of the way you explain this. Easy to understand.
This will be a very good resource for a lot of new designers. I'm definitely looking forward to reading more of your posts and I'm actually going through your archives now. I'm glad I discovered your site.
Ahmed Amanatullah | December 31, 2009 12:55 AM | Reply
Very nice article especially material and surface part.
--Ahmed
tim | December 31, 2009 1:20 AM | Reply
I love the line "Reality is subtle". I think that should have been informing my design all along, but now you've made it plain.
'Hoping to hear more from you in the future on UI design.
Max Scheer | December 31, 2009 3:38 AM | Reply
Man, that is extraordinary! Even for a designer :)
Keep up the good work and a good start for 2010!
Ben Bleikamp | December 31, 2009 4:13 AM | Reply
Great article, Mike.
I understood the concepts here for a long time before I bothered learning the formal vocabulary around them. I think a lot of designers are probably in the same boat. But understanding the craft is the only way to get better.
Also, I think the key take away for anyone reading this article could be boiled down to one word: subtlety. Great UI elements don't distract the user, they work together to provide a great experience.
John Cromartie | December 31, 2009 9:22 AM | Reply
This is great advice. I've been doing some of these things for a while now when building iPhone UI elements. My only gripe is that the design of the article itself is a bad example. Subtle inset text, while very nice for labels and headers, is not great for prose because it can get distracting in large quantities.
Programmer dude | December 31, 2009 11:21 AM | Reply
Excellent post, these might be simple designer stuff, but for a programmer like me these are all revelations.
fusion | December 31, 2009 11:57 AM | Reply
Interesting tute.
Wish I could find more on this.
Thanks for including .psd of the buttons too.
Pol Moneys | December 31, 2009 1:17 PM | Reply
thank you for the Real Life approach and for sharing your insights :)
Riyad Kalla | December 31, 2009 3:00 PM | Reply
For a gut that is dumb like asparagus when it comes to design this really demystified these cooler design elements for me. Great read.
Joel | December 31, 2009 3:35 PM | Reply
I've been admiring this kind of thing in interfaces all over for months, but I never realized why it looked so attractive. Now I know. Nice article.
mikes | December 31, 2009 4:45 PM | Reply
None of these sample interface elements actually look 'real'. The designers might have had a sense of the dynamics of light in illustration, but definitely nothing looks real here.
Real would be cool though.
ThisIsInspired | December 31, 2009 6:39 PM | Reply
I liked reading that - thanks for breaking it down using images to demonstrate what you're talking about. It really helps visualize the tips and identify them in practice.
Tom | January 1, 2010 5:24 AM | Reply
Very happy to see that the majority of my design techniques were reflected here, glad I was doing things the right way!
Raheel | January 29, 2010 5:18 PM | Reply
I really wish i knew all this. I have a very important medical iphone app release. But i'm pretty zero in custom interface designing!!!
Leave A Comment