Few weeks back we showed you teasers of the upcoming themes at templatic and the theme being released today is one of the last of them. Introducing Store Front the finest e-commerce wordpress premium theme you can use to create your online e-commerce business easily in WordPress. This time the theme is introduced in a bit different structure that many businesses use.
The logo at the top along with wide banner is definitely a cool thing to have. After the menu part, the sidebar on the left starting from the top is nice to have – it feels a bit different than the current boring trend everywhere. Also this widget ready sidebar remains consistent throughout your site showcasing the mini shopping basket and other widgets such as shop categories, ad banner, archives, pages etc.
It transforms your WordPress install into a fully functional Ecommerce store complete with backend administration. Use wordpress to easily manage your store that sells Tangible or intangible/digital goods.
This theme utilizes all the standard features of our other e-commerce themes.
Take a look at the live demo of the theme and you can purchase from official Store Front theme sale page.
You may be wondering why you’re reading about the good old semantics on Smashing Magazine. Why doesn’t this article deal with HTML5 or another fancy new language: anything but plain, clear, tired old semantics. You may even find the subject boring, being a devoted front-end developer. You don’t need a lecture on semantics. You’ve done a good job keeping up with the Web these last 10 years, and you know pretty much all there is to know.
I’m writing about HTML semantics because I’ve noticed that semantic values are often handled sloppily and are sometimes neglected, even today. A huge void remains in semantic consistency and clarity, begging to be filled. We need better and more consistent naming conventions and smarter ways to construct HTML templates, to give us more consistent, clearer and readable HTML code. If that doesn’t sound like paradise, I don’t know what does.
[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!]
With all the functional mumbo jumbo hidden away in HTML5, some of us seem to have forgotten what HTML is really all about. Native video support is considered way cooler than the new header tags, somewhat understandably, but from a semantic and structural point of view, these latter elements present the most valuable improvement.
Semantic importance got a serious boost when accessibility became a big deal to us Web developers. But its powers go way beyond making our content available to those lacking the skills to surf the Web in regular ways. For one, making content recognizable to all kinds of crawlers (but most importantly search engines) could greatly improve the results of search queries on the Web. Rather than wading through trailers, film websites and product pages, wouldn’t it be much nicer to filter reviews directly and find out how a certain film has been received? Currently, no trustworthy mechanism exists to recognize or filter a broad range of content types, which is a serious loss for the Web as a whole.

When looking for reviews, you don’t want to end up on a page with grayed-out links.
If all of that sounds like a far-off dream, then note that once you’ve distinguished between all the elements on your website, you will have little to no trouble styling or adding functional behavior to the page. The combination of context and proper semantics ensures a solid structure for all further front-end work, which is only made stronger by making sure every element is defined correctly.
Absolutely nothing is complex about semantics, and the basics have been preached for a long time now. A recap of the bare minimum won’t hurt anybody, though, so here it goes.
The HTML language has a range of tags with semantic meaning. If none of the available tags suits your needs, then two generic tags (span and div) are the HTML equivalents of the word “thing,” which can be used in combination with one or more classes to add (not necessarily standardized) semantic value to your elements. It’s the microformats idea without the actual microformats. Some basic examples:
nav.main (HTML5) or div.navMain;article (HTML5) or div.article;article>header (HTML5) or div.article>div.headerThat’s all there is to it, really. Adding semantic value is about choosing the correct tag(s) and/or applying the correct label(s) to an element. It really makes you wonder why applying this simple concept consistently to professionally developed websites has proven to be so difficult, even today.
For those of you who don’t like the microformats ideology, you could also go all HTML5 and look at the HTML5 Microdata proposition. What follows in this article reflects both methodologies equally, so the choice is entirely up to you.
To illustrate my point, I took some quick samples from some of today’s leading websites. By no means do these samples hold any scientific validity, nor is this a purposeful bash of the websites I’ve singled out. They are simply chosen because I believe they best represent their kind. I hope the data speaks for itself either way.
To grasp the semantic consistency within a website, I tried finding some common content types. Content types are easy to recognize and even easier to label. Before I get to the data, though, let’s look at one way we could label products in a Web store:
div.product;.basket li.product;.categoryList .product.promo;Products are everywhere in a Web store, so it seems logical that the product class would reappear across the pages for every instance of a product on the website. After all, whether a product is located in a “Related items” list, added to a basket or shown in full doesn’t really change its semantic nature, so why change its structure or class name?

These are all products, appearing as variants or in different contexts.
For my sample, I picked five content types (story, product, video, person, blog post) and picked four websites to represent each content type. To check for semantic consistency, I looked at the labels on a shortlist (a list of content type instances) and the content type’s detail. The following table summarizes my findings:
| Type | Website | Shortlist | Detail |
|---|---|---|---|
| Story | BBC | div.hpData |
table.storycontent |
| Story | New York Times | div.story |
div#article |
| Story | CNN | ul.cnn_bulletbin li |
div.cnn_storyarea |
| Story | MSN | li.ter |
div.w649 (?) |
| Product | Amazon | div.asinItem |
- |
| Product | Apple Store | li.product |
div.product-selection |
| Product | Play.com | div.info |
div.dvd |
| Product | YesAsia | div.item |
div#productpage |
| Video | YouTube | div.video-cell |
div.video-info |
| Video | Vimeo | div.item |
div.video_container_hd |
| Video | Dailymotion | div.video |
div.dmco_box |
| Video | eBaum’s World | div.mediaitem |
div#videoContentContainer |
| Person | div.UIFullListing |
div.profile_top_wash and div.profile_bottom_wash |
|
| Person | Last.fm | div.user |
div.user |
| Person | Virb | table.people td |
div#profile_wrapper.artist |
| Person | div#following_list span.vcard |
div#profile |
|
| Blog post | Zeldman | - | - |
| Blog post | A List Apart | div.item |
- or body.articles |
| Blog post | Jens Meiert | div.item |
.content .col-1 |
| Blog post | Webaim | div#features |
div.section |
Apart from last.fm, none of the websites I checked got it right, even though the content types I chose were very easy to label. Apple and the New York Times came quite close, but some of the others are miles away from what you’d expect to find. And that’s just looking at the root tag of the content type. The structure and classes within are often even worse, bordering on complete randomness. Another thing to note is that blogs about Web design seem to score the worst.
There is, of course, not one single cause of this problem, nor is the solution simple. But you can make one important mental shift as a front-end developer to give your work more semantic consistency. The key is to stop thinking of a website as a collection of pages and to instead look for common components.
Front-end developers tend to work the same as designers: start with the home page, finish that, and then move on to the second wireframe — copy the reusable components, adapt if needed, and then repeat until all pages are done. This process requires a lot of copying, adapting and checking older pages to find reusable elements. It is a true killer of consistency — invoking spur-of-the-moment labels and destroying semantic consistency.
Because we want consistency, both in structure and semantics, focusing on a single component at a time is better. When you need to write the HTML code for a product, check each wireframe for variations within and across products. Write code that can handle all existing variants. Once that is done, you will have a consistent and solid model to describe your component that you can used wherever you want.
I know from experience that this mental shift takes some time to get used to, and the only way to get it working is to throw yourself in and practice. I’ll share some quick pointers to make the whole process a little less daunting.
.productList li or .products li ul li.product
Consider the example above. As Web developers, we’ve been taught that the first option should be preferred. From a performance and styling perspective, this is indeed the case. But putting on your semantic hat, you’ll notice that to recognize the list items in the first example as products, you need to make a deduction. Singling out all products on a page isn’t as easy as looking for the product class. Automated systems should also account for the possibility that a product is defined as a list item inside a parent that refers to a collection of products. Not such a big deal for the human brain, but writing a foolproof, fully automated implementation isn’t as easy.
On top of that, the second option allows for more flexibility because it makes it possible to drop instances of other content types into the same list without running into styling hell, while at the same time ensuring semantic integrity. It wouldn’t be the first time I was asked to merge a news and event shortlist into one big list just because there wasn’t sufficient content to warrant separate lists. The second option would give you a smaller headache, especially if you’re nearing an important deadline.
Bottom line: try to minimize semantic deductions, and keep the code clear and simple. Pick unique class names for components, and stick with them throughout the entire project.
I know that many people like to mix wireframing, HTML and even design into one organic and homogeneous process. The downside to this is that you will have a hard time not compromising your work. When you’re designing, writing HTML and CSS is not priority number one; and once the design is done, you’ll find it tough to go back and rework your code to match HTML and CSS standards.
It’s also refreshing to try to build a website based purely on a set of wireframes, without the slightest notion of design. It helps you focus on meaning and makes it easier to spot components that are actually the same but could differ wildly design-wise. And if you’ve done it right, you’ll find that during CSS development, you don’t have to adapt the HTML at all, unless the design calls for major structural changes.
Try to build your HTML templates based on wireframes, and save the design and CSS for when your static HTML templates are completed.
Automation is a major key to success. Whether you use existing tools (such as a CMS) or build your own (as we do), automating the job of building static templates could help you to define a component once and reuse the code everywhere that the component is featured in your templates. The process itself (when done right) ensures semantic consistency and is sure to bring you new insight when constructing HTML templates.
At my current job, we build such a tool based on components (recurring HTML code blocks) and schemes (outlines of each template that refer to these components). Thrown in some simple program logic (if and loop statements, parameters) and allow for proper nesting methods, and you’re good to go.
Finally, keep a list of components you’ve made over multiple projects. Many components will be relevant for each new project and will be semantically identical, meaning that the HTML structure should be identical just as well (save some wrappers for visual CSS trickery, if you’re into that).
Once you have such a list of components, starting up a new project will be a lot faster, and you’ll have the added benefit of semantic consistency across all of your projects.
Semantics is all about identifying objects, but it goes beyond simply slapping a label on every object that comes your way. If you have a blog, and you randomly throw around classes like article, story, blogpost and news, then your website will lack semantic consistency, making all your hard work amount to very little. Semantics have no point when they are not applied consistently, even though today’s technology does very little with them — which, by the way, is no surprise given that locating a simple “product” on most Web stores is nearly impossible these days.

People looking for bananas might think twice before buying these.
The next time you begin a project, try to view a Web page as a collection of building blocks. Start by constructing these building blocks first, and worry about building the pages later. Come up with a single label for an HTML component, and use it consistently across your website. It won’t make styling harder, and it won’t affect the way you write JavaScript. Over time, you can take it further by being semantically consistent over multiple projects.
If your main job is to develop static HTML templates, try to automate your work. You’ll find that you spend more time writing flexible and solid HTML structures and less time copying and adapting code from point A to point B. It makes your job more interesting and makes the Web a better and more meaningful place.
(al)
© Niels Matthijs for Smashing Magazine, 2010. | Permalink | Post a comment | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: semantics
Every creature has been given a unique face and a distinguished identify. But what if you start seeing faces everywhere, even in inanimate things? Whatever you may think it is, essentially what you’ve got is an incredible concept for photography.
Today we are presenting lovely and pleasant faces which will make you smile. Your creative thinking will come alive by looking on these pictures and you may also get obsessed with faces everywhere.
Sent from my iPad
A “Pecha Kutcha” presentation typically includes twenty slides, and the presenter has twenty seconds per slide to share a story or discuss a topic related to that image. For their final presentation projects, my students are creating their own Pecha Kutcha presentations about topics they self-select. This has proven to be a GREAT activity to focus on digital literacy, good websites for obtaining copyright-friendly / Creative Commons images (like Compfight and FlickrStorm) as well as work on our oral presentation skills. Lots of creativity shown by my students this week in their presentations! These were the topics I addressed in my pecha kutcha:
1. high expectations / dreaming big
2. digital learning
3. blogging (individual and team)
4. hyperlinked writing
5. embed media (images, videos, Google Docs, VoiceThread)
6. geo-apps (Google Maps)
7. wikis (Google Site)
8. online surveys (with SMS, Poll Everywhere, Google forms)
9. screencasting
10. Digital newspapers
11. Microblogging (Twitter)
12. Value of content creation (new Bloom’s)
13. Value of sharing (Diigo, Twitter, open web publishing)
14. Value of backchannels
15. Value of PBL
16. Value of online video
17. Power of visual images (VoiceThread, Pecha Kutcha and Presentation Zen)
18. copyright understanding and respect
19. Importance of co-learning and failure
20. Importance of making a difference!
The complete curriculum for our “Technology 4 Teachers” course is available online in a Google site.
Learn more about pecha kutcha presentations from the English WikiPedia and by viewing examples from pecha-kutcha.org.
Our focus on utilizing “full-bleed” / full screen images during presentations and eliminating text entirely from our PowerPoint / Google Presentation slideshows seemed particularly appropriate today, following Monday’s article in the New York Times, “We Have Met the Enemy and He Is PowerPoint.” I highly recommend Garr Reynold’s book, “Presentation Zen: Simple Ideas on Presentation Design and Delivery” for great ideas along these lines for improving the media presentations you and your students share with others.
H/T to Berlin Fang for sharing the link to that NYT article.
Technorati Tags:
edmond, image, oklahoma, powerpoint, presentation, school, uco, visual, pecha, kutcha, pechakutcha
Unlike other photo editors, Picmeleo opens within your site and your users never leave your service.. Integration and ease of use. Everything about Picmeleo is designed for easy integration to your website. The lightweight editor does not clutter your service and you can also fully customize Picmeleo’s tool box.
Open Editor
The editor can be launched anywhere in your layout by calling the picmeleoApi.open method. Your open link could look like this:
<a href="javascript:picmeleoApi.open('')" >Open Picmeleo editor</a>
Pass the url of the image if you want the editor to open with a default image. Omitting the url will open an empty editor
Integrating Picmeleo to your website couldn’t be easier. Just copy a few lines of embed code and Picmeleo is working on your site!
Unlike other photo editors, you can customize the tools of Picmeleo any time you want in the online admin interface. Sometimes photo editors can be overwhelming. Picmeleo allows you to pick the tools your users really need. Choose from a growing list of tools including Crop, Scale, Rotate, Auto-fix, Filters and many more.
Picmeleo has built-in multilanguage support and you can easily set the language in the online admin interface. We are still working on different language options at the moment, stay tuned for more.
Picmeleo can be utilized in numerous places. Think of these examples:
The possibilities are endless…
![]()
As designers, we’re all trying to get better at what we do. We surf the Web daily for hours trying to find useful tips and tricks to enhance our design skills. But what if we spent less time surfing the Web looking for inspiration and more time creating and designing things?
Someone once said, “Practice makes perfect“. While that statement might not be completely true, I do believe that practice makes you better. That is why in this blog post, I would like to propose something to every designer: Why not try to design something every day for one year?
Actors rehearse their lines until they learn them perfectly. Musicians practice their songs until every note is just right. Athletes practice their particular sport so they can excel. As designers, why can’t we do the same? Ask any successful designer in the community about how they have succeeded and they will attribute much of their success to practice. I challenge you today to design something daily. Take fifteen to twenty minutes that you would normally use to surf the Web today and devote it to designing something.
Most of you are probably thinking that I am out of my mind for proposing this. How can you, as a designer working either for a company or for yourself, find the time to design something daily? More importantly, how will I come up with design ideas for a whole year’s worth of projects? Well, to answer those questions, here are some practical tips.
This challenge is for you to practice your skills. It doesn’t have to be a final, polished project, so you can limit it to a short period of time. Additionally, you can actually schedule this as part of your daily routine, which will make you more likely to follow through on your decision to design something daily.
And don’t worry or get discouraged if you miss a day due to other more important commitments. The key is to jump back into it as soon as possible. Keep doing it, and try your best to stay consistent. If you don’t find it reasonable to design something daily for a whole year, then you could try instead for one month, or another more manageable time period.
You’re probably wondering how you will be able to come up with a fresh new design daily for 365 days. Actually, it’s quite simple. You can use a theme for your designs. Maybe for one month you can try to design something retro. For another month, you can try your hand at some typographic posters. The possibilities are endless. A good example is Jessica Hische. She started a project called the Daily Drop Cap, where she designs a drop cap every day and makes her Drop Cap designs available for free download.

Daily Drop Cap is Jessica Hische’s personal project: she designs a drop cap every day and makes her designs available for free download.
Another thing you can do is experiment with different ideas that you have. Maybe you’ve been thinking about doing a collage effect, for example. You might have an idea that you’ve been wanting to try, so this might be the perfect time for it. You can also use this "practice time" to try out different tutorials that have caught your attention.
Some of us will have a hard time staying motivated during such a lengthy commitment. One way to stay motivated is to create a blog specifically for tracking the project’s progress during the year, and post the results daily. People will be expecting to see something from us and this will keep us motivated.
This method of blogging daily for one year has recently been popularized in the mainstream movie Julie and Julia, which follows American author Julie Powell’s year-long attempt to cook every recipe from a famous cookbook by Julia Child, while blogging about the experience each day. In Powell’s experience, her accountability was part of what kept her motivated for the 365 days.
Another way to stay accountable and keep motivated is to get a fellow designer to do the challenge with you. During the year, you can show each other what you’ve designed each day, allowing for some healthy, friendly competition.
As mentioned, the concept of blogging daily for a full year has been done before in a variety of contexts. It’s also been done successfully by a lot of great designers. Here are some designers that I have asked about designing something daily.
How long did you design / have you been designing daily?
I filmed myself drawing Daily Monsters for 100 days straight (including weekends and holidays). I capped it at 100 days since I also started animating the Monsters in more and more elaborate ways as the project grew. Since then I’ve done month-long bursts of Daily Monsters, and also documented the making of the book 100 Days of Monsters as a daily process. These days I usually do Monsters with lots of animation for special events or occasions.
What are some challenges associated with designing daily?
The main challenge for me is integrating a daily practice with the demands of my regular work, and my occasional attempts at having a social life. There are just so many hours in the day, and it becomes a nerdy endurance challenge. The process itself is great, though. The real challenge is to not block out everything else.
Can you give me at least 5 benefits of partaking in this daily project?
Where do you get ideas for your daily designs?
The Monsters are a process. As long as I sit myself down and do the work, I don’t have to worry about ideas; they simply appear. That’s the best part. You’d think I’d have learned that lesson now, but I still fall out of the habit, and get right back into my head. “What am I going to draw? Is this any good? What’ll I do next?” When you’re committed to putting something out there every day, you just don’t have the luxury of doubt. And if something comes out a little wonky, well… you know you can redeem yourself the next day.
Any advice for anyone who wants to get started doing this?
Don’t think about it. Don’t plan for it. If I had thought about how much work the Daily Monsters would be, I’d have never started. If you get an idea for something, just sit down and start doing it. Also, you might consider not telling anybody about your daily project until you’re a few days or weeks into it. Commit to it, but allow yourself some privacy to work out the early kinks. Most importantly: Make sure you don’t ever skip a day. If you know you’re going out of town, or if you feel a cold coming on, create a few posts in advance. You mustn’t skip a day. As soon as you’ve skipped one day, it becomes so much easier to skip the second. And then you’re screwed. But here’s the thing: You won’t want to skip. Doing the Daily Monsters was completely addictive. I got to be proud of something I’d done every single day.
Make Something Cool Everyday Flickr Group
How long did you design / have you been designing daily?
I’ve been designing on a strictly daily basis since January 1st this year… It was one of my New Year’s resolutions.
What are some challenges associated with designing daily?
Most of the challenges centre upon either time or inspiration, but it’s these challenges that form the reason for doing daily work alongside other commitments.
Can you give me at least 5 benefits of partaking in this daily project?
I’ve discovered plenty of benefits over the year, but I think that these have been the most valuable:
Where do you get ideas for your daily designs?
All of my work evolves from drawing, and for a while many of the themes and ideas in what I create have generated over time through the process of just letting things happen. Simply put, I take a line for a walk and see what happens, be it in response to something I’ve read, heard, or am just feeling. There are no rules – this is my time to do what I want.
Any advice for anyone who wants to get started doing this?
I would recommend anyone and everyone with an interest in image-making to take up the challenge of creating something every day. My ‘drawing a day’ project has been so rewarding to me this year that I’ll be continuing it come 2010. Illustrators or character designers should keep a daily sketchbook to keep their ideas fresh… Alternatively, taking a photograph a day can prove just as valuable for others. Perhaps graphic designers or typographers could do a ‘layout a day’ project?! Who knows?! The sky’s the limit!
How long did you design / or have been designing daily?
I started doing those dailies since November 25, 2007 — so over 2 years now.
What are some challenges associated with designing daily?
The biggest is trying to keep at it on a normal pace. You probably noticed how I have missed a lot of days so far. Working a 10+ hour day-job wears me out and my brain can’t handle holding the pencil in my hand.
Can you give me at least 5 benefits of partaking in this daily project?
Benefits? Are there any? Maybe it’s the thought of continuing a project. Training yourself to be expressive and challenge yourself creatively. Making new friends and communicating with fellow artists. And hopefully eventually making some money from selling zines/books.
Any advice for anyone who wants to get started doing this?
Just jump into it and doodle a small event that happened to you that day… from something as small as stepping into a puddle of mud, or watching your favorite TV show.
Make Something Cool Every Day 2009
How long did you design / have you been designing daily?
In my job I think of ideas every day, but this project for 2009 is the first time I put to task
making a new piece of art every single day for a year.
What are some challenges associated with designing daily?
Coming up with ideas I feel are original. I always strive for originality — it is almost impossible to attain
but the effort often conjures interesting results. Another challenge is simply finding the time to do it.
I have a full-time job in a creative field, so I have to separate my professional ideas from my personal
ideas. I have a family as well, so I tend to work late and think when my children are in bed.
Can you give me at least 5 benefits of partaking in this daily project?
Where do you get ideas for your daily designs?
From everything. I try to absorb as much from every day life as i can. Also, memories from childhood, pop culture, observations of how the world is always changing in all aspects (socially, technologically, economically, etc.).
Any advice for anyone who wants to get started doing this?
Have fun and always be a student. No one can know everything, it’s better to absorb and learn all the time. Then apply that to your work and let it influence you to reshape it into something original.
How long did you design / have you been designing daily?
I’ve had the idea for quite a bit, but I didn’t start actually doing it till October 31st of this year.
What are some challenges associated with designing daily?
The biggest challenge is time. Some days are so busy, it’s hard to make time for this project. The idea is to dedicate an hour or two to the design, but sometimes the day flies by and you aren’t left with much time, which then affects the quality. So that’s been the biggest challenge. The second biggest challenge is trying to stay inspired. For 365albumcovers.tumblr.com, I use http://www.flickr.com/commons as my photo source. The problem I’ve been running into however is that after a while, all these vintage photos tend to direct each piece in the same direction. So to solve that, I’ve been brainstorming up some ways on how to add more variety.
Can you give me at least 5 benefits of partaking in this daily project?
Where do you get ideas for your daily designs?
I usually wait to see what the photo, band name and album name will be. Usually one of those will automatically inspire me to go towards a certain direction.
Any advice for anyone who wants to get started doing this?
Just have fun with it. Think of an idea that you can manage to do every day. The main reason you should do this is for self progression. If it gets some attention from other people, awesome. The problem I ran into is keeping it fresh. You may notice that I haven’t posted something since mid-November. I consider the first entries a trial run. I learned from it. Now I’ve compiled a few ways to keep the concept new and exciting to myself, which I plan on launching January 1st. So stay on the lookout!
How long did you design / have you been designing daily?
I spent 1 year from November 2004 drawing a page a day, then in July 2007 I repeated the process for another 365 days.
What are some challenges associated with designing daily?
Keeping the motivation. Maintaining originality.
Can you give me at least 5 benefits of partaking in this daily project?
Where do you get ideas for your daily designs?
Each day was different. I think that is one of the benefits. You never know what you are going to see on your way to work.
Any advice for anyone who wants to get started doing this?
Make sure you are doing it for the right reasons. As soon as I became aware that other people were looking at my daily output, it started to affect the work I was producing in a negative way.
Jessica Hische – Daily Drop Cap
The Daily Drop Cap is an ongoing project by typographer and illustrator Jessica Hische. Each day (or at least each work day), a new hand-crafted decorative initial cap will be posted for your enjoyment and for the beautification of blog posts everywhere.
Thomas Fuchs – A Heart a Day
A Heart a Day is a blog by freelance illustrator, Thomas Fuchs. His goal is to incorporate a heart into one of his illustrations every day.
Chow Hon Lam – Flying Mouse 365
The FM 365 Project is the result of Flying Mouse’s Project of doing one design per day for a whole year! Every week there are 7 new products available! These 7 new products are able for a quick pre-sale at a lower price for the entire week and once the week ends there are 7 newer products to replace them, and so on.
Mark Weaver
Mark Weaver is another designer/illustrator that decided to design something every day for one year. He has a plethora of styles in his designs.
Philip Tseng
Philip Tseng has a unique style that he implemented into his daily designs. He chose a theme of fruits and vegetables and each day he designed something that started with a different letter of the alphabet.
Jonas Buntenbruch – DONE: Daily Design Workout
DONE was the personal daily design workout of Jonas Buntenbruch for 2008.
Every day he flexed his design skills by creating one piece in 30 to 60 minutes. The presented works range from scrap and sketches to photos, typographic experiments and random creative designs.
Now that you’ve read interviews and seen some strong examples, I hope that you’re now inspired and ready to start on this wonderful daily design adventure. I want to propose a new year’s resolution to you: design something every day.
Each time you design something, you can submit it for everyone to see. Simply tweet the design along with #daily365 and everyone will be able to see your project. By the way, if you’re just starting out as a designer, this is an effective way to build your portfolio. The Smashing Editorial Team will monitor all submissions and present them in posts here at Smashing Magazine, every now and again. I guarantee that at the end of the year, you’ll be able to look back and say that, because of the daily design project that you completed, you’re a better and more well-rounded designer.
So who’s up for the challenge?
(ll)
© Jad Limcaco for Smashing Magazine, 2009. | Permalink | 18 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags:
HTML5 and CSS3 have just arrived (kinda), and with them a whole new battle for the ‘best markup’ trophy has begun. Truth to be told, all these technologies are mere tools waiting for a skilled developer to work on the right project. As developers we shouldn’t get into pointless discussions of which markup is the best. They all lead to nowhere. Rather, we must get a brand new ideology and modify our coding habits to keep the web accessible.
While it is true HTML5 and CSS3 are both a work in progress and is going to stay that way for some time, there’s no reason not to start using it right now. After all, time’s proven that implementation of unfinished specifications does work and can be easily mistaken by a complete W3C recommendation. That’s were Progressive Enhancement and Graceful Degradation come into play.
So today we’re going to experiment a little with these new technologies. At the end of this article you’ll learn how to:
It’d be a good idea to have a read at some of these articles first:
I’ll also assume you know the basics of HTML and CSS. Including all the “old school” tags and the basic selectors and properties.
There’s a couple of things you have to bear in mind before adventuring on the new markup boat. HTML5 is not for everyone. Therefore, you must be wise and select how and where to use it. Think of all the markup flavours you’ve got available as tools: use the right one for the right job. Therefore, if your website is coded in standards compliant XHTML strict there’s no real need to change to HTML5.
There’s also the fact that by using HTML5 code right now your website gets stuck in some kind of “limbo” since even though your browser will render HTML5, it does not understand it as of yet. This may also apply to other software such as screenreaders and search engines.
Lastly you must consider that HTML5 is still under heavy development, and it’s probably the “most open” project the W3C has ever done. With the immense amount of feedback and all the hype around it, the current draft is bound to change and it’s impossible to predict how much.
So if you’re ready to do the switch, are not afraid of using technology that in the near future will be way more meaningful and can easily change whatever piece of code that might get broken, then keep reading.
So what are these two terms all about? Graceful Degradation is a widely used term which ideology is basically using the latest technologies first, and then fix anything that needs fixing for older browsers. We do this on a daily basis: most of us code for Firefox first, then fix Internet Explorer. That is Graceful Degradation in the practice.
Progressive Enhancement refers to the habit of building first for the less capable, outdated browser and then enhance for the latest technologies. We, too, use this on a daily basis. For example, most of the times we code a website we start with the markup and then apply an external CSS file where we add all the styling. That is Progressive Enhancement in the practice.
Both technologies usually go hand in hand and have been part of the ways we do things for years. It’s just the terms that are not that well-known. And now, both of these practices need to evolve due to the new languages that are approaching. If you want to go deeper into both of these terms, check a related article on accessites.org.
This will be the sample layout we’ll be coding:
A very basic layout brilliantly named Smashing HTML5! which covers most of the elements we can start coding using HTML5. Basically: the page’s name and it’s slogan, a menu, a highlighted (featured) area, a post listing, an extras section with some external links, an about box and finally a copyright statement.
As a very basic start to our markup, this is our html file skeleton:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Smashing HTML5!</title> <link rel="stylesheet" href="css/main.css" type="text/css" /> <!--[if IE]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> <!--[if lte IE 7]> <script src="js/IE8.js" type="text/javascript"></script><![endif]--> <!--[if lt IE 7]> <link rel="stylesheet" type="text/css" media="all" href="css/ie6.css"/><![endif]--> </head> <body id="index" class="home"> </body> </html>
A few highlights:
<body> tag. This is just a habit I’ve developed over the past year that has simplified the coding of inner-sections of overly complicated websites.This is a very basic and solid startup for all and any HTML5 projects you might do in the future. With this, we can start assigning tags to the different sections of our layout.
If we had an x-ray machine designed for websites, this would be our page’s skeleton:


The layout header is as simple as it gets. The new <header> tag spec reads as follows:
The header element represents a group of introductory or navigational aids.
Thus it is more than logic that we use this to markup our header. We’ll also use the <nav> tag. The spec reads:
The
navelement represents a section of a page that links to other pages or to parts within the page: a section with navigation links. Not all groups of links on a page need to be in a nav element — only sections that consist of major navigation blocks are appropriate for the nav element.
There’s a lot of buzz regarding the spec of the nav element since “major navigation blocks” is not a very helpful description. But this time we’re talking about our main website navigation; it can’t get any major than that. So after a couple of id’s and classes our header ends up like this:
<header id="banner" class="body"> <h1><a href="#">Smashing HTML5! <strong>HTML5 in the year <del>2022</del> <ins>2009</ins></strong></a></h1> <nav><ul> <li class="active"><a href="#">home</a></li> <li><a href="#">portfolio</a></li> <li><a href="#">blog</a></li> <li><a href="#">contact</a></li> </ul></nav> </header><!-- /#banner -->

Next is the featured block. This is best marked up as an <aside> since it’s spec says:
The aside element represents a section of a page that consists of content that is tangentially related to the content around the aside element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography.
That pretty much sums up our featured block, so let’s go for it. Now, inside of this block there’s a lot going on. Firstly, this is an article, so alongside the <aside> tag, we should be using <article> right away.
We also have two consecutive headings (’Featured Article’ and ‘HTML5 in Smashing Magazine!’) so we’ll be using yet another new element: <hgroup>. This is a wonderful tag used for grouping series of <h#> tags which is exactly what we have here. It exist to mask an h2 element (that acts as a secondary title) from the outline algorithm
, which will save developers some headaches in the future.
The last element on this block is the Smashing Magazine logo to the right. We have yet another new tag for this element: <figure>. This tag is used to enclose some flow content, optionally with a caption, that is self-contained and is typically referenced as a single unit from the main flow of the document
. This tag allows us to use a <legend> tag to add a caption to the elements inside. Sadly, this last feature is broken on some browsers as they try to add a <fieldset> around and it is impossible to override it with simple CSS rules. Therefore, I’d suggest leaving it aside and just use <figure> for the time being.
Featured block code will look like this in the end:
<aside id="featured" class="body"><article> <figure> <img src="images/temp/sm-logo.gif" alt="Smashing Magazine" /> </figure> <hgroup> <h2>Featured Article</h2> <h3><a href="#">HTML5 in Smashing Magazine!</a></h3> </hgroup> <p>Discover how to use Graceful Degradation and Progressive Enhancement techniques to achieve an outstanding, cross-browser <a href="http://dev.w3.org/html5/spec/Overview.html" rel="external">HTML5</a> and <a href="http://www.w3.org/TR/css3-roadmap/" rel="external">CSS3</a> website today!</p> </article></aside><!-- /#featured -->

Next is our document’s body, where all the content will be. Since this block represents a generic document section
and a section is a thematic grouping of content
, this one is without a doubt a <section> tag.
For the posts, we’ll use the old <ol> tag since, well, it’s an ordered list of articles. Each <li> should have an <article> tag and within this, we’ll have a <header> for the post title, a <footer> for the post information and a <div> for the post content. Yes, a <div>.
The reason for using a div is simple: we’ll be using the hAtom 0.1 Microformat and it requires the content entry to be wrapped by an element. Since no other tag applies to this (it is not a section, it is not a full article, it is not a footer, etc.) we’ll use a <div> since it provides no semantic value by itself and keeps the markup as clean as possible.
With all these tags, and the hAtom microformat in place, the code shall look like this:
<section id="content" class="body"> <ol id="posts-list" class="hfeed"> <li><article class="hentry"> <header> <h2 class="entry-title"><a href="#" rel="bookmark" title="Permalink to this POST TITLE">This be the title</a></h2> </header> <footer class="post-info"> <abbr class="published" title="2005-10-10T14:07:00-07:00"><!-- YYYYMMDDThh:mm:ss+ZZZZ --> 10th October 2005 </abbr> <address class="vcard author"> By <a class="url fn" href="#">Enrique Ramírez</a> </address> </footer><!-- /.post-info --> <div class="entry-content"> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque venenatis nunc vitae libero iaculis elementum. Nullam et justo <a href="#">non sapien</a> dapibus blandit nec et leo. Ut ut malesuada tellus.</p> </div><!-- /.entry-content --> </article></li> <li><article class="hentry"> ... </article></li> <li><article class="hentry"> ... </article></li> </ol><!-- /#posts-list --> </section><!-- /#content -->
For the mighty ones: yes, I did not use the <time> element. This tag is rather new, and it is not compatible with the current microformat implementations out there. Since I’m indeed using hAtom it made little point to have both an invalid microformat and a yet-incomprehensible tag. If you’re not using a microformat, I’d suggest using <time> instead.

The extras block is yet another section of our document. You might struggle for a while deciding whether an <aside> or a <section> tag would be best for this section. In the end, this section could not be considered separate from the main content
since it contains the blogroll links and some social information of the website. Thus, a <section> element is more appropriate.
Here we’ll also find another use for the <div> tag. For styling needs and grouping’s sake, we may add two divs here: one for the blogroll section and one for the social section.
For the rest of the block there’s nothing much to decide. It’s the everyday <ul> accommodated set of links on both sections, which in the end may look like this:
<section id="extras" class="body"> <div class="blogroll"> <h2>blogroll</h2> <ul> <li><a href="#" rel="external">HTML5 Doctor</a></li> <li><a href="#" rel="external">HTML5 Spec (working draft)</a></li> <li><a href="#" rel="external">Smashing Magazine</a></li> <li><a href="#" rel="external">W3C</a></li> <li><a href="#" rel="external">Wordpress</a></li> <li><a href="#" rel="external">Wikipedia</a></li> <li><a href="#" rel="external">HTML5 Doctor</a></li> <li><a href="#" rel="external">HTML5 Spec (working draft)</a></li> <li><a href="#" rel="external">Smashing Magazine</a></li> <li><a href="#" rel="external">W3C</a></li> <li><a href="#" rel="external">Wordpress</a></li> <li><a href="#" rel="external">Wikipedia</a></li> <li><a href="#" rel="external">HTML5 Doctor</a></li> <li><a href="#" rel="external">HTML5 Spec (working draft)</a></li> <li><a href="#" rel="external">Smashing Magazine</a></li> <li><a href="#" rel="external">W3C</a></li> <li><a href="#" rel="external">Wordpress</a></li> <li><a href="#" rel="external">Wikipedia</a></li> </ul> </div><!-- /.blogroll --> <div class="social"> <h2>social</h2> <ul> <li><a href="http://delicious.com/enrique_ramirez" rel="me">delicious</a></li> <li><a href="http://digg.com/users/enriqueramirez" rel="me">digg</a></li> <li><a href="http://facebook.com/enrique.ramirez.velez" rel="me">facebook</a></li> <li><a href="http://www.lastfm.es/user/enrique-ramirez" rel="me">last.fm</a></li> <li><a href="http://website.com/feed/" rel="alternate">rss</a></li> <li><a href="http://twitter.com/enrique_ramirez" rel="me">twitter</a></li> </ul> </div><!-- /.social --> </section><!-- /#extras -->

The footer has no real difficulty. We’ll use the brand new <footer> tag to wrap both the about and the copyright information since the spec reads:
The footer element represents a footer for its nearest ancestor sectioning content. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like.
Since the nearer ancestor of our <footer> tag is the <body> tag, is more than right to wrap both elements here since we’re adding information about the website’s owner (and thus, author).
For the about block we’ll use an <address> tag, which contains contact information for it’s nearest
. We’ll also use the hCard Microformat to enhance the semantic value. For the copyright information we’ll go with a simple <article> or <body> element ancestor<p> tag so the code ends like this:
<footer id="contentinfo" class="body"> <address id="about" class="vcard body"> <span class="primary"> <strong><a href="#" class="fn url">Smashing Magazine</a></strong> <span class="role">Amazing Magazine</span> </span><!-- /.primary --> <img src="images/avatar.gif" alt="Smashing Magazine Logo" class="photo" /> <span class="bio">Smashing Magazine is a website and blog that offers resources and advice to web developers and web designers. It was founded by Sven Lennartz and Vitaly Friedman.</span> </address><!-- /#about --> <p>2005-2009 <a href="http://smashingmagazine.com">Smashing Magazine</a>.</p> </footer><!-- /#contentinfo -->
So, after all this mess, the complete code looks like this:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Smashing HTML5!</title> <link rel="stylesheet" href="css/main.css" type="text/css" /> <!--[if IE]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> <!--[if lte IE 7]> <script src="js/IE8.js" type="text/javascript"></script><![endif]--> <!--[if lt IE 7]> <link rel="stylesheet" type="text/css" media="all" href="css/ie6.css"/><![endif]--> </head> <body id="index" class="home"> <header id="banner" class="body"> <h1><a href="#">Smashing HTML5! <strong>HTML5 in the year <del>2022</del> <ins>2009</ins></strong></a></h1> <nav><ul> <li class="active"><a href="#">home</a></li> <li><a href="#">portfolio</a></li> <li><a href="#">blog</a></li> <li><a href="#">contact</a></li> </ul></nav> </header><!-- /#banner --> <aside id="featured" class="body"><article> <figure> <img src="images/temp/sm-logo.gif" alt="Smashing Magazine" /> </figure> <hgroup> <h2>Featured Article</h2> <h3><a href="#">HTML5 in Smashing Magazine!</a></h3> </hgroup> <p>Discover how to use Graceful Degradation and Progressive Enhancement techniques to achieve an outstanding, cross-browser <a href="http://dev.w3.org/html5/spec/Overview.html" rel="external">HTML5</a> and <a href="http://www.w3.org/TR/css3-roadmap/" rel="external">CSS3</a> website today!</p> </article></aside><!-- /#featured --> <section id="content" class="body"> <ol id="posts-list" class="hfeed"> <li><article class="hentry"> <header> <h2 class="entry-title"><a href="#" rel="bookmark" title="Permalink to this POST TITLE">This be the title</a></h2> </header> <footer class="post-info"> <abbr class="published" title="2005-10-10T14:07:00-07:00"><!-- YYYYMMDDThh:mm:ss+ZZZZ --> 10th October 2005 </abbr> <address class="vcard author"> By <a class="url fn" href="#">Enrique Ramírez</a> </address> </footer><!-- /.post-info --> <div class="entry-content"> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque venenatis nunc vitae libero iaculis elementum. Nullam et justo <a href="#">non sapien</a> dapibus blandit nec et leo. Ut ut malesuada tellus.</p> </div><!-- /.entry-content --> </article></li> <li><article class="hentry"> ... </article></li> <li><article class="hentry"> ... </article></li> </ol><!-- /#posts-list --> </section><!-- /#content --> <section id="extras" class="body"> <div class="blogroll"> <h2>blogroll</h2> <ul> <li><a href="#" rel="external">HTML5 Doctor</a></li> <li><a href="#" rel="external">HTML5 Spec (working draft)</a></li> <li><a href="#" rel="external">Smashing Magazine</a></li> <li><a href="#" rel="external">W3C</a></li> <li><a href="#" rel="external">Wordpress</a></li> <li><a href="#" rel="external">Wikipedia</a></li> <li><a href="#" rel="external">HTML5 Doctor</a></li> <li><a href="#" rel="external">HTML5 Spec (working draft)</a></li> <li><a href="#" rel="external">Smashing Magazine</a></li> <li><a href="#" rel="external">W3C</a></li> <li><a href="#" rel="external">Wordpress</a></li> <li><a href="#" rel="external">Wikipedia</a></li> <li><a href="#" rel="external">HTML5 Doctor</a></li> <li><a href="#" rel="external">HTML5 Spec (working draft)</a></li> <li><a href="#" rel="external">Smashing Magazine</a></li> <li><a href="#" rel="external">W3C</a></li> <li><a href="#" rel="external">Wordpress</a></li> <li><a href="#" rel="external">Wikipedia</a></li> </ul> </div><!-- /.blogroll --> <div class="social"> <h2>social</h2> <ul> <li><a href="http://delicious.com/enrique_ramirez" rel="me">delicious</a></li> <li><a href="http://digg.com/users/enriqueramirez" rel="me">digg</a></li> <li><a href="http://facebook.com/enrique.ramirez.velez" rel="me">facebook</a></li> <li><a href="http://www.lastfm.es/user/enrique-ramirez" rel="me">last.fm</a></li> <li><a href="http://website.com/feed/" rel="alternate">rss</a></li> <li><a href="http://twitter.com/enrique_ramirez" rel="me">twitter</a></li> </ul> </div><!-- /.social --> </section><!-- /#extras --> <footer id="contentinfo" class="body"> <address id="about" class="vcard body"> <span class="primary"> <strong><a href="#" class="fn url">Smashing Magazine</a></strong> <span class="role">Amazing Magazine</span> </span><!-- /.primary --> <img src="images/avatar.gif" alt="Smashing Magazine Logo" class="photo" /> <span class="bio">Smashing Magazine is a website and blog that offers resources and advice to web developers and web designers. It was founded by Sven Lennartz and Vitaly Friedman.</span> </address><!-- /#about --> <p>2005-2009 <a href="http://smashingmagazine.com">Smashing Magazine</a>.</p> </footer><!-- /#contentinfo --> </body> </html>
Say, isn’t that readable? It’s also way more semantic than a bunch of <div>s all over the place.
Just like our markup, the CSS will also have a very basic start. Call this a frameworks of sorts which I’ve been using for a long time and works fairly well. Here’s the code for our main.css file:
/*
Name: Smashing HTML5
Date: July 2009
Description: Sample layout for HTML5 and CSS3 goodness.
Version: 1.0
Author: Enrique Ramírez
Autor URI: http://enrique-ramirez.com
*/
/* Imports */
@import url("reset.css");
@import url("global-forms.css");
/***** Global *****/
/* Body */
body {
background: #F5F4EF url('../images/bg.png');
color: #000305;
font-size: 87.5%; /* Base font size: 14px */
font-family: 'Trebuchet MS', Trebuchet, 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
line-height: 1.429;
margin: 0;
padding: 0;
text-align: left;
}
/* Headings */
h2 {font-size: 1.571em} /* 22px */
h3 {font-size: 1.429em} /* 20px */
h4 {font-size: 1.286em} /* 18px */
h5 {font-size: 1.143em} /* 16px */
h6 {font-size: 1em} /* 14px */
h2, h3, h4, h5, h6 {
font-weight: 400;
line-height: 1.1;
margin-bottom: .8em;
}
/* Anchors */
a {outline: 0;}
a img {border: 0px; text-decoration: none;}
a:link, a:visited {
color: #C74350;
padding: 0 1px;
text-decoration: underline;
}
a:hover, a:active {
background-color: #C74350;
color: #fff;
text-decoration: none;
text-shadow: 1px 1px 1px #333;
}
/* Paragraphs */
p {margin-bottom: 1.143em;}
* p:last-child {margin-bottom: 0;}
strong, b {font-weight: bold;}
em, i {font-style: italic;}
::-moz-selection {background: #F6CF74; color: #fff;}
::selection {background: #F6CF74; color: #fff;}
/* Lists */
ul {
list-style: outside disc;
margin: 1em 0 1.5em 1.5em;
}
ol {
list-style: outside decimal;
margin: 1em 0 1.5em 1.5em;
}
dl {margin: 0 0 1.5em 0;}
dt {font-weight: bold;}
dd {margin-left: 1.5em;}
/* Quotes */
blockquote {font-style: italic;}
cite {}
q {}
/* Tables */
table {margin: .5em auto 1.5em auto; width: 98%;}
/* Thead */
thead th {padding: .5em .4em; text-align: left;}
thead td {}
/* Tbody */
tbody td {padding: .5em .4em;}
tbody th {}
tbody .alt td {}
tbody .alt th {}
/* Tfoot */
tfoot th {}
tfoot td {}
This is our first step into getting the layout together. We can style most of the basic elements from here, so feel free to do so. Here’s a few highlights:
For this very part, there’s little to be mentioned. Firstly there’s the text-shadow CSS3 property. To explain it, here’s a sample:
text-shadow: 1px 5px 2px #333;
This will give us a #333 shadow on our text that’s 1px to the right, 5px down and with a 2px blur. Simple, right? You can use hex and rgba values plus any CSS unit (except %) here.
We also have this little baby:
* p:last-child {margin-bottom: 0;}
This line will remove the margin bottom of any <p> tag that’s the last child of it’s parent. Useful when using boxes (like we’re doing) to avoid large vertical gaps.
Lastly, we have a couple of selectors:
::-moz-selection {background: #F6CF74; color: #fff;}
::selection {background: #F6CF74; color: #fff;}
::selection is a CSS3 selector that lets us style how the text selection looks. It only allows color and background CSS properties, so keep it simple. ::-moz-selection needs to go here since Mozilla haven’t implemented the ::selection selector.
Now, as I’ve stated before, browsers do not understand HTML5 as of yet. And since HTML5 is still in development, little has been discussed about the default styling the new elements will have. Thus, being tags that do not exist for the browser, it does not display any styling in them.
Perhaps it’s fair to assume that most browsers apply something like display: inline for all unknown tags that they might encounter. This is not what we want for some of them, such as <section>, so we need to tell explicitly to the browser how to display these elements:
/* HTML5 tags */
header, section, footer,
aside, nav, article, figure {
display: block;
}
There! Now we can magically style our tags as if they were <div>s!
Some of you might have noticed how I added the class="body" attribute to the major sections of the layout in the markup. This is because we want the body of my website to be for a certain width (800px), and I’ve never been a fan of the big wrapping <div> to do that. So we’ll use the basic block centering technique using margins for this. I’m also adding a couple of generic classes to this section that might be used for a post side content.
/***** Layout *****/
.body {clear: both; margin: 0 auto; width: 800px;}
img.right figure.right {float: right; margin: 0 0 2em 2em;}
img.left, figure.left {float: right; margin: 0 0 2em 2em;}
We’ll begin with our header. This one is fairly easy. We just want a couple of spacing and a few text styling here and there. Nothing we haven’t done before.
/*
Header
*****************/
#banner {
margin: 0 auto;
padding: 2.5em 0 0 0;
}
/* Banner */
#banner h1 {font-size: 3.571em; line-height: .6;}
#banner h1 a:link, #banner h1 a:visited {
color: #000305;
display: block;
font-weight: bold;
margin: 0 0 .6em .2em;
text-decoration: none;
width: 427px;
}
#banner h1 a:hover, #banner h1 a:active {
background: none;
color: #C74350;
text-shadow: none;
}
#banner h1 strong {font-size: 0.36em; font-weight: normal;}
We now pass on to the navigation. Pretty much the same as before, nothing really new here. The regular horizontal list, a couple of colour edits. Nothing fancy.
/* Main Nav */
#banner nav {
background: #000305;
font-size: 1.143em;
height: 40px;
line-height: 30px;
margin: 0 auto 2em auto;
padding: 0;
text-align: center;
width: 800px;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
#banner nav ul {list-style: none; margin: 0 auto; width: 800px;}
#banner nav li {float: left; display: inline; margin: 0;}
#banner nav a:link, #banner nav a:visited {
color: #fff;
display: inline-block;
height: 30px;
padding: 5px 1.5em;
text-decoration: none;
}
#banner nav a:hover, #banner nav a:active,
#banner nav .active a:link, #banner nav .active a:visited {
background: #C74451;
color: #fff;
text-shadow: none !important;
}
#banner nav li:first-child a {
border-top-left-radius: 5px;
-moz-border-radius-topleft: 5px;
-webkit-border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
-moz-border-radius-bottomleft: 5px;
-webkit-border-bottom-left-radius: 5px;
}
We’re using another CSS3 property here: border-radius. This new CSS3 property lets us add rounded borders to our blocks without the need of unnecessary, non-semantic tags that will clutter our code or a million of images and clever background-positioning. No, that’s all a thing of the past. With this we just need to set the radius of our border and that’s it.
Of course, border-radius is not widely adopted yet, and thus, we need to use the equivalent properties for Mozilla- and Webkit-browsers. There are a lot of variations to this property, and can make your code a little big, but if you want rounded corners on most of the current browsers, you might as well add them.
You might as well notice the use of !important. This is basically to override the default styles (text-shadow) without complex specificity selectors. In this example it’s here mostly for educational purposes.
Here’s the CSS code for both blocks. Note that this is not the styling for the posts’ list. Just the major content block. As both of these blocks have no real special CSS properties, I’ll let you guys figure it out.
/*
Featured
*****************/
#featured {
background: #fff;
margin-bottom: 2em;
overflow: hidden;
padding: 20px;
width: 760px;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
}
#featured figure {
border: 2px solid #eee;
float: right;
margin: 0.786em 2em 0 5em;
width: 248px;
}
#featured figure img {display: block; float: right;}
#featured h2 {color: #C74451; font-size: 1.714em; margin-bottom: 0.333em;}
#featured h3 {font-size: 1.429em; margin-bottom: .5em;}
#featured h3 a:link, #featured h3 a:visited {color: #000305; text-decoration: none;}
#featured h3 a:hover, #featured h3 a:active {color: #fff;}
/*
Body
*****************/
#content {
background: #fff;
margin-bottom: 2em;
overflow: hidden;
padding: 20px 20px;
width: 760px;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
}
Again, this is our everyday coding style. Backgrounds, margins, colours and text styles we’ve been using for years. Perfect example of how styling HTML5 is not that different from current markup languages. It’s just as easy to style as it’s always been.
Here things begin to get interesting. We’ll begin with basic styling for the block itself:
/*
Extras
*****************/
#extras {margin: 0 auto 3em auto; overflow: hidden;}
#extras ul {list-style: none; margin: 0;}
#extras li {border-bottom: 1px solid #fff;}
#extras h2 {
color: #C74350;
font-size: 1.429em;
margin-bottom: .25em;
padding: 0 3px;
}
#extras a:link, #extras a:visited {
color: #444;
display: block;
border-bottom: 1px solid #F4E3E3;
text-decoration: none;
padding: .3em .25em;
}
/* Blogroll */
#extras .blogroll {
float: left;
width: 615px;
}
#extras .blogroll li {float: left; margin: 0 20px 0 0; width: 185px;}
/* Social */
#extras .social {
float: right;
width: 175px;
}
As you can see, I’m doing a 3 column layout for the blogroll block by floating the <li>s and a 1 column layout for the social block by merely changing its width. This already works very well by itself, but there’s one thing that bothers me. The borders I’ve added for separating each of the links:

The highlighted row is the one troubling me. The borders I’ve added are actually on two elements. Each <li> and <a> tag have a border-bottom of 1px, which I don’t want on the last row. So we’ll remove the borders for the last 3 elements on blogroll, and the last element on social.
First we’ll remove the borders on the last <li> of each block. By using the CSS3 :last-child selector, we can target the last <li> of it’s parent <ul>.
#extras li:last-child, /* last <li>*/
#extras li:last-child a /* <a> of last <li> */
{border: 0}
That will remove the border from the last link on both of our blocks. Now we have a new problem. How are we going to remove the border on the other two elements on the blogroll block?

Well, meet :nth-last-child().
#extras .blogroll li:nth-last-child(2),
#extras .blogroll li:nth-last-child(3),
#extras .blogroll li:nth-last-child(2) a,
#extras .blogroll li:nth-last-child(3) a {border: 0;}
Phew! Looks pretty hard, uh? Not really. This basically targets the second (2) and third (3) elements starting from the end. Exactly the ones I want to remove the border from.
As expected, this will not work on IE, though IE8.js does support :last-child, it does not support :nth-last-child, thus, borders will appear on IE. This is NOT a major design problem, information is still accessible, thus it is pointless to try to achieve the same effect on IE.
Now we’ll spice things up a little. We all love how little icons look besides each link. We’ve seen that design technique everywhere. There’s a million ways of applying them, but we’ll use some advanced CSS3 selectors to do this.
Let’s begin with a little introduction. a[n='b'] will target all <a> that has an n attribute value of b. So, for example, if we use this: a[href='picture.jpg'] we’ll be targeting an element like <a href="picture.jpg">. This is great, but not exactly what we want, since the follow-ups of the URL might have a different value. Here’s a couple of other selectors that might come in handy:
a[n] will target all <a> that has an n attribute, regardless of its value.a[n='b'] will target all <a> that has an n attribute value of b.a[n~='b'] will target all <a> that has an n attribute which one of its space-separated values is b.a[n^='b'] will target all <a> that has an n attribute that starts with b.a[n*='b'] will target all <a> that has an n attribute that has b somewhere within its value.Note that neither of these is restricted to the <a> tag. This last one fits us perfectly. So we’ll search for an <a> tag that has a piece of text somewhere within its URL. So this is our code:
#extras div[class='social'] a {
background-repeat: no-repeat;
background-position: 3px 6px;
padding-left: 25px;
}
/* Icons */
.social a[href*='delicious.com'] {background-image: url('../images/icons/delicious.png');}
.social a[href*='digg.com'] {background-image: url('../images/icons/digg.png');}
.social a[href*='facebook.com'] {background-image: url('../images/icons/facebook.png');}
.social a[href*='last.fm'], .social a[href*='lastfm'] {background-image: url('../images/icons/lastfm.png');}
.social a[href*='/feed/'] {background-image: url('../images/icons/rss.png');}
.social a[href*='twitter.com'] {background-image: url('../images/icons/twitter.png');}
The first bit lets us add a padding to the social links, where the icon will be. It’ll also set the default background settings so we don’t have to repeat ourselves. You might be wondering why I’m using div[class='social'] rather than the normal div.social. Simply because, for the browsers that don’t support this kind of selectors (*cough* IE *Cough*), we don’t want a white gap on the left of our links. Thus, using the same selector used for the background icons will keep me safe. IE won’t have a padding nor a background image, while the rest will do.
The second section uses the selector explained above to target each social network and add the proper icon.
This CSS technique is nothing new, and as powerful as it might be, it is not widely used (I’ve even seen JavaScript used to achieve this same thing). Yet another CSS feature that goes unnoticed and shouldn’t be.
Lastly, we have our footer. As other examples above, this has just basic styling here and there. Besides the border-radius property, there’s nothing new in here.
/*
About
*****************/
#about {
background: #fff;
font-style: normal;
margin-bottom: 2em;
overflow: hidden;
padding: 20px;
text-align: left;
width: 760px;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
}
#about .primary {float: left; width: 165px;}
#about .primary strong {color: #C64350; display: block; font-size: 1.286em;}
#about .photo {float: left; margin: 5px 20px;}
#about .url:link, #about .url:visited {text-decoration: none;}
#about .bio {float: right; width: 500px;}
/*
Footer
*****************/
#contentinfo {padding-bottom: 2em; text-align: right;}
There’s only one last element to style. Once again, basic styling here, but this time, we’ll add a quick effect for when the user hovers over the post.
/* Blog */
.hentry {
border-bottom: 1px solid #eee;
padding: 1.5em 0;
}
li:last-child .hentry, #content > .hentry {border: 0; margin: 0;}
#content > .hentry {padding: 1em 0;}
.entry-title {font-size: 1.429em; margin-bottom: 0;}
.entry-title a:link, .entry-title a:visited {text-decoration: none;}
.hentry .post-info * {font-style: normal;}
/* Content */
.hentry footer {margin-bottom: 2em;}
.hentry footer address {display: inline;}
#posts-list footer address {display: block;}
/* Blog Index */
#posts-list {list-style: none; margin: 0;}
#posts-list .hentry {padding-left: 200px; position: relative;}
#posts-list footer {
left: 10px;
position: absolute;
top: 1.5em;
width: 190px;
}
Some basics. I’m removing all margin and padding for the last post entry (so I don’t end up with a big gap at the bottom of my box). I’m also using the > selector which basically targets a direct child. For example, #content > .hentry will target a .hentry element that’s directly inside the #content. If the .hentry is inside, let’s say, an ordered list, this rule will not apply since it’s a grandchild and not a direct child of #content. This is to target the single post view once we get onto that.
Continuing with our code, we’ll get this:
#posts-list .hentry:hover {
background: #C64350;
color: #fff;
}
#posts-list .hentry:hover a:link, #posts-list .hentry:hover a:visited {
color: #F6CF74;
text-shadow: 1px 1px 1px #333;
}
This code will change the <li> background color, text color and its <a> color when the mouse is directly above the <li>. This is nothing new and has been possible since forever, but we’re adding it for a simple reason.
HTML5 lets users wrap block-level elements with <a> tags to create block linking areas. Basically, we’ll be able to wrap the entire <hentry> contents with an anchor and have it behave as a proper link. However, after some testing, I’ve figured that Firefox 3.5.1 is not ready for this. Perhaps because of the non-understandable new elements inside of each .hentry, everytime I added an anchor to wrap the contents, everything inside started to behave in weird manners. Safari, Opera and even IE6 work properly. Take a look at the test page. Below are a couple of screenshots for all of you single-browser users.
Opera 9.64:
Safari 4.0.2:
Internet Explorer 6:
Firefox 3.5.1:
So block level anchors are really broken on Firefox, yet we can add a nice :hover effect to the <li>. So we can enhance our user experience visually, though not from the accessibility point of view.
Finally, we need to do some fixing for IE6. Below is the complete ie.css and ie6.css file. Each line has a comment on its right side or on the top explaining what it’s fixing. Pretty straightforward. This is ie.css:
#banner h1 {line-height: 1;} /* Fixes Logo overlapping */
And this is ie6.css file:
#featured figure {display: inline;} /* Double margin fix */
#posts-list footer {left: -190px;} /* Positioning fix */
/* Smaller width for Social block
so it won't jump to next line */
#extras .social {width: 165px;}
So, how does everything look now? Take a look at the final product here. It has been tested on IE6, Firefox 3, Firefox 3.5, Opera 9.64 and Safari 4.0.2. They all behave properly. Below are a series of screenshots of every browser.
It is now safe to say that you can achieve an HTML5/CSS3 layout today that will work on past, current and future browsers without a problem. We are still far away from the time we can fully implement much of HTML5’s coolest features, but we can begin using it today.
There’s a lot of hype and websites dedicated right now to the HTML5 wonder. Here’s a couple:
Enrique Ramírez is a Mexican front-end developer with over 9 years of experience and hundreds of websites coded. When he’s not coding, he enjoys eating tacos, playing video games, listening to music or drinking a casual cold beer.
© Enrique Ramirez for Smashing Magazine, 2009. |
Permalink |
28 comments |
Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: css3, html5, tutorial
Icons are everywhere on the web. In most modern designs it is used to not only complete our design but also to attract the user’s eye. Designers use Icons to create breath-taking designs and decorate their desktop as well. Today we’re going to take a look at 40 most beautiful icon sets that were freshly created.
Some amazing Icon Sets are missing? Let us know!
4 icons of funny creatures.
Super-cute icons based the mega hit from Japan. This collection contains 9 individual icons with large resources for Vista & Leopard.
Official icons for the new Star Trek film from J.J. Abrams. This collection contains 15 individual icons with large resources for Vista & Leopard.
Origami Free Set is a set of 15 icons. The icons are available in 5 different sizes (16px, 32px, 48px, 128px, and 256px) and come as Windows ICO and 32-bit transparent PNG files.
A beautiful free set of social media icons by WeFunction.
This playful free icon set contains curvy and colorful free icons made with one goal, to get all the affection and playfulness to your projects. “Coquette” free icon set contains 50 high quality, free icons in these sizes: 16×16px, 32×32px, 48×48px, 64×64px and 128×128px and 32-bit transparency PNG file format.
Here is a set of 80 icons (available in four different colors). The icons can be used for Windows desktop softwares and general web applications such as blog themes, forums, and eCommerce sites.
Designed to fit into your grungy-styled websites, blogs, applications, etc. “Grungy Aesthetica” icon set contains 181 high quality web icons in 32-bit transparency in PNG file format. They come in 32×32px; 48 x 48px; 64×64px and 128 x 128px size.
The soft shades of black and white selection of colors makes this icon set graceful, unique and extremely stylish. The icon structure consists of snow white leaves, flowers and swirls. This free icon set contains 80 high quality, free icons in these sizes: 48×48px, 64×64px, 128×128px and 256×256px and 32-bit transparency PNG file format.
4 icons of funny creatures.
Social Media Icons Pack could come in handy when integrating social media sites to your blog.
18 replacement icons of Mac OS X Leopard Folders in iPhone Icons Style.
Baggy Icon Set contains 5 high quality icns. Having 3 different formats (.ico, .icns and .png) and 6 sizes: 512px-16px (except .png).
This icon set, contains 18 beautiful icons related to project management. The set includes the icons address card, bar graph, calendar, clock / time, conference device, contact, documents, draft, mail, marker, milestone, notes, portfolio, project plan / gant chart, search / find, sitemap / flowchart, todo and user / resource.
This pack includes 120+ hand-drawn arrows and other elements.
Onebit free icon set of 50 icons. These icons are free to use in any kind of project unlimited times.
Web Injection is an Icon Pack for webmasters and web developers. The set includes 26 stylish icons.
Exclusive vector icons available in AI, EPS, PDF, XAR file formats.
Exclusive vector icons available in AI, EPS, PDF, XAR file formats.
48 icons for use on the front and back-end of the site.
The Cute Critters Icon Pack is a free Icon set with 13 painfully cute critters.
Handycons is a free, hand drawn social media icon set that contains 20 icons. Package contains Facebook, Blinklist, Feedburner, Flickr, FriendFeed, Furl, Gmail, Google, Heart icon, Last FM, Linked IN, Magnolia, Newsvine, PayPal, Skype, Sphinn, Twitter, Vimeo, Yahoo and You Tube icons. All icons come in four sizes: 16×16, 32×32, 64×64 and 12×128px.
If you haven’t heard of Twitter by now, you must be living under a rock! It is everywhere, and everyone is using it. To say that the rise of Twitter has been explosive would be an understatement. As a result of this growth, the number of Twitter apps and tools available has become extensive. So, in this post we have filtered them down to a respectable 99.
Below, we present 99 Essential Twitter Tools and Applications, split into the following categories: Tools and Productivity Apps, Statistics and Analytics, Find New Twitter Friends Apps, Search Twitter Apps, Web-Based Mobile Apps, WordPress Twitter Plug-Ins, Adobe Air Twitter Apps and Firefox Twitter Extensions.
You may want to take a look at the following related posts:
Twittercal
Twittercal is a service that connects your Twitter account to your Google Calendar and lets you add events easily, directly from your Twitter account.
Twitpay
TwitPay is a simple way to send payments via Twitter.
Twibs
Find, follow and interact with businesses, apps and services on Twitter.
Twittermail.com
Users can post to their Twitter account by sending a message to their own unique email address.
Twitzu
Promote your business, special offers, promotions and events with Twitzu.
Twuffer
Twuffer allows the Twitter user to compose a list of future tweets and schedule their release.
TweetLater
This app allows you to post Tweets at a later time and date.
GroupTweet
Send private Twitter messages to specific groups of friends.
Twitter Alerts
Keep track of conversations that mention you, your products, your company and anything else, via hourly email updates.
TwitPic
TwitPic lets you share photos on Twitter. You can post pictures to TwitPic from your phone, the TwitPic home page or your Twitter account.
Your Twitter Karma
Twitter needs a decent page for your followers, with the functionality to sort them by type. This Web app does that.
Mr. Tweet
A personal networking assistant for Twitter, helping you identify relevant followers, recommending you to other users and regularly computing your Twitter usage statistics.
Remember The Milk
Remember The Milk keeps track of your tasks. Simply add Remember The Milk as your friend, and you can add and interact with your tasks through direct messages and get reminders, too.
StrawPoll
StrawPoll is the coolest way to follow the opinions of people on Twitter. With this app, you can create your own poll.
Twiddict
If Twitter goes down and you start to feel withdrawal symptoms, use this service to continue using it. Twiddict makes sure all your tweets end up going to the proper place.
Twitter Friends Network Browser
Browse through your Twitter friends, your friends’ friends, your friends’ friends’ friends…
Twitterfeed
Post your RSS feed to Twitter automatically.
Twitturly
Twitturly is a service for tracking what URLs people are talking about, as they talk about them, on Twitter.
Twittonary
The Twitter Dictionary, aka Twittonary, provides explanations of various Twitter-related words.
twtQpon
Enhance your social media marketing by offering discount coupons to the Twitter-sphere!
twenglish
Twitter translator: Simply type in your tweet, and twenglish will twanslate your tweet for you.
twtcard
Send a greeting card, a surprise message or an invitation on Twitter.
Tweet What You Spend
Cash-tracking made simple with Twitter.
Twittertise
Twittertise allows you to advertise on Twitter and track the success of your branded communications with customers.
TwitWall
With TwitWall, you can embed your favorite videos and widgets and upload your photos, MP3 music, podcasts, you name it.
UnTweeps
Unfollow Tweeps who have not posted tweets recently.
TwitRand();
Select a random Twitter follower, friend or retweeter.
TwitBlocker
If you become overwhelmed by a Twitter user’s constant tweets, you can keep them quiet with a single click of a button.
Twitterless
Twitterless tells you who stops following you and graphs your follower history over time, displaying the info in a variety of useful views.
Twonvert
With Twonvert, you can easily convert your tweets into SMS shorthand language and say more with less characters.
Postica
Create a sticky note for your tweets.
twi8r
Translate from English to text message shorthand and vice versa.
Twitterholic.com
This website is constantly being updated to allow you to find the most popular Twitter users. Want to be on the list? Twitter constantly.
TweetStats
An app that tracks your number of tweets per hour and per month. It basically creates a graph based on your tweets.
Twitter Grader
Twitter Grader measures the power of your Twitter profile. How high do you rank?
twInfluence
Similar to Twitter Grader, twInfluence lets you calculate the indirect influence of you and your followers on Twitter.
TwitterCounter
A thorough analytical Web app.
tweetVolume
Enter keywords or a phrase and see how often it appears on Twitter.
Twist
See trends on Twitter; find out what’s hot and what people are saying about it.
TweetRush
TweetRush provides estimated statistics on Twitter usage over a period of time.
Tweetwasters
Just how much time do you spend on Twitter? Are you wasting time?
TwitterTroll.com
TwitterTroll.com is a real-time Twitter search engine to find new friends.
Just Tweet It
Just Tweet It makes it easier for tweeters to find other tweeters with similar interests.
Friend or Follow
Who are you following who is not following you back?
Qwitter: Catching Twitter quitters
Qwitter emails you when someone stops following you on Twitter.
Twubble
Twubble is a Twitter extension that helps you find more friends.
Twitter Follower-Friend Ratio
Your Twitter ratio is the ratio of your followers to friends (i.e. people you follow). It is measured with the TFF ratio (Twitter follower to friend ratio). The higher the ratio, the more Twitter heat you pack.
Nearby Tweets
Who is tweeting close to you? This app helps you connect with them.
WhosTalkin
WhosTalkin is a tool that allows users to search for conversations on the topics they care about most.
Twitter Search
Search Twitter is an excellent search engine that allows you to find out what’s happening in the world beyond your personal timeline.
Flaptor Twitter Search
Comprehensive Twitter search.
Twitscoop
Input a Twitter username or keywords in the Twitscoop search box to track a conversation, topic or conference.
Twellow
With Twellow, you can search for someone on Twitter or browse through various tweet categories.
twitSeeker
twitSeeker is an alternate search engine for finding Twitter users and browsing the results in one interface.
Hahlo
Hahlo is an excellent and fully featured Twitter client for your iPhone and iPod Touch.
TwitterFone
Send messages to Twitter using your voice.
PocketTweets
PocketTweets is a Web-based Twitter client for the Apple iPhone.
TinyTwitter
TinyTwitter works on any Java-enabled device and any Windows Mobile Pocket PC or smartphone.
TwitterBerry
TwitterBerry is a mobile client for posting updates to Twitter from your BlackBerry.
twitxr
Share pictures and status updates from your mobile.
Slandr
Slandr delivers an enhanced mobile website for Twitter.
Twitter2Go
Twitter2Go provides a quick and simple way to update your Twitter status.
Tapulous
Discover, connect with and send messages to people nearby. Upload photos and update your Twitter account.
Twittelator
Twittelator is an all-around great new application for your iPhone.
TwitterFon
TwitterFon is a simple, clean, easy to use and super-fast Twitter client for your iPhone and iPod Touch.
iTweet 2
iTweet 2 has built-in auto-refresh, search and hash tags. You can view user bios and locations and also view conversations with the “in reply to” links.
GPS Twit
Run GPS Twit on your phone to make it easy for your friends to find you.
iTwtr
An open-source Twitter client for your iPhone.
Twitter for WordPress
Twitter for WordPress displays yours latest tweets in your WordPress blog.
Twitter Tools
This plug-in integrates your WordPress blog and Twitter account. Pull your tweets into your blog, and create new tweets from blog posts from within WordPress.
Twitpress
Twitpress is a WordPress plug-in that submits a user-definable tweet to your Twitter account, notifying Twitter followers or friends that you have posted a new blog entry.
SimpleTwitter
SimpleTwitter allows you to add Twitter messages to WordPress templates (and not just in the sidebar).
Tweet This
A plug-in that adds a Twitter link to every post and page on your WordPress website, so that visitors can share your blog entries through their Twitter accounts. It also shortens URLs automatically.
TweetBacks
This plug-in imports any tweets that discuss your blog or post. The tweets appear as comments.
TwitterCounter
Install TwitterCounter on your blog to display the number of followers you have on Twitter.
MyTwitter
MyTwitter allows you to display your Tweets on your WordPress website and update your status on the MyTwitter settings page.
TweetRoll
With the TweetRoll widget, you can display the number of your followers and friends.
Twitt-Twoo
Twitt-Twoo is a simple little plug-in that allows you to update your Twitter status right from your blog’s sidebar.
Toro for Twitter
Designed to be simple, Toro uses an experimental Twitter client library to remove the Twitter API limit.
twhirl
Most of the features available on the Twitter website are accessible through twhirl, with usability enhancements.
Tweetr
Tweetr is a Twitter client that allows you to send and receive Twitter messages, but with some added cool features: support for taking photos with your webcam and sending files (up to 10 MB).
TweetDeck
TweetDeck aims to improve the existing functionality of Twitter by taking the abundance of Twitter feeds and breaking it down into more manageable bite-sized pieces.
DestroyTwitter
DestroyTwitter is a series of canvases that constantly update to keep tweets current and up to date using notifications that appear as soon as a new tweet is posted.
TwitterLocal
TwitterLocal is an Adobe AIR-based app that allows you to filter tweets by location.
Spaz
Spaz is a well-designed and well-developed Twitter client.
Snitter
Short for “Snooks’ Twitter,” Snitter is a cross-platform desktop Twitter client.
Twitch
Some features of Twitch are TwitPic integration, URL shortening, the ability to combine friends and replies, reply-highlighting hash-tag support and more.
TwitBin
TwitBin is a Firefox extension that allows you to keep up with all of your Twitter conversations directly from your browser’s sidebar. Send and receive messages, share links and more.
Power Twitter
Power Twitter adds a multitude of features to the Twitter website interface.
TwitterFox
This extension adds a tiny icon to the status bar that notifies you when your friends have updated their Twitter status. It also has a small text input field to allow you to update your own status.
Twitzer
This Firefox extension lets you post tweets longer than 140 characters on Twitter.
TwitterBar
TwitterBar allows you to post to Twitter from the Firefox address bar.
Twitter Search
This plug-in gives you quick access to the real-time Twitter search engine.
Hoopla!
An essential Twitter plug-in for the Firefox quick search feature.
TwitterEyes
TwitterEyes keeps track of your character count as you compose tweets and replaces characters if you need extra room.
Is Twitter Down?
Is Twitter down just for me or for everyone? This great app gives you a simple answer: yes or no.
twistori
An interesting Twitter experiment: click on a keyword on the left, and see what tweets are currently being published that contain that word.
Twittervision
A real-time geographic visualization of tweets. Amazing.
twittearth
Similar to Twittervision (above) but with a sleeker interface.
You may want to take a look at the following related posts:
Paul Andrew is a (sometimes) freelance Web designer. He is chief admin for Speckyboy – Design Magazine, a Web design, Web development and graphic design resource blog. He is also admin for StylesInspiration, a new Web gallery showcase. Follow him on Twitter here: twitter.com/speckyboy.
(al)
© Paul Andrew for Smashing Magazine, 2009. |
Permalink |
40 comments |
Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Submit to Reddit | Submit to Facebook | Who is linking? | Forum Smashing Magazine
Post tags: applications, tools, twitter