{"id":1760,"date":"2015-01-31T16:40:18","date_gmt":"2015-01-31T16:40:18","guid":{"rendered":"http:\/\/blogs.kent.ac.uk\/webdev\/?p=1760"},"modified":"2016-06-07T16:35:58","modified_gmt":"2016-06-07T15:35:58","slug":"building-a-pattern-library-for-a-large-website","status":"publish","type":"post","link":"https:\/\/blogs.kent.ac.uk\/webdev\/2015\/01\/31\/building-a-pattern-library-for-a-large-website\/","title":{"rendered":"Building a pattern library for a large website"},"content":{"rendered":"<p><strong>My flat has a slightly weird mix of design styles. 19th century, 1930s, 1950s, 1970s, modern. It\u2019s homely and interesting and I like it. I\u2019m afforded the luxury of idiosyncrasy because not many people need to use it.<\/strong><\/p>\n<p>Unlike my flat, big websites are showcases. They provide or sell services to lots of visitors. Maybe many millions a year.<\/p>\n<p>People visiting a website tend to be\u00a0impatient and task-driven. They might only be peripherally interested in what you have to say before they get bored. Quite likely you&#8217;re skimming past this paragraph already&#8230;<\/p>\n<p>Websites need to be clear, consistent and easy to use.<\/p>\n<h2>Consistency<\/h2>\n<p>Consistency is a very powerful design principle.<\/p>\n<p>At an emotional level consistency creates a strong sense of visual identity. At a practical level it makes things easier for people to use. People respond to this positively.<\/p>\n<p>A pattern library is a great tool to help with design consistency because it presents and defines all the building blocks that go to make up a website.<\/p>\n<p>It answers questions like: What fonts and colours are acceptable? What should lists look like? How should forms look? What are the buttons\u00a0like?<\/p>\n<p>A\u00a0pattern library is a guide to how an organisation\u2019s website should realise its <a href=\"http:\/\/en.wikipedia.org\/wiki\/Corporate_DNA\">brand DNA<\/a> in a consistent way.<\/p>\n<h2>Flexibility<\/h2>\n<p>There will always be exceptions. We only know what an exception is once we\u2019ve got a set of definitions of how things should be.<\/p>\n<p>A pattern library is that set of definitions, so it\u00a0allows a website to grow and evolve consistently without it looking shambolic or confusing to its users.<\/p>\n<h2>Development<\/h2>\n<p>Pattern libraries can also be a tool for web developers. Many libraries will include some explanatory notes and HTML snippet examples.<\/p>\n<p>A good example of this kind of library is <a href=\"http:\/\/getbootstrap.com\/\">Bootstrap\u2019s documentation<\/a>. The developer knows exactly what things should look like, and how to use all the various building blocks.<\/p>\n<p>Other great examples of comprehensive pattern libraries are <a href=\"http:\/\/ux.mailchimp.com\/patterns\">Mailchimp\u2019s Pattern Library<\/a> and the BBC\u2019s <a href=\"http:\/\/www.bbc.co.uk\/gel\">GEL<\/a>.<\/p>\n<h2>Atomic design<\/h2>\n<figure id=\"attachment_1763\" aria-describedby=\"caption-attachment-1763\" style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/patternlab.io\"><img loading=\"lazy\" class=\"wp-image-1763 size-medium\" src=\"http:\/\/blogs.kent.ac.uk\/webdev\/files\/2015\/01\/Screen-Shot-2015-01-30-at-17.14.07-300x282.png\" alt=\"patternlab.io\" width=\"300\" height=\"282\" srcset=\"https:\/\/blogs.kent.ac.uk\/webdev\/files\/2015\/01\/Screen-Shot-2015-01-30-at-17.14.07-300x282.png 300w, https:\/\/blogs.kent.ac.uk\/webdev\/files\/2015\/01\/Screen-Shot-2015-01-30-at-17.14.07.png 642w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-1763\" class=\"wp-caption-text\">an atom. patternlab.io<\/figcaption><\/figure>\n<p>A solid way to build a pattern library is with <a href=\"http:\/\/bradfrost.com\/blog\/post\/atomic-web-design\/\">atomic design patterns<\/a>.<\/p>\n<p>The basic concept is that any good website will be made up of a few base components which can then be recombined and reused in clusters to form larger components. Atomic design breaks a website down into atoms, molecules, organisms and templates.<\/p>\n<p>Atoms are things like fonts, colours, buttons and links.<\/p>\n<p>These can combine into molecules such as a search box with a button.<\/p>\n<p>Molecules can combine to form an organism such as a navigation bar with a search box and some links.<\/p>\n<p>Finally groups of organisms combine to make a template: a blueprint for a final page layout.<\/p>\n<p>Brad Frost and Dave Olsen have made a <a href=\"http:\/\/patternlab.io\">pattern lab<\/a> which turns the idea of atomic design into a practical framework.<\/p>\n<h2>Kent SDS Replacement Project pattern library<\/h2>\n<p>Work is currently under way for the <a href=\"http:\/\/www.kent.ac.uk\/is\/projects\/sds-replacement\/index.html\">SDS Replacement Project<\/a>. To help make the user experience clear &#8211; and to help developers &#8211; there is now a <a href=\"http:\/\/unikent.github.io\/sits-web\/\">pattern library<\/a> for the project.<\/p>\n<p>The pattern library uses Bootstrap as a base with Kent University styles added. It&#8217;s still very much evolving as the project progresses, but it already has quite a few design elements added.<\/p>\n<p><a href=\"http:\/\/blogs.kent.ac.uk\/webdev\/files\/2015\/01\/Screen-Shot-2015-01-30-at-16.57.17.png\"><img loading=\"lazy\" class=\"alignleft wp-image-1762 size-large\" src=\"http:\/\/blogs.kent.ac.uk\/webdev\/files\/2015\/01\/Screen-Shot-2015-01-30-at-16.57.17-1024x451.png\" alt=\"SDS Replacement Project - pattern library\" width=\"660\" height=\"291\" srcset=\"https:\/\/blogs.kent.ac.uk\/webdev\/files\/2015\/01\/Screen-Shot-2015-01-30-at-16.57.17-1024x451.png 1024w, https:\/\/blogs.kent.ac.uk\/webdev\/files\/2015\/01\/Screen-Shot-2015-01-30-at-16.57.17-300x132.png 300w\" sizes=\"(max-width: 660px) 100vw, 660px\" \/><\/a><\/p>\n<h2>Summary<\/h2>\n<p><strong>Consistency<\/strong> is a particularly important design principle. It lends\u00a0emotional weight, and makes things easier to use.<\/p>\n<p><strong>Pattern libraries are essential<\/strong> for large websites because they help make websites consistent\u00a0by defining its\u00a0building blocks.<\/p>\n<p><strong>Atomic design<\/strong> is a way of describing the building blocks and the ways they can be combined.<\/p>\n<p>Pattern libraries should also be <strong>practical guides for developers<\/strong>.<\/p>\n<p>Once we have a definition of the patterns we have a <strong>consistent way of extending<\/strong> them to deal with new requirements.<\/p>\n<p><a href=\"http:\/\/getbootstrap.com\/\">Bootstrap\u2019s documentation<\/a><\/p>\n<p><a href=\"http:\/\/ux.mailchimp.com\/patterns\">Mailchimp\u2019s Pattern Library<\/a><\/p>\n<p><a href=\"http:\/\/www.bbc.co.uk\/gel\">BBC GEL<\/a>.<\/p>\n<p>And feel free to take a look at the\u00a0<a href=\"http:\/\/unikent.github.io\/sits-web\/\">SDS Replacement Project pattern library<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My flat has a slightly weird mix of design styles. 19th century, 1930s, 1950s, 1970s, modern. It\u2019s homely and interesting and I like it. I\u2019m &hellip; <a href=\"https:\/\/blogs.kent.ac.uk\/webdev\/2015\/01\/31\/building-a-pattern-library-for-a-large-website\/\">Read&nbsp;more<\/a><\/p>\n","protected":false},"author":2,"featured_media":1764,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[690,79443,79395,79421],"tags":[79440,79441,521,79463,23153],"_links":{"self":[{"href":"https:\/\/blogs.kent.ac.uk\/webdev\/wp-json\/wp\/v2\/posts\/1760"}],"collection":[{"href":"https:\/\/blogs.kent.ac.uk\/webdev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.kent.ac.uk\/webdev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.kent.ac.uk\/webdev\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.kent.ac.uk\/webdev\/wp-json\/wp\/v2\/comments?post=1760"}],"version-history":[{"count":13,"href":"https:\/\/blogs.kent.ac.uk\/webdev\/wp-json\/wp\/v2\/posts\/1760\/revisions"}],"predecessor-version":[{"id":2092,"href":"https:\/\/blogs.kent.ac.uk\/webdev\/wp-json\/wp\/v2\/posts\/1760\/revisions\/2092"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.kent.ac.uk\/webdev\/wp-json\/wp\/v2\/media\/1764"}],"wp:attachment":[{"href":"https:\/\/blogs.kent.ac.uk\/webdev\/wp-json\/wp\/v2\/media?parent=1760"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.kent.ac.uk\/webdev\/wp-json\/wp\/v2\/categories?post=1760"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.kent.ac.uk\/webdev\/wp-json\/wp\/v2\/tags?post=1760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}