Frontend Guidelines Questionnaire

A one-page questionnaire to help your team establish effective frontend guidelines, so that you can write consistent & cohesive code together.

Based on Atomic Design by Brad Frost

HTML

HTML Principles

What are some general principles your team should follow when writing HTML? (for example, authoring semantic HTML5 markup, accessibility, etc.)

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?

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.)

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?

CSS Tools

Is the team using a preprocessor (such as Sass or Less)? What are the guidelines for using that preprocessor? 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?

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?

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? What third-party scripts are dependencies for your project? Do you test your JavaScript?

JavaScript Style

Spaces or Tabs? What does JS commenting look like? What patterns are you following?

Media

Media Guidelines

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

Font Implementation

How do you load custom fonts? Do you use any tools to help implement web fonts? Do you use a service to manage and serve custom fonts?

Performance

Performance Strategy

Do you use performance budgets? How are you measuring your project's speed? What techniques are you using to decrease file size? What performance-related tools are you using in your workflow?

Accessibility

Accessibility Standards

Are you following the accessibility recommendations laid out in the accessibility checklist? What accessibility-related tools are you using in your workflow?

Tooling & Process

Development Tooling

Are you using a task runner, dependency manager, scaffolding tools, or linters? What version control system are you using? How is your front-end code integrated into production?

References & Resources

Atomic Design

Foundational methodology for design systems by Brad Frost

bradfrost.com

Design Systems as Products

A Design System isn’t a Project. It’s a Product, Serving Products.

medium.com/eightshapes

GE Predix Design System

Enterprise implementation of Atomic Design concepts

medium.com/ge-design

Mustache Templates

Logic-less templates for consistent markup

mustache.github.io

Living Design Systems

In Search of a Living Design System

adactio.com

Pattern Lab

Tool for building atomic design systems

patternlab.io