The Current State of Web Design: Trends 2010
/> href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=56" target="_blank">
Web design is a fickle industry. Just like every other form of artistic expression, Web design has undergone a continuous and surprisingly fast evolution. Once a playground for enthusiasts, it has now become a mature rich medium with strong aesthetic and functional appeal. In fact, we are experiencing what could be the golden era of Web design — or at least the best period thus far. We have powerful new tools at our disposal (CSS3, HTML5, font-embedding, etc.), a plethora of freely available resources, a strong design community and also (if you needed any more!) reliable support of Web standards in the major browsers.
We’re seeing better interaction design and more aesthetically pleasing designs. And we’re seeing more personal, engaging and memorable sites, too. But what exactly is making the difference? What new directions is Web design heading in today? What new techniques, concepts and ideas are becoming important? In this article, we present some observations on the current state of Web design. We describe existing and upcoming trends and explain how Web design might evolve in the coming months and years. We’ll also touch on what we as Web designers should be ready for to keep abreast of new challenges and opportunities.
Please note: this article is the first in our series on the current state of web design. To make sure you don’t miss the second part, href="http://rss1.smashingmagazine.com/feed/">subscribe to our RSS feed and href="http://twitter.com/smashingmag">follow us on Twitter.
[By the way, did you know we have a brand new free href="http://www.smashingmagazine.com/the-smashing-newsletter/">Smashing Email Newsletter? Subscribe now and get fresh short tips and tricks on Tuesdays!]
1. Design For Delight
As designers, our job is to communicate ideas effectively. For every particular message, we create a context in which the message would work best, guiding users to achieving their tasks, gaining their trust or convincing them of whatever we’re communicating. Of course, there are endless ways to create this context. One of them is to design for visual aesthetics, surprise, joy, happiness — design for delight; design to be memorable and remarkable.
Attractive things work better and help focus and keep the user’s attention. Memorable design increases excitement for products and brands, leading to increased engagement. In fact, a strong, reliable emotional relationship between your clients and their audience could be the best thing that ever happens to your career.
href="http://www.brizk.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/hrzk.jpg" width="520" height="403" alt="Hrzk in The Current State of Web Design: Trends 2010" />
/>
href="http://www.brizk.com/">Brizk design studio has an aesthetically stunning design, with subtle animations, beautiful typography and a clean layout. When you hover over the red bird in the footer, a small Twitter box is revealed. First-class design that is a pure delight.
Although the vast majority of brands are still silent, passive and impersonal, we’ve observed more websites trying hard to engage our senses, whether through a strong aesthetic appeal, through witty animations in the content block or simply through a little extra attention to small design elements on the “About” page. Such designs are beautiful to look at, fun to navigate but, most importantly, memorable — for the simple reason that they are different. By adding delightful personal touches to your designs, you stand out from the crowd and give visitors something to talk about and share with friends and colleagues. And that’s a good start.
You can elicit delight in a variety of settings: on your maintenance mode page, on the 404 error page, in your pre-loader, and everywhere else. The idea is to surprise visitors by giving them something pleasant to talk about.
href="http://www.bountybev.com/home.html">Bounty Bev
/> Bounty Bev is a beverage company with a beautiful one-page design. Apart from its subtle hover effects and animations, the website has some nice extras: if you scroll down the page manually with the mouse wheel, a small pop-up appears asking you if you need a lift. The typography is strong and memorable, and the design is playful. Simple, clear and personal, the website leaves a strong positive impression.
href="http://www.bountybev.com/home.html">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/bounty.jpg" width="520" height="399" alt="Bounty in The Current State of Web Design: Trends 2010" />
href="http://analog.coop/">Analog.coop
/> Analog provides a very personal experience to visitors. When you visit the page, it displays where you are located and tells you the members of the team who are closest to you (in our case, Alan and Jon, who are about 500 miles away in Bristol). The website has a couple of nice Easter eggs that are not visible at first glance. You might want to play around with the header and the photos of team. The page is just fun to explore.
href="http://analog.coop/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/analog2.jpg" width="520" height="340" alt="Analog2 in The Current State of Web Design: Trends 2010" />
href="http://analog.coop/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/analog.jpg" width="520" height="496" alt="Analog in The Current State of Web Design: Trends 2010" />
href="http://forrst.com/">Forrst
/>Beautiful design with attractive visual elements and original navigation — a design that manages to make a good lasting impression. Notice how the background of the upper area of the page changes when the browser window is resized (Parallax-effect). The “log in”-box is quite cool, too. Surprisingly, the form is built with tables for some reason.
href="http://forrst.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/forst.jpg" width="520" height="423" alt="Forst in The Current State of Web Design: Trends 2010" />
href="http://billytamplin.com/">Billy Tamplin
/> On his blog, Billy Tamplin focuses on the small victories in his life. Each post records a personal achievement, displaying a custom-designed merit badge and an explanation of the conquest. Billy uses this metaphor throughout the website, speaking of “super Web abilities” (Agile CSS, PHP-prepared, IE6-reinforced, etc.) and “heroic design strengths” (human-friendly aim, keen creative detail, etc.). He also has a personal portfolio on the website. Notice how well the color scheme fits the theme. The design is simple and beautiful, and the “achievement” twist is unusual and memorable.
href="http://billytamplin.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/billy.jpg" width="520" height="405" alt="Billy in The Current State of Web Design: Trends 2010" />
href="http://visitmix.com/">MIX
/> MIX labs, a community blog for designers and Web developers, doesn’t have hidden features, appealing animations or striking hover effects. Instead, it has a consistent, visually appealing design: can you spot where and how often colorful circles are repeated throughout the website? The design emphasizes the content and has a personal touch. Simply beautiful.
href="http://visitmix.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/mixlabs.jpg" width="520" height="460" alt="Mixlabs in The Current State of Web Design: Trends 2010" />
href="http://www.blueskyresumes.com/about-us/#our-team">Blue Sky Resumes
/> This website of a small team of resume writers has a couple of nice unusual extras in the design: the header contains a Flash-based cloud animation that perfectly fits the branding of the company. The website also has subtle animations and soft hover effects. And the “About” page introduces each co-worker in a quite original and memorable way.
href="http://www.blueskyresumes.com/about-us/#our-team">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/whoare.jpg" width="520" height="462" alt="Whoare in The Current State of Web Design: Trends 2010" />
href="http://www.mailchimp.com">Mailchimp
/> MailChimp heavily incorporates the monkey metaphor in all aspects of its design. To inform customers of recent updates, Mailchimp present an ASCII animation that tells the user something is happening in the background; this nice detail is surprising yet unobtrusive. The company also uses personal, friendly and perhaps occasionally geeky language when addressing user needs. This is the part of the image that MailChimp thoughtfully preserves in its Web application.
href="https://login.mailchimp.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/mailchimp2.jpg" width="520" height="330" alt="Mailchimp2 in The Current State of Web Design: Trends 2010" />
href="http://www.mailchimp.com">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/mailchimp.jpg" width="520" height="254" alt="Mailchimp in The Current State of Web Design: Trends 2010" />
/>
href="mailchimp-large.jpg">Large version
Further Reading
-
href="http://52weeksofux.com/post/531355592/design-for-delight">52 Weeks of UX: Design for Delight
/> This article explains the importance of designing for delight and features some websites that try to engage the user’s senses. -
href="http://www.alistapart.com/articles/indefenseofeyecandy">In Defense of Eye Candy
/> Research proves that attractive things work better. How we think cannot be separated from how we feel. The next time a boss, client or co-worker scoffs at the notion that beauty is important to interface design, point their peepers here. -
href="http://www.drawar.com/articles/looks-matter-because-we-all-have-feelings/89/">Looks Matter Because We All Have Feelings
/> Discusses the importance of emotions and aesthetics in design.
2. Keypress Navigation
As designers try to make their designs more intuitive, it is no surprise that websites are becoming more responsive. Not only does this apply to user interfaces in modern Web applications (which are becoming as robust as desktop applications — and often smarter), but with the wide adoption of JavaScript libraries, “classic” websites are becoming more robust and interactive, too. One way to make websites more responsive is through “keypress navigation,” which hasn’t been widely adopted so far. But lately we’ve observed more designs implementing this effectively. The most popular setting for such navigation is on photo websites such as Flickr or FFFFound.
The general idea is to give users keyboard shortcuts that help them perform tedious tasks, such as navigating between blog posts, moving through images in a slideshow, changing the current view (e.g. from a horizontal to vertical grid), liking articles and navigating between sections of a website. Keypress navigation is common in Flash-based designs, but we are now seeing it applied to CSS-based designs, too. href="http://www.google.com/support/reader/bin/answer.py?hl=en&answer=69973">Google Reader is a prime example of advanced keypress navigation, but other websites have good implementations, too.
href="http://theymakeapps.com/">They Make Apps
/> A couple of months ago, They Make Apps began offering users smooth and advanced keyboard navigation as an alternative to classic scrolling. Users could switch between both modes using a drop-down menu in the main navigation of the page. In “keyboard navigation mode,” users used the arrow keys to navigate between content blocks; the “Return” key triggered the detailed view and “Escape” returned to the main page. For some reason, this navigation isn’t available any longer.
href="http://theymakeapps.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/theymakeapps.jpg" width="345" height="329" alt="Theymakeapps in The Current State of Web Design: Trends 2010" />
/>
href="http://patterntap.com/tap/pattern/15201274774b7e32624d0a6">Image source
href="http://mad-ar.ch/">Mad-ar.ch
/> Marc Anton Dahmen’s website is Flash-based, and its navigation is quite advanced: users can jump to the contact form with “c,” scale images with “-” and “+,” and then navigate and sort images and scroll through text with the vertical arrow keys.
href="http://mad-ar.ch/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/state-01.jpg" width="520" height="351" alt="State-01 in The Current State of Web Design: Trends 2010" />
/>
href="http://patterntap.com/tap/pattern/15201274774b7e32624d0a6">Image source
href="http://9gag.com/">9GAG
/> 9GAG is a social image bookmarking website. Users can navigate to the next and previous image using “j” and “k,” respectively. The current image can be voted up using “l” (for love): no mouse scrolling necessary. In this case, a shortcut to the grid view would be useful, too.
href="http://9gag.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/9gag.jpg" width="520" height="481" alt="9gag in The Current State of Web Design: Trends 2010" />
href="http://ffffound.com/">FFFFound!
/> One of the first social image bookmarking websites, FFFFound offers shortcuts to jump to the top of the page (“h”), change the view of the images (“v”), browse images (“k” and “j”) and skip to the next page (“l”).
href="http://ffffound.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/ffffound.jpg" width="520" height="425" alt="Ffffound in The Current State of Web Design: Trends 2010" />
href="http://www.feta.pl/">Feta
/> Yet another Flash-based website that lets you use the left and right arrow keys to browse items of a section, the down key to select and the up key to go back.
href="http://www.feta.pl/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/feta.jpg" width="520" height="426" alt="Feta in The Current State of Web Design: Trends 2010" />
href="http://www.nytimes.com/timesskimmer/">NY Times: Times Skimmer
/> The New York Times’ quick overview page has very advanced keypress navigation. Users can use the arrows to navigate sections, zoom in using “Shift,” return to the top with “t,” refresh the current section with “r” and select article using “a” and the arrows. Learning the keys is a bit time-consuming, but once you’ve got them, navigating the page is much easier.
href="http://www.nytimes.com/timesskimmer/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/nytimes.jpg" width="520" height="484" alt="Nytimes in The Current State of Web Design: Trends 2010" />
href="http://www.pictorymag.com/">Pictory
/> PictoryMag, a magazine dedicated to photo stories, also has “j” and “k” navigation to browse images.
href="http://www.pictorymag.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/pictory.jpg" width="520" height="435" alt="Pictory in The Current State of Web Design: Trends 2010" />
href="http://crushlovely.com/">CrushLovely
/> CrushLovely, a single-page portfolio, lets you use the arrow keys to navigate sections of the page.
href="http://crushlovely.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/crushlovely.jpg" width="520" height="378" alt="Crushlovely in The Current State of Web Design: Trends 2010" />
href="http://www.thinkingforaliving.org/">Thinking for a Living
/> Thinking for a Living lets users use the left and right arrows to navigate between featured quotes.
href="http://www.thinkingforaliving.org/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/thinkingforaliving.jpg" width="520" height="425" alt="Thinkingforaliving in The Current State of Web Design: Trends 2010" />
href="http://www.ivanferreiro.es/">Picnic Extraterrestre
/> Aside from being one of the most unusual designs we’ve seen so far, Iván Ferreiro’s Picnic Extraterrestre has quite advanced keypress navigation. The design imitates Teletext and does a pretty good job. All navigation items can be loaded using the digits shortcuts. Now that’s fun!
href="http://www.ivanferreiro.es/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/picnic.jpg" width="520" height="345" alt="Picnic in The Current State of Web Design: Trends 2010" />
Coding Techniques and Tutorials
Note that when implementing keypress navigation in your design, make sure that the shortcuts you define do not conflict with common browser shortcuts, OS shortcuts, screen-reader shortcuts or user-defined shortcuts. This may sound simpler than it is. As usual, extensive testing (with savvy and novice users) before implementation will help you find issues with your shortcuts. It’s safe to assume that the arrow keys, the “j” and “k” combination and the “Escape” key are safe. On the other hand, using the “Control,” “Alt” and “Shift” keys is not recommended.
Also, regard keypress navigation as an additional (and therefore optional) feature that will not be available to users who have disabled JavaScript in their browsers. Therefore, it is highly recommended that you offer keyboard navigation as a secondary, not primary, layer of navigation. Below, you’ll find some helpful techniques, tutorials and references for implementing keypress navigation in your designs.
-
href="http://jqueryfordesigners.com/adding-keyboard-navigation/">Adding Keyboard Navigation with jQuery
/> This screencast describes how to implement keyboard navigation to move a slider backwards and forwards. The demo and code are available as well. -
href="http://net.tutsplus.com/javascript-ajax/how-to-create-a-keypress-navigation-using-jquery/">How to Create Keypress Navigation Using jQuery
/> This tutorial describes how to implement keypress navigation to browse sections of the website. -
href="http://www.marcofolio.net/webdesign/advanced_keypress_navigation_with_jquery.html">Advanced Keypress Navigation with jQuery
/> You could use your mouse to select links, but you can also use the arrow keys (i.e. up and down) to navigate the list. This script is a bit advanced because of the extra functionality when the user combines the mouse hover and key presses. -
href="http://www.catswhocode.com/blog/using-keyboard-shortcuts-in-javascript">Using Keyboard Shortcuts in JavaScript
/> In this article, you’ll learn how to use JavaScript keyboard shortcuts, with and without the JQuery framework. -
href="http://designshack.co.uk/articles/accessibility/how-to-build-a-site-with-keyboard-navigation-psd-to-html">How to Build a Site With Keyboard Navigation: PSD to HTML
/> This article looks at how to add keyboard navigation to a website using a few simple lines of JavaScript. First, you’ll create a simple theme in Photoshop and then transform it into a working website that offers keyboard functions to jump pages.
Plug-Ins and Useful Resources
-
href="http://code.google.com/p/js-hotkeys/">js-hotkeys: Cross-Browser Javascript jQuery Plug-In for Hooking Keyboard Events
/> The jQuery.Hotkeys plug-in lets you easily add and remove handlers for keyboard events anywhere in your code, and it supports almost any key combination. Binding and unbinding a hot-key combination takes one line of code. -
href="http://mike-hostetler.com/jquery-keyboard-navigation-plugin">jQuery Keyboard Navigation Plug-In
/> The jQuery Keyboard Navigation plug-in provides the capability for page elements to be navigated and activated via the keyboard’s arrow keys. -
href="http://livepipe.net/extra/hotkey">HotKey: Programmable Keyboard Shortcuts with Prototype JS Library
/> HotKey provides functionality similar to that of the access key attribute but has many enhancements that allow for more granular control of keyboard-driven interfaces. -
href="http://www.quirksmode.org/js/keys.html">Detecting Key Strokes: Reference Table
/> Detecting the user’s key strokes turns out to be a specialized branch of event handling. This page details some of the more annoying problems and includes the obligatory compatibility table.
3. Print Design Influence
While designing for delight is primarily about impressing visitors with unexpected and pleasing touches to a design, modern Web designers often go one step further and experiment with the underlying details of their work, producing more creative and unique layouts. In fact, one doesn’t have to be an expert to see the growing influence of traditional print design techniques on the Web. They are often manifested in so-called “art-directed” blog posts (or “blogazines”), whereby every blog post has a unique and carefully crafted design.
The layouts of these websites often resemble those of print magazines or posters, with striking headlines, multi-column text, highlighted quotations, indented text, supporting imagery, sidenotes and footnotes. The designs usually adhere to grids and have strong, vivid typography.
href="http://designinformer.com/grid-based-web-design-simplified/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/grid.jpg" width="520" height="534" alt="Grid in The Current State of Web Design: Trends 2010" />
/>
href="http://designinformer.com/grid-based-web-design-simplified/">Design Informer: Grid-Based Web Design, Simplified has a simple clean two-column layout that clearly separates text from illustrations. Notice the capital letters in the author’s name under the header, also visible in the quote design on the page. The content here dictates the layout.
In most cases, art-directed designs are fueled purely by the ambition and determination of their creators. Such designs are predominantly found on freelance websites (being the fruit of personal projects) and rarely found in corporate settings. The main obstacle to wider adoption of these techniques is that the creation of such designs (or rather their implementation with (X)HTML and CSS) is time-consuming. Art-directed layouts are quite difficult to code and maintain, and they often require inline CSS styling, or else designers would end up with dozens of un-semantic classes in their style sheets. Also, integrating advertisements on these pages is difficult because they put constraints on the designer’s layout. So, at the moment, these designs are more appropriate for less frequently updated websites because of the overhead.
If you decide to experiment with art-directed design, be aware that the layout of an article should be secondary and always support the content itself, not dominate it. The problem is that once you start designing a blog post, it’s easy to overdesign page elements just because you can, not because the content dictates it. In fact, the design community is having an ongoing debate on whether art-directed designs are merely “ href="http://www.drawar.com/articles/the-super-freaking-amazing-future-trend-of-blogs/162/">over-Photoshopped articles,” designed purely for the sake of design.
Good design is about effective communication, not decoration at the expense of legibility. As Francisco Inchauste puts it, “I think it’s a ‘pick two’ sort of scenario. The choices are: great content, great art direction and regular schedule. If you try to hit all three, one of those will begin to fall short.” Bottom line: Web designs that are heavily influenced by print design are beautiful, but only when the techniques support your article.
href="http://themanyfacesof.com/alan-rickman/">A Lesson on How to Be a Villain
/> A colorful and nicely illustrated article in a unique layout. Notice something unusual? The design has a table-based layout. The design has a CSS-layout with tabular data for the actual info-graphic bits. Sometimes that’s necessary for art-directed designs.
href="http://themanyfacesof.com/alan-rickman/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/faces.jpg" width="520" height="450" alt="Faces in The Current State of Web Design: Trends 2010" />
href="http://evandinsmore.ca/ideas/twentyone">Evan Dinsmore: 21
/> A poster design for the Web. This blog post is simple, and it replaces tired plain text with vivid images. But that can be a disadvantage, too: a text-based version would be more user-friendly here.
href="http://evandinsmore.ca/ideas/twentyone">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/evan.jpg" width="520" height="885" alt="Evan in The Current State of Web Design: Trends 2010" />
href="http://thebolditalic.com/AndreasTrolf/stories/159-dr-feelgood">The Bold Italic: Dr. Feel Good
/> A very impressive magazine-like layout, with multiple columns, imagery, headlines and a sidebar. If you had only seen this page printed out, you wouldn’t have recognized it as a Web design. The page has 40 div containers.
href="http://thebolditalic.com/AndreasTrolf/stories/159-dr-feelgood">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/drfeelgood.jpg" width="520" height="1346" alt="Drfeelgood in The Current State of Web Design: Trends 2010" />
href="http://www.awayback.com/revised-font-stack/">A Way Back: Revised Font Stack
/> A very long, detailed and elaborate design. In art-directed designs, including this one, large images are often used to push the boundaries of the layout. Such images are often 800 to 1000 pixels wide, filling the width of the entire layout.
href="http://www.awayback.com/revised-font-stack/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/revised.jpg" width="520" height="534" alt="Revised in The Current State of Web Design: Trends 2010" />
href="http://chriscoyier.net/2009/12/15/the-safari-challenge/">Chris Coyier: The Safari Challenge
/> Here is a subtler design, with big margins, multiple columns of text, footnotes and indented headings. From an aesthetic point of view, it could be a page from a book.
href="http://chriscoyier.net/2009/12/15/the-safari-challenge/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/safari.jpg" width="520" height="764" alt="Safari in The Current State of Web Design: Trends 2010" />
href="http://kylefiedler.com/articles/keeping-curious/">Kyle Fielder: Keeping Curious
/> A classic. Do you remember those old magazines that used big quotes and visuals to create text flow? Notice how well this headline and colophone are positioned in the question mark. A nice, simple, original design.
href="http://kylefiedler.com/articles/keeping-curious/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/kyle.jpg" width="520" height="439" alt="Kyle in The Current State of Web Design: Trends 2010" />
href="http://www.sleepoversf.com/a-critical-analysis-of-my-shoes/">Sleepover: A Critical Analysis of my Shoes
/> A simple grid-based design with justified text, serif typography and nice shoe illustrations. Unfortunately, justified text still doesn’t look very good on the Web.
href="http://www.sleepoversf.com/a-critical-analysis-of-my-shoes/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/shoes.jpg" width="520" height="554" alt="Shoes in The Current State of Web Design: Trends 2010" />
href="http://yaronschoen.com/blog/too_many_buttons">Yaron Schoen: Too Many Buttons
/> Sometimes art-directed blog posts require something slightly more: like a background image and bakground color, as well as a bit of CSS styling. This examples demonstrates exactly that.
href="http://yaronschoen.com/blog/too_many_buttons">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/yaron2.jpg" width="520" height="581" alt="Yaron2 in The Current State of Web Design: Trends 2010" />
href="http://thebolditalic.com/hanahsnavely/stories/207-keep-off-the-grass">The Bold Italic: Keep Off the Grass
/> Another remarkable example of multi-column-layouts…
href="http://thebolditalic.com/hanahsnavely/stories/207-keep-off-the-grass">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/keep.jpg" width="520" height="902" alt="Keep in The Current State of Web Design: Trends 2010" />
href="http://thebolditalic.com/Kornlock/stories/185-cinderella-story-day-one">The Bold Italic: Cinderella Story
/> … and another one. Print-design inspiration at its best.
href="http://thebolditalic.com/Kornlock/stories/185-cinderella-story-day-one">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/cinderella.jpg" width="520" height="1160" alt="Cinderella in The Current State of Web Design: Trends 2010" />
href="http://travisneilson.com/thought/default-switch/">Travis Neilson: Default Switch
/> A calm, simple, clean design with custom headings.
href="http://travisneilson.com/thought/default-switch/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/travis.jpg" width="520" height="694" alt="Travis in The Current State of Web Design: Trends 2010" />
Further Reading
- href="http://www.drawar.com/articles/the-super-freaking-amazing-future-trend-of-blogs/162/">The Super Freaking Amazing Future Trend of Blogs
-
href="http://www.smashingmagazine.com/the-death-of-the-blog-post/">The Death of the Boring Blog Post?
/> An article about art-directed designs from here on Smashing Magazine. - href="http://jasonsantamaria.com/articles/a-new-day/">Jason Santa Maria Talks About His Rethinking
- href="http://wordpress.org/extend/plugins/art-direction/">WordPress Art Direction Plug-In
- href="http://wordpress.org/extend/plugins/wp-post-styling/">WordPress Post Styling Plug-In
- href="http://github.com/ionfish/designate/">WordPress Designate Plug-in
- href="http://vimeo.com/4394152">Jason Santa Maria: The Influence of Print Design
-
href="http://www.heartdirected.com">HeartDirected
/> A gallery of art-directed designs. -
href="http://www.coldheat.de/uniques">Unique Article Designs
/> Another gallery of art-directed designs.
4. Horizontalism
Over the last year, we’ve observed a slow transformation in the orientation of text-heavy Web designs. Not only are designs gaining depth and realism, but navigation is changing as well. Some designers are augmenting traditional vertical scrolling with sliding navigation (like href="http://www.bountybev.com/">here), which usually scrolls in both a vertical and horizontal direction, or even pure horizontal scrolling. This is called “horizontalism.”
Websites with horizontal scroll bars have been more difficult to navigate because the mouse was designed for vertical scrolling. But the emergence of multi-touch devices forces us to rethink the usability concerns of such designs. After all, whether the user browses vertically or horizontally on such a device doesn’t really make a difference. And some plug-ins (like href="http://flowplayer.org/tools/scrollable.html">Scrollable and href="http://threeformed.com/blog/jscrollhorizontalpane/">jScrollHorizontalPane) simplify the action by enabling users to navigate horizontally by using the standard vertical scroll wheel on the mouse, thus shrinking the learning curve.
Horizontal scroll bars have been out there for a decade, but today it feels that they are gaining a new context. The move to horizontal scroll bars is probably an attempt among some designers to provide a more distinct user experience. Such designs are usually carefully crafted and found primarily on portfolio websites and elaborate e-commmerce websites. Whether horizontalism will expand to more types of websites remains to be seen in the months to come.
href="http://www.thinkingforaliving.org/archives/5469">Thinking for a Living
/> Not only does this article discuss the advantages and disadvantages of horizontalism with regard to readability, but it also has a nice horizontal layout itself, with multiple text columns. While the orientation is unusual at the first sight, reading the post is quite pleasing and comfortable.
href="http://www.thinkingforaliving.org/archives/5469">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/oneway.jpg" width="520" height="369" alt="Oneway in The Current State of Web Design: Trends 2010" />
href="http://www.ourtype.com">OurType
/> A belgian type foundry with horizontal Flash-based navigation. Content blocks slide horizontally.
href="http://www.ourtype.com">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/ourtype.jpg" width="520" height="368" alt="Ourtype in The Current State of Web Design: Trends 2010" />
href="http://www.jvm-neckar.de/#/?ps=1&pd=0&mt=getdataflow">Jung v. Matt
/> This website has a horizontal timeline for navigation. Notice that there is no horizontal scroll bar; visitors use the vertical scroll wheel to navigate horizontally.
href="http://www.jvm-neckar.de/#/?ps=1&pd=0&mt=getdataflow">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/inno.jpg" width="520" height="370" alt="Inno in The Current State of Web Design: Trends 2010" />
href="http://www.yourauxiliary.com/">Your Auxillary
/> One of many so-called “single-page layouts.” The full content of these websites is on a single page, which is navigated using either the keyboard, the mouse or a menu (this website uses the third option). Here we have a good (and common) combination of vertical and horizontal navigation (showing the
href="http://plugins.jquery.com/project/ScrollTo">jQuery ScrollTo plug-in in action).
href="http://www.yourauxiliary.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/many.jpg" width="520" height="370" alt="Many in The Current State of Web Design: Trends 2010" />
href="http://www.onetwentysix.com/">One Twenty Six
/> This portfolio has a different kind of horizontal navigation. Apart from “Previous” and “Next” buttons, the user also gets an overview of selected content in a drop-down menu. Once they select an option, the page scrolls horizontally. Horizontal navigation with the mouse wheel would probably improve this design’s usability.
href="http://www.onetwentysix.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/126.jpg" width="520" height="277" alt="126 in The Current State of Web Design: Trends 2010" />
href="http://jaxvineyards.com/#/chardonnay">Jax Vineyards
/> This wine store website has interesting and unique horizontal navigation, which is triggered when you browse the wine catalogue. Both the background image and description of the wine slide horizontally. Simple CSS and JavaScript are used. A beautiful and impressive design.
href="http://jaxvineyards.com/#/chardonnay">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/wine.jpg" width="520" height="477" alt="Wine in The Current State of Web Design: Trends 2010" />
href="http://www.clholloway.co.za/">C. L. Holloway
/> Candice Holloway’s portfolio has a nice take of horizontal layout. Her artwork is placed on a “wall”; horizontal navigation is used as a metaphor for strolling an art gallery. Also interesting: scrolling is triggered when your mouse hovers over the horizontal arrows; no clicking necessary.
href="http://www.clholloway.co.za/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/african.jpg" width="520" height="357" alt="African in The Current State of Web Design: Trends 2010" />
href="http://www.yamaha.co.jp/yamahaginza/">Yamaha Ginza
/> You’ll find that designers experiment with perspective. Sometimes the orientation is diagonal…
href="http://www.yamaha.co.jp/yamahaginza/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/yamaha.jpg" width="520" height="370" alt="Yamaha in The Current State of Web Design: Trends 2010" />
href="http://www.edpeixoto.com/">Edpeixoto
/> … and sometimes the layout just hangs in the air…
href="http://www.edpeixoto.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/flavors.jpg" width="520" height="453" alt="Flavors in The Current State of Web Design: Trends 2010" />
href="http://www.asosplc.com/">ASOS
/> … and sometimes it’s slanted. Notice how none of the elements have perpendicular lines.
href="http://www.asosplc.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/asos.jpg" width="520" height="438" alt="Asos in The Current State of Web Design: Trends 2010" />
Further Reading
- href="http://www.thinkingforaliving.org/archives/5469">Horizontalism and Readability
-
href="http://www.devlounge.net/friday-focus/friday-focus-041610-slanted">Friday Focus: Slanted Web Design
/> A showcase of designs that tilt to one side and avoid perpendicular lines. - href="http://line25.com/articles/horizontally-scrolling-websites-showcase-and-tutorials">Horizontally Scrolling Websites: Showcase and Tutorials
-
href="http://plugins.jquery.com/project/ScrollTo">jQuery ScrollTo Plug-In
/> This plug-in lets users scroll through overflowing elements and the screen itself. You get many different customization options and various ways to specify the direction in which to scroll.
5. Rich, Strong Typography
Typography has played a major role in Web design for years now. Bold, strong, heavy headlines can effectively convey the purpose of an e-commerce website or portfolio, while subtler headings help structure content and improve legibility. Obviously, the big change we’re seeing today is richer, more versatile typography, partly made possible by the @font-face attribute and the emergence of font-embedding services such as TypeKit. Rich typographic elements can now be selected and copied from the browser, which wasn’t that easy a couple of years ago.
The future is big, bold and typographic. Rich font families will be used not only for headlines but for body copy, bringing typographic practices from print over to the Web. Also, designers will experiment more with rich, sophisticated
href="http://www.webdesignerwall.com/trends/the-next-serif-trend/">serif fonts and bold, imposing
href="http://webdesignledger.com/tips/web-design-trends-for-2010">slab fonts, supported by subtle imagery. Web designers are also adding more depth to typography with the text-shadow attribute in CSS3. Naturally, such subtleties are closely tied to the choice of layout. These typographic designs are often grid-based and borrow techniqes from print design, such as sidenotes and footnotes.
We’ve further noticed that designers are extending their font stacks, adding increasingly more fall-back fonts in case a specified font is not available. That’s fine, as long as the aspect ratios (or weights) of the fonts are not too different; some screen fonts will appear wider or taller than other fonts and hence have a larger aspect ratio, which means that some users would see your pages at a much smaller font size than others would. You might want to read more about CSS font stacks in href="http://www.maxdesign.com.au/articles/font-stacks/">Russ Weakley’s presentation.
href="http://kilianmuster.com/">Kilian Muster
/> Kilian Muster uses quite an extended serif font stack for his design: font-family: Palatino, "Palatino Linotype", "Book Antiqua", Constantia, Times, "Times New Roman", serif;. The posts in Kilian’s blog also have sidenotes.
href="http://kilianmuster.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/kilian.jpg" width="520" height="378" alt="Kilian in The Current State of Web Design: Trends 2010" />
href="http://www.fajnechlopaki.com/">extrapolish
/> Notice that the text on this website of a Polish Web design agency is set mostly in capitals: the navigation menu, introductory text and even contact address are in full capitals. Yet the design is calm, clean and polished.
href="http://www.fajnechlopaki.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/extra.jpg" width="520" height="328" alt="Extra in The Current State of Web Design: Trends 2010" />
href="http://www.dnadarwin.org/">DNA to Darwin
/> This website has only serif fonts throughout its design: font-family: "skolar-1","skolar-2", Georgia, Times, serif;. Notice that the text is split into columns; we didn’t see this last year.
href="http://www.dnadarwin.org/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/dna.jpg" width="520" height="405" alt="Dna in The Current State of Web Design: Trends 2010" />
href="http://ok.cogaoke.com/teaser/">COG’AOKE
/> Again, huge, bold slab typography that makes a strong impression and engages the audience.
href="http://ok.cogaoke.com/teaser/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/cog.jpg" width="520" height="435" alt="Cog in The Current State of Web Design: Trends 2010" />
href="http://trufcreative.com/wtf-is-truf/">TRÜF
/> This design agency combines a bold color choice with concise, equally bold sans-serif typography.
href="http://trufcreative.com/wtf-is-truf/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/truf.jpg" width="522" height="461" alt="Truf in The Current State of Web Design: Trends 2010" />
href="http://www.pieoneers.com/technologies">Pioneers
/> This website combines vivid imagery and playful typography. The design looks more like a brochure or poster than a “classic” Web page.
href="http://www.pieoneers.com/technologies">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/pioneer.jpg" width="520" height="395" alt="Pioneer in The Current State of Web Design: Trends 2010" />
href="http://colly.com/">Colly
/> Simon Collison’s subtle attention to the tiniest details make the typography literally stand out. No bold, screaming typography here; just legible, aesthetically pleasing design.
href="http://colly.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/simon.jpg" width="520" height="476" alt="Simon in The Current State of Web Design: Trends 2010" />
href="http://www.saintjohnsbible.org/">The Saint John’s Bible
/> This website shows serif fonts at their best. The fonts complement the theme and fit the layout perfectly. Notice how well a beautiful visual design and classic typography can work together.
href="http://www.saintjohnsbible.org/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/bible.jpg" width="520" height="391" alt="Bible in The Current State of Web Design: Trends 2010" />
href="http://terminalbrewhouse.com/about">Brewhouse
/> A nice combination of type and visuals make this page remarkable. But it’s not clear why the page has three different typefaces for the headings; two would be enough.
href="http://terminalbrewhouse.com/about">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/brewhouse.jpg" width="520" height="404" alt="Brewhouse in The Current State of Web Design: Trends 2010" />
href="http://www.chris-armstrong.com/ticktalk/">Tick Talk
/> Can this get any bolder? Big bold typography, with capital letters spread across the whole page. When scrolling the page, notice the nice background effect. A very simple and strong design.
href="http://www.chris-armstrong.com/ticktalk/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/tick.jpg" width="520" height="480" alt="Tick in The Current State of Web Design: Trends 2010" />
href="http://www.sewweekly.com/">The Sew Weekly
/> This blog has very playful, inviting typography (Proxima Nova for the body copy and Coquette for headlines), and all of it can be easily selected and copied. This is the power of embedded fonts (TypeKit is used here). Only serif fonts are used: font-family: "skolar-1","skolar-2", Georgia, Times, serif;. Notice the text is split into columns — again, a trend we’ve seen only this year.
href="http://www.sewweekly.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/sew.jpg" width="520" height="400" alt="Sew in The Current State of Web Design: Trends 2010" />
href="http://neimangroup.com/">Neiman Group
/> The Neiman Group incorporates its brand colors into the navigation and headline of the front page. The typography is light and classic and gives the page a certain atmosphere.
href="http://neimangroup.com/">
src="http://79.125.120.209/cdn_smash/wp-content/uploads/2010/05/villanova.jpg" width="520" height="450" alt="Villanova in The Current State of Web Design: Trends 2010" />
Conclusion
Modern Web design is better, richer and more user-friendly. We’re seeing better use of visual design for the sake of aesthetics and a pleasing user experience. Traditional techniques from print design are increasingly being applied to the Web, be they layout techniques or rich versatile typography. Horizontal and even diagonal orientations bring a fresh perspective to the flat 2-D designs we’ve seen for years (with their text-heavy, Flash-based pages).
These developments are a sign of the upcoming era of Web design, in which designers can use new tools and techniques to their fullest potential. Web designers should look forward to the exciting and promising years to come.
Stay Tuned!
This article is the first in our series on the current state of web design. Next time, we’ll discuss other developments, such as adaptive and interactive layouts, CSS3 adoption, beauty in chaos, subtle interactivity, context-sensitive navigation and over-designed design. To make sure that you don’t miss the second part, href="http://rss1.smashingmagazine.com/feed/">subscribe to our RSS feed and href="http://twitter.com/smashingmag">follow us on Twitter.
(al)
/>
© Vitaly Friedman for
href="http://www.smashingmagazine.com">Smashing Magazine, 2010. |
href="http://www.smashingmagazine.com/2010/05/04/web-design-trends-2010/">Permalink |
href="http://www.smashingmagazine.com/2010/05/04/web-design-trends-2010/#comments">106 comments |
title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://www.smashingmagazine.com/2010/05/04/web-design-trends-2010/&title=The Current State of Web Design: Trends 2010">Add to del.icio.us |
title="Bookmark in Digg" href="http://digg.com/submit?phase=2&url=http://www.smashingmagazine.com/2010/05/04/web-design-trends-2010/">Digg this |
title="Stumble on StumbleUpon" href="http://www.stumbleupon.com/submit?url=http://www.smashingmagazine.com/2010/05/04/web-design-trends-2010/">Stumble on StumbleUpon! |
title="Tweet us!" href="http://twitter.com/home?status=@tweetmeme%20@smashingmag%20Reading%20'The Current State of Web Design: Trends 2010' http://www.smashingmagazine.com/2010/05/04/web-design-trends-2010/">Tweet it! |
title="Bookmark in Reddit" href="http://reddit.com/submit?url=http://www.smashingmagazine.com/2010/05/04/web-design-trends-2010/">Submit to Reddit |
href="http://forum.smashingmagazine.com/">Forum Smashing Magazine
Post tags:
href="http://www.smashingmagazine.com/tag/2010/" rel="tag">2010,
href="http://www.smashingmagazine.com/tag/trends/" rel="tag">trends
View full post on Smashing Magazine Feed


We love beautiful typography, and we appreciate the efforts of designers who come up with great typographic techniques and tools or who just share their knowledge with fellow designers. We are always looking for such resources. We compile them, carefully select the best ones and then prepare them for our round-ups. And now it’s time to present a beautiful fresh dose of typography-related resources.
To help you improve the typography in your designs, we’re presenting here useful new articles, tools and resources related to typography. You will learn the fundamentals of typography, find out how to combine fonts and know what to keep in mind when choosing a typeface. We also present typography-related slideshows, glossaries, layouts and experiments.
You may be interested in the following related posts:
[Offtopic: by the way, did you know that Smashing Magazine has one of the most influential and popular Twitter accounts? Join our discussions and get updates about useful tools and resources — follow us on Twitter!]
Typography: References and Useful Resources
The Taxonomy of Type
This article’s purpose is to help us as designers to distinguish basic properties of types. It explains the type classification and provides examples of each type. Short, but nice article.
Typedia: A Shared Encyclopedia of Typefaces
Typedia is a resource to classify, categorize, and connect typefaces. It is a community website to classify typefaces and educate people about them, very much like a mix between IMDb and Wikipedia, but just for type. Anyone can join, add, and edit pages for typefaces or for the people behind the type.
Typeface Anatomy and Glossary
Many fonts have abbreviations in their names. Some relate to glyph sets and font formats, others to design traits and foundries, and so on. A comprehensive list of these abbreviations and their explanation can be found in The Abbreviated Typographer from Unzipped.
Typographic Marks Unknown
There are many typographic marks which are familiar to most, but understood by few. Most of these glyphs have interesting histories and evolutions as they survived the beatings given to them through rushed handwriting of scribes and misuses through history. They now mostly live on our keyboards and in our software, and a few are used often, so it seems only fitting to know where they come from and how to correctly use them.
Periodic Table of Typefaces
A reference table for most popular typefaces and their classifications.
Fonts for iPad & iPhone
This reference table features all fonts that are available on iPhone, iPod Touch and iPad.
Font Anatomy (Wallpaper)
A nice overview of all typographic terms and subtleties. Do you know what an ‘arm’ or ‘beak’ is? Time to find out.
Typographic Rules Checklist (PDF)
Useful typographic checklist that contains not only some general typographic rules, heuristics and guidelines, but also reminders for typography in your projects.
Typography Checklist (PDF)
Compiled by Jason DewinetzIf, this list contains some useful typographic checks that you may want to consider for before launching your next project or printing your next brochure or book.
So You Need A Typeface (Infographics)
A nice infographics that can actually help you select a typeface for your design work. You may want to search for the path to Comic Sans.
Finding The Right Type
The Right Font for the Job
A few years ago, you had to make a decision between TrueType or PostScript and Mac or Windows. Today, the choice is usually fairly simple: OpenType is the most convenient and full-featured font format, compatible with all modern screen and print workflows. All the extras that are commonly spread across multiple PostScript or TrueType files can live in one OpenType file. Best of all, OpenType is a truly cross-platform format. You can use the same font on Mac or Windows machines without converting the font or fearing reflow.
Erik Spiekermann’s Typo Tips
With the invention of “desktop publishing”, designers found themselves setting type on their computers for the first time. Until then, they had made type specifications for typesetters and left the job up to the professionals. As a result, you can still see classic inaccuracies in typesetting, even in top-quality printed matter. Here you will find some tips from Erik Spiekermann, designer of FF Meta¨, Meta Design founder, co-author of ’stop Stealing Sheep”, and a FontShop founder, which will prevent some of the more obvious blunders.
Thirteen Ways of Looking at a Typeface
For the first ten years of my career, I worked for Massimo Vignelli, a designer who is legendary for using a very limited number of typefaces. Between 1980 and 1990, most of my projects were set in five fonts: Helvetica (naturally), Futura, Garamond No. 3, Century Expanded, and, of course, Bodoni.
Picking Type for Web
Picking Type for Web As a part of the visual design process for MIX Online’s upcoming redesign, I’ve been experimenting with typography. The task of finding a typeface that’s both aesthetically pleasing and legible, however, is a tricky one.
How To Choose A Font
Have you ever had the problem of not knowing what typeface to use? Well of course you have, everyone has. This is a guide on how to choose a font. These pointers have been gathered from Robin Williams great book “The Non-Designers Type Book” that I recommended in the top 5 typography resources of all time. Have a think about each of these before choosing your next font.
On Choosing Type
Typography is not a science. Typography is an art. There are those who”d like to ’scientificize”; those who believe that a large enough sample of data will somehow elicit good typography. However, this sausage-machine mentality will only ever produce sausages. That typography and choosing type is not a science trammeled by axioms and rules is a cause to rejoice.
Combining Type
Fundamentals: Combining Type With Helvetica
With this issue of FontShop Fundamentals we debut Guest FontLists. Building on our own lists, we asked experts we admire to round up typefaces that share a common use, style, or concept.
Four Ways to Mix Fonts
Is there a way to know what fonts will work together? Building a palette is an intuitive process, but expanding a typographic duet to three, four, or even five voices can be daunting. Here are four tips for navigating the typographic ocean, all built around H&FJ’s Highly Scientific First Principle of Combining Fonts: keep one thing consistent, and let one thing vary.
How do I choose paring fonts ?
When I have to chose type for a project, I always rely on my feelings and lots of testing, wating for the love/hate Alchemy to happen and decide for me. This method, mostly based on luck, is often time consuming, and I often found myself needing to ask for help on the forums.
Type Design
Beginner’s Guide to OpenType
OpenType (OT) is a cross-platform type format that includes expert layout features to provide richer linguistic support and advanced typographic control. Using OT technology you can substitute your characters for different glyphs1 using many different methods; Ligatures, Small Caps, Oldstyle Figures, Fractions, Superscript/Subscript, Ordinals, Alternates, Titling Characters and many more. This beginner’s guide will help to illustrate some of the more common features found in OT fonts and when they should be used.
Making Geometric Type Work
For graphic designers beginning to experiment in type design, a geometric or modular typeface is a natural starting point. Illustrator and other programs offer a simple collection of elements such as circles, squares, and triangles which can be combined to create a passable alphabet. This is the same route I took when dissatisfied with the limits of commercial fonts at the time. I twisted and distorted each character to fit into a few simple, incredibly strict rules of construction. Invariably this produced a wide range of exotic letterforms, some more legible that others.
A few things I’ve learned about typeface design
Teaching on a postgraduate course feels very much like a spiral: the annual repetition of projects, each a vehicle for a journey of education and discovery for the student, blurs into cyclical clouds of shapes, paragraphs, and personalities. There seems to be little opportunity for reflection across student cohorts, and yet it is only this process that improves the process from one year to the next. Having passed the tenth anniversary of the MA Typeface Design programme was as good an opportunity as any to reflect, and ILT’s offer to publish the result an ideal environment to get some ideas out in the open. Although my perspective is unavoidably linked to the course at Reading, I think that the points I make have wider relevance.
Case-Study: The Making of Vesper
A nice case-study about the creation process of the Vesper typeface, from its designer Rob Keller. “Vesper was developed over the course of almost three years. For this article, I’ve divided the process into two stages: #1 during my studies at the University of Reading; and #2 After Reading. Hopefully through this highly-condensed-yet-still-rather-wordy account of this project you will learn some interesting bits regarding my first major type family, the design process, and the MATD program.”
Typographic Tools
TypeIt: Type accent marks, diacritics and foreign letters online
The service allows you to add typographic accents and special characters (e.g. punctuation marks) as you’re typing. Instead of clicking on buttons for the accents, you can also use pre-defined shortcuts, like Control + N, to insert the characters: just point your cursor to the desired character and you’ll see a tooltip.
Web Font Specimen
Because web type renders differently with only subtle CSS adjustments, seeing it exercised in a variety of ways can help web designers typesetÑand also help them decide which typefaces to purchase for their projects.
Typograph: Scale & Rhythm
This page is both an essay and a tool. It sets out to explore how two, intertwined concepts, often playful but sometimes cheeky, can be encouraged to dance in web pages. Drag the colored boxes along the scale to throw these words anew. For the most part, this text is just a libretto for the performance you are about to play upon it.
TextMod 2.1
Unlike dummy text generators, in TextMod you can modify a real text to match your current character set and use it for testing your font. Your TextMod settings are stored in a cookie. By now, TextMod only works with Latin and Armenian.
Readability
Readability is a simple bookmarklet that makes reading on the Web more enjoyable by removing the clutter around what you’re reading.
Free Typographic XHTML/CSS-Layouts For Your Designs
A collection of beautiful typographic (X)HTML+CSS-based layouts created by the design community and released for free.
Typography Keyboard Layout
A simple, yet useful tool that lets you enter characters that are usually unavailable on a keyboard with ease. Hopefully it will help you achieve better typography in your designs.
{ font-family }
A resource for web developers and designers to provide recommendations for alternatives in the font-family CSS style.
EmChart
This tool maps the ratio between your base size and your child elements font size.
MyFontbook, A Browser-Based Free Font Viewer
myFontbook is a free tool for viewing, classifying and organizing fonts installed on your system from your web browser.
Font Finder
FontFinder is created for designers, developers and typographers. It allows a user to analyze the font information of any element on a page, copy any piece(s) of that information to the clipboard, and perform inline replacements to test new layouts.
Unicode Codepoint Chart
This chart is broken down neatly by type of character and symbol (and by language in many cases), with a visual reference under each category. From there, just click on the symbol or character you want and you’re brought to a page with detailed information about the character, along with a browser test page, an outline (in SVG format) and a variety of encodings and character sets (HTML entity, UTF-8, UTF-16, UTF-32, ISO-8859-8, etc.).
Create Your Own @font-face Kits
An online generator for creating ready-to-use kits for your fonts, using @font-face.
XHTML Character Entity Reference
This page contains the 252 allowed entities in HTML 4 and XHTML 1.0, as outlined in section 24 of the official HTML 4 specifications, published by the W3C.
HTML Entity Character Lookup
Using HTML entities is the right way to ensure all the characters on your page are validated. However, often finding the right entity code requires scanning through 250 rows of characters. This lookup allows you to quickly find the entity based on how it looks, e.g. like an < or the letter c.
CopyPasteCharacter.com
This page allows you to copy one or multiple special characters and paste them in your applications.
Surveys and Research
Typographic Design Patterns and Best Practices
Even with a relatively limited set of options in CSS, typography can vary tremendously using pure CSS syntax. Serif or sans-serif? Large or small font? Line height, spacing, font size and paddingÉ The list goes on and on.
Visual Search and Reading Tasks Using ClearType and Regular Displays
An academic paper exploring the usability performance of ClearType vs. Regular displays. Result: For most users ClearType-enhanced text produces a significant improvement in performance times on tasks involving extended eye-on-text interactions.
‘Font’ vs. ‘Typeface’: font terms survey results
According to this study, the overall opinion is that in today’s world of digital typography “a typeface” means the general design, including all its styles, regardless of how it’s instantiated, while “a font” means a single style of a typeface, such as Myriad bold condensed italic, in a specific file format. However, this is not necessarily true.
Font or Typeface?
As we”re collaborating with multiple authors on the FontFeed, we compiled a list of guidelines for ourselves and guest contributors. One of our concerns is that we should attempt to ’speak the same language” when using typographic and related terms. Because these terms evolved over a considerable period of time and saw several transitions in technology, they can sometimes be interpreted in varying ways. This resulted in a terminology that is often perceived as at best esoteric, at worst plain confusing.
Rules for good and beautiful typography
A Guide to Web Typography
Typography for the Web has come a long way since Tim Berners-Lee flipped the switch in 1991. Back in the days of IE 1.0, good web typography was something of an oxymoron. Today things are different. Not only do we have browsers that support images (gasp!), but we have the opportunity to make our web pages come to life through great typography.
The Principles of Beautiful Typography
For most people, typography is simply about arranging a familiar set of shapes to make words, sentences, and paragraphs. Having the ability to set type with only a few strokes on a keyboard has allowed us to forget about the creative and artistic possibilities of this medium.
Simple rules for good typography
Here are some basic rules to improve your typography across either web or print. Of course, these rules are only to start with, and rules are meant to be broken. But if you want something to look neat, clean and generally well designed they are a good set to follow.
Typography is the backbone of good web design
An overview of some typographic techniques to keep in mind for your next website design.
A 20 Minute Intro to Typography Basics
“Typography plays a big role in graphic design and can be one of the hardest things to get right. My aim here is to introduce some of the basics and the most common areas of typography that will be important in your design work.”
11 Essential Tips for Good Print Typography
Typography is a huge part of design and design is a huge part of type. You can”t just throw text on a page, it has to be laid out and organized in a clean way that adds to the information being presented. Here are 11 typography tips to help you convey information in print the right way.
It’s Type O’clock!
“One of the key qualities of a good information designer is attention to details and since typography is the new cool trend we now seem to care more than ever about presenting text online correctly. The following article is based on my personal experience, yet there’s great probability that much of the following has already been said by somebody else. What you’ll find here is a few tricks for setting type on web I’ve learned over the past few months some of which, amazingly enough, I hardly ever see being used.”
What is typography today?
“Most people think Typography is about designing and selecting fonts. This is true as far as architecture is about designing or selecting furniture. In reality neither is a purpose but a means to an end. That end with architecture is (hopefully) accommodating its inhabitants, for typography it is accommodating the human mind, making the reader read, the viewer watch (not only look), drawing and keeping the attention.”
The Ails Of Typographic Anti-Aliasing
As printed typography enjoys the fruits of high-DPI glory, proudly displaying its beautiful curves and subtleties, its on-screen counterpart remains stifled by bulky pixels, living in a world of jagged edges, distorted letterforms and trimmed serifs. Until display manufacturers produce affordable 200 or 300 PPI monitors, we”ll have to rely on software advances to fix these problems.
Type-Inspired Interfaces
One of the things that terrifies me most about a new project is the starting point. How is the content laid out? What colors do I pick? Once things like that are decided, it becomes significantly easier to continue design, but it’s the blank page where I spend the most time. To that end, I often start by choosing type.
CSS and Font Embedding
Revised Font Stack
Serious efforts are being made to get more typeface choices on the web to enhance web typography. Still, most of us prefer web-safe fonts like: Verdana, Georgia, Times New Roman and Arial. Though choices are limited, yet the number can be increased by exploring other pre-installed fonts.
Becoming a Font Embedding Master
I’ve spent a couple days worth now trying to figure out the best and most complete approach to font embedding using @font-face. It really is a dark art that must be mastered. It is by no means a straightforward process.
Web Font User Guide
An extensive reference guide for designers, developers and system administrators. It explains how to get started using Web fonts for display on your website. It also contains information for system administrators about which configuration changes may be necessary to successfully serve webfonts from your web server.
Inspiration: Showcases, Blogs etc.
we love typography
A showcase of type, typography, lettering, and signage.
FINDINGS
Yet another blog featuring beautiful typography.
typo/graphic posters
typo/graphic posters is a directory of typographic and graphic posters.
The Journal of Urban Typography
TJOUT is dedicated to the documentation and study of signs, word fragments, and typography created with utilitarian intent in urban environments.
Pressing Letters: A Collection of Inspirational Letterpress
The project is an effort to catalog work and promote creativity in the letterpress community. Anyone can submit their letterpress work, references, tips and links. The website has many different categories, including business cards, books, calendars, identity design, music sleeves, stationery and posters. A blog definitely worth bookmarking and visiting regularly.
Alltop: Top Typography News
An aggregator of typography-related news, articles and tools.
Last Click: Typography-Related… Games!
FontTrainer
An interesting tool that help to train you pay attention to subtle differences between fonts.
Your Personality, Summarized in a Typeface
If you’ve ever sat down with a type designer, what you quickly realize is that they rarely talk about fonts in purely aesthetic or even functional terms: They talk about assertiveness or calm or friendliness. In short, they talk about personality traits. It makes sense, then, that your personality could be translated into a typeface. And Pentragram has done just that, in this lovely microsite, What Type are You? (Password: Character)
TypePong
TypePong is a retro iPhone gaming with a modern twist. It allows you to play PingPong with your favourite fonts. You can also challenge your friends and the world on our global score board.
Deep Font Challenge
Are you a sharp shootin’ font-master or a no-good calamity who can’t spell Futura? To prove your design know how, shoot the font mounted on a target which is displayed on the banner. Points are scored for each successful round and the speed with which you complete it… but be warned, during the game the tables will turn, so keep on your toes.
Related Posts
You may be interested in the following related posts:
© Vitaly Friedman for Smashing Magazine, 2010. | Permalink | 10 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | http://www.smashingmagazine.com/2010/05/06/50-helpful-typography-tools-and-resources/“>Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: typography
In Modern CSS Layouts, Part 1: The Essential Characteristics, you learned that modern, CSS-based web sites should be progressively enhanced, adaptive to diverse users, modular, efficient and typographically rich. Now that you know what characterizes a modern CSS web site, how do you build one? Here are dozens of essential techniques and tools to learn and use to achieve the characteristics of today’s most successful CSS-based web pages.
Just as in the previous article, we’re not going to be talking about design trends and styles; these styles are always changing. Instead, we’re focusing on the specific techniques that you need to know to create modern CSS-based web pages of any style. For each technique or tool, we’ll indicate which of the five characteristics it helps meet. To keep this shorter than an encyclopedia, we’ll also just cover the basics of each technique, then point you to some useful, hand-picked resources to learn the full details.
You can jump straight to:
CSS3
CSS3, the newest version of CSS that is now being partially supported by most browsers, is the primary thing you need to know in order to create modern CSS web sites, of course. CSS is a styling language, so it’s no surprise that most of what’s new in CSS3 is all about visual effects. But CSS3 is about more than progressive enhancement and pretty typography. It can also aid usability by making content easier to read, as well as improve efficiency in development and page performance.
There are too many CSS3 techniques to cover in a single article, let alone an article that isn’t just about CSS3! So, we’ll go through the basics of the most important or supported CSS3 techniques and point you to some great resources to learn more in-depth.
CSS3 Visual Effects
Semi-transparent Color
Aids in: progressive enhancement, efficiency
RGBA allows you to specify a color by not only setting the values of red, green, and blue that it’s comprised of, but also the level of opacity it should have. An alternative to RGBA is HSLA, which works the same way, but allows you to set values of hue, saturation, and lightness, instead of values of red, green, and blue. The article Color in Opera 10 — HSL, RGB and Alpha Transparency explains how HSLA can be more intuitive to use than RGBA.
The 24 Ways web site makes extensive use of RGBA to layer semi-transparent boxes and text over each other.
RGBA or HSLA isn’t just about making things look cool; it can also improve your web site’s efficiency. You don’t have to take time to make alpha-transparent PNGs to use as backgrounds, since you can just use a color in the CSS, and the user agent doesn’t have to download those images when loading the site.
For more on how to use RGBA and HSLA, including fallback methods for browsers that don’t support it, see:
Styling Backgrounds and Borders
Aids in: progressive enhancement, efficiency
CSS3 offers a whole host of new ways to style backgrounds and borders, often without having to use images or add extra
divs. Most of these new techniques already have good browser support, and since they’re mainly used for purely cosmetic changes, they’re a good way to get some progressive enhancement goodness going in your sites right away.Here are some of the new things CSS3 lets you do with backgrounds:
background-imageproperty. No more nesting extradivs just to have more elements to attach background images onto!background-clipandbackground-originproperties let you control if backgrounds are displayed under borders, padding, or just content, as well as where the origin point forbackground-positionshould be.background-sizeproperty. While scaling won’t look good on many background images, it could be really handy on abstract, grunge-type backgrounds, where tiling can be difficult and where some image distortion would be unnoticeable.background-imageproperty to create gradients without images. This allows the gradients to scale with their container — unlike image gradients — and eliminates the need for page users to download yet another image while viewing your site.CSS3 lets you do the following with borders:
border-radius-property to get rounded corners ondivs, buttons, and whatever else your heart desires — all without using images or JavaScript.divs. You can now add unique borders without having to use background images by adding the images to the borders directly, using the newborder-imageproperty, which also allows you to control how the images scale and tile.The
border-radiusproperty can be used to round corners and even create circles out of pure CSS, with no images needed. (Stunning CSS3 web site)These background and border techniques have already been covered well in a lot of great articles and tutorials, so check these out for the details:
border-image, from lrbabe.com)border-image)Drop Shadows
Aids in: progressive enhancement, adaptability, efficiency
Drop shadows can provide some visual polish to your design, and now they’re possible to achieve without images, both on boxes and on text.
The
box-shadowproperty has been temporarily removed from the CSS3 spec, but is supposed to be making its re-appearance soon. In the meantime, it’s still possible to get image-free drop shadows on boxes in Firefox and Safari/Chrome using the-moz-box-shadowand-webkit-box-shadowproperties, respectively, and in Opera 10.5 using the regularbox-shadowproperty with no prefix. In the property, you set the the shadow’s horizontal and vertical offsets from the box, color, and can optionally set blur radius and/or spread radius.The Cherry web site uses drop shadows created with
box-shadowon many boxes and buttons.The
text-shadowproperty adds drop shadows on — you guessed it — text. It’s supported by all the major browsers except — you guessed it — Internet Explorer. This makes it the perfect progressive enhancement candidate — it’s simply a visual effect, with no harm done if some users don’t see it. Similarly tobox-shadow, it takes a horizontal offset, vertical offset, blur radius and color.Using
text-shadowkeeps you from resorting to Flash or images for your text. This can speed up the time it takes you to develop the site, as well as speed up your pages. Avoiding Flash and image text can also aid accessibility and usability; just make sure your text is still legible with the drop shadow behind it, so you don’t inadvertently hurt usability instead!For more on box and text drop shadows, see:
Transforms
Aids in: progressive enhancement, adaptability, efficiency
CSS3 makes it possible to do things like rotate, scale, and skew the objects in your pages without resorting to images, Flash, or JavaScript. All of these effects are called “transforms.” They’re supported in Firefox, Safari, Chrome, and Opera 10.5.
You apply a transform using the
transformproperty, naturally (though for now you’ll need to use the browser-specific equivalents:-moz-transform,-webkit-transform, and-o-transform). You can also use thetransform-originproperty to specify the point of origin from which the transform takes place, such as the center or top right corner of the object.In the
transformproperty, you specify the type of transform (called “transform functions”), and then in parentheses write the measurements needed for that particular transform. For instance, a value oftranslate(10px, 20px)would move the element 10 pixels to the right and 20 pixels down from its original location in the flow. Other supported transform functions arescale,rotate, andskew.The BeerCamp SXSW 2010 site scales and rotates the sponsor logos on hover.
For the full syntax on these transform functions, as well as examples of how to use them, see:
Animation and Transitions
Aids in: progressive enhancement, efficiency
Animation is now no longer the solely the domain of Flash or JavaScript — you can now create animation in pure HTML and CSS. Unfortunately, CSS3 animation and transitions do not have very good browser support, but as with most of the effects we’ve talked about so far, they’re great for adding a little non-essential flair.
CSS3 transitions are essentially the simplest type of animation. They smoothly ease the change between one CSS value to another over a specified duration of time. They’re triggered by changing element states, such as hovering. They’re supported by Safari, Chrome, and Opera 10.5.
To create a transition, all you have to do is specify which elements you want to apply the transition to and which CSS properties will transition, using the
transition-propertyproperty. You’ll also need to add atransition-durationvalue in seconds (“s” is the unit), since the default time a transition takes is 0 seconds. You can add them both in thetransitionshorthand property. You can also specify a delay or a timing function to more finely tune how the two values switch.Transitions are easiest to understand with live examples, so check out:
Beyond transitions, full-fledged animations with multiple keyframes are also possible with CSS3 (but currently only supported in Safari/Chrome). First, you give the animation a name and define what the animation will do at different points (keyframes, indicated with percentages) through its duration. Next, you apply this animation to an element using the
animation-name,animation-duration, andanimation-interation-countproperties. You could also set a delay and timing function, just like with transitions. For details, see:CSS3 Usability / Readability Enhancements
Most the CSS3 techniques we’ve gone over so far have been purely cosmetic effects that aid progressive enhancement. But CSS3 can also be used to improve the usability of your pages.
Creating Multiple Columns of Text
Aids in: progressive enhancement, adaptability
Some pieces of text are more readable in narrow, side-by-side columns, similar to traditional newspaper layout. You can tell the browser to arrange your text into columns by either defining a width for each column (the
column-widthproperty) or by defining a number of columns (thecolumn-countproperty). Other new properties let you control gutters/gaps, rule lines, breaking between columns and spanning across columns. (For now, you need to use the browser-specific prefixes of-mozand-webkit.) This is another one of those techniques that can harm instead of aid usability if used improperly, as explained in “CSS3 Multi-column layout considered harmful,” so use it judiciously.For details, see:
Controlling Text Wrapping and Breaking
Aids in: adaptability
CSS3 gives you more control over how blocks of text and individual words break and wrap if they’re too long to fit in their containers. Setting
word-wraptobreak-wordwill break a long word and wrap it onto a new line (particularly handy for long URLs in your text). Thetext-wrapproperty gives you a number of options for where breaks may and may not occur between words in your text. The CSS2white-spaceproperty has now in CSS3 become a shorthand property for the newwhite-space-collapseandtext-wrapproperties, giving you more control over what spaces and line breaks are preserved from your markup to the rendered page. Another property worth mentioning, even thoughit’s not currently in the CSS3 specification, is
text-overflow, which allows the browser to add an ellipsis character (…) to the end of a long string of text instead of letting it overflow.For details, see:
word-wrapandwhite-space(relevant to non-Mozilla browsers, and includes notes on browser compatibility)word-wrapandoverflowfor various browsers, from 456 Berea Street)white-spaceandword-wrapfor various browsers, from Unwakeable)Media Queries
Aids in: adaptability, efficiency
CSS2 let you apply different styles to different media types — screen, print, and so on. CSS3’s media queries take this a step further by letting you customize styles based on the user’s viewport width, display aspect ratio, whether or not his display shows color, and more. For instance, you could detect the user’s viewport width and change a horizontal nav bar into a vertical menu on wide viewports, where there is room for an extra column. Or you could change the colors of your text and backgrounds on non-color displays.
This demo file from Opera uses media queries to rearrange elements and resize text and images based on viewport size.
Media queries couldn’t come at a better time — there is more variety in the devices and settings people use to browse the web than ever before. You can now optimize your designs more precisely for these variations to provide a more usable and attractive design, but without having to write completely separate style sheets, use JavaScript redirects, and other less efficient development practices.
Media queries are supported to some degree by all the major browsers except IE, and there are lots of great articles and tutorials explaining how to use them right now:
Media queries are particularly helpful in serving alternate styles to small-screen mobile devices, as these articles and tutorials explain:
For other options on how to deal with mobile devices, see Mobile Web Design Trends For 2009.
Improving Efficiency Through CSS3
Many of the visual effect properties of CSS3 that we’ve gone over have a great bonus in addition to making your design look great: they can improve efficiency, both in your development process and in the performance of the pages themselves.
Any CSS3 property that keeps you from having to create and add extra images is going to reduce the time it takes you to create new pages as well as re-skin existing ones. Less images also mean less stuff for the server to have to send out and less stuff for the users to download, both of which increase page loading speed.
CSS3 properties that keep you from having to add extra
divs or extra classes can also reduce your development time as well as file size. We’ve already gone over some great techniques that help with this, but there are a few more worth mentioning.The
box-sizingPropertyAids in: efficiency
In addition to the
div-conserving properties we’ve already talked about, thebox-sizingproperty can also help limit yourdivuse in certain situations.In the traditional W3C box model of CSS 2.1, the value you declare for a width or height controls the width or height of the content area only, and then the padding and border are added onto it. (This is called the content-box model.) If you’ve worked with CSS for a while, you’re probably used to the content-box box model and don’t really think much about it. But, it can lead you to add extra
divs from time to time. For instance, if you want to set a box’s width and padding in different units of measurement from each other, like ems for the width and pixels for the padding, it’s often easiest to nest anotherdivand apply the padding to this instead, to make sure you know how much total space the box will take up. In small doses, nesting additionaldivs simply to add padding or borders is not a great sin. But in complicated designs, the number of extradivs can really add up, which adds to both your developmenttime and the file size of the HTML and CSS.
Setting the new
box-sizingproperty toborder-boxinstead ofcontent-boxsolves this problem so you can get rid of all those extradivs. When a box is using the border-box box model, the browser will subtract the padding and border from the width of the box instead of adding it. You always know that the total space the box takes up equals the width value you’ve declared.In the traditional box model (bottom image), padding and border are added onto the declared width. By setting
box-sizingtoborder-box(top image), the padding and border are subtracted from the declared width.The
box-sizingproperty has good browser support, with the exception of IE 6 and IE 7. Unlike the more decorative CSS3 properties, however, lack of support forbox-sizingcould cause your entire layout to fall apart. You’ll have to determine how serious the problem would be in your particular case, whether it’s worth living with or hacking, or whether you should avoid usingbox-sizingfor now.For details, see:
CSS3 Pseudo-Classes and Attribute Selectors
Aids in: progressive enhancement, efficiency, modularity, rich typography
CSS has several really useful selectors that are only now coming into common use. Many of these are new in CSS3, but others have been around since CSS2, just not supported by all browsers (read: IE) until recently, and thus largely ignored. IE still doesn’t support them all, but they can be used to add non-essential visual effects.
Taking advantage of these newer, more advanced selectors can improve your efficiency and make your pages more modular because they can reduce the need for lots of extra classes,
divs, andspans to create the effects you want to see. Some selectors even make certain effects possible that you can’t do with classes, such as styling the first line of a block of text differently. These types of visual effects can improve the typography of your site and aid progressive enhancement.[IMAGE?]
For details, see:
Read these articles and tutorials for examples of how to put advanced selectors to practical use right now:
HTML5
Although this article is focused on modern CSS techniques, you can’t have great CSS-based web pages without great markup behind them. Although HTML5 is still in development, and although debate continues about its strengths and weaknesses, some web developers are already using it in their web pages. While HTML 4.01 and XHTML 1.0 are still great choices for the markup of your pages, it’s a good idea to start learning what HTML5 has to offer so you can work with it comfortably in the future and perhaps start taking advantage of some of its features now. So, here is a brief overview of how HTML5 can help with our five modern CSS-based web design characteristics (progressive enrichment, adaptive to diverse users, modular, efficient, typographically rich).
Note: Many of these techniques are not supported in enough browsers yet to make their benefits really tangible, so think of this section as, perhaps, “here’s how HTML5 can aid these five characteristics in the future.”
New Structural Markup
Aids: adaptability, modularity, efficiency
HTML5 introduces a number of new semantic elements that can add more structure to your markup to increase modularity. For instance, inside your main content
divyou can have severalarticleelements, each a standalone chunk of content, and each can have its ownheader,footer, and heading hierarchy (h1throughh6). You can further divide up anarticleelement withsectionelements, again with their ownheaders andfooters. Having clearer, more semantic markup makes it easier to shuffle independent chunks of content around your site if needed, or syndicate them through RSS on other sites and blogs.In the future, as user agents build features to take advantage of HTML5, these new elements could also make pages more adaptable to different user scenarios. For instance, web pages or browsers could generate table of contents based on the richer hierarchy provided by HTML5, to assist navigation within a page or across a site. Assistive technology like screen readers could use the elements to help users jump around the page to get straight to the important content without needing “skip nav” links.
Although many of these benefits won’t be realized until some unforeseen time in the future, you can start adding these new elements now, so that as soon as tools pop up that can take full advantage of them, you’ll be ready. Even if your browser doesn’t recognize an element, you can still style it — that’s standard browser behavior. Well, in every browser but IE. Luckily, you can easily trick IE into styling these elements using a very simple piece of JavaScript, handily provided by Remy Sharp.
Of course, you usually can’t depend on all your users having JavaScript enabled, so the very safest and most conservative option is to not use these new structural elements just yet, but use
divs with correspondingclassnames as if they were these new elements. For instance, where you would use anarticleelement, use adivwith aclassname of “article.” You can still use the HTML5 doctype — HTML5 pages work fine in IE, as long as you don’t use the new elements. You can then later convert to the new HTML5 elements easily if desired, and in the meantime, you can take advantage of the more detailed HTML5 validators. Also, using these standardized class names can make updating the styles easier for both you and others in your team, and having consistent naming conventions across sites makes it easier for users with special needs to set up user style sheets thatcan style certain elements in a needed way.
For more on HTML5 markup, see:
Reducing JavaScript and Plug-in Dependence
Aids in: adaptability, efficiency
A number of the new elements and features in HTML5 make effects possible with pure markup that used to be possible only with JavaScript or various third-party plug-ins, like Flash or Java. By removing the need for JavaScript and plug-ins, you can make your pages work on a wider variety of devices and for a wider variety of users. You may also make your development process quicker and more efficient, since you don’t have to take the time to find the right script or plug-in and get it all set up. Finally, these techniques may be able to boost the speed of your pages, since extra files don’t have to be downloaded by the users. (On the other hand, some may decrease performance, if the built-in browser version is slower than a third-party version. We’ll have to wait and see how browsers handle each option now and in the future.)
Some of the features that reduce JavaScript and plug-in dependence are:
New form elements and attributes. HTML5 offers a bunch of new
inputtypes, such asemail,url, anddate, that come with built-in client-side validation without the need for JavaScript. There are also many new form attributes that can accomplish what JavaScript used to be required for, likeplaceholderto add suggestive placeholder text to a field orautofocusto make the browser jump to a field. The newinputtypes degrade to regular inputs in browsers that don’t support them, and the new attributes are just ignored, so it doesn’t hurt unsupporting browsers to start using them now.Of course, you’ll have to put in fallback JavaScript for unsupporting browsers, negating the “no JavaScript” benefits for the time being. (Or, depend on server-side validation—which you always ought to have in place as a backup behind client-side validation anyway—to catch the submissions from unsupporting browsers.) Still, they offer a nice usability boost for users with the most up to date browsers, so they’re good for progressive enhancement.
canvaselement. Thecanvaselement creates a blank area of the screen that you can create drawings on with JavaScript. So, it does require the use of JavaScript, but it removes the need for Flash or Java plug-ins. It’s supported in every major browser but IE, but you can make it work in IE easily using the ExplorerCanvas script.videoandaudioelements. HTML5 can embed video and audio files directly, just as easily as you would add an image to a page, without the need for any additional plug-ins.Some of the new input types in HTML5 will bring up widgets, such as the calendar date picker seen with the
datetimeinputtype in Opera, without needing any JavaScript. (HTML5 input types test page)For more on these features, see:
canvas, from A List Apart)IE Filtering
Aids in: progressive enhancement
IE 6 doesn’t seem to be going away anytime soon, so if you want to really make sure your pages are progressively enhanced, you’re going to have to learn how to handle it. Beyond ignoring the problem or blocking IE 6 altogether, there are a number of stances you can take:
In addition to the resources linked in the text above, you can learn more about how to handle IE at:
Flexible Layouts
Aids in: adaptability
One of the main ways you can make your sites adaptable to your users’ preferences is to create flexible instead of fixed-width layouts. We’ve already gone over how media queries can make your pages more adaptable to different viewport widths, but creating liquid, elastic, or resolution-dependent layouts can be used instead of or in conjunction with media queries to further optimize the design for as large a segment of your users as possible.
min-widthandmax-widthproperties and/or media queries can and should be used to keep the design from getting too stretched out or too squished at extreme dimensions.min-andmax-widthand/or media queries to limit the degree of elasticity.For details on creating flexible layouts, see:
Layout Grids
Aids in: modularity, efficiency
Designing on a grid of (usually invisible) consistent horizontal and vertical lines is not new — it goes back for centuries — but its application to web design has gained in popularity in recent years. And for good reason: a layout grid can create visual rhythm to guide the user’s eye, make the design look more clean and ordered, and enforce design consistency.
Grids can also make your designs more modular and your development more efficient because they create a known, consistent structure into which you can easily drop new elements and rearrange existing ones without as much thought and time as it would take in a non-grid layout. For instance, all of your elements must be as wide as your grid’s column measurement, or some multiple of it, so you can easily move an element to another spot on the page or to another page and be assured that it will fit and look consistent with the rest of the design. At worst, you’ll need to adjust the other elements’ widths around it to a different multiple of the column measurements to get the new element to fit, but even this is not too work-intensive, as there is only a handful of pre-determined widths that any element can have.
All of the content of The New York Times site falls into a grid of five columns, plus a thin column on the left for navigation.
To learn how to use grids, see:
Efficient CSS Development Practices
Aids in: modularity, efficiency
Layout grids and many of the CSS3 techniques we’ve gone over have the side benefit of making your CSS more modular and helping you write and maintain CSS more efficiently. There are also a few CSS development practices that you can use with any of the techniques we’ve already covered in order to reduce the time it takes you to write the CSS for those techniques in the first place, as well as save you time reusing components in your pages.
CSS Frameworks
A CSS framework is a library of styles that act as building blocks to create the standard pieces you might need in your site. While CSS frameworks differ greatly in depth and breadth, most popular, publicly-distributed frameworks contain some sort of layout grid, as well as standard styles for text, navigation, forms, images, and more. It’s a good idea to create your own CSS framework, perhaps based on one of the most popular ones; it can be as simple as standardizing the IDs and classes you tend to use on every project and creating a starter style sheet for yourself.
Good CSS frameworks provide you with a solid starting point for your designs, cutting down your time spent developing, testing, tweaking, and updating. They can also reduce the time others (your team members or those who inherit your sites) spend modifying your CSS, as everyone is working from a standard set of conventions. Frameworks can make your designs more modular by giving you a standard set of classes that can be reused from page to page easily, breaking the styles down into separate sheets that can be applied independently to pages on an as-needed basis, or allowing you to plug in various types of content without needing to invent new classes for it.
But, frameworks have their share of problems too. For instance, publicly-distributed (as opposed to your own private) frameworks tend to have large file sizes, as they need to work for any type of site with any type of content; if they’re separated into multiple sheets, they can further damage page speed since every HTTP request takes time. We won’t get into the full list of pros and cons here, but there are ways to work around many of them, so check out the following articles for the details. You’ll also find links to the most popular CSS frameworks.
Object-oriented CSS (OOCSS)
Nicole Sullivan coined the term object-oriented CSS (OOCSS) for her method of creating self-contained chunks of HTML (modules) that can be reused anywhere in the page or site and that any class can be applied to. Some of the main principles of OOCSS are:
OOCSS aims to make your CSS development more efficient, as well as to make the CSS itself more modular and less redundant, which reduces file sizes and loading speed.
CSS Generation
When it comes to writing CSS quickly, what could be quicker than having some piece of software write it for you? Now, please don’t think that I’m advocating not learning CSS and having a tool write a complete style sheet for you. That is a bad, bad idea. But, there are some quality tools out there that can give you a headstart with your CSS, just to shave a little time off the front of your CSS development process. M
There is little doubt that WordPress is one of the most popular blogging and content management platforms out there today. This is not an article about WordPress, though, but rather a more general musing on one of its thought-provoking taglines: “Code Is Poetry.”
That’s an interesting metaphor. Recently, I’ve written about the different languages used by designers and developers, and also about the relationship between these coding languages and proper human language (specifically, English). As someone who graduated from university with a degree in English Literature and came to Web design in a roundabout way, this kind of thinking has always interested me.
As has this apparent connection between code and poetry. What does the metaphor mean? I took some time to really think about this relationship and discovered that the people at WordPress got it right (again). Code really is similar to poetry!
[By the way, did you know we have a brand new free Smashing Email Newsletter? Subscribe now and get fresh short tips and tricks on Tuesdays!]
A Superficial Similarity
To start off, code and poetry have a somewhat obvious and entirely superficial similarity, and we may as well begin there. Here is a poem I wrote a few years ago:
I promise this will be the only work of mine that I include here, but let’s compare it to some snippets of simple code, starting with HTML:
<body> <div id=”content”> <h1>The Title</h1> <p>Some content</p> </div> </body>Now look at some CSS:
div { border: 1em 0px; background-color: #444 border: 1px solid #222; }And finally some JavaScript:
function cubeMe(x){ var answer = x*x*x; alert(answer); }I want to highlight two key elements: the short lengths and the prominent indentation. These are both common elements of poetry and code (though not absolutely necessary to either).
This comparison is superficial at best, and there is a much stronger connection to explore. Still, this basic similarity reveals a certain visual relationship between code and poetry, which gives us an interesting entry point to discuses the subject.
A Master’s Art
This code-is-poetry metaphor comes at least partly from a perception of poetry as the master’s craft. Whether you love or hate it (and I know a lot of people hate it), there has always been a general sense that poetry sits at the apex of the written word, as though poets sit in an ivory tower, composing lines with a golden pen.
Of course, the reality is strikingly different. A lot of really bad poetry is out there, written by people who call themselves poets just because they can rhyme words at the end of two lines.
Does that sound familiar?
How similar is this to the proverbial “nephew”? You know the one: that kid who read the introduction to a high-school textbook about the Web, figured out a few HTML tags and is now driving you crazy with his offer of a “Web design” for $100 and a six-pack of beer. Makes you want to tear your hair out, doesn’t he?
Anyone who has been at this Web design thing for a while (or at least anyone who takes themselves seriously) would agree that there’s more to the job than hacking out content wrapped in a bunch of poorly structured and entirely non-semantic HTML. For those of us who strive to be masters of our craft, code is so much more.
Code has purpose and meaning. It requires structure. It should be lightweight and elegant, not bogged down with lines and lines of garbage. Writing great code isn’t something that just happens. It takes discipline and work! It’s an art unto itself.
Feeling impassioned yet? If so, you might have the heart of a poet. I’ll tell you why.
Of Pen And Purpose
Every good poem has a purpose. The purpose need not be so lofty as to change the world or to establish a new school of thinking, but every good poem needs a purpose. Of course, nothing is surprising about this. Many mediocre and poor poems are written with a purpose. The difference is in execution.
If a poem is written for a particular purpose, then the composition should reflect that purpose. The structure, word choice, subject and tone should all work together to support the primary purpose. For example, the purpose of Coleridge’s “Kubla Khan” is to capture the imagery of one of the poet’s (opium-induced) dreams. It famously opens:
The poem continues on in much the same tone, fully of lyrical and Romantic language by which Coleridge captures the essence of his dream. His word choice and form help the poem achieve its purpose.
A limerick is a different kind of poem altogether, one generally intended to be witty or humorous (and sometimes just plain crude). Here is one of the limericks I remember best:
All limericks follow this structure and share this cadence, which contribute to the overall effect. The rhythm makes the text sound silly and light-hearted, whatever the actual words. While the poem is vastly different from Coleridge’s Romantic vision, it too demonstrates a keen understanding of its purpose.
Our code should be much the same. Different kinds of code serve different purposes and should be used accordingly. In Web design, the most cliched example is using tables for layout purposes. The HTML table tags were intended to present information in tabular format, not to structure an entire document. Using it in the latter way is a misappropriation of its purpose.
Any experienced coder would attest that tabular layouts are far more inflexible than CSS. They really limit you to the confines of the table itself. Styles, however, give you a great deal more flexibility and allow you to do a lot more. We may harp on about it a lot, to the point of being annoying, but it’s a perfect example of how failing to understand purpose can render code less effective!
CSS also provides a great example of the difference between inline, embedded and external styles. Each has a different purpose, and using it the wrong way can really weigh down your code. The external style sheet is used to implement universal styles that can be applied to an entire website (or, in some cases, multiple websites). The embedded style sheet, which is less frequently used, overwrites external styles. This is great for custom artistic posts. Inline styles can be used to overwrite the styling of a single element.
It’s all pretty straightforward for a seasoned Web designer. For the uninitiated, though, mixing up these purposes is all too easy, and it potentially results in bloated code, full of unnecessary inline styling and redundant elements, all from a lack of understanding CSS’ rules of precedence.
So, whether you code HTML or CSS, if you believe in the importance of understanding your purpose, then you certainly have something in common with the great poets.
Meaning
Another important aspect of poetry is meaning. Like any text, a poem means something on the surface: it literally means what it says, even if what it says is sometimes difficult to understand (especially with some archaic works). However, a good poem always has a secondary meaning, hidden beneath the surface.
The incomparable Robert Frost demonstrates this, in a stanza from his popular “Stopping by Woods on a Snowy Evening:”
On the surface, the poem’s closing lines simply state that the narrator thinks the woods are lovely but that he has promises to keep and a long journey before he gets to bed. But there is also critical discussion about the meaning that lurks below the surface of these lines. Not to go into too much analysis here, but it has been suggested that these lines indicate a deep yearning in the narrator to abandon the responsibilities of society and retreat to the embrace of nature, possibly even to death.
Again, code can be very similar, though in a different way. Instead of having a surface meaning and an underlying meaning, code (and specifically HTML) creates meaning through both its semantics and its structure. For example, consider these two lines:
The content is identical, but the context created by the mark-up is entirely different. In the first instance, the content is a paragraph (or simple body text). In the second, it is a first-level heading. The two are very different. Here’s another example:
The first sentence is a simple statement. But the emphasis in the second sentence on the word “is” changes the meaning. Now it becomes more of an affirmation against the (quite legitimate) claim that a single sentence does not really constitute a paragraph. Also, notice the choice of tag, using the semantic
emtag for emphasis, instead of the simple italics tag.Similarly, a language such as PHP provides contextual meaning through conditional logic. For example, here is a snippet of WordPress code that I often use to generate the content of the
titletag:<?php if(is_home()){ echo "Home :: "; } elseif(is_single()){ echo the_title() . " :: "; } elseif(is_page()){ echo the_title() . " :: "; } elseif(is_category()){ echo single_cat_title() . " :: "; } elseif(is_tag()){ echo "Articles tagged as ""; echo single_tag_title() . "" :: "; } elseif(is_date()){ echo "Articles posted in "; echo the_time('F, Y') . " :: "; } ?>In this case, the code produces a different title, based on the type of content being generated. It’s much different than our HTML example, but it still demonstrates the ability of a block of code to provide extra meaning to content—the same way that a poem’s subtext adds a layer of meaning below the surface.
The Importance Of Being Structured
A key similarity in the code-as-poetry metaphor is the need for structure. Poetry is traditionally a very structured form of writing. Take the sonnet, which was once widely considered one of the most elevated forms of poetry and is quite difficult to write (trust me, I’ve tried). Here is Elizabeth Barret-Browning’s famous “How Do I Love Thee”:
This poem, which appears on so much sentimental merchandise these days, follows the sonnet structure very closely. It has the standard 14 lines, with a specific rhyming structure. For the most part, it also follows the traditional meter, called iambic pentameter. I won’t break down the sonnet’s adherence to and deviation from traditional structure (because I would probably lose your interest). Suffice it to say, this poem is constructed on a very strict and rigid scheme.
There are other types of poetic structures, too, such as the brief haiku and the silly limerick (which we looked at). Some might suggest that much modern poetry is even more “free” and unstructured. This may be the case with lesser poems, but not with the best modern works. While these poems may appear not to follow a pattern, they are always structured in some way. You just have to look harder to find it.
The structure of code, though, is very obvious—in fact, probably more so than the rigid sonnet form. Let’s look at a basic HTML document:
<html> <head> <title>A Simple Document</title> </head> <body> <h1>A Simple Document</h1> <p>This is just a simple document.</p> </body> </html>As with the sonnet, a clear structure is at work here, one that is significantly different. The
html,headandbodytags all give form to the document as a whole, while thetitle,h1andptags wrap and semantically define different bits of content. For every opening tag, there is a closing tag, appearing at the appropriate place in the document’s hierarchy. It’s all basic HTML.It’s also highly structured, and without this structure, the code degrades. In some cases, it could be a semantic issue, which often goes unnoticed, because browsers will usually correct these issues. For instance, we all know that the
titletag should appear between theheadtags, right? Well, if thetitletag is placed somewhere else, most modern browsers will still understand the tag and render it properly. Semantically and structurally, though, it’s all wrong.The same is true of improperly nested tags. Something like the following would likely render properly in the browser:
And yet, it is structurally flawed, because tags should always be closed in the order that they were opened. Of course, things get really dicey when tags are unbalanced or when block-level elements intersect. I can’t be the only one who has been hijacked by a rogue
divtag!The point here is not to dig into the structural semantics of HTML, but to emphasize the importance of the structure in both code and poetry. If you’re nodding along with me here and agree on the importance of properly structured documents, then that’s another trait you share with poets and another bit of support for our code-is-poetry metaphor.
Trim And Efficient
Finally, in a well-crafted poem, every single word has meaning and purpose. Despite what may appear to be overly complex words or flowery lines, the entire piece is meticulously crafted. A poet can spend hours struggling for just the right word, or set aside a poem for days before coming back to it for a fresh perspective.
Let’s look at another of Robert Frost’s shorter works, this one entitled “Fire and Ice”:
It may be somewhat grim, but it is also exceptionally well crafted. Each word here is so carefully placed that not a single one could be removed without detracting from the meaning of the poem.
Ezra Pound’s “In The Station of the Metro” is even more succinct:
In just two lines and fourteen simple words, Pound paints a striking image, ripe with meaning and begging to be devoured by scholars and critics. Now, that’s efficiency.
Would you not agree that the same should hold true for code? Shouldn’t every tag, selector, rule and line of PHP have an explicit purpose? Unfortunately, making HTML and CSS bloated with unnecessary tags and styles is all too easy. Take this code:
<div> <p><span>This is a paragraph.</span></p> </div> div{margin: 1em 20px} div p {font-family: sans-serif; font-size: 14px} div p span {color: blue}Now, compare it to this:
<p>This is a paragraph</p> p{margin: 1em 20px; font-family: sans-serif; font-size: 14px; color: blue}Assuming no extra margins or padding are applied to the original
div, the second bit of code will render exactly the same as the first—a more economical way to achieve the same result.As we mentioned in the section on purpose, code can also become bloated by unnecessary inline styles, where an external or even embedded style sheet would be more efficient (depending on the purpose, of course). Yet another example would be to use the
onmouseoverevent to execute simple JavaScript effects that could be achieved more efficiently by CSS.For the master craftsperson, great code and great poetry are lean and trim, with no excess of words or other unnecessary elements.
Conclusion
Part of the beauty of metaphor is its ability to highlight meaningful similarities between two seemingly unrelated ideas. Still, I have to admit that when I really considered this code-is-poetry metaphor, I was surprised by just how deep the similarities run. In some ways, the metaphor almost blurs into reality.
Perhaps code really is a form of poetry, and the coder a new kind of poet.
What does it all mean? I can’t answer that entirely, at least not here and now. But if more people regarded code as its own kind of poetry or at the very least put the two on more even footing, it would raise the bar and lead to higher-quality work. And that would only be a good thing!
(al)
© Matt Ward for Smashing Magazine, 2010. | Permalink | 76 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | http://www.smashingmagazine.com/2010/05/05/the-poetics-of-coding/“>Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: CSS, javascript, poetry, styleguide
Web design is a fickle industry. Just like every other form of artistic expression, Web design has undergone a continuous and surprisingly fast evolution. Once a playground for enthusiasts, it has now become a mature rich medium with strong aesthetic and functional appeal. In fact, we are experiencing what could be the golden era of Web design — or at least the best period thus far. We have powerful new tools at our disposal (CSS3, HTML5, font-embedding, etc.), a plethora of freely available resources, a strong design community and also (if you needed any more!) reliable support of Web standards in the major browsers.
We’re seeing better interaction design and more aesthetically pleasing designs. And we’re seeing more personal, engaging and memorable sites, too. But what exactly is making the difference? What new directions is Web design heading in today? What new techniques, concepts and ideas are becoming important? In this article, we present some observations on the current state of Web design. We describe existing and upcoming trends and explain how Web design might evolve in the coming months and years. We’ll also touch on what we as Web designers should be ready for to keep abreast of new challenges and opportunities.
Please note: this article is the first in our series on the current state of web design. To make sure you don’t miss the second part, subscribe to our RSS feed and follow us on Twitter.
[By the way, did you know we have a brand new free Smashing Email Newsletter? Subscribe now and get fresh short tips and tricks on Tuesdays!]
1. Design For Delight
As designers, our job is to communicate ideas effectively. For every particular message, we create a context in which the message would work best, guiding users to achieving their tasks, gaining their trust or convincing them of whatever we’re communicating. Of course, there are endless ways to create this context. One of them is to design for visual aesthetics, surprise, joy, happiness — design for delight; design to be memorable and remarkable.
Attractive things work better and help focus and keep the user’s attention. Memorable design increases excitement for products and brands, leading to increased engagement. In fact, a strong, reliable emotional relationship between your clients and their audience could be the best thing that ever happens to your career.
Brizk design studio has an aesthetically stunning design, with subtle animations, beautiful typography and a clean layout. When you hover over the red bird in the footer, a small Twitter box is revealed. First-class design that is a pure delight.
Although the vast majority of brands are still silent, passive and impersonal, we’ve observed more websites trying hard to engage our senses, whether through a strong aesthetic appeal, through witty animations in the content block or simply through a little extra attention to small design elements on the “About” page. Such designs are beautiful to look at, fun to navigate but, most importantly, memorable — for the simple reason that they are different. By adding delightful personal touches to your designs, you stand out from the crowd and give visitors something to talk about and share with friends and colleagues. And that’s a good start.
You can elicit delight in a variety of settings: on your maintenance mode page, on the 404 error page, in your pre-loader, and everywhere else. The idea is to surprise visitors by giving them something pleasant to talk about.
Bounty Bev
Bounty Bev is a beverage company with a beautiful one-page design. Apart from its subtle hover effects and animations, the website has some nice extras: if you scroll down the page manually with the mouse wheel, a small pop-up appears asking you if you need a lift. The typography is strong and memorable, and the design is playful. Simple, clear and personal, the website leaves a strong positive impression.
Analog.coop
Analog provides a very personal experience to visitors. When you visit the page, it displays where you are located and tells you the members of the team who are closest to you (in our case, Alan and Jon, who are about 500 miles away in Bristol). The website has a couple of nice Easter eggs that are not visible at first glance. You might want to play around with the header and the photos of team. The page is just fun to explore.
Forrst
Beautiful design with attractive visual elements and original navigation — a design that manages to make a good lasting impression. Notice how the background of the upper area of the page changes when the browser window is resized (Parallax-effect). The “log in”-box is quite cool, too. Surprisingly, the form is built with tables for some reason.
Billy Tamplin
On his blog, Billy Tamplin focuses on the small victories in his life. Each post records a personal achievement, displaying a custom-designed merit badge and an explanation of the conquest. Billy uses this metaphor throughout the website, speaking of “super Web abilities” (Agile CSS, PHP-prepared, IE6-reinforced, etc.) and “heroic design strengths” (human-friendly aim, keen creative detail, etc.). He also has a personal portfolio on the website. Notice how well the color scheme fits the theme. The design is simple and beautiful, and the “achievement” twist is unusual and memorable.
MIX
MIX labs, a community blog for designers and Web developers, doesn’t have hidden features, appealing animations or striking hover effects. Instead, it has a consistent, visually appealing design: can you spot where and how often colorful circles are repeated throughout the website? The design emphasizes the content and has a personal touch. Simply beautiful.
Blue Sky Resumes
This website of a small team of resume writers has a couple of nice unusual extras in the design: the header contains a Flash-based cloud animation that perfectly fits the branding of the company. The website also has subtle animations and soft hover effects. And the “About” page introduces each co-worker in a quite original and memorable way.
Mailchimp
MailChimp heavily incorporates the monkey metaphor in all aspects of its design. To inform customers of recent updates, Mailchimp present an ASCII animation that tells the user something is happening in the background; this nice detail is surprising yet unobtrusive. The company also uses personal, friendly and perhaps occasionally geeky language when addressing user needs. This is the part of the image that MailChimp thoughtfully preserves in its Web application.
Large version
Further Reading
This article explains the importance of designing for delight and features some websites that try to engage the user’s senses.
Research proves that attractive things work better. How we think cannot be separated from how we feel. The next time a boss, client or co-worker scoffs at the notion that beauty is important to interface design, point their peepers here.
Discusses the importance of emotions and aesthetics in design.
2. Keypress Navigation
As designers try to make their designs more intuitive, it is no surprise that websites are becoming more responsive. Not only does this apply to user interfaces in modern Web applications (which are becoming as robust as desktop applications — and often smarter), but with the wide adoption of JavaScript libraries, “classic” websites are becoming more robust and interactive, too. One way to make websites more responsive is through “keypress navigation,” which hasn’t been widely adopted so far. But lately we’ve observed more designs implementing this effectively. The most popular setting for such navigation is on photo websites such as Flickr or FFFFound.
The general idea is to give users keyboard shortcuts that help them perform tedious tasks, such as navigating between blog posts, moving through images in a slideshow, changing the current view (e.g. from a horizontal to vertical grid), liking articles and navigating between sections of a website. Keypress navigation is common in Flash-based designs, but we are now seeing it applied to CSS-based designs, too. Google Reader is a prime example of advanced keypress navigation, but other websites have good implementations, too.
They Make Apps
A couple of months ago, They Make Apps began offering users smooth and advanced keyboard navigation as an alternative to classic scrolling. Users could switch between both modes using a drop-down menu in the main navigation of the page. In “keyboard navigation mode,” users used the arrow keys to navigate between content blocks; the “Return” key triggered the detailed view and “Escape” returned to the main page. For some reason, this navigation isn’t available any longer.
Image source
Mad-ar.ch
Marc Anton Dahmen’s website is Flash-based, and its navigation is quite advanced: users can jump to the contact form with “c,” scale images with “-” and “+,” and then navigate and sort images and scroll through text with the vertical arrow keys.
Image source
9GAG
9GAG is a social image bookmarking website. Users can navigate to the next and previous image using “j” and “k,” respectively. The current image can be voted up using “l” (for love): no mouse scrolling necessary. In this case, a shortcut to the grid view would be useful, too.
FFFFound!
One of the first social image bookmarking websites, FFFFound offers shortcuts to jump to the top of the page (“h”), change the view of the images (“v”), browse images (“k” and “j”) and skip to the next page (“l”).
Feta
Yet another Flash-based website that lets you use the left and right arrow keys to browse items of a section, the down key to select and the up key to go back.
NY Times: Times Skimmer
The New York Times’ quick overview page has very advanced keypress navigation. Users can use the arrows to navigate sections, zoom in using “Shift,” return to the top with “t,” refresh the current section with “r” and select article using “a” and the arrows. Learning the keys is a bit time-consuming, but once you’ve got them, navigating the page is much easier.
Pictory
PictoryMag, a magazine dedicated to photo stories, also has “j” and “k” navigation to browse images.
CrushLovely
CrushLovely, a single-page portfolio, lets you use the arrow keys to navigate sections of the page.
Thinking for a Living
Thinking for a Living lets users use the left and right arrows to navigate between featured quotes.
Picnic Extraterrestre
Aside from being one of the most unusual designs we’ve seen so far, Iván Ferreiro’s Picnic Extraterrestre has quite advanced keypress navigation. The design imitates Teletext and does a pretty good job. All navigation items can be loaded using the digits shortcuts. Now that’s fun!
Coding Techniques and Tutorials
Note that when implementing keypress navigation in your design, make sure that the shortcuts you define do not conflict with common browser shortcuts, OS shortcuts, screen-reader shortcuts or user-defined shortcuts. This may sound simpler than it is. As usual, extensive testing (with savvy and novice users) before implementation will help you find issues with your shortcuts. It’s safe to assume that the arrow keys, the “j” and “k” combination and the “Escape” key are safe. On the other hand, using the “Control,” “Alt” and “Shift” keys is not recommended.
Also, regard keypress navigation as an additional (and therefore optional) feature that will not be available to users who have disabled JavaScript in their browsers. Therefore, it is highly recommended that you offer keyboard navigation as a secondary, not primary, layer of navigation. Below, you’ll find some helpful techniques, tutorials and references for implementing keypress navigation in your designs.
This screencast describes how to implement keyboard navigation to move a slider backwards and forwards. The demo and code are available as well.
This tutorial describes how to implement keypress navigation to browse sections of the website.
You could use your mouse to select links, but you can also use the arrow keys (i.e. up and down) to navigate the list. This script is a bit advanced because of the extra functionality when the user combines the mouse hover and key presses.
In this article, you’ll learn how to use JavaScript keyboard shortcuts, with and without the JQuery framework.
This article looks at how to add keyboard navigation to a website using a few simple lines of JavaScript. First, you’ll create a simple theme in Photoshop and then transform it into a working website that offers keyboard functions to jump pages.
Plug-Ins and Useful Resources
The jQuery.Hotkeys plug-in lets you easily add and remove handlers for keyboard events anywhere in your code, and it supports almost any key combination. Binding and unbinding a hot-key combination takes one line of code.
The jQuery Keyboard Navigation plug-in provides the capability for page elements to be navigated and activated via the keyboard’s arrow keys.
HotKey provides functionality similar to that of the access key attribute but has many enhancements that allow for more granular control of keyboard-driven interfaces.
Detecting the user’s key strokes turns out to be a specialized branch of event handling. This page details some of the more annoying problems and includes the obligatory compatibility table.
3. Print Design Influence
While designing for delight is primarily about impressing visitors with unexpected and pleasing touches to a design, modern Web designers often go one step further and experiment with the underlying details of their work, producing more creative and unique layouts. In fact, one doesn’t have to be an expert to see the growing influence of traditional print design techniques on the Web. They are often manifested in so-called “art-directed” blog posts (or “blogazines”), whereby every blog post has a unique and carefully crafted design.
The layouts of these websites often resemble those of print magazines or posters, with striking headlines, multi-column text, highlighted quotations, indented text, supporting imagery, sidenotes and footnotes. The designs usually adhere to grids and have strong, vivid typography.
Design Informer: Grid-Based Web Design, Simplified has a simple clean two-column layout that clearly separates text from illustrations. Notice the capital letters in the author’s name under the header, also visible in the quote design on the page. The content here dictates the layout.
In most cases, art-directed designs are fueled purely by the ambition and determination of their creators. Such designs are predominantly found on freelance websites (being the fruit of personal projects) and rarely found in corporate settings. The main obstacle to wider adoption of these techniques is that the creation of such designs (or rather their implementation with (X)HTML and CSS) is time-consuming. Art-directed layouts are quite difficult to code and maintain, and they often require inline CSS styling, or else designers would end up with dozens of un-semantic classes in their style sheets. Also, integrating advertisements on these pages is difficult because they put constraints on the designer’s layout. So, at the moment, these designs are more appropriate for less frequently updated websites because of the overhead.
If you decide to experiment with art-directed design, be aware that the layout of an article should be secondary and always support the content itself, not dominate it. The problem is that once you start designing a blog post, it’s easy to overdesign page elements just because you can, not because the content dictates it. In fact, the design community is having an ongoing debate on whether art-directed designs are merely “over-Photoshopped articles,” designed purely for the sake of design.
Good design is about effective communication, not decoration at the expense of legibility. As Francisco Inchauste puts it, “I think it’s a ‘pick two’ sort of scenario. The choices are: great content, great art direction and regular schedule. If you try to hit all three, one of those will begin to fall short.” Bottom line: Web designs that are heavily influenced by print design are beautiful, but only when the techniques support your article.
A Lesson on How to Be a Villain
A colorful and nicely illustrated article in a unique layout. Notice something unusual?
The design has a table-based layout. The design has a CSS-layout with tabular data for the actual info-graphic bits. Sometimes that’s necessary for art-directed designs.Evan Dinsmore: 21
A poster design for the Web. This blog post is simple, and it replaces tired plain text with vivid images. But that can be a disadvantage, too: a text-based version would be more user-friendly here.
The Bold Italic: Dr. Feel Good
A very impressive magazine-like layout, with multiple columns, imagery, headlines and a sidebar. If you had only seen this page printed out, you wouldn’t have recognized it as a Web design. The page has 40
divcontainers.A Way Back: Revised Font Stack
A very long, detailed and elaborate design. In art-directed designs, including this one, large images are often used to push the boundaries of the layout. Such images are often 800 to 1000 pixels wide, filling the width of the entire layout.
Chris Coyier: The Safari Challenge
Here is a subtler design, with big margins, multiple columns of text, footnotes and indented headings. From an aesthetic point of view, it could be a page from a book.
Kyle Fielder: Keeping Curious
A classic. Do you remember those old magazines that used big quotes and visuals to create text flow? Notice how well this headline and colophone are positioned in the question mark. A nice, simple, original design.
Sleepover: A Critical Analysis of my Shoes
A simple grid-based design with justified text, serif typography and nice shoe illustrations. Unfortunately, justified text still doesn’t look very good on the Web.
Yaron Schoen: Too Many Buttons
Sometimes art-directed blog posts require something slightly more: like a background image and bakground color, as well as a bit of CSS styling. This examples demonstrates exactly that.
The Bold Italic: Keep Off the Grass
Another remarkable example of multi-column-layouts…
The Bold Italic: Cinderella Story
… and another one. Print-design inspiration at its best.
Travis Neilson: Default Switch
A calm, simple, clean design with custom headings.
Further Reading
An article about art-directed designs from here on Smashing Magazine.
A gallery of art-directed designs.
Another gallery of art-directed designs.
4. Horizontalism
Over the last year, we’ve observed a slow transformation in the orientation of text-heavy Web designs. Not only are designs gaining depth and realism, but navigation is changing as well. Some designers are augmenting traditional vertical scrolling with sliding navigation (like here), which usually scrolls in both a vertical and horizontal direction, or even pure horizontal scrolling. This is called “horizontalism.”
Websites with horizontal scroll bars have been more difficult to navigate because the mouse was designed for vertical scrolling. But the emergence of multi-touch devices forces us to rethink the usability concerns of such designs. After all, whether the user browses vertically or horizontally on such a device doesn’t really make a difference. And some plug-ins (like Scrollable and jScrollHorizontalPane) simplify the action by enabling users to navigate horizontally by using the standard vertical scroll wheel on the mouse, thus shrinking the learning curve.
Horizontal scroll bars have been out there for a decade, but today it feels that they are gaining a new context. The move to horizontal scroll bars is probably an attempt among some designers to provide a more distinct user experience. Such designs are usually carefully crafted and found primarily on portfolio websites and elaborate e-commmerce websites. Whether horizontalism will expand to more types of websites remains to be seen in the months to come.
Thinking for a Living
Not only does this article discuss the advantages and disadvantages of horizontalism with regard to readability, but it also has a nice horizontal layout itself, with multiple text columns. While the orientation is unusual at the first sight, reading the post is quite pleasing and comfortable.
OurType
A belgian type foundry with horizontal Flash-based navigation. Content blocks slide horizontally.
Jung v. Matt
This website has a horizontal timeline for navigation. Notice that there is no horizontal scroll bar; visitors use the vertical scroll wheel to navigate horizontally.
Your Auxillary
One of many so-called “single-page layouts.” The full content of these websites is on a single page, which is navigated using either the keyboard, the mouse or a menu (this website uses the third option). Here we have a good (and common) combination of vertical and horizontal navigation (showing the jQuery ScrollTo plug-in in action).
One Twenty Six
This portfolio has a different kind of horizontal navigation. Apart from “Previous” and “Next” buttons, the user also gets an overview of selected content in a drop-down menu. Once they select an option, the page scrolls horizontally. Horizontal navigation with the mouse wheel would probably improve this design’s usability.
Jax Vineyards
This wine store website has interesting and unique horizontal navigation, which is triggered when you browse the wine catalogue. Both the background image and description of the wine slide horizontally. Simple CSS and JavaScript are used. A beautiful and impressive design.
C. L. Holloway
Candice Holloway’s portfolio has a nice take of horizontal layout. Her artwork is placed on a “wall”; horizontal navigation is used as a metaphor for strolling an art gallery. Also interesting: scrolling is triggered when your mouse hovers over the horizontal arrows; no clicking necessary.
Yamaha Ginza
You’ll find that designers experiment with perspective. Sometimes the orientation is diagonal…
Edpeixoto
… and sometimes the layout just hangs in the air…
ASOS
… and sometimes it’s slanted. Notice how none of the elements have perpendicular lines.
Further Reading
A showcase of designs that tilt to one side and avoid perpendicular lines.
This plug-in lets users scroll through overflowing elements and the screen itself. You get many different customization options and various ways to specify the direction in which to scroll.
5. Rich, Strong Typography
Typography has played a major role in Web design for years now. Bold, strong, heavy headlines can effectively convey the purpose of an e-commerce website or portfolio, while subtler headings help structure content and improve legibility. Obviously, the big change we’re seeing today is richer, more versatile typography, partly made possible by the
@font-faceattribute and the emergence of font-embedding services such as TypeKit. Rich typographic elements can now be selected and copied from the browser, which wasn’t that easy a couple of years ago.The future is big, bold and typographic. Rich font families will be used not only for headlines but for body copy, bringing typographic practices from print over to the Web. Also, designers will experiment more with rich, sophisticated serif fonts and bold, imposing slab fonts, supported by subtle imagery. Web designers are also adding more depth to typography with the
text-shadowattribute in CSS3. Naturally, such subtleties are closely tied to the choice of layout. These typographic designs are often grid-based and borrow techniqes from print design, such as sidenotes and footnotes.We’ve further noticed that designers are extending their font stacks, adding increasingly more fall-back fonts in case a specified font is not available. That’s fine, as long as the aspect ratios (or weights) of the fonts are not too different; some screen fonts will appear wider or taller than other fonts and hence have a larger aspect ratio, which means that some users would see your pages at a much smaller font size than others would. You might want to read more about CSS font stacks in Russ Weakley’s presentation.
Kilian Muster
Kilian Muster uses quite an extended serif font stack for his design:
font-family: Palatino, "Palatino Linotype", "Book Antiqua", Constantia, Times, "Times New Roman", serif;. The posts in Kilian’s blog also have sidenotes.extrapolish
Notice that the text on this website of a Polish Web design agency is set mostly in capitals: the navigation menu, introductory text and even contact address are in full capitals. Yet the design is calm, clean and polished.
DNA to Darwin
This website has only serif fonts throughout its design:
font-family: "skolar-1","skolar-2", Georgia, Times, serif;. Notice that the text is split into columns; we didn’t see this last year.COG’AOKE
Again, huge, bold slab typography that makes a strong impression and engages the audience.
TRÜF
This design agency combines a bold color choice with concise, equally bold sans-serif typography.
Pioneers
This website combines vivid imagery and playful typography. The design looks more like a brochure or poster than a “classic” Web page.
Colly
Simon Collison’s subtle attention to the tiniest details make the typography literally stand out. No bold, screaming typography here; just legible, aesthetically pleasing design.
The Saint John’s Bible
This website shows serif fonts at their best. The fonts complement the theme and fit the layout perfectly. Notice how well a beautiful visual design and classic typography can work together.
Brewhouse
A nice combination of type and visuals make this page remarkable. But it’s not clear why the page has three different typefaces for the headings; two would be enough.
Tick Talk
Can this get any bolder? Big bold typography, with capital letters spread across the whole page. When scrolling the page, notice the nice background effect. A very simple and strong design.
The Sew Weekly
This blog has very playful, inviting typography (Proxima Nova for the body copy and Coquette for headlines), and all of it can be easily selected and copied. This is the power of embedded fonts (TypeKit is used here). Only serif fonts are used:
font-family: "skolar-1","skolar-2", Georgia, Times, serif;. Notice the text is split into columns — again, a trend we’ve seen only this year.Neiman Group
The Neiman Group incorporates its brand colors into the navigation and headline of the front page. The typography is light and classic and gives the page a certain atmosphere.
Conclusion
Modern Web design is better, richer and more user-friendly. We’re seeing better use of visual design for the sake of aesthetics and a pleasing user experience. Traditional techniques from print design are increasingly being applied to the Web, be they layout techniques or rich versatile typography. Horizontal and even diagonal orientations bring a fresh perspective to the flat 2-D designs we’ve seen for years (with their text-heavy, Flash-based pages).
These developments are a sign of the upcoming era of Web design, in which designers can use new tools and techniques to their fullest potential. Web designers should look forward to the exciting and promising years to come.
Stay Tuned!
This article is the first in our series on the current state of web design. Next time, we’ll discuss other developments, such as adaptive and interactive layouts, CSS3 adoption, beauty in chaos, subtle interactivity, context-sensitive navigation and over-designed design. To make sure that you don’t miss the second part, subscribe to our RSS feed and follow us on Twitter.
(al)
© Vitaly Friedman for Smashing Magazine, 2010. | Permalink | 106 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | http://www.smashingmagazine.com/2010/05/04/web-design-trends-2010/“>Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: 2010, trends
We’ve been releasing many icon sets and WordPress themes on Smashing Magazine, yet today we are glad to announce the release of a bit different freebie. This post features a VI Help Sheet, a cheat sheet for the VI Editor, for all web-developers out there who are working on Linux. The help sheet was designed by GoSquared and released for Smashing Magazine and its readers.
The cheat sheet contains terminal commands for modes and controls, inserting text, cursor navigation, deleting text, searching and replacing. Download it. Print it. Stick it on the wall and get commanding.
Download the cheat sheet for free!
Behind the design
As always, here are some insights from the designers:
Thank you, guys. We really appreciate your work and your good intentions.
© Smashing Editorial for Smashing Magazine, 2010. | Permalink | 38 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | http://www.smashingmagazine.com/2010/05/03/vi-editor-linux-terminal-cheat-sheet-pdf/“>Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags:
Open-source content management systems (CMS) are a large family of Web applications, but if we’re looking for stability, performance and average technical requirements, we’ll come up with a handful of options. In the past, choosing the “right” CMS was a matter of the project’s requirements, but now this is not completely valid because the paradigm of extensibility had driven the development of major CMS’ towards a model of core features that are extensible with plug-ins that fill virtually any requirement.
Picking the right CMS is then a matter of “mental models”: choosing the one that best fits our vision of how a Web application should work and what it should provide to users and administrators. In this article, we’ll explore the main difference in the mental models: of WordPress and Joomla for theming and extending their core.
[By the way: The network tab (on the top of the page) is updated several times a day. It features selected articles from the best web design blogs!]
Background Thoughts
WordPress and Joomla are two of the most popular open-source CMS’ around. They offer large and active developer communities and excellent documentation.
WordPress is the first choice among the designer community mostly because of its well-designed back end and wide availability of excellent themes.
Joomla, meanwhile, suffers from Mambo’s legacy, which was notorious for low performance and semantically incorrect output (such as nested tables for layout). But since the release of version 1.5, Joomla has a completely rewritten core, with improved extensibility and better HTML output.
One difference between WordPress and Joomla is their theming model. A website developer migrating from Joomla to WordPress might feel that the latter requires too much theme coding, while a developer moving the other way might feel that Joomla is less flexible and customizable. The reason for this is the different models on which the themes of these CMS’ are based.
WordPress’ Theming Model
WordPress’ theming model is based on a per-view structure. This means that in each theme, you could have individual view files for the post list, the single post and the archive pages. These files are independent of each other, allowing the developer to customize each view but requiring them to duplicate many parts of the code. The only common parts in a theme are the header and footer, which can be coded directly in the individual view anyway.
The main drawback of this model is that different views will not always require a different presentation (for example, the archive, category list and tag list are just lists). To overcome this problem, a theme is organized in a hierarchical structure, in which more generic views are used as fallbacks for specific ones. The common fallback for a WordPress theme is the index.php file, which is actually the only required file (along with a style sheet) in a theme. A complete reference and visual diagram of the hierarchical structure of a WordPress theme are available here.
The Loop and Template Tags
To better understand how a WordPress theme works, we need to look more closely at the “loop” and template tags.
All data for a post or a list of posts is extracted through a loop. A loop is basically a
whileconstruct that begins with this declaration:The most important part of this code is
the_post(), which initializes a global$postPHP object containing all of the page data. The loop construct is also required for single post view, because all functions for presentation of data rely on the presence of the$postobject. These functions are called template tags, and their main purpose is to output formatted data. Usually, they do not output HTML tags so that they can be used in different scenarios.A complete guide to theme development is available here.
Joomla’s Content-Based Model
Joomla has a completely different theming approach. Joomla’s templates are built on a common structure defined in an index.php file.
This file contains both static content (i.e. content that is common throughout the website) and template tags, which serve as content place-holders and are replaced by HTML output during the page-rendering phase.
A common form for a template tag is:
Template tags differ in the type of content they provide: component, message, module, head.
This structural backbone implies that each view in the CMS outputs not a complete page but just what’s needed to present content. At first glance, a developer used to the theming model of WordPress might think that there’s no way to customize this content block. In fact, Joomla relies on the MVC architectural pattern, meaning that data extraction and presentation are separated, the latter being rendered by the view part of the application.
Template Customization
To customize the default view, Joomla has a pattern called template override, through which the system scans the template folder for a custom view file to use in place of the default one. The image below shows the folder structure and naming convention of a default view and its override.
An example of the folder and file structure of a Joomla template override (from the “ja_purity” template).
Joomla overrides are an excellent way to customize a website template without hacks. Still, they are often overlooked, and Joomla’s support of legacy extensions make this pattern unusable, even for popular packages such as Virtuemart (which uses its built-in template system).
A complete reference for Joomla’s template system is available here.
Beyond Core
(Image by jared)
In the last few years, plug-ins have made a big difference in the software industry, one of the most notable examples being Mozilla Firefox.
As we noted, modern CMS’ are developed to be extensible, allowing us to use the core as a backbone and build specialized parts on top of it. This resulting modular design is an effective development model for many reasons:
Developers don’t need to modify the core in order to add or customize functionality.
Only features that are needed are included, resulting in less memory consumption, a smaller code base and fewer vulnerabilities.
By offering an extensions API, third-party developers can add new features while the core team focuses on the reliability and performance of the system.
With open-source projects, this last point is both a blessing and a curse. It benefits from shared development effort but leads to unverified work and a less organized workflow.
Joomla and WordPress have tried to overcome this curse by providing coding guidelines. Still, little effort is spent documenting the back-end and front-end UI design.
Aside from their different naming conventions, the extensions models of WordPress and Joomla differ in how third-party code interacts with the core by mean of the extensions API.
The key point to understand is that while Joomla is based on MVC pattern, WordPress relies on an event-like system to which extensions can be hooked. Let’s look at some details.
WordPress’ Hook Method
WordPress’ extensions model is based on the execution of a set of functions attached to the system flow by mean of “hooks.”
Hooks contain a list of functions that are triggered at various points as WordPress is running. They manipulate (in the case of filter hooks) and output (in the case of action hooks) database data and can be accessed from within the theme itself and from a specialized plug-in package.
WordPress lacks comprehensive documentation for hooks, but a list of hooks is available here.
To understand the mental model behind WordPress’ hook system, we can compare it to the sequence of actions in baking a cake. In the beginning, we have an idea of what kind of cake we want to bake, so we get our ingredients. We cannot just throw everything together and bake it. So, we execute an ordered list of actions, such as “filtering” egg shells and mixing the eggs in with flour and sugar. As we’re doing that, we might want to customize the recipe. So, we “plug in” some chocolate and perhaps reduce the quantity of another ingredient by half. The result is a proper cake, created from discrete ingredients and a touch of creativity.
WordPress bakes its pages the same way.
Sidebars and Widgets
While plug-ins are broadly related to hooks, a widget is a special type of plug-in. It provides a means of showing information in a theme’s sidebar. The main advantage of widgets is that they are configurable in the back-end interface, allowing quick customization even for novice users.
All available widgets are listed in an administration panel.
In terms of theme development, the sidebar is similar in its mental model to Joomla’s template tags. It is a placeholder for something. The misleading bit is that a sidebar doesn’t have to be placed in the actual sidebar of a layout. It could go in the footer, navigation, header or elsewhere.
To learn more about the new API for widget development, have a look at the official documentation.
Adding Functionality
Until now, the problem with WordPress’ extension API was that it gave you no simple way to add complex functionality, such as e-commerce carts and event listings. Most developers excused this shortcoming by pointing out that WordPress is a blog engine. This will hopefully be resolved with the release of WordPress 3.0 and its system for “post types,” which makes it possible to use the “post” and “page” interfaces for different types of content.
As for other popular CMS’ (such as Drupal), post types function as a kind of “Content Construction Kit,” giving you the ability to smartly add, manage and present specialized content. If you’re interested in trying this new feature, here is a good tutorial.
Other than post types (and until major plug-ins update support for this feature), the only feasible way to add complex functionality is to use already existing pages as containers, placing in the body a place-holder (called a “shortcode“) that is replaced with HTML output by specific filter hooks.
This approach is used by plug-ins such as Buddypress and WP e-Commerce, which extend the blog engine with social network and shopping-cart capabilities.
Another great example of shortcode implementation is Contact Form 7, a fully featured contact-form management plug-in.
Extending Joomla
An often overlooked aspect of Joomla is that it is built on the solid MVC framework. So, extending its core is really much like working with products such as Zend Framework and CodeIgniter, which give you an already designed back-end interface upon which to integrate your own extensions. This approach also gives designers the ability to use template overrides, even for third-party extensions.
A diagram depicting Joomla’s Model View Controller system flow.
To better understand MVC and how it works in Joomla, here is a complete reference.
Joomla’s Extension Types
Joomla’s extension model comes in three flavors, each with different tasks: components, modules and plug-ins.
Components extend the core by adding specific functionality, such as e-commerce carts, event listings and forums. From the user’s point of view, we can think of components as discrete sections of a website, not connected to other content. A popular example is JEvents, an events calendar.
In the theme system, a component’s output replaces the
componentplaceholder in the template’s index.php file:Modules are like widgets in WordPress: they show a component’s information, which is extracted from the database. They are “attachable” to module positions and can be put on every page of a website.
Modules are primarily intended to be teaser blocks, but they can incorporate full text and image galleries, which makes them handy for static parts of a layout, such as footer notes. They are also useful for showing related content on a page. For example, you could highlight interesting products for Web developers as they’re browsing a list of barcamp events.
The template tag, which serves as module place-holder, looks like this:
Plug-ins work similar to WordPress’ hook system, because they bind to specific system events to format, manipulate and replace HTML output. Possible fields of action range from content for articles (such as video embedding tools—AllVideos is a popular one) to HTML filtering and user-profile extension. Commonly used Joomla plug-ins include URL rewriting filters, which come bundled with administrative components such as Sh404SEF.
Compatibility Issues
One thing every developer should be aware of is that, despite efforts to provide a great extension API, Joomla 1.5 still suffers in its support of legacy extensions (built for v1.0), which do not have an MVC structure and which are sometimes hardly customizable. Furthermore, they break the API mental model.
The Joomla extensions library has a clear mark for 1.0 or 1.5 native extensions. But faking 1.5 native compatibility is easy, which would leave developers with nothing but legacy code. This method is followed even by big well-known projects like Virtuemart.
Hopefully, once Joomla 1.6 is released and legacy support is dropped, every developer will rework their code to fit the CMS’ specifications.
What’s Next
While the best way to choose a CMS is by trying it out on a real project, understanding its underlying mental model can make developers feel less lost in code and more aware of the design patterns they need to follow.
If you want to develop themes and extensions for Joomla and WordPress, here are some resources.
WordPress:
Joomla:
(al)
© Marco Solazzi for Smashing Magazine, 2010. | Permalink | 113 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | http://www.smashingmagazine.com/2010/05/03/joomla-and-wordpress-a-matter-of-mental-models/“>Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: joomla, wordpress
Symmetry is the ordering principle in nature that represents the center of balance between two or more opposing sides. As a fundamental design principle, it permeates everything: from man-made architecture to natural crystalline formations. In nature, symmetry exists with such precision and beauty that we can’t help but attribute it to intelligence–such equal proportions and organization would seem to be created only on purpose. Consequently, humans have borrowed this principle for its most iconic creations and symbols.
There are several types of symmetry, but the most basic are translation, reflection and rotational. Each of them has specific and practical expressions in nature, and each can be used to communicate intuitive principles when appropriately and subtly integrated in a design. As a simple aesthetic, these opposites that work together can add visual appeal.
[By the way: The network tab (on the top of the page) is updated several times a day. It features selected articles from the best web design blogs!]
Translation Symmetry
In its simplest form, symmetry is a repeating pattern of identical elements that are equally spaced out along a line. This is called translation symmetry. It is commonly used as a border to hold more complex patterns “in line” on a two-dimensional space. In architecture, it is used for three-dimensional support by distributing weight evenly across load-bearing beams and columns.
Translation symmetry is also found in the basic notion of reproduction, by which a “lineage” is created by one generation inheriting the previous generation’s characteristics. For example, a row of corn kernels contains genetic information for successive crops, and a pure-bred animal contains specially cultivated traits that will be passed down its line.
To take an example from graphic design, translation symmetry has been used to good effect by the PBS network. PBS focuses on multi-generational and multi-cultural educational programming, delivered in an objective style. The repeating human face in its logo, alternating progressively from black to white and black again, visually conveys this purpose very well.
The repeated visual is an effective way for the PBS to represent its balanced programming and to show its equal consideration of the ethnic, age and gender diversity in its audience. The US Department of Health and Human Services also uses a form of translation symmetry. Not as linear as PBS’, this one gradually morphs from people into an eagle, transforming the US population into the country’s primary symbol.
Think about what these logos accomplish. These public messages emphasize equality and unity. Individually, we may stand alone, but as a group, we are essentially the same. Translation symmetry is a visually subtle way to convey this message. How many examples of translation symmetry can you find in identity design? It’s not as common as the other symmetries explored here because it is perhaps not quite as engaging. Is there a reason why this symmetry was chosen by these particular organizations? Bear in mind, too, that these kinds of design choices are often made at an unconscious level by the designer.
Reflection Symmetry
More complex than translation symmetry is reflection symmetry, a fundamental trait of all moving creatures. This symmetry involves coordinated two-sided movement, representing a higher order of symmetry.
The beginning of life itself exhibits this symmetry. After fertilization, an egg splits in half and begins the process of billions of subsequent divisions, resulting in the mirrored symmetry of a bilateral body. Most bodies of animals are bilateral along a mirrored line (i.e. the same on both sides when split down the middle). Whether flying, swimming, crawling or walking, animals must have appendages of equal proportion on both sides if they are to have reliable and balanced movement through space.
A little over 90% of people are born right-handed, regardless of culture, writing preference and racial or linguistic qualities. Why would nature choose the right hand over the left repeatedly for the human species? Language—the most important human attribute because it allows us to communicate across generations and cultures, thus increasing the likelihood of survival—resides in the left hemisphere of the brain, which controls the right side of our body. Most people who can use both hands with facility, called ambidextrous, are self-trained (and often culturally trained).
Being left-handed has never been popular, and left-handed people learn to use both hands. An even smaller proportion—perhaps 1%—are born innately ambidexterous. However rare, some of the most brilliant minds we’ve known were born with this ability: Leonardo da Vinci, Albert Einstein, Dutch artist Maurits Escher and Benjamin Franklin.
Their ability to balance creative invention with practical execution changed the perceptions of entire cultures. And they did it not over generations (as is characteristic of most radical new ideas) but in their own lifetimes. Did their innate ability to bridge opposites give them the dexterity to change protocol?
Speaking of language, most of the upper-case letterforms in the English alphabet have reflection symmetry along either their vertical or horizontal axis. Can you find the letters that exhibit this symmetry? (Hint: all but nine are symmetrical.)
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Here’s a fun trick: take one of my favorite words, “CHOICE.” Print it out on a piece of paper, and fold it horizontally down the middle of the word. Hold it up to a mirror, and you’ll see the “either/or” propensity of the human species that separates us from all others. You can also do this in a vector program such as Illustrator or Freehand by cutting away half of the word and horizontally reflecting the remaining half.
This is similar in concept to a logo I designed using mirror symmetry for a client named Body Wisdom. You can see how this kind of symmetry would link the name and idea: the hands represent body work, and “wisdom” is implied by the owl’s face that this particular configuration of horizontal line symmetry created. This principle made for a memorable symbol that balanced the functional aspect of the name with its visual representation.
Rotational Symmetry
Rotational symmetry involves a central point around which an image is rotated in equal degrees without distortion or change. By rotating the image evenly around the circle (remember, that’s 360°), you can create two, three, four or more rotational symmetries. For instance, the Aerosmith logotype below displays two-point rotational symmetry (or two identical elements turned 180° degrees).
The Mercedes Benz logo has a three-point (or 120°) symmetry.
And the Sun Microsystems logotype has four-point symmetry (or 90° rotation) of four identical elements. The higher the number of rotations, the simpler the element must be for it to work.
In nature, symmetry is essential to life insofar as movement is dependent on form. And we recognize the importance of this principle in architecture, physics, art and visual design. We derive meaning by relating form to function, and symmetry creates this meaning. We incline in our designs towards this balance that we see in nature.
Applying this principle to our own designs is eminently practical in whatever field, because it employs a universally pleasing ratio that anyone can relate to. In consciously using this principle, we also draw closer to nature, thus imbuing our own designs with usefulness and intuitive logic.
Symmetry is an excellent principle on which to base a logo or a poster—any project, in fact, that is restricted by time or space and that has to resonate deeply with the audience.
Win Maggie’s Book on Twitter
We are also giving away 3 copies of Maggie’s book “Decoding Design” on Twitter. To win one, just tweet us with the hashtag “#smgiveaway” and let us know why you want to win the book!
(al)
© Maggie Macnab for Smashing Magazine, 2010. | Permalink | 17 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | http://www.smashingmagazine.com/2010/05/02/symmetry-a-balancing-act-in-two-or-more-parts/“>Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags:
Desktop wallpapers can serve as an excellent source of inspiration. However, if you use some specific wallpaper for a long period of time, it becomes harder to draw inspiration out of it. That’s why we have decided to supply you with smashing wallpapers over 12 months. And to make them a little bit more distinctive from the usual crowd, we’ve decided to embed calendars for the upcoming month. So if you need to look up some date, isn’t it better to show off a nice wallpaper with a nice calendar instead of launching some default time application?
This post features 40 free desktop wallpapers, created by designers across the globe. Both versions with a calendar and without a calendar can be downloaded for free.
Please notice:
So what wallpapers have we received for May 2010?
[Offtopic: by the way, did you know that Smashing Magazine has one of the most influential and popular Twitter accounts? Join our discussions and get updates about useful tools and resources — follow us on Twitter!]
The End of Explorer Calendar
"For friends of MSIE, here is “The End Of Explorer” may 2010 desktop wallaper calendar, in a Variety of resolutions from 320?480 (iPhone) to 2560?1600 ! Hope you’ll find some size here to fit with your desktop
" Designed by Benoit Chartron from France.
A Designer’s Life
"That is what a designer sees on his real desktop, now you can see it on your computer." Designed by Mladen Milinovic from Germany.
Focus on work
"This wallpaper design is supposed not to distract your attention, but to make you focus on work. This might work if you keep your desktop clean enough
" Designed by Andrei Verner from Russia.
Play With Me
"One of my latest photographs taken on a beautiful summery day in the “golden hours” — I was lucky enough to capture our puppy and my sister, Sasha Bell playing on the lawn. I thought this would be a lovely wallpaper with a hint of the lovely summer we all deserver in the UK! No rain! Happy May everybody!" Designed by Olivia Bell from England, UK.
Moto
Designed by Björn Leek from Germany.
May Happen, May Be
"”May Happen, May Be” is all about possibilities… we can all get out of our cages, maybe in may!" Designed by Thais Trizoli from Brazil.
Rapunzel
"A grunge take on Rapunzel!" Designed by Cindy Zhang from USA.
Birdhouses
Designed by Pietje Precies from The Netherlands.
May Flowers
"The flowers are blooming and it’s time to celebrate spring with this whimsical wallpaper!" Designed by thunder::tech from USA.
Matilda’s Backyard
"It was May day Eve. The clock strikes twelve. The cat was asleep, the ladder cast aside and the book with a giant red apple opens." Designed by April Joy E. Jasmin from Philippines.
May in Warsaw
Designed by Berenika Kołaczyńska from Poland.
Bubble Bath Delight
"A little blissful paradise desktop from me this month – bubble bath’s are yummy and I thought I would take this to an entire new level. Happy May!" Designed by Sasha Bell from England, UK.
Chocolate Strawberries
"I always see a lot of photography featuring random fruit and lemons (a lot of lemons!) falling/splashing into water, and thought it would be cool to turn a photography “idea” into a vector looking design, but with chocolate and strawberries! Happy May
" Designed by Rosanna Bell from England, UK.
Oasis
"I’m hoping for a bold and beautiful summer." Designed by Marc Allcock from England.
Todo Sobre mi Madre
"With Mother’s Day looming in, I decided to make a tribute to a great film “All About my Mother”. For the Spanish version, please visit my DeviantArt." Designed by Ale Ibarra from México.
Starbucks Coffee
"Everybody I know loves coffee… and for that matter, starbucks! Happy May!" Designed by Sasha Bell from England, UK.
Mamayo
"This is a mother’s wallpaper theme." Designed by Ricardo Delgado from México.
Curly Forest
"Catch a firefly in the twisty, curly forest." Designed by Chris Alexander (Yipori) from England.
May be something else
"Thinking about May…" Designed by Fabio Toscani from Italy.
Flower Field
"The U.S. National Archives has a photo stream on Flickr of images free for unrestricted use. This wallpaper was made from photographs taken for the Documerica project by the EPA in 1972. The flowers were from a field in Kerr County, Texas and Inks Lake, Texas. I wanted it to look like a painting. Link to original photographs" Designed by Laura Sylvest from Washington, D.C., USA.
Thailand Kopipi
"May is when spring usually starts. May is also when we are all starting to think about a summer vacation.I would personally recommend going to Thailand Kopipi, it’s amazing and it’s also where this picture was taken." Designed by Liad Guez from Israel.
Birds of Spring
"May’s a month of happy sounds,
The hum of buzzing bees,
The chirp of little baby birds
And the song of a gentle breeze."
Designed by Manish Jinwal from India.
Mother’s day
"”My mother said to me, “If you become a soldier you’ll be a general; if you become a monk you’ll end up as the pope.” Instead, I became a designer and now this wallpaper is heartly dedicated to my Mother.”I Love U MOM…" Designed by Manish Jinwal from India.
WordPress’ popularity has grown exponentially as of late. This rise in popularity is due in part to WordPress’ custom fields. Custom fields allow you to add little bits of data to posts. They have changed the way people look at WordPress. A couple of years ago, WordPress was a blogging platform — a good one, but a blogging platform nonetheless. Now it’s widely considered to be an excellent simple content management system. How did it evolve so quickly? Custom fields, that’s how.
How exactly did these bits of data transform WordPress? The fields could initially include the weather — as the codex points out — the temperature and various other not-particularly-useful things. And that was the story for a while. Then people started to realize that they could use the custom fields to store URLs of images. They could then pull these images to the home page to create magazine-style layouts. These magazine themes, as they became known, evolved, and eventually you were able to pull images automatically from posts. You can draw a direct line from WordPress’ popularity to the magazine themes to custom fields.
[By the way, did you know we have a brand new free Smashing Email Newsletter? Subscribe now and get fresh short tips and tricks on Tuesdays!]
The Custom Field Syntax
In order to do more complicated things, you’ll need to understand the syntax. Creating a custom field is easy: it requires a name and a value. The name is constant, but the value can change with each post.
A real-world example: let’s say you run a blog about cameras. You have categories set up for each type of post (“Review,” “New,” etc.), and you tag the post with the manufacturer’s name. But you want to display the price and specifications of the camera. This is as easy as creating a new custom field with the name
Camera_Specsand then typing the info into the value box. Click the “Add” button and you will have added the custom field to the post.Displaying the field on the page is simple, too. In the single.php file, add the following code:
(You might want to wrap this in a paragraph, ordered list or the like. You can use HTML in the value of the field.)
Custom fields can be conditional, too. We can display a camera’s specs or, if that isn’t available, some generic text.
<?php $camera_specs = get_post_meta($post->ID, 'Camera_Specs', true); if ($camera_specs) { ?> <?php echo $camera_specs; ?> <?php } else { ?> <p>No specification available.</p> <?php } ?>That’s the general syntax, and now the only limit is your imagination!
Spicing Up Post Titles
Post titles are usually fairly boring. You’re limited to text. Links aren’t possible, nor is HTML. Well, not anymore. Custom fields to the rescue!
Using a conditional statement and custom fields, adding any HTML to your posts’ titles is now possible. (This won’t work with RSS feeds or the like, but it works great for any titles on the blog itself.) We’ll use the custom field
Post-Title:You can add any HTML you like to your posts’ titles. Implementing it on your blog is easy, too. You’ll have to use the following code on all pages on which titles are displayed: the home page, archives, current posts, etc. The following snippet looks for the custom field and falls back on
the_title:<?php $post_title = get_post_meta($post->ID, 'Post-Title', true); if ($post_title) { ?> <h2><?php echo $post_title; ?></h2> <?php } else { ?> <h2><?php the_title(); ?></h2> <?php } ?>An easy yet effective way to improve your website.
Only Display Posts With A Specific Custom Field
WordPress displays posts through something called a loop. Another WordPress function,
query_posts, allows you to choose exactly which posts are displayed in your loop. One parameter lets you display only posts that have a custom field and/or that have a specific custom field value. Going back to our camera website, we could display only posts that have the custom fieldCamera_Specs:query_posts('meta_key=Camera_Specs');If we wanted to display only cameras that had 10 megapixels (and if all posts had the custom field
Camera_Specs_Pixelsthat specified the value of the number of megapixels), we could do so with the following:query_posts('meta_key=Camera_Specs_Pixels&meta_value=10');You may want to do this on a custom page template. If so, just add the following to the top of the file and name it appropriately (e.g. camera-specs-pixels.php):
To make your new page template show up, create a new page, and then in the drop-down on the right, choose the page template you’ve just created. Publish the post, and you’re done!
Using Custom Fields To Create A Unique Design
WordPress 2.7 introduced the
post_classfunction. This allows you to apply specific CSS classes to posts (thus giving them unique designs). Guess what? You can use custom fields to apply particular classes!This one is a bit more involved. First, open your functions.php file and add the following code:
function shiftnews_post_class($classes) { global $post; $sn_post_class_array = array ( get_the_author_meta('display_name'), get_post_meta($post->ID, 'post-class', true) ); $classes[] = implode(" ", $sn_post_class_array); return $classes; }You’ll then need to edit your single.php file, adding
<?php post_class(shiftnews_post_class()); ?>to a DIV that wraps your content. Using the custom fieldpost-class, you can then type in CSS classes (e.g.flower-bgorblue-content, which would apply the classes.flower-bgor.blue-content), thus adding them to the post.The possibilities here are inspiring, and this is quite possibly the best way to create a unique post design for WordPress.
Set a different background for each post with custom fields
You could take this even further by allowing users to choose a background image through custom fields. Of course, you could just resize the image to 1920×1200, upload it and copy the URL into a custom field, ‘background’ and then put the following code in your header:
<?php if (is_page() || is_single()) { <?php $background = get_post_meta($post->ID, 'background', true); if ($background) { ?> <style type="text/css">body{ url(<?php echo $background; ?>) no-repeat fixed; }</style> <?php } }?>But that would be a pain to do every single time you just wanted to change the background image. There is an easy way to do it: upload an image, copy the URL into a custom field and then use a script to resize the image and set it as the background.
First thing to do is to upload an image. We’re going to be resizing it to 1920px (although depending on your audience you may want to use a higher/lower resolution) so anything that’s 1200px wide or above should look fine.
Copy the relative URL of the image (ie /wp-content/… , not http://yoursite.com/wp-content/) into a custom field called ‘background’ and click ‘add custom field’. Next, we need something to resize the images with. We’ll be using timthumb. Upload it to /yourtheme/timthumb/ and we’re ready to go!
Open up your header once again and add (below your theme’s stylesheet) the following:
<?php if (is_page() || is_single()) { <?php $background = get_post_meta($post->ID, 'background', true); if ($background) { ?> <style type="text/css">background: url(<?php bloginfo('template_url'); ?>/timthumb/timthumb.php?w=1920&zc=1&src=<?php echo $background; ?>) fixed no-repeat;</style> <?php } }?>What that does is takes the image from the custom field and then runs it through timthumb so it gets resized to fill the entire screen, even on large monitors (the image then gets cached, so it is only generated once). The resized image is then displayed as the background of the post.
If you’re having problems, make sure you’ve got the relative URL and not the absolute URL of the image, it is hosted on your server (you’re not hotlinking!) and that you have the file permissions set correctly (as shown in the timthumb wiki). This is one of my favourite things to do with custom fields as not only is it easy to do, but it’s also very effective in differentiating different blog posts; this technique is used to great effect on Nometet.com.
Search Engine Optimization With Custom Fields
The “All in One SEO Pack” is consistently one of the most popular plug-ins for WordPress. It allows you to do things like specify your own title tag or meta description. It is powered by custom fields, meaning you can recreate it in your theme.
Start by adding the following code to your theme’s
titletag:<?php if ( is_single() || is_page() ) { ?><?php $title = get_post_meta($post->ID, 'Title', true); if ($title) { ?> <?php echo $title; ?> | <?php bloginfo('name'); ?> <?php } else { ?> <?php wp_title(''); ?> | <?php bloginfo('name'); ?> <?php } ?> <?php } ?>Now, when a page or post is displayed, WordPress will look for the custom field
Title. If it exists, its contents will be displayed; if it doesn’t, then the post’s title will be displayed. To use this new-found power, create the custom fieldTitleand make its value what you want to be displayed in thetitletag (note that| [Blog name]will be added).You can apply the same idea to other elements, such as the
descriptiontag:<?php if (is_single() || is_page() ) : if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <meta name="description" content="<?php $description = get_post_meta($post->ID, 'Description', true); if ($description) { ?><?php echo get_post_meta($post->ID, "Description", true); ?> <?php } else { ?><?php the_excerpt_rss(); ?><?php } ?>" /> <?php endwhile; endif; elseif(is_home()) : ?> <meta name="description" content="<?php bloginfo('description'); ?>" /> <?php endif; ?>The code above should replace the entire
descriptiontag and allow you to use the custom fieldDescriptionto display the contents of the description tag. If the custom field does not exist, then the excerpt is used on posts and pages, and the blog’s description (which you set when you installed WordPress) is used on the home page.Read more on the topic in the article WordPress SEO: The Definitive Guide To Higher Rankings For Your Blog.
Custom This, Custom That!
Custom fields are very powerful, and the only limit is your imagination! As we’ve seen in this post, you can do some really awesome things with WordPress’ custom fields. They can improve both your blog and its ranking in search engines. Enjoy!
If you’d like to do some further reading:
The possibilities for this are inspiring, and this is quite possibly the best way to create a unique post design for WordPress.
Of course, the other option is to use custom fields to include a style sheet that is specific to the post or even just to use inline styling.
You can add a style sheet to a post with a custom field value quite easily. First, add the following code to the header.php file, after your theme’s style sheet loads:
<?php if (is_page() || is_single()) { <?php $stylesheet = get_post_meta($post->ID, 'Stylesheet', true); if ($stylesheet) { ?> <link rel="stylesheet" href="<?php bloginfo('template_url'); ?><?php echo $stylesheet; ?>.css" type="text/css" media="screen,projection,tv" /></h2> <?php } }?>This tells WordPress to look for the custom field
Stylesheeton posts and pages. All you’ve got to do is enter the name of the style sheet (so if it’s blue.css, just enter the valueblue) and upload it to your theme’s directory.A whole new style sheet might be overkill in some cases, though. If you’re changing just one or two styles, then inline styling might be the way to go. This is just as easy: paste the following code into your header.php file, again after your theme’s style sheet loads:
<?php if (is_page() || is_single()) { <?php $styles = get_post_meta($post->ID, 'Styles', true); if ($styles) { ?> <style type="text/css"><?php echo $styles; ?></style> <?php } }?>This piece of code looks for the custom field
Styles; put in it any styling you want to apply only to that post. For example:body{ color:#000; background:#fff; }There’s something for everyone here, so you can start to quickly create unique post designs however you prefer! You might want to look at Smashing Magazine’s previous post about custom fields as well.
(al)
© Alex Denning for Smashing Magazine, 2010. | Permalink | 64 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | http://www.smashingmagazine.com/2010/04/29/extend-wordpress-with-custom-fields/“>Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags:
CSS3 is probably the hottest trend in web design right now, allowing developers the opportunity to implement a number of solutions into their projects with some very straightforward CSS while avoiding having to resort to nonsemantic markup, extra images, and complex JavaScript. Unfortunately, it’s not a surprise that Internet Explorer, even in its most recent version, still does not support the majority of the properties and features introduced in CSS3.
Experienced developers understand that CSS3 can be added to new projects with progressive enhancement in mind. This ensures that content is accessible while non-supportive browsers fall back to a less-enhanced experience for the user.
But developers could face a situation where a client insists that the enhancements work cross-browser, demanding support even for IE6. In that case, I’ve collected together a number of options that developers can consider for those circumstances where support for a CSS3 feature is required for all versions of Internet Explorer (IE6, IE7, & IE8 — all of which are still currently in significant use).
[Offtopic: by the way, did you know that Smashing Magazine has one of the most influential and popular Twitter accounts? Join our discussions and get updates about useful tools and resources — follow us on Twitter!]
Opacity / Transparency
I think all developers are baffled at why Internet Explorer still fails to support this very popular (albeit troublesome) property. It’s been around so long, that we often forget that it’s actually a CSS3 property. Although IE doesn’t offer support for the
opacityproperty, it does offer similar transparency settings via the proprietaryfilterproperty:The Syntax
#myElement { opacity: .4; /* other browsers */ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40); /* this works in IE6, IE7, and IE8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=40)"; /* this works in IE8 only */ }You really only need the second line, which works in all three versions of Internet Explorer. But if for some reason you needed the opacity setting to apply only to IE8, and not to IE6/7, then you can use the third line, which the older versions don’t recognize.
The opacity value at the end of each IE line works basically the same way that the
opacityproperty does, taking a number from 0 to 100 (theopacityproperty takes a two-digit number from 0 to 1, so “44″ for IE would be “0.44″ for the others). Also, as many have experienced when using opacity (even when using the standard method), the opacity settings will be inherited by all child elements, for which there is no easy workaround.The Demonstration
This element has a solid blue background color (#0000FF), but is 60% transparent, making it appear light blue in all browsers
This is the same element without the opacity settings.
The Drawbacks
opacityproperty, the IE filter causes all child elements to inherit the opacityRounded Corners (border-radius)
The
border-radiusproperty (more commonly referred to as CSS3 rounded corners) is another popular CSS3 enhancement. This property has allowed developers to avoid the headache of bloated JavaScript or extra positioned elements to achieve the same effect. But once again, Microsoft doesn’t want to cooperate, so IE doesn’t have any support for this property.Fortunately, at least one person has come up with a very usable workaround that can be used in an IE-only stylesheet. Remiz Rahnas of HTML Remix has created an HTC file called CSS Curved Corner that can be downloaded off Google Code.
The great thing about this piece of code is that it doesn’t require any extra maintenance if you adjust the amount of radius on your rounded corners. You just link to the file in your CSS, and the script will automatically parse your CSS to find the correct radius value from the standard
border-radiusproperty.The Syntax
Here’s what your code might look like:
.box-radius { border-radius: 15px; behavior: url(border-radius.htc); }The way it works is pretty straightforward, as shown above. Ideally, however, you would apply the
behaviorproperty in an IE-only stylesheet, using the same selector in your CSS, so the code knows where to get the radius value from.The Demonstration
Because this technique requires use of an external HTC file, you can view the demo at this location.
The Drawbacks
behaviorproperty will make your CSS invalidBox Shadow
The
box-shadowproperty is another useful CSS3 feature that will even add a curved box shadow naturally to an element that uses theborder-radiusproperty. IE doesn’t supportbox-shadow, but a filter is available that offers a close replication.It should be noted that the
box-shadowproperty has been removed from the CSS3 Backgrounds and Borders Module, so its future in CSS3 seems to be a little uncertain right now.The Syntax
.box-shadow { -moz-box-shadow: 2px 2px 3px #969696; /* for Firefox 3.5+ */ -webkit-box-shadow: 2px 2px 3px #969696; /* for Safari and Chrome */ filter: progid:DXImageTransform.Microsoft.Shadow(color='#969696', Direction=145, Strength=3); }As shown above, in addition to the proprietary WebKit and Mozilla properties, you can add a shadow filter that works in all versions of Internet Explorer.
The Demonstration
This element has a drop shadow that works in Internet Explorer.
The Drawbacks
Text Shadow
Adding drop shadows to text elements has been practiced in both print and web design for years. On the web, this is normally done with images and occasionally with text duplication combined with positioning. CSS3 allows developers to easily add shadows to text using a simple and flexible
text-shadowproperty.Unfortunately, there doesn’t seem to be an easy way to add a text shadow in Internet Explorer — even with the use of proprietary filters. To deal with this problem, a Dutch front-end developer named Kilian Valkhof has written a jQuery plugin that implements text shadows in Internet Explorer.
The Syntax
First, in your CSS, you would set the
text-shadowproperty:.text-shadow { text-shadow: #aaa 1px 1px 1px; }The values specify the shadow color, position on the horizontal axis, position on the vertical axis, and the amount of blur.
After including the jQuery library and the plugin in your document, you can call the plugin with jQuery:
// include jQuery library in your page // include link to plugin in your page $(document).ready(function(){ $(".text-shadow").textShadow(); });The plugin also allows the use of parameters to override the CSS. See the plugin author’s original web page for more details on the parameters.
Although there is a cross-browser jQuery plugin that applies drop shadows, the one I’m demonstrating above actually utilizes the CSS3 value that’s already set in your CSS, so it has the advantage of working along with the standard CSS setting for text shadows, whereas the other plugin needs to be set independently.
The Demonstration
Because this technique requires use of the jQuery library and an external plugin file, you can view the demo at this location.
The Drawbacks
There are some significant drawbacks to this method that make it very unlikely to ever be practical. You’re probably better off creating an image to replace the text for IE instead.
z-indexvalueGradients
Another practical and time-saving technique introduced in CSS3 is the ability to create custom gradients as backgrounds. Although Internet Explorer doesn’t support gradients of the CSS3 variety, it’s pretty easy to implement them for the IE family using proprietary syntax.
The Syntax
To declare a gradient that looks the same in all browsers, including all versions of Internet Explorer, use the CSS shown below (the last two lines are for IE):
#gradient { background-image: -moz-linear-gradient(top, #81a8cb, #4477a1); /* Firefox 3.6 */ background-image: -webkit-gradient(linear,left bottom,left top,color-stop(0, #4477a1),color-stop(1, #81a8cb)); /* Safari & Chrome */ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#81a8cb', endColorstr='#4477a1'); /* IE6 & IE7 */ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#81a8cb', endColorstr='#4477a1')"; /* IE8 */ }For the IE filters, the
GradientTypecan be set to “1″ (horizontal) or “0″ (vertical).The Demonstration
This element has a linear gradient that works in Internet Explorer.
The Drawbacks
Some of the usual drawbacks apply to gradients created with the IE-only filter, along with some other problems.
Transparent Background Colors (RGBA)
CSS3 offers another method to implement transparency, doing so through an alpha channel that’s specified on a background color. Internet Explorer offers no support for this, but this can be worked around.
The Syntax
For the CSS3-compliant browsers, here’s the syntax to set an alpha channel on the background of an element:
#rgba p { background: rgba(98, 135, 167, .4); }With the above CSS, the background color will be set to the RGB values shown, plus the optional “alpha” value of “.4″. To mimic this in Internet Explorer, you can use the proprietary filter property to create a gradient with the same start and end color, along with an alpha transparency value. This would be included in an IE-only stylesheet, which would override the previous setting.
#rgba p { filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#886287a7', endColorstr='#886287a7'); }The “gradient” will look exactly the same in IE as in other browsers, duplicating the RGBA transparency effect.
The Demonstration
This first example below will work in browsers that support RGBA colors. The second example will only work in Internet Explorer.
This paragraph has a background color with a 40% opacity setting declared using RGBA (doesn’t work in IE).
This paragraph has an IE-only filter applied to mimic RGBA transparency (only works in IE).
The Drawbacks
filterproperty is not valid CSSNote: Initially, I had used a PNG image method to achieve this effect, but apparently it was working only partially in IE7 and IE8, and required a PNG-hack for IE6, so I tried the method given by Liam and Matias in the comments and this seems to work better. The PNG method is another option, but seems to be more troublesome, and has more drawbacks.
Multiple Backgrounds
This is another CSS3 technique that, when widely supported, could prove to be a very practical addition to CSS development. Currently, IE and Opera are the only browsers that don’t support this feature. But interestingly, IE as far back as version 5.5 has allowed the ability to implement multiple backgrounds on the same element using a filter.
The Syntax
You might recall trying to hack a PNG in IE6 and noticing the image you were trying to hack appearing twice, which you had to remove by adding
background: none, then applying the filter. Well, using the same principle, IE allows two background images to be declared on the same element.To use multiple backgrounds in Firefox, Safari, and Chrome, here’s the CSS:
#multi-bg { background: url(images/bg-image-1.gif) center center no-repeat, url(images/bg-image-2.gif) top left repeat; }To apply two backgrounds to the same element in IE, use the following in an IE-only stylesheet:
#multi-bg { background: transparent url(images/bg-image-1.gif) top left repeat; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src='images/bg-image-2.gif', sizingMethod='crop'); /* IE6-8 */ -ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/bg-image-2.gif', sizingMethod='crop')"; /* IE8 only */ }The Demonstration
The box below shows multiple backgrounds in Chrome, Firefox, and Safari (you won’t see anything in IE):
The next box shows multiple backgrounds in Internet Explorer 6-8 (you’ll only see a single background in other browsers):
The Drawbacks
filterproperty will always be in the top left, and cannot repeat, so this method is extremely inflexible and can probably only be used in a limited number of circumstancesElement Rotation (CSS Tranformations)
CSS3 has introduced a number of transformation and animation capabilities, which some have suggested are out of place in CSS. Nonetheless, there is a way to mimic element rotation in Internet Explorer, albeit in a limited fashion.
The Syntax
To rotate an element 180 degrees (that is, to flip it vertically), here is the CSS3 syntax:
#rotate { -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); }To create the exact same rotation in Internet Explorer, you use a proprietary filter:
#rotate { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); }The value for the rotation can be either 1, 2, 3, or 4. Those numbers represent 90, 180, 270, or 360 degrees of rotation respectively.
The Demonstration
The element below should appear upside down in Internet Explorer, having a rotation of 180 degrees set via the
filterproperty. To demonstrate this more emphatically, I’ve applied a 3px solid gray “bottom” border, which should appear at the top of the element.This element is rotated 180 degrees in Internet Explorer.
The Drawbacks
Update: As pointed out in the comments, IE does allow the ability to rotate objects with the same flexibility as the CSS3 methods. To explain the method here is too complex, but the CSS3, please project by Paul Irish has implemented this method into its code generator, so you can use that to create the IE-compatible code for CSS3 rotations.
Conclusion
Developers might hate me for compiling this list, seeing as any client could search for “CSS3 in Internet Explorer” and stumble across this page. So be careful what you tell your clients; although IE does not support these things natively, that doesn’t mean they’re impossible to implement.
And remember that anytime you need to override the initial CSS settings for IE, or if you have to use JavaScript, jQuery, or an HTC file, make sure the calls to the external resources are made using IE conditional comments. This will ensure the other browsers aren’t making unnecessary HTTP requests.
In many cases, the best solution for dealing with Internet Explorer is to let it display a less-enhanced experience. I hope, however, the above solutions provide some options for working with CSS3 when a client wants a more accurate cross-browser experience.
Related Posts
You may be interested in the following related posts:
© Louis Lazaris for Smashing Magazine, 2010. | Permalink | 138 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | http://www.smashingmagazine.com/2010/04/28/css3-solutions-for-internet-explorer/“>Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: CSS