UPDATE
I have released a new version. You no longer have to update the width everywhere, just set the desired size by giving a value to the ul.nice-menu class. The old version is still available for download from here
This short script will show you how to create a colorful, yet simple and elegant navigation menu using nothing but CSS 3. Since the latest version of CSS and mainly it’s animation part is not supported by all ‘major’ browsers the code below will not be working in these browsers, instead it is going to nicely degrade to a similar but inanimated one.
The HTML
As you can see the HTML code is quite simple, just an ordinary list filled with anchor elements. Only the main nice-menu class is necessary, the rest is the coloring which is optional. Six colors are available by default: red, orange, green, blue, bright, dark.
Styling
CSS 3 introduced a set of new properties which makes designer’s life even more easier. With these properties you can substitute many of the plain old javascript framework solutions unless you mind those pesky IE browsers. You can read more about CSS animations at Brad Shaw’s amazing website
I’ve implemented two kind of animations: the default one with ease-in and out, and another one with bounce-in and out. To use the latter one you just have to add the bounce class to the ul:
There is one more additional class that you can use: tight, which removes the space between list elements.
Conclusion
Thanks for stopping by. Please feel free to download and customize the code, also I would be grateful for leaving your feedback in the comment section below.

nice menu
Thanks Munkhtur! I really appreciate your feedback!
Pingback: Vertical Animated Menu Using CSS3
Thanks you so much for this menu.
Hi,
I’m glad you like it! Feel free to use it.
Pingback: Menu animado vertical apenas com CSS3 | Aprendiz Online
hi there i followed all tutorial step but it’s didn’t work
Hi,
Could you explain what part is not working? Is it the animation?
sorry, all work find after refreshing Ctrl + F5… thanks a lot for nice tutorial
Great! Don’t forget to change the width value of the animation as well. I’m going to update the css to use percentage soon and I’ll be releasing a new version. Keep updated.
Hello. Thank you for sharing. I am looking to do something similar and would like to use your code but I need the LI to have a height of 100% – so the nav element goes from the top of the browser to the bottom (it will be a “content panel” with lots of links on it). Of course height: 100%; does not work. Any ideas? Thanks again.
I’m not sure if I understand what you are trying to achieve by setting the LI’s height to 100%. This would mean you can put only one LI inside the UL which doesn’t make sense. Can you show an example?
Thanks for your reply. I guess I was just looking for how to set the individual nav LIs to 100% height. Maybe this wouldn’t work with your CSS since the roll-over activation is on the nav element itself and would cover the other nav elements.
Excellent animations. Thank you for your inspiring contributions to the dev community.