Today, we rolled out a redesigned set of buttons across our products. Since we launched in 2006, we’ve mostly used images for the various buttons on our site. This is how our image-based buttons used to look.

We’ve been eyeing these buttons with disdain for some time now because they’re completely static–they don’t respond when users point or click — and that’s disappointing. It takes away from the feeling we want users to experience when they’re using our products.
We wanted our new buttons to feel more responsive. We identified four different states a button could have — default, hover, pressed and disabled. We also designed three different types of buttons — a default button, a “primary” button to highlight the most crucial action on a page and a new treatment for the orange buttons we use on all of our search and booking screens.

Our new buttons are styled entirely with CSS3, so different browsers render them differently. Most modern browsers render them quite consistently. Internet Explorer, obviously, fails to behave itself. After jumping through hoops to accommodate Internet Explorer, the styling on them is still nowhere close to what we intended. Take a look at how your browser renders these buttons. Go ahead, play with them to see how they respond:
| The basic button | The primary button | The transactional button |
We love our new buttons, they’re a big improvement over the earlier ones. Some of the advantages of CSS3-based buttons are:
They don’t use images — For the longest time, designers have used images to customize the look and feel of button elements. But every image used on a site needs an extra HTTP request to load the image. Extra HTTP requests slow down web pages and increase bandwidth costs. Our new buttons require no images at all, helping our web pages load faster.
They respond to interactions — Our new buttons provide instant user feedback when you move your mouse over them or click on them. Skeuomorphic elements, like shadows, bevels and gradients, help it mimic a physical button’s behaviour, making it more of a pleasure to use.
They degrade gracefully — We’ve made sure these buttons are usable in browsers that don’t support CSS3 (Internet Explorer, we’re looking at you). They don’t work as well in those browsers but they’re still an improvement over the image-based static buttons.
They scale amazingly well — We don’t need to maintain a respository of buttons in varying sizes. Simply adjusting the font-size takes care of all the styling. See it in play here:
| Font size: 11px | Font size: 14px | Font size: 18px |
They’re easier to maintain — If we ever need to change the look and feel of our buttons, we just have to edit the stylesheet and we’re done. Beats the hell out of recreating every button image and replacing them across the site.
They’re easy to use — Including buttons on our pages is really simple for our designers and programmers. Add a “button” tag to get the default button. Put whatever text you want to display within the tag. Give it the appropriate class name to get one of the styling options. Adjust the font-size as required and voila, you have a beautiful and functioning button.
Thanks for posting this! I have been pushing for CSS3 at my org but have been cornered because they don’t work on all browsers and thus others don’t agree to it. Now I can say, look, Cleartrip has done it.
Varun, great point about the css usage. I was happy about it when I went through your post. But this morning I booked a flight on CT and the buttons didn’t give the same feel as the earlier ones, something was lacking in the CT experience. Maybe the colour differentiation, i don’t know, but from a user experience perspective, u could try some improvements.
@Shashi, we hope you’re able to convince people at work about progressive enhancement now. No reason to have users of modern browsers suffer due to a few users of non-compliant ones.
@Anis, thanks for pointing this out. We intended to use the orange buttons for the booking flow but there seems to be some issue with this currently. We’re trying to fix it; we’ll keep you posted.
Varun, Thanks for this article..will certainly help for a project we are working on a test bed ..
Ah! This was long pending. Looks nice, behaves awesome.
not working properly with in IE9 and IE10
It’s showing gradient box around button.
Hello Varun,
Glad to see all the improvements in the cleartrip website. Of course, the website is very simple and easy to use.
However, I am presenting you with a problem, which I am currently facing and none of your customer support executive could provide me with a solution. By the way, this complaint was given probably 2-3 weeks back (in the month of September 2011). Even I have not received a piece of information about “whether my problem will get resolved or not”. Hence, I thought it would be better to highlight the same to you.
This is in reference to the Case No. 1370873 regarding the invoice generated electronically for the Trip Id: 1109278904.
Let me re-iterate the problem. I have booked a return ticket (MAA-DEL-MAA) through your website. The invoice generated from your website shows the “consolidated fare” for the entire return trip instead of a detailed breakup of fares. That too, this entire return trip fare (around Rs. 7500) is listed under “the onward journey (MAA-DEL)” for each passenger and a “- (dash)” is listed against the “return journey (DEL-MAA)”.
This is really unfair and it creates a lot of problem, if I submit this invoice for reimbursement in my organisation. I need a invoice with detailed breakup of fares (as shown in your website – such as base fare, fuel surcharges, service charges, PSF, discounts, etc.) apart from a consolidated fare for each passenger for each trip.
If possible, please incorporate the same in your website itself while generating the invoice.
Thanks and Regards,
(G. Anand)