* Didn't realize I had the name and expiration field to enter as well. I thought it was just show casing the number entry. It wasn't until I came back here to HN to read comments that I realized that there was more to the demo.
* Tab order was wrong.
* 1Password couldn't fill in the data.
* No indicator telling me what credit cards you accept.
* CVV was hidden. There were several cases where I'd finished filling out the form, but couldn't change the CVV.
* Errors are not displayed. Try 10/10 expiration, and you are basically stuck. Without additional information, there is nothing to indicate anything is wrong.
* You can tab from the date to the hidden CVV and enter information there, but you don't see it. This is easily done because the automatic progression is inconsistent, so I've had to tab twice before getting to the year, and because it automatically moves me there, I end up on the CVV. This makes things really awkward.
* Overall, this was fairly confusing. I failed at entering the CC data the first time.
I spent 10 years handling CC processing, and basically living on the payment page. Keep the page clean, quick, and simple. You don't want to do anything confusing. Let them enter the CC data and move on. That fancy CC form will NOT sell a single thing. It will however stop people from paying. It does nothing to convert.
The more friction you place between a customer willing to pay and the actual transaction, the less chance you have of making a sale.
Even that form fails. The expiration date is where it falls down, failing to allow for auto-completion. Also, again, it doesn't show you the accepted credit cards. The error checking is delayed until you click on the button (which also means the error correcting is delayed as well). I didn't spend too much time with it.
I should also point out that this seems to be just one part of the checkout process, so there are cases where it would not work (though that's probably not the intended use-case for modal form).
It's Jakob Nielsen. While he can be a bit of a smartass sometimes and is not undisputed in the usability community, his books are definitely worth reading.
If you Google "checkout conversion remove field," you should see a number of articles on this, including some with A/B tests. The trend seems to be that the fewer fields shown or required, the better conversion is.
The goal of this design is to reduce the friction -- granted, it sounds like you had a difficult first experience, and this isn't (by far) a finished product. There are bugs: 13 of them open right now.
I know you probably won't use it -- and that's okay. I just wanted you to know I heard you :) All of the things you mentioned are things I'm actively working now to address.
> The goal of this design is to reduce the friction
And I applaud you for that!
> All of the things you mentioned are things I'm actively working now to address.
Awesome!
I should make it clear, I'm not posting this as a "OMG He's wasting his time!" As I said, I spent a decade working with this, and I can appreciate the difficulties of a frictionless payment process. I wanted to share my experience with you just in the hopes that you can do exactly what you are doing: improve it.
Jason: Certainly the "standard" form still has some friction and loss. Could some other arrangement have less? And isn't it great that someone else is experimenting to try to find it, so you only have to switch once it's established to actually be better?
Adding to Jason's issue list:
* Fill out everything including CVV on back, erase everything on front, option to switch to the blank back persists.
* Not sure where it's supposed to be, but backside CVV for Mastercard seems positioned partially off the top left of the card on Chrome/Mac.
* Card numbers highlights existing digits when tabbing/shift-tabbing, but expiration date does not.
* If you Tab to a card number field with less than 4 digits, they are selected and typed over. If it autoadvances, they are not selected and your cursor is placed before them. This then does not autoadvance.
* D/DD in expiration followed by Tab appears to be accepted but does not work.
* Entering complete invalid Mastercard number, then clicking and entering expiration date (without name), then Tab leaves you apparently nowhere. But it's actually on the CVV, so if you type something to see where it goes, odd things happen.
* Invalid date format, or expired date is not highlighted until you type the first character of name. If out of order, you have to erase previously entered name completely before highlighting recurs.
* Tab from last field takes you off the form with no resolution.
* Enter four digits in card number field, position cursor in middle, then tab to next field. Pressing delete erases the number where you last had the cursor, not the last digit.
* Enter 4 numbers in card field, autoadvancing to next field. Shift-tab back. Tab forward. Delete erases all 4 number in previous field, rather than last as expected.
I think it's a nifty idea, visually pretty when it works, potentially useful as a standard, but right now I feel like I hit bugs faster than I can type them up. Hard to say how useful it will be when actually working, but seems worth finishing to see.
> Certainly the "standard" form still has some friction and loss.
Yes.
> Could some other arrangement have less? And isn't it great that someone else is experimenting to try to find it, so you only have to switch once it's established to actually be better?
>That fancy CC form will NOT sell a single thing. It will however stop people from paying.
Citation needed.
>It does nothing to convert.
Beside the point. Any other credit card form I've seen does nothing to convert either -- and it's not it's job: by the time I'm entering my credit card details, I'm already "converted".
Most of the objections are dead simple to fix (tab order, 1password), and address nothing inherently wrong with the core idea.
Hi. My team is responsible for the checkout process at a large company. I won't give exact numbers, but more than $100m goes through our teams two pages.
>by the time I'm entering my credit card details, I'm already "converted".
Our numbers say otherwise. Optimization of our checkout page is a huge deal any change, even text, comes under scrutiny, and for good (i.e. measurable) reason.
Would I put this demo on our page? If the bugs and confusion can be fixed, I might try it for a very small test group and see what happens. Not sure the confusion can be fixed though.
> by the time I'm entering my credit card details, I'm already "converted".
No, when you finish entering your credit card information, you're "converted."
I have been ready to purchase but abandoned orders because I was doing multiple things. By the time I remembered to go back, I didn't feel as strong a compulsion to purchase the product. In some of these cases, if checking out were easier, I would've been done and I wouldn't have felt strongly enough to cancel the order.
Shitty forms cost you money even when it's the last form you have your users fill out.
Unfortunately, I've never published anything to any official standard. I can only go by my experience. That experience involves transactions north of $100M.
> Any other credit card form I've seen does nothing to convert either -- and it's not it's job
Perhaps I worded it poorly. However, a CC form's job is to convert a potential customer into a paying customer. Just because you've entered your CC details does not make you a paying customer. You'd be surprised as the number of people who do enter information, and then never actually complete the transaction. It it's a recordable amount.
In the end, a credit card form that creates friction will cost sales. The more friction, the less sales. The amount of problems with this setup will stop sales from going through, even if just the bugs are fixed.
> Most of the objections are dead simple to fix
They aren't objections as much as they are a report of what is wrong. Consider them a list of problems that need to be addressed.
> and address nothing inherently wrong with the core idea.
Correct, the idea is fine, and should be explored. Keep in mind, this isn't the first time I've seen someone use a credit card layout as a form. The CVV on the back is new, but than I'm going to say that's a bad idea the way it's implemented.
Anyways, I already replied to the author of the form, and made it clear I'm not arguing against his attempt. Hell, I applaud him. I just wanted to share my experience because that is what's needed.
Being a little less "blunt" may help a bit. I generally don't start my criticism off with "So..." followed by a list of everything that is wrong with it and then a "THIS WON'T CONVERT" in caps.
I think more likely the reason is people with "north of $100M" in transactions are scared to try something new on their form. When there form clearly works fine as it is. But that doesn't mean exploring new methods is a bad idea. I know a lot of people who are still unsure of what a CVV is. And having a replication of their credit card so they know exactly what goes where would work very well.
I was trying to be clear. Judging by the OP's response, I think I was successful. But agreed, I could have avoided the So… part. There was really didn't mean anything by that part. Mea culpa.
> I think more likely the reason is people with "north of $100M" in transactions are scared to try something new on their form. When there form clearly works fine as it is.
That's actually far from the truth, at least in my experience. You are constantly looking at how to improve the experience at every level. Between the amount of time a person spends entering in each field, to the errors they get back, and even where the person lives. Everything is scrutinized. Not everything matters, but you keep looking.
> I know a lot of people who are still unsure of what a CVV is.
Yep. And there are ways you can go about resolving that. Hiding the field from the start is a bad idea. There is nothing to suggest that you couldn't also display the back of the credit card below the front.
The most important thing you can do when designing something like this is get real feedback and data. Just because it looks nice doesn't mean it will help.
>>That fancy CC form will NOT sell a single thing. It will however stop people from paying.
>Citation needed.
I'm getting pretty tired of this attitude. Don't get me wrong, I'm all for healthy skepticism, but if you can't grasp the basic understanding that the biggest hurdle to conversion is friction in the purchasing process then your in the wrong business mate.
>I'm getting pretty tired of this attitude. Don't get me wrong, I'm all for healthy skepticism, but if you can't grasp the basic understanding that the biggest hurdle to conversion is friction in the purchasing process then your in the wrong business mate.
The "biggest hurdle to conversion is friction in the purchasing process". We're talking about the "enter credit card details" stage here. Which is hardly the "biggest hurdle to conversion" -- it's where conversion has mostly already been made.
You first need (a) a decent product, (b) to present it nicely on the web page, (c) good copy, (d) appropritate calls to action, (e) a pricing strategy, (f) to get the customer to decide to buy. Only then the "friction in the purchasing process" (with respect to entering credit card details) comes into play. At the very last stage of conversion.
But that's beside the point.
In my question I didn't specifically doubt that the "biggest hurdle to conversion is friction in the purchasing process".
I merely asked the parent to qualify why he thinks this specific form will "stop people for paying".
I wanted to like it but I'm not sure it's really better and could be much worse merely from being so different from every other method.
That said, there are some problems:
* Amex CVV doesn't allow the proper 4 digits
* Tab-order is weird
* Confusing because sometimes you tab to next field, sometimes you don't
* Name usually not needed since already entered elsewhere (inexplicable why so many checkout forms do this)
* Difficult to change card number
Thank you for being willing to test it! This isn't something I'm making money off of, nor is it something I feel the need to ram down people's throats -- I just wanted to try something people hadn't seen before.
If it works, and people like it, great! I'm glad to have helped a little. Please let me know if you run into any trouble (my Twitter and email are on the site).
Unfortunately, for unrecognised card types it makes it impossible to proceed. I have just tried a maestro card number (beginning 6759) and am unable to enter any of the additional details (expiry, etc).
It may be worth adding a generic fallback for cards that are not recognised to account for unexpected edge cases.
I like it I feel that this is one instance where skeumorphism goes well. I can look at my actual card and visually match what info goes where without having to be told. One thing, I think it would be simpler for a user if the card showed both sides at once, rather than requiring the user to flip it to fill out the other side.
One minor improvement I would make is to prefetch the backgrounds for the specific card types (Visa, MC, Amex) so that the swapping appears seamless. This is a great idea and I will totally keep it in mind for future projects.
The "flip to the other side" to fill out the CVV is great. I might provide a second button/link, appearing once the CVV is completed, that says something to the effect of "valid input, next step"
Your message for disabled Javascript is really, really weird.
> Either you have Javascript disabled, or you're using an unsupported browser, amigo! That's why you're seeing this old-school credit card input form instead of a fancy new Skeuocard. On the other hand, at least you know it gracefully degrades...
> Never tell me the odds! Enable it anyway.
Write like this instead:
> You can still use this form if you have Javascript disabled or an unsupported browser. For a better experience, enable Javascript or upgrade your browser.
- You can have invalid inputs in the month field. "20" or "00" are not months.
- You can put invalid inputs in the year field.
- Tab order is wrong. Go from top left to bottom right.
That message seems to be intended for developers looking at this example site, thus the casualness. If you were to use this on your own site there would be no error message at all.
Agreed, I stumbled for a second before realizing I could type a name in the card, but I would love to see stuff like this become popular.
Also, on Chrome 28/Mac, the validation flow seems to have some issues. I can put invalid months like "22" or "00" on the card without it highlighting the month. But it looks like the month needs to be accurate before it will show me my Luhn checkdigit is wrong. After playing with it, I'm not sure what exactly the flow needs to be, but I'm able to get green "Back to the other side..." messages with invalid data fairly consistently.
This was the primary weak point in the implementation. Expecting users to recognize that they can click on the static-looking fields on the card (or relying on them to use tab to move between fields) does not pass the grandma test. It'd be great if you detected when a field had been fully filled out and moved to the next one automatically.
I think blind people / screen readers might have difficulty with this interface, too. It's important to keep accessibility in mind when designing futuristic interfaces.
If you press tab, it at least cycles through all of the input boxes on the front side in an appropriate manner, and you could probably design it to flip over on the next tab press. I'm fairly certain that would make it work with screen readers (but not positive).
It doesn't tab between the input boxes or even show the boxes until it's detected the card type based on first four digits. On initial load you get an input box with "XXXX XXXX XXXX XXXX" and nothing else. It does not look like an average credit card form and a lot of people will be confused "where do I put in my name" when they first see it.
I don't know. The current convention is always to enter the credit card number first, then the name later (usually as part of the billing address). Once you start entering your card, the rest of the information is explained nicely.
Personally, sites that auto-tab to the next input drive me crazy. It makes it nearly impossible to edit if you make a mistake. Try explaining to grandma why the cursor doesn't stay where she put it!
My experience on an iPad. Typed first 4 numbers of my VISA. Realized I could type in the MM and YY, then realized I could enter the name. It was a very smooth process for me - and I didn't read any text above or below before trying.
I wonder if trying it on a touch device made it more natural or not.
Please do. It's true that "it doesn't behave the way you'd expect if you've ever bought anything else online", but the (somewhat rational in a business sense) fear of it is why we're stuck with things that suck, the "first designs" that got popular and that now we're too afraid to change.
"Every question a user has to ask themselves during the checkout process is another reason for them not to complete it."
It depends what you are trying to sell. If you have used all known tricks to convince user to buy "lose 50 pounds in 2-weeks" product, then yes unusually good looking CC form nothing circa 97 can discourage user from converting. On the other hands, many times you offer product that user truly wants, and when your checkout is broken, they will send you a long explaining email, showing you how far they would go to get what they want.
>Beyond that it has to load images dynamically based on card type which on a slow or interrupted connection
I noticed that too, but thats mostly because this post > 420 upvotes. All you have to do is load them all in div style = "display: none" on body onload and viola! all are preloaded and hidden, waiting for your browser to use one from your cache.
I'm going to guess that this will actually convert better because it helps answer the most important question a user asks:
Did I enter my freaking CC number right?
For those hunt and peck typists, the larger size, the proper handling of spaces, and the ease of comparing to the actual card makes that so much easier, even for the average users.
I will note that the expiry and name input could be highlighter better - I missed the expiry until I accidentally clicked on it.
For those power shoppers who've memorized their card number, this will still work for them too.
>"Beyond that it has to load images dynamically based on card type which, on a slow or interrupted connection, will create even more confusion."
This actually happened when I refreshed the page while playing with it and it was replaced by a normal form. Pretty handy. I think I will also be testing it out.
It's a cute interaction, but for credit-card forms you want to be obvious rather than cute. Showing all the fields a user expects to fill out instills confidence and prevents questions like "where do I input my name and card expiry date?" "what about the security code?" "where is the billing address?" etc. People would typically not start filling out their credit-card details with those doubts in their minds.
One additional nitpick - it says "YourBank" at the beginning, so while I was aware this was supposed to a credit-card form because of the title of the submission, it can also be mistaken for a bank account number submission.
[Edit: original thread title was "why isn't every CC form like this?"]
Because it's completely unneeded.
Typical web designer wet dream. Fancy-schmancy visual design fluff, robbing screen real-estate and bandwidth for a freaking "credit card" background image, and will it still work even 2 or 5 years from now when all web dev standards have once again turned 180° and future browsers render stuff like this way-off or not at all? Oh it won't, but you web designer dude will happily fix this at a charge of only 1.5 man-days? Well, neat!
Don't get me wrong, it's fun to spend a week or three "optimizing" an approximate 0.000001% of your web app's UX with ideas like this. I get it. Been there, too.
I see another issue --- with the CC now looking more real, the user also gets closer to the "physical reality" of "I'm parting with cash". Once I see my card's logo I'm instantly more hesitant. It's been shown that the more "layers" away from real physical payment a transaction is, the "easier" a customer proceeds with it.
I see another issue --- with the CC now looking more real, the user also gets closer to the "physical reality" of "I'm parting with cash". Once I see my card's logo I'm instantly more hesitant. It's been shown that the more "layers" away from real physical payment a transaction is, the "easier" a customer proceeds with it.
Isn't it a good thing, if people are more responsible with their money?
I mean, yes, most web merchants would be much happier if all their customers spent the diaper bill and the mortgage payment on product, but I don't think you're supposed to say that out loud on a public forum. It's considered gauche.
Agreed. As a designer, I don't want to waste space with this for two form inputs, not including the CVV. On pages asking for your CC information, there's generally a lot more than just this going on, and the possibility it creates confusion for those who think it is merely a graphic representing a card, and not part of the process itself, during the most important aspect of the sale just doesn't fly with me.
To that point, I would consider putting borders on all the entry fields to make it clear where user data goes. It wouldn't be as pretty, but it might be more usable.
Yes, and then I'd consider arranging them on a grid, with predictable tab order, and then I'd consider remove distracting visual ornamentation, and then...
...we have a usable, familiar, industry-tested form of data entry. =D
I think this is a great concept that will need a few rounds of feedback and some live testing before it's ready for prime time. Many commenters here are saying the current format will lower conversion rates, and I agree with that, but I think the problems are correctable. I would love to see conversion rates on this thing, although that's sort of a chicken-and-egg problem.
My general attitude: it's trying too hard to look exactly like a credit card, and that makes it not enough like a normal form. Dial it back a notch or two. Have the fillable areas look like normal form fields, don't be afraid to explanatory or error labels on the form, and show front & back at the same time rather than a "flip" interaction.
Second this. My bank does also splits the entry fields for the digits when there is a specific format, and it's a real PITA.
For those not on a ipad now, what happens is when trying to tap 5 digits in a row for 4 digit field: the keyboard disappears at the fourth tap, and the fith tap misses it's target and lands on the page.
If the 'somewhere' happens to be a link (i.e. the 'view on github' link on the left if right below the '4' when the keyboard is displayed) you get out of the page, and have to start over again. Trying to enter important information is stressful enough, getting out of the page every pack of digits and start over all again is a punishment in itself.
Good luck. Apple purposefully disables the ability to control where the keyboard is entering text. AFAIK there's no workaround (I’d love to know if there is!)
We implemented a form very similar to this about 7 years ago. (our form had light red borders around all the required fields that turned green when they had been filled, as well as some other differences). I was personally very enthusiastic about the beautiful design and thought that users would appreciate the skeuomorphism. Well, they didn't really care. If anyone was delighted by the design, it was offset by having to figure out how to use a new format of form. The form was also more difficult for us to maintain and test against different browsers. So, in the end we went back to a standard form type.
I dislike this UI because it adds more questions[1] than it takes away. "Why did it tab? Why is it loading, did I accidentally submit? Why did the tab ordering jump down, then up?"
Just show me a web form and put a picture of a VISA card somewhere static.
The part for me where it breaks down is when you have to flip the card to the back to fill in the CVC. I also hate when fields auto-tab for me. Also, why does it hide the expiration date and name fields initially?
Wait, the card actually flips? I completely didn't realize that the first time around. As for the second time around, I still don't know how to flip the card. What am I missing?
I didn't realize it either, there was no indication that my expiration date wasn't valid.
By the way on the Mastercard on Chrome 28 on Win 7 it shows the CVC on the top left corner of the card so that the text overlaps with the border. On my Mastercard atleast the CVC is in the middle of the card.
I wonder how important it is that the name and expiration date match up exactly where they do on the actual credit card. I think people are able to at least figure out where the name and expiration date on their CC is.
I'll be sending you a pull request in a day or two. I work with dead, blind, hard of hearing, and visually impaired folks. I see a few places where accessibility could be improved with respect to screen readers.
I swear I'm not a grammar nazi, but I did just spend the past 10 minutes thinking about ideal user interfaces for zombies and vampires. Thanks for that...
Not to be a word choice nazi, but I think you mean either "word choice nazi" or "spelling nazi" rather than "grammar nazi", as the post you responded to was grammatically correct but apparently used "dead" in place of "deaf".
I like the general concept, but I think it relies on specific behavior to the point of being confusing.
* As others have mentioned, there's no advertising of accepted cards
* None of the empty inputs look like inputs until you tab into them. They also cease looking like inputs when you tab out. Correcting data that is not objectively invalid (e.g. expiration in the future, but wrong month) is kind of unintuitive. Someone who clicks into form fields will likely be entirely stumped by this form.
* It doesn't seem to work on mobile. On my iPhone the series of inputs were positively irritating to interact with, somehow each one only took three characters instead of four, and the lack of a tab meant I had little direction on where to go when the first four digit input disappeared.
* The CVV is clumsily poorly handled. You can actually tell in that you're breaking away from skeuomorphism to get the user to that input. It might be a better idea to show the "back" next to the card when you do the initial breakout.
I have always wanted card entry systems to know what kind of card it is - given that it's trivial to tell from the first few digits I never understood why not.
This is a great step up from that. The one thing I felt was not perfect was the multiple entry boxes for the different card types. Erasing/backspacing is not so easy. I would suggest a single entry field, and do something about adding padding spaces automagically. This also plays in to the auto-complete/form fillers these days. A credit card number is a single number, not 4 groups of numbers you copy and paste independently.
I don't think the UX is good as you think for the average user. For example, my mom (who is pretty good with a computer) would be so confused by this. I don't think she would understand that the credit card is interactive, especially after she maybe got past the first part of the credit card numbers.
I agree with others - I love the concept. However, I think for customers who are less enthusiastic and trusting in general, having a physical representation of their card built before their eyes will make them more acutely aware of the information that they're sharing, and be nervous that they're sharing it (even if they have limited reason to be nervous). In short, it will spook average customers. Maybe for a site that sold to a technology-focused crowd it would have more success though. Just my hunch.
You should use data urls or sprites for the CSS, then you don't have the the loading image coming in with delay.
Changing stuff once you have filled out the number is hard.
You have to navigate your way back through the 4 blocks, and the auto-tab and the way it reacts to arrow keys means that the cursor doesn't end up where I anticipate it.
One bug I noticed: if you enter one of the sample numbers such that the number splits into multiple fields, then backspace starting from the end, you'll end up moved to the beginning of the first field with the first few digits still filled in, rather than backspacing over them.
More generally, any time you construct your own custom input rather than using browser input fields as designed, you end up with this kind of brokenness because you have to reimplement browser logic.
I'd love to see an <input type="creditcard">, with an input-creditcard.js polyfill, and native support added to browsers. On platforms that already know your credit card number, this would allow for simple auto-fill of all relevant information. This would also make life easier for things like Google Wallet that construct virtual credit cards for you, and it would allow for browser extensions that integrate with credit-card vendors to produce one-time tokens.
This reminds me of an habit I developed: I usually input the credit card number last. I usually start selecting the card issuer, then fill out my name, billing address, expiry date and CVV.
I love the concept. I love that it's smart enough to use a regex to figure out the card type.
As others have said, some minor instructional text would help people get started. Also, making the name and expiration fields more obvious from the start (more obvious that they're fields and more obvious that they will need to be filled out) would also be helpful.
Having to click to flip the card is probably the biggest problem (though fixable). Typically when filling out a form, I suspect most people use the tab key to go from field to field. Having to go back to the trackpad/mouse and click on a spot slows things down. Maybe have the card automatically flip if you hit tab after the expiration field?
The field formatting stuff is great, but I think the interface to fill in the data on the card is monumentally confusing.
I do, however, like the idea of offering a "live preview" of data filled in via a normal credit card form (using the stripe checkout library for example which does all the nice card type detection and input formatting stuff for you).
This type of "preview" could also be useful in a confirmation step, ie. show the front and back of the card so the user can confirm it looks okay (I don't think there would be much advantage in "flipping" back and forth between front and back, though).
Entering CC info is last thing user does and that's the step you don't want to mess up - ever! This is one scenario where you want to stick to boring, well-accepted, well-known, highly familier UX and avoid performing fancy tricks because there could always be some case where it doesn't work as expected. For example, I tried to enter random numbers in this UX and I did not got any response that numbers were bad. Even worse, it did not enabled MM/DD. For some unknown CC this would mean loss of customer that you worked so hard to compete and ultimately acquire.
Beautiful project. I agree with others who don't think this will drive conversion - who knows...
I would be concerned about reducing conversions though. Unfamiliarity can be scary.
One annoyance for me - I can't hit Command-A to select everything and start over. I'm also annoyed generally by auto-advancing text fields, though this implementation seems to work around some of the issues.
I have a bit of a pet peeve for apps that try to customize form fields, because they almost always get the corner cases wrong. Here, for instance, select all doesn't work as expected. (In fact, selection doesn't work at all. Skeuocard, like many overly-clever widgets, will overwrite your selection to put the cursor where it thinks it should go.
It's horribly wrong to even suggest that. The instructions should say "type 4111.... I don't want your credit card number", and should pop up an error if a valid checksummed card number is entered. Don't miss an opportunity to help people lean safe habits.
My only complain is that it auto-progresses across sections of inputs (between month and year in the expiration for example) it does not auto-progress when you reach the end of one form. I found that jarring. If you are going to auto-progress in one place, you probably should across the board.
- ALL of the inputs should look like inputs and only after a user has put in their information should the input ui disappear and the text be shown as it is on a real credit card. Otherwise the ability to enter your name and expiration is ambiguous.
- I don't like how AFTER you enter your full credit card number, the input fields become segregated, trying to change the credit card number becomes difficult as you now have to click on each of the 4 new text fields to enter a new credit card number. (If a card fails to go through a user might try to use a new one). Yes you can just hold down BackSpace and it will travel from field to field deleting the number but that's not obvious for a user to figure out. Don't segregate the numbers into separate fields just leave them in one.
I believe there's an algorithm to determine if a card number is valid (before determining if the other credentials are correct). Implementing that would probably be the most useful thing you could do in Skeuocard, as it helps people find typos in an otherwise inscrutable list of numbers.
I wouldn't use a form where the fields displayed change as you enter things.
That said, I totally agree with the premise. I'm totally baffled why so many forms require you to unnecessarily select a card type or insist that you enter a number with spaces or only without spaces.
There's a lot of negative reactions on here, and some of them might be valid (unfamiliarity, any friction reduces sales).
But I liked the concept. The "flip over for CVC" worked for me on Firefox, and that was an elegant solution. I think a lot of the criticism could be avoided by just making it static: don't load the image and redraw the card based on the input numbers. It then boils down to, essentially, the image of a generic card with some generic fields on it. Add some red text for fields that require input, and I think it's an elegant way to guide people when entering CC info. I'd be interested if anyone did A/B testing with this variant (and others) against regular forms.
I love the idea, but since nobody does this, the average user would be skeptical. If it were used on the iPad, people might be more comfortable, since the iPad is a new medium and (most) people accept new concepts like Square as acceptable and secure.
FYI: 4147 2011 1111 1111 triggers the special Chase Sapphire layout (number is on the back of the card, front just has your name + the Chase Sapphire (Preferred)).
I actually find the lack of any label on the CVV field a bit confusing, but maybe that's just me.
Very nice work. I've done lots of work with credit card fields because I work for a large non-profit that depends on credit card donations. I might just use this in the next iteration of our form. Good idea doing the detection in realtime.
My only gripe would be that it doesn't innately explain which cards are acceptable... E.g., you might not accept Diners Club and Discover, but do want to accept Visa, MC, and Amex. Having little icons there make that more explainable. We did it like that on our contribution form: https://contribute.publicradio.org/contribute.php
After the last number is entered, you should auto focus the NAME field, then EXP DATE or the purchaser won't know what to do. People may think... hey, it guess my card type, how come it's not automatically showing my name?
This is amazing. I do think there's a lack of breaking the norm in web practices (for several good reasons, but not enough), resulting in us not taking advantage of what the most amazing newest iterations of the internet can offer. This is a good change in the right direction. I'm sure there'll be kinks, but fixable kinks.
NB: I comment on amazing HN submissions (Show HNs usually) primarily so that I can find these tools again by browsing my comments from my profile when I feel the need to use them. This is primarily a comment to that end. Thank you so much for this Ken!
On my android with firefox it very was easy to see that the XXXX was an input-box that had to be filled in because each field had a small frame around it, i was surprised to see so many having trouble understanding it. Then i tried in my desktop browser (firefox, chrome and ie) and there there is no frame around the unfocused input fields, the numbers stand alone making it look like a static image of a credit card, except when the fields are focused. This little change made the experience much worse, i suggest always showing the frames around the fields.
Small bug report: This works very poorly (not useable) in Chrome Version 21.0.1180.90, which is the last one available on macosx 10.5. You probably want to fall back to form fields on untested browsers.
I love this. couple of things you may want to test - either show all the fields (cc number, exp, name etc) by default, or dont show the name, expiration fields until the credit card number has been filled... its slightly surprising that the other fields show up after entering 5 or 6 digits... also, it is not very clear that I can click and enter the name, expiration date (as it was for cc number)... you may want to move the user directly to the next field after they have entered the previous field.
However, there is a few things that makes me not want to use it.
Firstly, no security code.
Secondly, it's hard to tell which fields aren't being filled out. Especially the YOUR NAME in particular. Maybe you should make these fields red, or when you complete a field it automatically goes to the next field. For example, when you finish typing in your credit card number the cursor automatically goes to the expiration date, and when you finish typing the expiration date it automatically goes to the name. Just a suggestion.
One issue I see is that very frequently on many pages there's not only distinction between say Mastercard or Visa, but also between different types of them. If you have Mastercard FooCompany Partner Card, then you pay less commission etc. Not sure if those partner types can be confronted with a regex (anyone from CC company there? :)
Usually those granular types are on a select list, if one chooses badly, she gots "transaction refused" without any more info (clearly not nice).
Failure on copy-paste. Fix it ! :)
And try to keep it in 1 box. Perfectly possible without hurting functionality: Just use css word-spacing. (And auto-add spaces where needed.)
My only suggestion is to use hinting once the card number input is complete to suggest the user then fill out the name and expiration date. Also I think when pressing tab to go to the next input, you should have the order be:
card number -> expiration date -> name
instead of the current order of number, name, date.
It's a really slick implementation, I love the flipping animation, I used an extremely similar animation setup (face front/face back, and a flip property) on a site I built.
It looks good, but is completely broken when using a password manager such as Dashlane. The icons indicating auto-populating fields move all over the place, etc.
This is really cute. But I hope noone ever actually uses it :) Too much guesswork and dynamism, violating important design principles IMO. But a nice demo.
One thing lacking in this design is that without extra supporting content, it doesn't tell the user upfront what kinds of credit cards are supported. So if a user prefers to use American Express, they have to find the card and start entering a few digits before being told they have to try a different card (and then they may have some apprehension about if that other type of card is supported or not.)
Great point. I'm working on coming up with something to indicate this better -- but the responsibility for that may fall to the form which contains the input, too. Not sure if it's the job of the card to indicate which types it can be.
Looks nice and I'm glad to see someone rethinking this interface.
Not something I'd use right now. It's too clunky compared to just having some textboxs on the page. I'm not a fan of skeuomorphism in general though, so I'm probably a hard sell.
Doesn't mean you shouldn't keep trying. Thanks for putting this out there. I love the article, btw.
I like what you guys are doing. I had this same idea when I started Noca (www.noca.com ) - precursor to stripe.com, braintree.com etc. The idea was to show the card logo bank from the BIN as the customer types the card number. Go for it. The payments User Experience needs improvement and glad you guys are doing it
I have all 3 cards (AmEx, Visa, Mastercard) and I can see the full form and along with the validations, given an AmEx card. Is there any particular reason why the same can't be done with the Visa and Mastercard?
Regardless, fantastic piece of code! Will definitely think of incorporating this.
I feel like if we were to implement this on our ecommerce site, we would loose millions. That said, it does have potential for displaying saved credit card information in a nice layout.
As for the input, the standard forms that we grew used to are probably here to stay for a little longer.
American Express used to do this when you mistyped passwords a few times and were locked out of your online account (they may still do it for membership rewards). It put text boxes in the areas for the CVV and the card number (with an Amex card in the background)
Really nice idea and implementation. Lovely thing. But I will never use it on real product. Makes easier to match on request (since you know what library will be required from server) and patch it on the fly. So credit card data can be stolen.
Square on iOS has had a similar input since it first came out. Its a great way to enter credit card numbers on a mobile phone where you don't have a tab key etc.
Making the whole thing look like a credit card doesn't seem necessary at all.
It's a bit gimmicky but I think the subconscious (or even conscious) association people make with the card they're holding in their hand makes it less prone to mistakes and a bit easier to use. I like it.
Small bug: Amex cards have 4 digit CCV. Although you do show "XXXX" (4 digits) before I start typing, when I get to that field I can only type "123" (3 digits).
I never thought of this before, but the first 4 digits of my credit card number revealing the issuing bank seems insecure to me. That's not a fault of the op's program, of course.
I love this idea and I will test it for sure! I will let you know when I do. For consistency I will also add a letter background to get the billing address.
Nice work mate!
What suprise me most is why the heck has it not been the DEFAULT way to do this for years!?
Disruptive, so it might frighten some users. But so awesome. .. .
You could two-way bind this with a traditional payment form and end up with something that's useful in the traditional case (feedback about whether the data you're typing is going in the right place), and may delight users who understand what they're seeing and choose to interact with it.
I can think of all sorts of ways for it to drop conversions if it fails, but it is so perfectly done that I kind of don't care.
I'm going to keep an eye on this because it has the potential to really increase the comfort people have when entering a credit card. And because it is beautiful.
It could drop conversion if it fails massively, but I'm going to be pretty aggressive about intercepting and triaging bugs. The progressive enhancement side of things protects users from really bad failures, too
I'm glad you think it's beautiful. That's all I can really ever hope to hear as a designer and engineer.
The main problem, and many designers make that mistake, is that you're modeling a physical thing inside an app for no good reason.
Other than the nice visuals it doesn't help anything.
As a designer, you should think of how to make the process of entering the CC more efficient and less distracting, so your conversions don't go down the drain.
A simple clean design with standard input fields will outdo your pretty design any day of the week.
p.s. Does your design even work if JS is disabled?
> The main problem ... is that you're modeling a physical thing inside an app for no good reason.
There is a very good reason to model the physical card. On the assumption that most folks enter their CC information by taking the card out of their wallet & copying the information from the card into the form. Then for those folks following the physical object makes it easier for the user to locate the expiry date & CCV code on the back.
I assume that folks like us that use CC auto-fill tools are a minority. And yes for us this is totally unnecessary.
PS.
Do any non-tech savvy people disable JS? And if so, why?
The number of people who don't know where the CVV code is located is dwarfed by the number of people who are roughly familiar with their card and would instead be confused by an unfamiliar-looking form.
You learn where the CVV is the first time you successfully buy something online. You learn how this specific form design works the first time you enter a website that uses it. Which do you think is going to be happening more frequently?
* Didn't realize I had the name and expiration field to enter as well. I thought it was just show casing the number entry. It wasn't until I came back here to HN to read comments that I realized that there was more to the demo.
* Tab order was wrong.
* 1Password couldn't fill in the data.
* No indicator telling me what credit cards you accept.
* CVV was hidden. There were several cases where I'd finished filling out the form, but couldn't change the CVV.
* Errors are not displayed. Try 10/10 expiration, and you are basically stuck. Without additional information, there is nothing to indicate anything is wrong.
* You can tab from the date to the hidden CVV and enter information there, but you don't see it. This is easily done because the automatic progression is inconsistent, so I've had to tab twice before getting to the year, and because it automatically moves me there, I end up on the CVV. This makes things really awkward.
* Overall, this was fairly confusing. I failed at entering the CC data the first time.
I spent 10 years handling CC processing, and basically living on the payment page. Keep the page clean, quick, and simple. You don't want to do anything confusing. Let them enter the CC data and move on. That fancy CC form will NOT sell a single thing. It will however stop people from paying. It does nothing to convert.
The more friction you place between a customer willing to pay and the actual transaction, the less chance you have of making a sale.