Frontend Guidelines Questionnaire
A one-page questionnaire to help your team establish effective frontend guidelines, so that you can write consistent & cohesive code together.
HTML
HTML Principles
- What are some general principles your team should follow when writing HTML? (for example, authoring semantic HTML5 markup, accessibility, etc. See these resources for inspiration)
HTML Tools
- Are you using an HTML preprocessor (such as HAML, Pug, etc)?
- Are you using a templating engine (such as Mustache, Handlebars, etc)?
- Does your backend architecture influence the frontend markup in any way (for example, WordPress will add
wp-paginateto a class in your markup)? If so, can you highlight these conventions?
HTML Style
- Spaces or Tabs?
- What does HTML commenting look like?
CSS
CSS Principles
- What are some general principles your team should follow when writing CSS? (For example, modularity, avoiding long selector strings, etc. See these resources for inspiration)
CSS Methodology
- Is your team using a CSS methodology (such as SMACSS, BEM, or OOCSS)? If yes, where is the documentation for that methodology?
- Are you deviating from the methodology in any way? If so, can you highlight these conventions?
CSS Tools
- Is the team using a preprocessor (such as Sass or Less)?
- What are the guidelines for using that preprocessor (check out Sass Guidelines for inspiration)?
- Are you using a CSS base (such as Normalize or a reset)?
- Are you using any CSS postprocessors (such as Prefixfree or Autoprefixer)?
- Are there specific CSS techniques you’re utilizing (such as critical CSS)?
CSS Frameworks
- Is the team using a framework (such as Bootstrap or Foundation)? If yes, where is the documentation for that framework?
- Are you deviating from the framework in any way? If so, can you highlight these conventions?
CSS Style
- Spaces or Tabs?
- Spacing around rules?
- Grouping properties?
- What does CSS commenting look like?
JavaScript
JavaScript Principles
- What are some general principles your team should follow when writing JavaScript? (See these resources for inspiration)
JavaScript tools
- Are you using a JavaScript framework (such as jQuery, Ember, Angular, etc)?
- Where is the documentation for those frameworks?
- Are you using any polyfills or shims (such as any of these)?
- What third-party scripts are dependencies for your project (such as scripts for form validation, graphs, animation, etc)?
- Do you test your JavaScript? If so, what tools do you use (such as Jasmine, Karma, Selenium, etc)?
JavaScript Style
(See these resources for inspiration)
- Spaces or Tabs?
- What does JS commenting look like?
- What patterns are you following? (See these resources)
Media
- How are you handling icons (such as using SVG, icon fonts, etc)?
- How are you handling responsive images (such as using
srcset&<picture />)? - Are you using any tools to optimize and serve images?
Fonts
- How do you load custom fonts?
- Do you use any tools to help implement web fonts (such as Font Squirrel, etc)?
- Do you use a service to manage and serve custom fonts (such as Fonts.com, Typekit, etc)?
Performance
- Do you use performance budgets? If so, what metrics are you using to determine budgets? Where are you keeping track of performance budgets?
- How are you measuring your project’s speed (such as Pingdom Speed Test or Google PageSpeed)?
- What techniques are you using to decrease file size (such as Gzip, Image Optimization)?
- What performance-related tools are you using in your workflow? (such as WebPagetest, BigRig Speedcurve)?
Accessibility
- Are you following the accessibility recommendations laid out in this checklist?
- What accessibility-related tools are you using in your workflow?
Tooling
- Are you using a task runner (such as Grunt or Gulp)?
- Are you using a dependency manager (such as Bower or Composer)?
- Are you using any scaffolding tools (such as Yeoman)?
- Are you using any tools to reinforce frontend style (such as Editor Config or linters)?
- Are any other specific pieces of software that are needed to work on this project?
Version control
- What version control system are you using for your frontend code (such as Git or Subversion)?
- Where is your version-controlled code hosted (such as Github or Bitbucket)?
- Do you use a version control workflow (such as gitflow, centralized, feature-branch, etc)?
- Who’s responsible for managing and governing the version controlled code??
- Where are issues tracked?
Support and Optimization
It’s important to recognize the difference between “support” and “optimization”. You should do your best to support as many environments as possible while simultaneously optimizing for the environments that make the most sense for your business and users.
- What browsers are you optimizing for?
- What devices are you optimizing for?
- Are you using a graded browser support system?
- Are there specific components that require more specific grading?
Localization
- Is your website served in different languages? If so, what considerations do you need to address when localizing for other languages?
Deployment/Integration
- How is your front-end code integrated into a production environment?
Documentation
- Are you using a pattern library tool to document your front-end architecture?
- Where does your documentation live? What are the links to the documentation?
- Who’s responsible for maintaining and governing the documentation?
- What happens when the guidelines are updated?
Feel free to modify or extend (such as adding specific sections for performance, accessibility, etc) this document for your own organization’s needs. For questions, comments, additions, and corrections, please open an issue on Github and/or reach out to @brad_frost on Twitter.
Resources
A list of all the resources referenced in the book
#Chapter 1
- Scope Components, Not Pageshttp://bradfrost.com/blog/post/scope-components-not-pages/
- W3C Principles of Design - Modular Designhttp://www.w3.org/DesignIssues/Principles.html#Modular
- YUI Libraryhttp://yuilibrary.com/
- jQuery UIhttp://jqueryui.com/
- Future Friendly Manifestohttp://futurefriendlyweb.com/
- Riding the Magic Escalator of Acquired Knowledgehttp://www.uie.com/articles/magic_escalator/
- Agile Manifestohttp://www.agilemanifesto.org/
- Scrum software developmenthttp://en.wikipedia.org/wiki/Scrum_%28software_development%29
- Lean software developmenthttp://en.wikipedia.org/wiki/Lean_software_development
- Principles behind the Agile Manifestohttp://www.agilemanifesto.org/principles.html
- DIY Processhttp://cognition.happycog.com/article/diy-process
- For a Future Friendly Webhttp://bradfrost.com/blog/web/for-a-future-friendly-web/
- Adapting Ourselves to Adaptive Contenthttp://karenmcgrane.com/2012/09/04/adapting-ourselves-to-adaptive-content-video-slides-and-transcript-oh-my/
- COPE: Create Once, Publish Everywherehttp://www.programmableweb.com/news/cope-create-once-publish-everywhere/2009/10/13
- Learning JavaScript Design Patternshttp://addyosmani.com/resources/essentialjsdesignpatterns/book/
- OOCSShttp://oocss.org/
- SMACSShttps://smacss.com/
- MindBEMding – getting your head ’round BEM syntaxhttp://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax
- An extract from Designing Atoms and Elementshttp://stuffandnonsense.co.uk/blog/about/an-extract-from-designing-atoms-and-elements
- Style Tileshttp://styletil.es/
- Element Collageshttp://danielmall.com/articles/rif-element-collages/
- BDConf: Stephen Hay presents Responsive Design Workflowhttp://bradfrost.com/blog/mobile/bdconf-stephen-hay-presents-responsive-design-workflow/
- Responsive Web Designhttp://alistapart.com/article/responsive-web-design
- This Is Responsivehttp://bradfrost.github.io/this-is-responsive/index.html
- Foundation by ZURBhttp://foundation.zurb.com/
- Bootstraphttp://getbootstrap.com/
- Githubhttps://github.com/
- Responsive Deliverableshttp://daverupert.com/2013/04/responsive-deliverables/
- Style Guideshttp://bradfrost.com/blog/post/style-guides/
- Material Designhttp://www.google.com/design/spec/material-design/introduction.html
- Voice and Tone: Creating content for humanshttp://www.slideshare.net/katekiefer/kkl-c-sforum
- Voice & Tonehttp://voiceandtone.com/
- Writing for the Webhttp://www.dal.ca/webteam/web_style_guide/writing_for_the_web.html
- Front End Style Guideshttp://maban.co.uk/projects/front-end-style-guides/
- Style Guides Podcast with Federico Holgadohttp://styleguides.io/podcast/federico-holgado/
- Dennis Crowley: “The Hard Part Is Building The Machine That Builds The Product”http://techcrunch.com/2011/03/03/founder-stories-foursquare-crowley-machine/
- Style Guide Examples on Styleguides.iohttp://styleguides.io/examples.html
#Chapter 2
- Systemic Designhttp://us5.campaign-archive1.com/?u=7e093c5cf4&id=ead8a72012&e=ecb25a3f93
- Josh Duck’s Periodic Table of HTML Elementshttp://smm.zoomquiet.io/data/20110511083224/index.html
- HTML element referencehttps://developer.mozilla.org/en-US/docs/Web/HTML/Element
- Single responsibility principlehttps://en.wikipedia.org/wiki/Single_responsibility_principle
- Structure First. Content Always.http://www.markboulton.co.uk/journal/structure-first-content-always
- The Shape of Designhttp://read.shapeofdesignbook.com/chapter01.html
- GE’s Predix Design Systemhttps://medium.com/ge-design/ges-predix-design-system-8236d47b0891#.uo68yjo9g
#Chapter 3
- Pattern Labhttp://patternlab.io
- Dave Olsenhttp://dmolsen.com
- Brian Muenzenmeyerhttp://www.brianmuenzenmeyer.com/
- Pattern Lab’s documentationhttp://patternlab.io/docs/
- Don’t repeat yourselfhttps://en.wikipedia.org/wiki/Don’t_repeat_yourself
- Mustachehttps://mustache.github.io/
- Pattern Lab’s pseudo-patternshttp://patternlab.io/docs/pattern-pseudo-patterns.html
- Responsive Web Designhttp://alistapart.com/article/responsive-web-design
- Container Queries: Once More Unto the Breachhttp://alistapart.com/article/container-queries-once-more-unto-the-breach
- Ishhttp://bradfrost.com/demo/ish/
- Website style guide resources exampleshttp://styleguides.io/examples.html
- Rizzo style guidehttp://rizzo.lonelyplanet.com/
- Website style guide resources toolshttp://styleguides.io/tools.html
#Chapter 4
- Content inventoryhttps://en.wikipedia.org/wiki/Content_inventory
- Google Slides interface inventory templatehttps://docs.google.com/presentation/d/1GqFmiDV_NqKi36fXAwD3WTJL5-JV-gHL7XVD2fVeL0M/edit?usp=sharing
- The Media Object Saves Hundreds of Lines of Codehttp://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/
- Surfacing Invisible Elementshttp://bradfrost.com/blog/post/surfacing-invisible-elements/
- CSS Statshttp://cssstats.com/
- Stylify Mehttp://stylifyme.com/
- Multiscreen UX Designhttp://store.elsevier.com/Multiscreen-UX-Design/Wolfram-Nagel/isbn-9780128027295/
- The Post-PSD Erahttp://danielmall.com/articles/the-post-psd-era/
- Consensual hallucinationhttps://adactio.com/journal/4443
- Waterfall modelhttps://en.wikipedia.org/wiki/Waterfall_model
- Development Is Designhttp://bradfrost.com/blog/post/development-is-design
- Time to stop showing clients static design visualshttps://stuffandnonsense.co.uk/blog/about/time_to_stop_showing_clients_static_design_visuals
- Mobile Firsthttp://www.lukew.com/ff/entry.asp?933
- Content & Display Patternshttp://danielmall.com/articles/content-display-patterns/
- Jennifer Brookhttp://jenniferbrook.co/about
- The 20 Second “Gut” Testhttp://goodkickoffmeetings.com/2010/04/the-20-second-gut-test/
- Style Tileshttp://styletil.es/
- Style prototypehttp://sparkbox.github.io/style-prototype/
- Element Collageshttp://danielmall.com/articles/rif-element-collages/
- Piles of Ideashttp://jasonsantamaria.com/articles/piles-of-ideas
- CodePenhttp://codepen.io/
- Dan Mall on The Pastry Box Projecthttps://the-pastry-box-project.net/dan-mall/2012-september-12
#Chapter 5
- Nathan Curtis on Twitterhttps://twitter.com/nathanacurtis/status/656829204235972608
- A Design System isn’t a Project. It’s a Product, Serving Products.https://medium.com/eightshapes-llc/a-design-system-isn-t-a-project-it-s-a-product-serving-products-74dcfffef935#.4umtnfxsx
- The Salesforce Team Model for Scaling a Design Systemhttps://medium.com/salesforce-ux/the-salesforce-team-model-for-scaling-a-design-system-d89c2a2d404b
- Vanilla frameworkhttp://ubuntudesign.github.io/vanilla-framework/
- Getting Vanilla ready for v1: the roadmaphttp://design.canonical.com/2016/07/getting-vanilla-ready-for-v1-the-roadmap/
- Sass Deprecatehttps://github.com/salesforce-ux/sass-deprecate
- The Way We Buildhttp://airbnb.design/the-way-we-build/
- Rizzo style guidehttp://rizzo.lonelyplanet.com/
- Chasing the Holy Grailhttps://medium.com/@marcelosomers/chasing-the-holy-grail-bbc0b7cce365#.ay1xeej7d
- Drupalhttps://www.drupal.org
- Twighttp://twig.sensiolabs.org
- Introducing Pattern Lab Starter 8https://www.phase2technology.com/blog/introducing-pattern-lab-starter-8/
- Draft U.S. Web Digital Standardshttps://standards.usa.gov/
- Managing Style Guides at Shyphttps://medium.com/shyp-design/managing-style-guides-at-shyp-c217116c8126
- Style Guides with Jina Boltonhttp://styleguides.io/podcast/jina-bolton
- Website style guide resources podcastshttp://styleguides.io/podcast
Atomic Design
by Brad Frost
https://raw.githubusercontent.com/bradfrost/frontend-guidelines-questionnaire/refs/heads/master/README.md https://blog.logrocket.com/ux-design/cognitive-principles-for-ux-designers/ https://www.figma.com/blog/introducing-figma-mcp-server/ https://www.figma.com/blog/design-critiques-at-figma/?lang=pt-br https://www.figma.com/blog/schema-2025-design-systems-recap/?ref=dailydev https://www.supernova.io/design-system-management https://www.figma.com/blog/5-shifts-redefining-design-systems-in-the-ai-era/?ref=dailydev https://bradfrost.com/blog/post/i-have-no-idea-what-the-hell-i-am-doing/ https://uxplanet.org/interactive-intelligent-and-integrated-the-new-design-system-paradigm-5eaa217608fd