In any discussion of design systems there will be a certain amount of insider jargon. The term “design system” is itself a bit of insider jargon. Here we’ll try to set definitions of common terms so we can all refer to things by the same names.
A set of guidelines for creating media in a particular style. This includes brand elements, color palette, typography, and copywriting.
A style guide can also refer to a set of standards for formatting code.
In software engineering, a design pattern is a general reusable solution to a commonly occurring problem. In the context of front-end web development, a design pattern can take the form of a reusable bundle of markup and CSS that establishes a template for structuring and styling commonly occuring types of content.
For example, a website might have lots of forms. There are many ways to structure a form in HTML and style it with CSS, but within a complex system it can be beneficial to establish a design pattern for forms to ensure consistency and relieve developers of solving the same problem over and over for every new form they create.
As coined by Brad Frost, ”atomic design is a methodology for creating design systems.” It consists of breaking a web page down into its smallest component parts, which can then be combined and assembled in different configurations, adding more parts in increasing complexity to arrive at the complete page.
Using chemistry as a metaphor, Brad names these collections of parts “atoms, molecules, organisms, templates, and pages.”
Atoms are the smallest part of a web page, usually corresponding to a single HTML element. A single link, a single heading, a single button, and so on.
A small assemblage of atoms that, combined, form a basic functional piece of an interface. This might be a heading with a paragraph, a heading with an image and a link, a link with an icon, a form field with a label, a form field with a label and a button, etc. Single elements by themselves rarely do much, but a few elements combined can serve a more meaningful purpose.
A complete and distinct chunk of the interface that should be able to stand on its own and function independently in any template. These are the reusable building blocks of a web page. Examples:
- A page intro with headline, subheading, hero image, and call to action link.
- A signup form with headline, several form fields with labels, and a submit button.
- A brand masthead with logo, tagline, and navigation.
- A footer with navigation links, copyright info, and a language selector.
An arrangement of components (organisms, molecules, and atoms) that form a complete web page. The template is the skeleton supporting the final, polished page, so it doesn't necesarily include final content or visual design. Different pages may share a common template with the same basic structure but with different modules, content, and presentation.
A web page is a page on the web, even though ”page” is mostly a useful metaphor. Where a “template” is the modular structure under a page, when we refer to the page as a whole we’re talking about the complete experience: structure, content, design, imagery, and behavior. A page is built upon a template composed of organisms made up of molecules assembled from atoms.