├── .github
├── CONTRIBUTING.md
├── ISSUE_TEMPLATE.md
├── PULL_REQUEST_TEMPLATE.md
└── stale.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
└── images
├── analysis.png
├── color-swatches.jpg
├── colors.png
├── delivery-files.png
├── fonts.png
├── forms.png
├── front-end-design-checklist-banner.jpg
├── grid-system.png
├── images.png
├── links.png
├── phases.png
├── responsive.png
└── styleguide.png
/.github/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contribute
2 |
3 | ## Introduction
4 |
5 | First, thank you for considering contributing to front-end-checklist! It's people like you that make the open source community such a great community! 😊
6 |
7 | We welcome any type of contribution, not only code. You can help with
8 | - **QA**: file bug reports, the more details you can give the better (e.g. screenshots with the console open)
9 | - **Marketing**: writing blog posts, howto's, printing stickers, ...
10 | - **Community**: presenting the project at meetups, organizing a dedicated meetup for the local community, ...
11 | - **Code**: take a look at the [open issues](issues). Even if you can't write code, commenting on them, showing that you care about a given issue matters. It helps us triage them.
12 |
13 | ## Your First Contribution
14 |
15 | Working on your first Pull Request? You can learn how from this *free* series, [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github).
16 |
17 | ## Submitting code
18 |
19 | Any code change should be submitted as a pull request. The description should explain what the code does and give steps to execute it. The pull request should also contain tests.
20 |
21 | ## Code review process
22 |
23 | The bigger the pull request, the longer it will take to review and merge. Try to break down large pull requests in smaller chunks that are easier to review and merge.
24 | It is also always helpful to have some context for your pull request. What was the purpose? Why does it matter to you?
25 |
26 | ## Questions
27 |
28 | If you have any questions, create an [issue](issue) (protip: do a quick search first to see if someone else didn't ask the same question before!).
29 | You can also reach us at thedaviddias@gmail.com.
30 |
31 |
32 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/.github/ISSUE_TEMPLATE.md
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | **Fixes**: #
2 |
3 | 🚨 Please review the [guidelines for contributing](CONTRIBUTING.md) and our [code of conduct](../CODE_OF_CONDUCT.md) to this repository. 🚨
4 | **Please complete these steps and check these boxes (by putting an x inside the brackets) before filing your PR:**
5 |
6 | - [ ] Check the commit's or even all commits' message styles matches our requested structure.
7 | - [ ] Check your code additions will fail neither code linting checks nor unit test.
8 |
9 | #### Short description of what this resolves:
10 |
11 |
12 | #### Proposed changes:
13 |
14 | -
15 | -
16 | -
17 |
18 | 👍 Thank you!
19 |
--------------------------------------------------------------------------------
/.github/stale.yml:
--------------------------------------------------------------------------------
1 | daysUntilStale: 60
2 | daysUntilClose: 14
3 | exemptLabels:
4 | - keep-unstale
5 | - security
6 | staleLabel: bot:stale
7 | markComment: >
8 | This issue has been automatically marked as stale because it has not had
9 | recent activity. It will be closed if no further activity occurs. Thank you
10 | for your contributions.
11 | closeComment: false
12 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6 |
7 | ## Our Standards
8 |
9 | Examples of behavior that contributes to creating a positive environment include:
10 |
11 | * Using welcoming and inclusive language
12 | * Being respectful of differing viewpoints and experiences
13 | * Gracefully accepting constructive criticism
14 | * Focusing on what is best for the community
15 | * Showing empathy towards other community members
16 |
17 | Examples of unacceptable behavior by participants include:
18 |
19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances
20 | * Trolling, insulting/derogatory comments, and personal or political attacks
21 | * Public or private harassment
22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission
23 | * Other conduct which could reasonably be considered inappropriate in a professional setting
24 |
25 | ## Our Responsibilities
26 |
27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28 |
29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30 |
31 | ## Scope
32 |
33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34 |
35 | ## Enforcement
36 |
37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at thedaviddias@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38 |
39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40 |
41 | ## Attribution
42 |
43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44 |
45 | [homepage]: http://contributor-covenant.org
46 | [version]: http://contributor-covenant.org/version/1/4/
47 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | CC0 1.0 Universal
2 |
3 | Statement of Purpose
4 |
5 | The laws of most jurisdictions throughout the world automatically confer
6 | exclusive Copyright and Related Rights (defined below) upon the creator and
7 | subsequent owner(s) (each and all, an "owner") of an original work of
8 | authorship and/or a database (each, a "Work").
9 |
10 | Certain owners wish to permanently relinquish those rights to a Work for the
11 | purpose of contributing to a commons of creative, cultural and scientific
12 | works ("Commons") that the public can reliably and without fear of later
13 | claims of infringement build upon, modify, incorporate in other works, reuse
14 | and redistribute as freely as possible in any form whatsoever and for any
15 | purposes, including without limitation commercial purposes. These owners may
16 | contribute to the Commons to promote the ideal of a free culture and the
17 | further production of creative, cultural and scientific works, or to gain
18 | reputation or greater distribution for their Work in part through the use and
19 | efforts of others.
20 |
21 | For these and/or other purposes and motivations, and without any expectation
22 | of additional consideration or compensation, the person associating CC0 with a
23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
25 | and publicly distribute the Work under its terms, with knowledge of his or her
26 | Copyright and Related Rights in the Work and the meaning and intended legal
27 | effect of CC0 on those rights.
28 |
29 | 1. Copyright and Related Rights. A Work made available under CC0 may be
30 | protected by copyright and related or neighboring rights ("Copyright and
31 | Related Rights"). Copyright and Related Rights include, but are not limited
32 | to, the following:
33 |
34 | i. the right to reproduce, adapt, distribute, perform, display, communicate,
35 | and translate a Work;
36 |
37 | ii. moral rights retained by the original author(s) and/or performer(s);
38 |
39 | iii. publicity and privacy rights pertaining to a person's image or likeness
40 | depicted in a Work;
41 |
42 | iv. rights protecting against unfair competition in regards to a Work,
43 | subject to the limitations in paragraph 4(a), below;
44 |
45 | v. rights protecting the extraction, dissemination, use and reuse of data in
46 | a Work;
47 |
48 | vi. database rights (such as those arising under Directive 96/9/EC of the
49 | European Parliament and of the Council of 11 March 1996 on the legal
50 | protection of databases, and under any national implementation thereof,
51 | including any amended or successor version of such directive); and
52 |
53 | vii. other similar, equivalent or corresponding rights throughout the world
54 | based on applicable law or treaty, and any national implementations thereof.
55 |
56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of,
57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
59 | and Related Rights and associated claims and causes of action, whether now
60 | known or unknown (including existing as well as future claims and causes of
61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum
62 | duration provided by applicable law or treaty (including future time
63 | extensions), (iii) in any current or future medium and for any number of
64 | copies, and (iv) for any purpose whatsoever, including without limitation
65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
66 | the Waiver for the benefit of each member of the public at large and to the
67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver
68 | shall not be subject to revocation, rescission, cancellation, termination, or
69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work
70 | by the public as contemplated by Affirmer's express Statement of Purpose.
71 |
72 | 3. Public License Fallback. Should any part of the Waiver for any reason be
73 | judged legally invalid or ineffective under applicable law, then the Waiver
74 | shall be preserved to the maximum extent permitted taking into account
75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
76 | is so judged Affirmer hereby grants to each affected person a royalty-free,
77 | non transferable, non sublicensable, non exclusive, irrevocable and
78 | unconditional license to exercise Affirmer's Copyright and Related Rights in
79 | the Work (i) in all territories worldwide, (ii) for the maximum duration
80 | provided by applicable law or treaty (including future time extensions), (iii)
81 | in any current or future medium and for any number of copies, and (iv) for any
82 | purpose whatsoever, including without limitation commercial, advertising or
83 | promotional purposes (the "License"). The License shall be deemed effective as
84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the
85 | License for any reason be judged legally invalid or ineffective under
86 | applicable law, such partial invalidity or ineffectiveness shall not
87 | invalidate the remainder of the License, and in such case Affirmer hereby
88 | affirms that he or she will not (i) exercise any of his or her remaining
89 | Copyright and Related Rights in the Work or (ii) assert any associated claims
90 | and causes of action with respect to the Work, in either case contrary to
91 | Affirmer's express Statement of Purpose.
92 |
93 | 4. Limitations and Disclaimers.
94 |
95 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
96 | surrendered, licensed or otherwise affected by this document.
97 |
98 | b. Affirmer offers the Work as-is and makes no representations or warranties
99 | of any kind concerning the Work, express, implied, statutory or otherwise,
100 | including without limitation warranties of title, merchantability, fitness
101 | for a particular purpose, non infringement, or the absence of latent or
102 | other defects, accuracy, or the present or absence of errors, whether or not
103 | discoverable, all to the greatest extent permissible under applicable law.
104 |
105 | c. Affirmer disclaims responsibility for clearing rights of other persons
106 | that may apply to the Work or any use thereof, including without limitation
107 | any person's Copyright and Related Rights in the Work. Further, Affirmer
108 | disclaims responsibility for obtaining any necessary consents, permissions
109 | or other rights required for any use of the Work.
110 |
111 | d. Affirmer understands and acknowledges that Creative Commons is not a
112 | party to this document and has no duty or obligation with respect to this
113 | CC0 or use of the Work.
114 |
115 | For more information, please see
116 |
117 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
Front-End Design Checklist
2 |
3 |
4 | The **Design Checklist for Front-End Developers** is an exhaustive list of elements which Web Designers and Front-End Developers need to take into consideration to facilitate their collaboration. The following elements are a mix between known practices and new elements based on a long experience analysing web designs.
5 |
6 |
7 | [](http://makeapullrequest.com) [](https://gitter.im/Front-End-Checklist/Front-End-Design-Checklist) [](https://creativecommons.org/publicdomain/zero/1.0/)
8 |
9 | ## Table of Contents
10 | * **[1. Design requirements](#1---design-requirements)**
11 | * [1.1 Grid system](#11---grid-system)
12 | * [1.2 Colors](#12---colors)
13 | * [1.3 Fonts and texts](#13---fonts-and-texts)
14 | * [1.4 Links and navigation](#14---links-and-navigation)
15 | * [1.5 Images / Icons](#15---images--icons)
16 | * [1.6 Forms and buttons](#16---forms-and-buttons)
17 | * [1.7 Responsive Web Design](#17---responsive-web-design)
18 | * [1.8 Style Guide and component approach](#18---style-guide-and-component-approach)
19 | * [1.9 Delivery files](#19---delivery-files)
20 | * **[2. Analysis and pre-work phases](#2---analysis-and-pre-work-phases)**
21 | * [2.1 Paper analysis](#21---paper-analysis)
22 | * [2.2 Pre-development phase](#22---pre-development-phase)
23 | * **[3. Validation](#3---validation)**
24 | * **[4. Development phase](#4---development-phase)**
25 | * **[5. Before production](#5---before-production)**
26 |
27 | ---
28 |
29 | > [!TIP]
30 | > ⭐️ I've just launched a new project for [UX developers about patterns](https://git.new/uxpatterns), feel free to check it out! ⭐️
31 |
32 | In case you are looking for a list of all elements you need to have/to test before launching your site/HTML page to production, take a look on the → [Front-End Checklist](https://github.com/thedaviddias/Front-End-Checklist).
33 |
34 |
35 | ## How to use the Design Checklist?
36 |
37 | When comes the moment where developers discover new web designs, before converting them to code, some important elements may be missing. The Front-End Design Checklist is a tool for Front-End developers and Web Designers which aim to help both to work in a seamlessly way.
38 |
39 | You can share that checklist to Web Designers to ensure time will be saved at the delivery time or you can use it to review all elements delivered by the creative team and ensure everything is correct before digging into the code integration.
40 |
41 |
42 | ## Why you need to use the Design Checklist?
43 |
44 | * Ensure all points are taken into consideration by the Creative Team
45 | * Having a document where Web Designers and Developers can rely to ensure a better communication and coherence in the way they interact.
46 | * Because it's easy to forget some important elements when you are pushed by short timelines
47 | * Avoid discovering issues after the creative team is already working on another project.
48 | * To show the complementary work between a Web Designer and a Front-End Developer
49 |
50 | ---
51 |
52 | ## 1. - Design requirements
53 |
54 | Designing a website or a webapp requires following some rules and taking into consideration that the project is not only a graphic project but a web project too. The next sections are crucial for any web project.
55 |
56 | ### 1.1 - Grid system
57 |
58 | 
59 |
60 | * [ ] A **grid** is explicitly provided in the design, and the details of the grid are present in the technical specification (width, gutters, number of columns…). The Web Designer can keep the grid in a transparent layer and use it on all his project.
61 | > ℹ️ [Guide Guide][6] is a plugin for Photoshop that can help you easily build your grid.
62 |
63 | > ℹ️ On Sketch, you can use the integrated “[Make Grid Tool][7]” to design your desired grid.
64 |
65 | * [ ] **Be familiar with the grid system** you’ll use on your project. Most of the time, some options (like alignment, offsetting, nesting…) are ignored by the developer and tend to be replaced by manual padding or margin unnecessarily.
66 | * [ ] Before working on each components of your website, you can **build every templates** used in the creatives only with the grid classes. Building the structure before everything else, will facilitate your work afterwards.
67 |
68 | ```html
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 | ```
83 |
84 | ⚠️ *If you want to ensure that the grid and the width of the devices are respected, you may want to generate yourself a PSD template and that you will send it to the Web Designer.*
85 |
86 | __Additional Resources:__
87 |
88 | * 🛠 [Bootstrap Grid System][8] (v4)
89 | * 🛠 [Flexbox Grid][9]
90 | * 📖 [Don't Overthink It Grids | CSS-Tricks][10]
91 |
92 | **[⬆ back to top](#table-of-contents)**
93 |
94 | ### 1.2 - Colors
95 |
96 | 
97 |
98 | * [ ] **All colors used in the creatives are named** ($gray-light, $gray-dark, $green) or accordingly with their use ($body-background, $body-copy, $text-paragraph…). They can be exported in an [ACO file][11] (if use Photoshop or on a symbol page for Sketch) and shared with the developers.
99 |
100 | 
101 |
102 | * [ ] The different **color state** of some elements (like buttons, links, inputs...) are defined and worked in the context of a light or dark background and with a light or a dark text.
103 |
104 | * [ ] All or the most important/used **colors are accessible** in the design to allow a fluid navigation on the website/webapp.
105 |
106 | __Additional Resources:__
107 | * 🛠 [WCAG - Contrast Checker](https://contrastchecker.com/)
108 | * 🛠 [Color Safe - accessible web color combinations](http://colorsafe.co/)
109 | * 🛠 [Coolors.co - The super fast color schemes generator](https://coolors.co/)
110 |
111 | **[⬆ back to top](#table-of-contents)**
112 |
113 | ### 1.3 - Fonts and texts
114 |
115 | 
116 |
117 | Fonts are an essential part of every design, they shouldn’t be chosen without discernment. Choosing the wrong font for a project could have financial and legal impacts.
118 |
119 | It is recommended to ask your client to buy these fonts to avoid possible future issues and take into consideration the condition of use. Some webfonts are limited in terms of pageviews and can’t be hosted ([Understanding Webfont Licensing Structures](https://aeolidia.com/understanding-webfont-licensing-structures/)).
120 |
121 | * [ ] The fonts for desktop (TTF or OTF in general) and the webfonts, in **WOFF, WOFF2 and TTF format** were provided (in a Zip file or given access to the website where they were bought).
122 | > ℹ️ TTF format for desktop is not the same than TTF for Web.
123 |
124 | __Resources:__
125 | * 📖 [Using @font-face | CSS-Tricks](https://css-tricks.com/snippets/css/using-font-face/)
126 | * [ ] [Fallback font](https://en.wikipedia.org/wiki/Fallback_font) stacks were specified in a document (ideally the Style Guide) to the Front-End Developer.
127 |
128 | __Resources:__
129 | * 📖 [CSS Basics: Fallback Font Stacks for More Robust Web Typography | CSS-Tricks](https://css-tricks.com/css-basics-fallback-font-stacks-robust-web-typography/)
130 | * [Create Your Own @font-face Kits » Font Squirrel](https://www.fontsquirrel.com/tools/webfont-generator)
131 |
132 | * [ ] The **total weight** of the all webfonts don’t exceed 1-2 Mb (all variants included: italic, bold etc).
133 |
134 | * [ ] As far as possible, **all texts are provided in the proper language** instead of dummy texts in English (Lorem Ipsum and affiliates).
135 |
136 | > ℹ️ In case of a multilingual website, always ask yourself how the design can react if the text is longer than it was previously define. Remember that Web Designers use to create perfect designs and don’t always think about possible issues or situation with too much text.
137 |
138 | __Additional Resources:__
139 | * 📖 [Web Font Optimization | Web Fundamentals | Google Developers](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/webfont-optimization)
140 | * [`font-display` for the Masses | CSS-Tricks](https://css-tricks.com/font-display-masses/)
141 | * [Rhythm in Typography | improve legibility, readability, and visual hierarchy](https://betterwebtype.com/rhythm-in-web-typography)
142 |
143 | **[⬆ back to top](#table-of-contents)**
144 |
145 | ### 1.4 - Links and navigation
146 |
147 | 
148 |
149 | * [ ] All **links have a default, hover, focus, active and visited state** clearly defined (the Style Guide is the best document to specified these).
150 | * [ ] Alternate views of all navigation states (hover, active/current page).
151 |
152 | ### 1.5 - Images / Icons
153 |
154 | 
155 |
156 | * [ ] A **favicon image** with at least 512px X 512px is provided in PNG format. The generation of all the others Favicons can be easily done with online tools.
157 |
158 | __Resources:__
159 | * [Favicon Generator for all platforms: iOS, Android, PC/Mac...](https://realfavicongenerator.net/)
160 |
161 | * [ ] All icons are provided in **SVG format**, each in the same square dimension, in black and in a separated folder.
162 |
163 | __Resources:__
164 | * 🛠 [SVGOMG - SVGO's Missing GUI](https://jakearchibald.github.io/svgomg/)
165 |
166 | * [ ] The **name of each icon** starts with `icon-` and is entirely in lowercase (without any space and using dashes to separate each word).
167 |
168 | __Additional Resources:__
169 | * 📖 [Essential Image Optimization](https://images.guide/)
170 |
171 | **[⬆ back to top](#table-of-contents)**
172 |
173 | ### 1.6 Forms and buttons
174 |
175 | 
176 |
177 | * [ ] All forms possess a title that can be used as a legend
178 | * [ ] An example of the **different states of all input fields** were provided (at least focus and inactive/disabled state).
179 | * [ ] **All error messages** were provided, the text (eventually in a separated document) the position and the color are clearly identifiable in the creatives and consistent. Some messages should be different according to the error.
180 | __Resources:__
181 | * 📖 [Forms Need Validation – UX Collective](https://uxdesign.cc/forms-need-validation-2ecbccbacea1)
182 | * [ ] **Indicators of required/optional** fields are provided.
183 | * [ ] The **primary and secondary buttons** are clearly identifiable and are used following common practices.
184 | __Resources:__
185 | * 📖 [Primary & Secondary Action Buttons – UX Planet](https://uxplanet.org/primary-secondary-action-buttons-c16df9b36150)
186 | * [ ] An example of the **different states of a button** were provided (Normal, hover, focused, pressed and inactive state).
187 | * [ ] Buttons with built-in **loading indicators** are provided and can be applied to any button.
188 |
189 | __Additional Resources:__
190 |
191 | * 📖 [Design Better Forms – UX Collective](https://uxdesign.cc/design-better-forms-96fadca0f49c)
192 | * 📖 [Design Better Input Fields – UX Collective](https://uxdesign.cc/design-better-input-fields-3d02985a8e24)
193 | * 📖 [Designing Perfect Text Field: Clarity, Accessibility and User Effort](https://uxplanet.org/designing-perfect-text-field-clarity-accessibility-and-user-effort-d03c1e26004b)
194 | * 📖 [Button UX Design: Best Practices, Types and States – UX Planet](https://uxplanet.org/button-ux-design-best-practices-types-and-states-647cf4ae0fc6)
195 | * 📖 [How To Design Better Buttons — Smashing Magazine](https://www.smashingmagazine.com/2016/11/a-quick-guide-for-designing-better-buttons/)
196 | * 📖 [Buttons in Design Systems – EightShapes – Medium](https://medium.com/eightshapes-llc/buttons-in-design-systems-eac3acf7e23)
197 |
198 | **[⬆ back to top](#table-of-contents)**
199 |
200 | ### 1.7 - Responsive Web Design
201 |
202 | 
203 |
204 | * [ ] The **mobile version** of the design is provided before or at the same time of the desktop version.
205 |
206 | > If the “**mobile first**” thinking was not followed by the creative team, some irregularities and inconsistencies may appear between the mobile and the desktop version. Check and flag these issues before starting the development of the project.
207 | * [ ] The **tablet version** of the design in certain cases should be provide too.
208 |
209 | ⚠️ *The **pixel perfect** notion is today in a certain way deprecated. Today, it’s impossible to have a design that worked the same facing the multitude of the screen sizes.*
210 |
211 | __Additional Resources:__
212 |
213 | * 📖 [Official Google Webmaster Central Blog: Mobile-first Indexing](https://webmasters.googleblog.com/2016/11/mobile-first-indexing.html)
214 |
215 | **[⬆ back to top](#table-of-contents)**
216 |
217 | ### 1.8 - Style Guide and component approach
218 |
219 | 
220 |
221 | * [ ] All components designed on each page were created with the **component based approach** (Atomic Design). If not, issues can occur in terms of performance, maintainability of the project...
222 |
223 | __Resources:__
224 | * 📖 [Atomic design][16]
225 | * 📖 [6 Reasons for Component-Based UI Development](https://www.tandemseven.com/technology/6-reasons-component-based-ui-development/)
226 |
227 | * [ ] A **Style Guide** needs to be provided listing all elements, components, styles, dimensions. Some boilerplates like [UX Power Tools](https://www.uxpower.tools/) can help saving time and keep consistency in the designs.
228 |
229 | ⚠️ *In the case where the Style Guide is missing, it's a good practice to build yourself a [living Style Guide](https://github.com/davidhund/styleguide-generators) to facilitate your work. Some CMS like Drupal, for example, have plugins that allow to develop a living Style Guide using [Pattern Lab](https://drupal-pattern-lab.github.io/).*
230 |
231 | __Additional Resources:__
232 |
233 | * 📖 [Style Guides – Design + Sketch – Medium](https://medium.com/sketch-app-sources/tagged/style-guides)
234 | * 📖 [The CodePen Design Patterns and Style Guide](https://codepen.io/guide)
235 | * 📖 [Lonely Planet Travel Guides and Travel Information](http://rizzo.lonelyplanet.com/styleguide/design-elements/colours)
236 | * 📖 [Styleguide](https://www.yelp.com/styleguide)
237 |
238 | #### In the case of an existing project:
239 |
240 | Sometimes, the creative team needs to add new pages or modules in an existing project. They should have or create a list of all existing elements and try to use what is already there. Having a Style Guide already created can save hours and ensure consistency of the project.
241 |
242 | **[⬆ back to top](#table-of-contents)**
243 |
244 | ### 1.9 - Delivery files
245 |
246 | 
247 |
248 | * [ ] For all websites, the web designer needs to provide at least **2 PSD** (mobile, desktop and eventually tablet) or at least **1 Sketch file** which needs to be delivered with the dimension below (if you have Photoshop CC 2015 and above, I recommend using artboards).
249 |
250 | > ℹ️ Some web designers could eventually create multiple PSD corresponding to each components used and import them in a single PSD as “smart layer”. In that case, you’ll have multiple PSD linked to one or two files. In the case of Sketch, since the **libraries** exist since version 47, it is possible to link multiples files with symbols ……..
251 |
252 | * [ ] The **creative files are cleaned** before delivering to developers (empty and unnecessary layer needs to be removed to avoid large files).
253 |
254 | * [ ] The **404 error** (and eventually the page 500 error) page were designed.
255 | * [ ] All **popins, popups and alert boxes** were designed and can be enable throw layers of compositions.
256 |
257 | __Additional Resources:__
258 |
259 | * 📖 [Photoshop Etiquette: A Guide to Discernible Web Design](http://photoshopetiquette.com/)
260 |
261 | #### Specific rules for PSD file:
262 |
263 | * [ ] **Layer compositions** are used to show each different pages, if multiple views are provided within the same PSD. It’s an easy way to avoid confusions and check that all elements are correctly organized.
264 |
265 | **[⬆ back to top](#table-of-contents)**
266 |
267 | ## 2. - Analysis and pre-work phases
268 |
269 | 
270 |
271 | Before starting the analysis and the pre-work phases and after receiving the creative files, you need to check some important elements:
272 |
273 | * __*Which version of Photoshop, Sketch is used?*__
274 | Some features are specific to some versions of Photoshop or Sketch. It is important to flag any issue regarding this as soon as possible.
275 | * __*Is the width of each PSD or artboard correct?*__
276 | In case some space is added on each side of the design, check the exact width of the website.
277 | * __*Are the creatives using too much “box-shadow”, “linear or radial gradient”…?*__
278 | Don’t forget the .... Effect which can have impacts on the browser painting performance.
279 | * __*Is a sitemap / breadcrumb provided to understand the architecture of all pages and their dependencies?*__
280 | * __*Does the website needs to have retina images?*__
281 |
282 | **[⬆ back to top](#table-of-contents)**
283 |
284 | ### 2.1 - Paper analysis
285 |
286 | 
287 |
288 | It is recommended **printing** some (or all) of the pages you have on an A3 format (or A4 if you don’t have this format). Because of the height of the page. you’ll probably need to print some designs on multiple pages.
289 |
290 | I can’t imagine a better way to start than analysing creatives on a paper with a pencil (or different colourful pencils chosen to highlight different type of information).
291 |
292 | 1. Define the **structure of the pages**, the headers, the sections, the articles, main, footer outlining these on at least one printed page.
293 |
294 | 2. Find all the **headings** that structured a page, ensure the `H1` is not on the logo and that the logical order is followed. Most of the time, the H1 for the homepage will be hidden with CSS but needs to keep its legitimate meaning. That analysis should be done with the help of a SEO specialist in case you have one in your team.
295 |
296 | 3. Try to find and regroup **similar components** giving them an individual name regarding their functionality and not just their context. For example, naming a tab system “
297 |
298 | 4. Most of the creative elements can be **done using CSS**. Today, it is not recommended to create any layout element using images. Any simple graphical element like buttons or borders should be done in CSS to avoid performance or scalability issues.
299 |
300 | 5. Find some **possible lack of coherence**, in case a Styleguide was not provided by the creative team, it’s your responsibility to ensure that every graphic element belong to a possible category (Buttons, Typography, Sliders…). It’ll help you to create your own CSS / Sass architecture or to identify which component you’ll need from an identified CSS Framework.
301 |
302 | ⚠️ *After the paper analysis phase, you can invite the creative team to use a tool like [InVision](https://www.invisionapp.com/), to facilitate the communication and exchange between the creative team and the developers. The possibility to comment directly on pages can be a time-saver and allow to keep a history of modifications and decisions.*
303 |
304 | ### 2.2 - Pre-development phase
305 |
306 | * [ ] According to the specifications, **plugins needed were defined** in an early stage. Having a pre-list of possible plugins before starting the development can help the developer to stay focus and not spend too much time in doing research during the development phase. Obviously, some plugins may not perfectly fit and will be changed accordingly.
307 |
308 | __Additional Resources:__
309 |
310 | * 🛠 [Awesome JS][22]
311 | * 🛠 [BestOfJS][23]
312 |
313 |
314 | **[⬆ back to top](#table-of-contents)**
315 |
316 | ## 3. - Validation
317 |
318 | The validation phase is when everything seems to be ready to be integrated. The client, in general, validate the creatives without waiting for any approval from the technical team. As exposed in the Design Checklist, it is essential that developers ensure the quality of the delivery before starting to code.
319 |
320 | ## 4. - Development phase
321 |
322 | * [ ] All **medias can be cut and saved** before starting the development phase. That can help you to avoid back and forth between your creative software and your code editor.
323 |
324 | * [ ] **The image folder has a clear architecture** where you arranged the layout's images. It is important to stay consistent between projects in general. Defining a structure for that folder and a naming convention can be helpful.
325 |
326 |
327 | You can find an example of a possible structure with prefixes used to recognise each image appurtenance.
328 |
329 | ```bash
330 | .
331 | └── images
332 | ├── background
333 | ├── banners
334 | ├── icons
335 | └── layout
336 | ```
337 |
338 | * [ ] **A naming convention is used** like adding prefixes to differentiate types of images, all images used for background can be prefixed by `bg-`, icons by `icon-`, hero banners by `hero-` or `banner-` and so on.
339 |
340 | ## 5. - Before production
341 |
342 | Before launching your website, be sure to review all your pages using the [Front-End Checklist](https://frontendchecklist.io)!
343 |
344 | **[⬆ back to top](#table-of-contents)**
345 |
346 | ---
347 |
348 | ## Translations
349 |
350 | The Front-End Checklist is also available in other languages. Thanks for all translators and their awesome work!
351 |
352 | * 🇨🇳 Chinese: [JohnsenZhou/Front-End-Design-Checklist](https://github.com/JohnsenZhou/Front-End-Design-Checklist)
353 | * 🇪🇸 Spanish: [eoasakura/Front-End-Design-Checklist](https://github.com/eoasakura/Front-End-Design-Checklist)
354 |
355 | ## Support
356 |
357 | If you have any question or suggestion, don't hesitate to use Gitter or Twitter:
358 |
359 | * [Give an UP on Product Hunt](https://www.producthunt.com/posts/front-end-design-checklist)
360 | * [Chat on Gitter](https://gitter.im/Front-End-Checklist][28]/Front-End-Design-Checklist?utm_source=share-link&utm_medium=link&utm_campaign=share-link)
361 | * [Facebook](https://www.facebook.com/frontenddesignchecklist/)
362 | * [Twitter](https://twitter.com/thedaviddias)
363 |
364 | ## Author
365 |
366 | **[David Dias](https://github.com/thedaviddias)**
367 |
368 | ## Contributors
369 |
370 | This project exists thanks to all the people who [contribute!](.github/CONTRIBUTING.md)
371 |
372 | ## License
373 |
374 | [](https://creativecommons.org/publicdomain/zero/1.0/)
375 |
376 | All icons are provided by [Icons8](https://icons8.com/)
377 |
378 | **[⬆ back to top](#table-of-contents)**
379 |
380 |
381 | [6]: https://guideguide.me/
382 | [7]: https://www.sketchapp.com/docs/canvas/rulers-guides-grids/
383 | [8]: https://getbootstrap.com/docs/4.0/layout/grid/
384 | [9]: http://flexboxgrid.com/
385 | [10]: https://css-tricks.com/dont-overthink-it-grids/
386 | [11]: https://www.lifewire.com/aco-file-2619477
387 | [16]: http://bradfrost.com/blog/post/atomic-web-design/
388 | [22]: https://js.libhunt.com/
389 | [23]: https://bestof.js.org/
390 | [28]: https://gitter.im/Front-End-Checklist/Front-End-Design-Checklist
391 |
--------------------------------------------------------------------------------
/images/analysis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/analysis.png
--------------------------------------------------------------------------------
/images/color-swatches.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/color-swatches.jpg
--------------------------------------------------------------------------------
/images/colors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/colors.png
--------------------------------------------------------------------------------
/images/delivery-files.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/delivery-files.png
--------------------------------------------------------------------------------
/images/fonts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/fonts.png
--------------------------------------------------------------------------------
/images/forms.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/forms.png
--------------------------------------------------------------------------------
/images/front-end-design-checklist-banner.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/front-end-design-checklist-banner.jpg
--------------------------------------------------------------------------------
/images/grid-system.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/grid-system.png
--------------------------------------------------------------------------------
/images/images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/images.png
--------------------------------------------------------------------------------
/images/links.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/links.png
--------------------------------------------------------------------------------
/images/phases.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/phases.png
--------------------------------------------------------------------------------
/images/responsive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/responsive.png
--------------------------------------------------------------------------------
/images/styleguide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thedaviddias/Front-End-Design-Checklist/7731755ab31808503c8d05756de0a9a6bee690c7/images/styleguide.png
--------------------------------------------------------------------------------