As front-end developers, our job is, essentially, to turn designs into reality via code. Understanding, and being competent in, design is an important component of that. Unfortunately, truly understanding front-end design is easier said than done. Coding and aesthetic design require some pretty different skill sets. Because of that, some front-end devs arenโt as proficient in the design aspect as they should be, and as a result, their work suffers.
My goal is to give you some easy-to-follow rules and concepts, from oneย front-end devย to another, that will help you go from start to finish of a project without messing up what your designers worked so hard on (or possibly even allowing you to design your own projects with decent results).
Of course, these rules wonโt take you from bad to magnificent in the time it takes to read one article, but if you apply them to your work, they should make a big difference.
Do Stuff In A Graphics Program
Itโs truly rare that you complete a project, and go from start to finish while maintaining every single aesthetic mutation in the design files. And, unfortunately, designers arenโt always around to run to for a quick fix.
Therefore, there always comes a point in any front-end job where you end up having to make some aesthetic-related tweaks. Whether itโs making the checkmark that shows when you check the checkbox, or making a page layout that the PSD missed, front-enders often end up handling these seemingly minor tasks. Naturally, in a perfect world this wouldnโt be the case, but I have yet to find a perfect world, hence we need to be flexible.
For these situations, you should always use a graphics program for mockups. I donโt care which tool you choose: Photoshop, Illustrator, Fireworks,ย GIMP, whatever. Just donโt just attempt to design from your code. Spend a minute launching a real graphics program and figuring out how it should look, then go to the code and make it happen. You may not be an expert designer, but youโll still end up with better results.
Match the Design, Donโt Try To Beat It
Your job is not to impress with how unique your checkmark is; your job is to match it to the rest of the design.
Those without a lot of design experience can easily be tempted to leave their mark on the project with seemingly minor details. Please leave that to the designers.
Instead of asking โDoes my checkmark look amazing?โ you should be asking, โHow well does my checkmark match the design?โ
Your focus should always be on working with the design, not on trying to outdo it.
Typography Makes All the Difference
Youโd be surprised to know how much of the end look of a design is influenced by typography. Youโd be just as surprised to learn how much time designers spend on it. This is not a โpick-it-and-goโ endeavor, some serious time and effort goes into it.
If you end up in a situation where you actually have to choose typography, you should spend a decent amount of time doing so. Go online and research goodย font pairings. Spend a few hours trying those pairings and making sure you end up with the best typography for the project.
If youโre working with a design, then make sure you follow the designerโs typography choices. This doesnโt just mean choosing the font, either. Pay attention to the line spacing, letter spacing, and so on. Donโt overlook how important it is to match the typography of the design.
Also, make sure you use the right fonts in the correct spot. If the designer uses Georgia for headers only and Open Sans for body, then you shouldnโt be using Georgia for body and Open Sans for headers. Typography can make or break aesthetics easily. Spend enough time making sure you are matching your designerโs typography. It will be time well spent.
Front-end Design Doesnโt Tolerate Tunnel Vision
Youโll probably be making small parts of the overall design.
An example Iโve been going with is making the checkmark for a design that includes custom checkboxes, without showing them checked. Itโs important to remember that the parts you are making are small parts of an overall design. Make your checks as important as a checkmark on a page should look, no more, no less. Donโt get tunnel vision about your one little part and make it something it shouldnโt be.
In fact, a good technique for doing this is to take a screenshot of the program so far, or of the design files, and design within it, in the context in which it will be used. That way, you really see how it affects other design elements on the page, and whether it fits its role properly.
Relationships And Hierarchy
Pay special attention to how the design works withย hierarchy. How close are the titles to the body of text? How far are they from the text above them? How does the designer seem to be indicating which elements/titles/text bodies are related and which arenโt? Theyโll commonly do these things by boxing related content together, using varying white space to indicate relationships, using similar or contrasting colors to indicate related/unrelated content, and so on.
Itโs your job to make sure that you recognize the ways in which the design accomplishes relationships and hierarchy and to make sure those concepts are reflected in the end product (including for content that was not specifically designed, and/or dynamic content). This is another area (like typography) where it pays to take extra time to make sure youโre doing a good job.
Be Picky About Whitespace And Alignment
This is a great tip for improving your designs and/or better implementing the designs of others: If the design seems to be using spacings of 20 units, 40 units, etc., then make sure every spacing is a multiple of 20 units.
This is a really drop-dead simple way for someone with no eye for aesthetics to make a significant improvement quickly. Make sure your elements are aligned down to the pixel, and that the spacing around every edge of every element is as uniform as possible. Where you canโt do that (such as places where you need extra space to indicate hierarchy), make them exact multiples of the spacing youโre using elsewhere, for example two times your default to create some separation, three times to create more, and so on.
A lot of devs achieve this for specific content in the design files, but when it comes to adding/editing content, or implementing dynamic content, the spacing can go all over the place because they didnโt truly understand what they were implementing.
Do your best to understand how the designer used whitespace and follow those concepts in your build. And yes, spend time on this. Once you think your work is done, go back and measure the spacing to ensure you haveย aligned and uniformly spacedย everything as much as possible, then try out the code with lots of varying content to make sureย itโs flexible.
If You Donโt Know What Youโre Doing, Do Less
Iโm not one of those people that thinks every project should use minimalist design, but if youโre not confident in your design chops and you need to add something, then less is more.
The designer took care of the main stuff; you only need to do minor fillers. If youโre not very good at design, then a good bet is to do as minimal amount as you can to make that element work. That way, youโre injecting less of your own design into the designerโs work, and affecting it as little as possible.
Let the designerโs work take center stage and let your work take the back seat.
Time Makes Fools Of Us All
Iโll tell you a secret about designers: 90 percent (or more) of what they actually put down on paper, or a Photoshop canvas, isnโt that great.
They discard far more than you ever see. It often takes many revisions and fiddling with a design to get it to the point where theyโd even let the guy in the next cubicle see their work, never mind the actual client. You usually donโt go from a blank canvas to good design in one step; thereโs a bunch iterations in between. People rarely make good work until they understand that and allow for it in their process.
So how do you implement this? One important method is taking time between versions. Work until it looks like something you like then put it away. Give it a few hours (leaving it overnight is even better), then open it up again and take a look. Youโll be amazed at how different it looks with fresh eyes. Youโll quickly pick out areas for improvement. Theyโll be so clear youโll wonder how you possibly missed them in the first place.
In fact, one of the better designers Iโve known takes this idea a lot further. He would start by making three different designs. Then, heโd wait at least 24 hours, look at them again and throw them all out and start from scratch on a fourth. Next, heโd allow a day between each iteration as it got better and better. Only when he opened it up one morning, and was totally happy, or at least, as close as a designer ever gets to totally happy, would he send it to the client. This was the process he used for every design he made, and it served him very well.
I donโt expect you to take itย thatย far, but it does highlight how helpful time without โeyes on the designโ can be. Itโs an integral part of the design process and can make improvements in leaps and bounds.
Pixels Matter
You should do everything in your power to match the original design in your finished program, down to the last pixel.
In some areas you canโt be perfect. For example, your control over letter-spacing might not be quite as precise as that of the designerโs, and a CSS shadow might not exactly match a Photoshop one, but you should still attempt to get as close as possible. For many aspects of the design, you really can get pixel-perfect precision. Doing so can make a big difference in the end result. A pixel off here and there doesnโt seem like much, but it adds up and affects the overall aesthetic much more than youโd think. So keep an eye on it.
There are a number of [tools] that help you compare original designs to end results, or you can just take screenshots and paste them into the design file to compare each element as closely as possible. Just lay the screenshot over the design and make it semi-transparent so that you can see the differences. Then you know how much adjustment you have to make to get it spot on.
Get Feedback
Itโs hard to gain an โeye for design.โ Itโs even harder to do it on your own. You should seek theย input of othersto really see how you can make improvements.
I am not suggesting you grab your neighbor and ask for advice, I mean you should consult real designers and let them critique your work and offer suggestions.
It takes some bravery to do so, but in the end it is one of the most powerful things you can do to improve the project in the short-term, and to improve your skill level in the long run.
Even if all you have to fine tune is a simple checkmark, there are plenty of people willing to help you. Whether itโs a designer friend, or an online forum, seek out qualified people and get their feedback.
It may sound time consuming, and may cause friction between you and your designers, but in the big scheme of things, itโs worth it. Good front-end developers rely on valuable input from designers, even when itโs not something they like to hear.
Therefore, itโs vital to build and maintain a constructive relationship with your designers. Youโre all in the same boat, so to get the best possible results you have to collaborate and communicate every step of the way. The investment in building bonds with your designers is well worth it, as it will help everyone do a better job and execute everything on time.
Conclusion
To summarize, here is a short list of design tips for front-end developers:
- Design in a graphics program. Donโt design from code, not even the small stuff.
- Match the design. Be conscious of the original design and donโt try to improve it, just match it.
- Typography is huge. The time you spend making sure itโs right should reflect its importance.
- Avoid tunnel vision. Make sure your additions stand out only as much as they should. Theyโre not more important just because you designed them.
- Relationships and hierarchy: Understandย howย they work in the design so that you can implement them properly.
- Whitespace and alignment are important. Make them accurate to the pixel and make them evenly throughout anything you add.
- If youโre not confident in your skills, then make your additions as minimally styled as you can.
- Take time between revisions. Come back later to see your design work with fresh eyes.
- Pixel-perfect implementation is important wherever possible.
- Be brave. Seek out experienced designers to critique your work.
Not every front-end developer is going to be a fantastic designer, but every front-end dev should at least beย competentย in terms of design.
You need to understand enough about design concepts to identify whatโs going on, and to properly apply the design to your end product. Sometimes, you can get away with blind copying if youโve got a thorough designer (and if youโre detail oriented enough to truly copy it pixel for pixel).
However, in order to make large projects shine across many variations of content, you need some understanding of whatโs going through the designerโs head. You donโt merely need to see what the design looks like, you need to knowย why it looks the way it does, and that way you can be mindful of technical and aesthetic limitations that will affect your job.
So, even as a front-end developer, part of your regular self-improvement should always include learning more about design.
Author: Bryan Grezeszak
Via:ย Toptal
This was sent in to TechBooky via Toptal
Toptal wasย created by engineers.ย We are entrepreneurs, all passionate about working with top tech talent and exciting companies from all over the world. T=Read more about them on theirย website
Discover more from TechBooky
Subscribe to get the latest posts sent to your email.