reustyle 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (358) hide show
  1. checksums.yaml +7 -0
  2. data/.drone.yml +17 -0
  3. data/.gitignore +25 -0
  4. data/.nvmrc +1 -0
  5. data/.rbenv-gemsets +1 -0
  6. data/.ruby-version +1 -0
  7. data/CONTRIBUTING.md +68 -0
  8. data/Gemfile +4 -0
  9. data/Gruntfile.js +234 -0
  10. data/LICENSE.txt +13 -0
  11. data/README.md +196 -0
  12. data/Rakefile +6 -0
  13. data/bower.json +54 -0
  14. data/config/autoprefixer.yml +6 -0
  15. data/config/scss-lint.yml +55 -0
  16. data/dist/icons.svg +1 -0
  17. data/dist/ustyle-content.css +1 -0
  18. data/dist/ustyle-latest.css +1 -0
  19. data/dist/ustyle.js +567 -0
  20. data/dist/ustyle.json +1 -0
  21. data/dist/ustyle.min.js +1 -0
  22. data/grunt/modules/dss-helper.js +115 -0
  23. data/grunt/modules/file.js +24 -0
  24. data/grunt/modules/html-parser.js +22 -0
  25. data/grunt/modules/templates.js +57 -0
  26. data/grunt/tasks/browser-sync.js +23 -0
  27. data/grunt/tasks/builder.js +67 -0
  28. data/grunt/tasks/styleguide.js +299 -0
  29. data/index.js +37 -0
  30. data/lib/ustyle/deploy.rb +41 -0
  31. data/lib/ustyle/engine.rb +32 -0
  32. data/lib/ustyle/hash.rb +44 -0
  33. data/lib/ustyle/helpers/icon_helper.rb +15 -0
  34. data/lib/ustyle/icons.rb +13 -0
  35. data/lib/ustyle/middleware/icon_middleware.rb +27 -0
  36. data/lib/ustyle/sass_functions.rb +65 -0
  37. data/lib/ustyle/sinatra.rb +34 -0
  38. data/lib/ustyle/sprockets.rb +6 -0
  39. data/lib/ustyle/utils.rb +42 -0
  40. data/lib/ustyle/version.rb +4 -0
  41. data/lib/ustyle.rb +58 -0
  42. data/package-lock.json +9303 -0
  43. data/package.json +89 -0
  44. data/styleguide/CNAME +1 -0
  45. data/styleguide/assets/images/CTAs.png +0 -0
  46. data/styleguide/assets/images/badge-label-usp.png +0 -0
  47. data/styleguide/assets/images/bower-logo.png +0 -0
  48. data/styleguide/assets/images/caveat.png +0 -0
  49. data/styleguide/assets/images/cloudfront-logo.png +0 -0
  50. data/styleguide/assets/images/design-conventions.png +0 -0
  51. data/styleguide/assets/images/error-texts.png +0 -0
  52. data/styleguide/assets/images/external-requirements.png +0 -0
  53. data/styleguide/assets/images/favicon/android-chrome-192x192.png +0 -0
  54. data/styleguide/assets/images/favicon/android-chrome-512x512.png +0 -0
  55. data/styleguide/assets/images/favicon/apple-touch-icon-114x114.png +0 -0
  56. data/styleguide/assets/images/favicon/apple-touch-icon-120x120.png +0 -0
  57. data/styleguide/assets/images/favicon/apple-touch-icon-144x144.png +0 -0
  58. data/styleguide/assets/images/favicon/apple-touch-icon-152x152.png +0 -0
  59. data/styleguide/assets/images/favicon/apple-touch-icon-180x180.png +0 -0
  60. data/styleguide/assets/images/favicon/apple-touch-icon-57x57.png +0 -0
  61. data/styleguide/assets/images/favicon/apple-touch-icon-60x60.png +0 -0
  62. data/styleguide/assets/images/favicon/apple-touch-icon-72x72.png +0 -0
  63. data/styleguide/assets/images/favicon/apple-touch-icon-76x76.png +0 -0
  64. data/styleguide/assets/images/favicon/apple-touch-icon.png +0 -0
  65. data/styleguide/assets/images/favicon/browserconfig.xml +9 -0
  66. data/styleguide/assets/images/favicon/favicon-16x16.png +0 -0
  67. data/styleguide/assets/images/favicon/favicon-32x32.png +0 -0
  68. data/styleguide/assets/images/favicon/favicon.ico +0 -0
  69. data/styleguide/assets/images/favicon/manifest.json +18 -0
  70. data/styleguide/assets/images/favicon/mstile-144x144.png +0 -0
  71. data/styleguide/assets/images/favicon/mstile-150x150.png +0 -0
  72. data/styleguide/assets/images/favicon/mstile-310x150.png +0 -0
  73. data/styleguide/assets/images/favicon/mstile-310x310.png +0 -0
  74. data/styleguide/assets/images/favicon/mstile-70x70.png +0 -0
  75. data/styleguide/assets/images/favicon/safari-pinned-tab.svg +46 -0
  76. data/styleguide/assets/images/icons.svg +1 -0
  77. data/styleguide/assets/images/infographic-01.png +0 -0
  78. data/styleguide/assets/images/infographic-02.png +0 -0
  79. data/styleguide/assets/images/npm-logo.png +0 -0
  80. data/styleguide/assets/images/placeholder-text.png +0 -0
  81. data/styleguide/assets/images/ruby-logo.png +0 -0
  82. data/styleguide/assets/images/site-consistency01.png +0 -0
  83. data/styleguide/assets/images/site-consistency02.png +0 -0
  84. data/styleguide/assets/images/site-consistency03.png +0 -0
  85. data/styleguide/assets/images/styleguide-examples/accurate-housing.jpg +0 -0
  86. data/styleguide/assets/images/styleguide-examples/altered.jpg +0 -0
  87. data/styleguide/assets/images/styleguide-examples/bad-subject.jpg +0 -0
  88. data/styleguide/assets/images/styleguide-examples/centered.jpg +0 -0
  89. data/styleguide/assets/images/styleguide-examples/cliche.jpg +0 -0
  90. data/styleguide/assets/images/styleguide-examples/cold.jpg +0 -0
  91. data/styleguide/assets/images/styleguide-examples/good-subject.jpg +0 -0
  92. data/styleguide/assets/images/styleguide-examples/illustrations_1.png +0 -0
  93. data/styleguide/assets/images/styleguide-examples/illustrations_2.png +0 -0
  94. data/styleguide/assets/images/styleguide-examples/illustrations_3.png +0 -0
  95. data/styleguide/assets/images/styleguide-examples/illustrations_4.png +0 -0
  96. data/styleguide/assets/images/styleguide-examples/illustrations_5.png +0 -0
  97. data/styleguide/assets/images/styleguide-examples/illustrations_6.png +0 -0
  98. data/styleguide/assets/images/styleguide-examples/innaccurate-housing.jpg +0 -0
  99. data/styleguide/assets/images/styleguide-examples/natural-1.jpg +0 -0
  100. data/styleguide/assets/images/styleguide-examples/natural-2.jpg +0 -0
  101. data/styleguide/assets/images/styleguide-examples/natural-3.jpg +0 -0
  102. data/styleguide/assets/images/styleguide-examples/not-centered.jpg +0 -0
  103. data/styleguide/assets/images/styleguide-examples/realistic.jpg +0 -0
  104. data/styleguide/assets/images/styleguide-examples/unaltered.jpg +0 -0
  105. data/styleguide/assets/images/styleguide-examples/unnatural-1.jpg +0 -0
  106. data/styleguide/assets/images/styleguide-examples/unnatural-2.jpg +0 -0
  107. data/styleguide/assets/images/styleguide-examples/unnatural-3.jpg +0 -0
  108. data/styleguide/assets/images/styleguide-examples/warm.jpg +0 -0
  109. data/styleguide/assets/images/tone-framework.png +0 -0
  110. data/styleguide/assets/images/tone.png +0 -0
  111. data/styleguide/assets/images/tooltip.png +0 -0
  112. data/styleguide/assets/images/tsandcs.png +0 -0
  113. data/styleguide/assets/images/ustyle.svg +73 -0
  114. data/styleguide/assets/images/ux-conventions-consistency.png +0 -0
  115. data/styleguide/assets/images/ux-conventions-error.png +0 -0
  116. data/styleguide/assets/images/ux-conventions-errors.png +0 -0
  117. data/styleguide/assets/images/ux-conventions-flexibility.png +0 -0
  118. data/styleguide/assets/images/ux-conventions-freedom.png +0 -0
  119. data/styleguide/assets/images/ux-conventions-minimalist.png +0 -0
  120. data/styleguide/assets/images/ux-conventions-real-world.png +0 -0
  121. data/styleguide/assets/images/ux-conventions-recognition.png +0 -0
  122. data/styleguide/assets/images/ux-conventions-visibility.png +0 -0
  123. data/styleguide/assets/javascripts/app.js +115 -0
  124. data/styleguide/assets/javascripts/modules/stats.js +50 -0
  125. data/styleguide/assets/javascripts/vendor/highlight.js +1 -0
  126. data/styleguide/assets/javascripts/vendor/svg4everybody.js +1 -0
  127. data/styleguide/assets/sass/main.scss +42 -0
  128. data/styleguide/assets/sass/modules/_code.scss +8 -0
  129. data/styleguide/assets/sass/modules/_colours.scss +26 -0
  130. data/styleguide/assets/sass/modules/_copyright.scss +4 -0
  131. data/styleguide/assets/sass/modules/_grid.scss +12 -0
  132. data/styleguide/assets/sass/modules/_home.scss +5 -0
  133. data/styleguide/assets/sass/modules/_images.scss +24 -0
  134. data/styleguide/assets/sass/modules/_links.scss +3 -0
  135. data/styleguide/assets/sass/modules/_logo.scss +182 -0
  136. data/styleguide/assets/sass/modules/_made-at.scss +6 -0
  137. data/styleguide/assets/sass/modules/_markdown.scss +7 -0
  138. data/styleguide/assets/sass/modules/_nav-mobile.scss +72 -0
  139. data/styleguide/assets/sass/modules/_nav.scss +32 -0
  140. data/styleguide/assets/sass/modules/_sidebar.scss +94 -0
  141. data/styleguide/assets/sass/modules/_states.scss +4 -0
  142. data/styleguide/assets/sass/modules/_styleguide.scss +138 -0
  143. data/styleguide/assets/sass/modules/_table.scss +3 -0
  144. data/styleguide/assets/sass/modules/_tooltip.scss +9 -0
  145. data/styleguide/assets/sass/modules/_typography.scss +14 -0
  146. data/styleguide/assets/sass/modules/_version.scss +11 -0
  147. data/styleguide/assets/sass/structure/_base.scss +18 -0
  148. data/styleguide/assets/sass/structure/_header.scss +12 -0
  149. data/styleguide/assets/sass/vendor/_highlight.scss +139 -0
  150. data/styleguide/assets/sass/vendor/_pure-table.scss +75 -0
  151. data/styleguide/content/brand/index.md +47 -0
  152. data/styleguide/content/brand/logo.tpl +279 -0
  153. data/styleguide/content/design/accessibility-testing.md +82 -0
  154. data/styleguide/content/design/index.tpl +367 -0
  155. data/styleguide/content/design/typography.md +68 -0
  156. data/styleguide/content/design/validating-designs.tpl +304 -0
  157. data/styleguide/content/index.tpl +51 -0
  158. data/styleguide/content/language/grammar.md +220 -0
  159. data/styleguide/content/language/microcopy.md +170 -0
  160. data/styleguide/content/language/tone.md +135 -0
  161. data/styleguide/content/pattern-library/grid.tpl +64 -0
  162. data/styleguide/content/pattern-library/index.tpl +88 -0
  163. data/styleguide/partials/_footer.tpl +8 -0
  164. data/styleguide/partials/_head.tpl +26 -0
  165. data/styleguide/partials/_header.tpl +37 -0
  166. data/styleguide/partials/_sidebar.tpl +27 -0
  167. data/styleguide/partials/colour.tpl +24 -0
  168. data/styleguide/partials/icons.tpl +28 -0
  169. data/styleguide/partials/style_block.tpl +44 -0
  170. data/styleguide/templates/simple.tpl +25 -0
  171. data/styleguide/templates/stats.tpl +50 -0
  172. data/styleguide/templates/styleguide.tpl +36 -0
  173. data/tasks/publish.rake +67 -0
  174. data/ustyle.gemspec +32 -0
  175. data/vendor/assets/images/forms/checkbox-rebrand.svg +1 -0
  176. data/vendor/assets/images/forms/checkbox.svg +1 -0
  177. data/vendor/assets/images/icons/alarm.svg +1 -0
  178. data/vendor/assets/images/icons/android.svg +1 -0
  179. data/vendor/assets/images/icons/arrow-circle.svg +1 -0
  180. data/vendor/assets/images/icons/arrow-down.svg +1 -0
  181. data/vendor/assets/images/icons/arrow-up.svg +1 -0
  182. data/vendor/assets/images/icons/book.svg +1 -0
  183. data/vendor/assets/images/icons/bookmark.svg +1 -0
  184. data/vendor/assets/images/icons/breadcrumb.svg +1 -0
  185. data/vendor/assets/images/icons/calculator.svg +1 -0
  186. data/vendor/assets/images/icons/calendar.svg +1 -0
  187. data/vendor/assets/images/icons/car.svg +1 -0
  188. data/vendor/assets/images/icons/checkbox-tick.svg +1 -0
  189. data/vendor/assets/images/icons/chevron-left.svg +1 -0
  190. data/vendor/assets/images/icons/chevron-right.svg +1 -0
  191. data/vendor/assets/images/icons/clock.svg +1 -0
  192. data/vendor/assets/images/icons/close.svg +1 -0
  193. data/vendor/assets/images/icons/cog.svg +1 -0
  194. data/vendor/assets/images/icons/controller.svg +1 -0
  195. data/vendor/assets/images/icons/credit-card.svg +1 -0
  196. data/vendor/assets/images/icons/cross.svg +1 -0
  197. data/vendor/assets/images/icons/dashcam.svg +1 -0
  198. data/vendor/assets/images/icons/dual-fuel.svg +1 -0
  199. data/vendor/assets/images/icons/electric-light.svg +1 -0
  200. data/vendor/assets/images/icons/envelope.svg +1 -0
  201. data/vendor/assets/images/icons/exit-noexit.svg +1 -0
  202. data/vendor/assets/images/icons/facebook-brand.svg +1 -0
  203. data/vendor/assets/images/icons/facebook.svg +1 -0
  204. data/vendor/assets/images/icons/filter.svg +1 -0
  205. data/vendor/assets/images/icons/fixed-variable.svg +1 -0
  206. data/vendor/assets/images/icons/gas.svg +1 -0
  207. data/vendor/assets/images/icons/gauge.svg +1 -0
  208. data/vendor/assets/images/icons/github.svg +1 -0
  209. data/vendor/assets/images/icons/google-brand.svg +1 -0
  210. data/vendor/assets/images/icons/google.svg +1 -0
  211. data/vendor/assets/images/icons/graph-up.svg +1 -0
  212. data/vendor/assets/images/icons/home.svg +1 -0
  213. data/vendor/assets/images/icons/hot.svg +1 -0
  214. data/vendor/assets/images/icons/info.svg +1 -0
  215. data/vendor/assets/images/icons/kettle.svg +1 -0
  216. data/vendor/assets/images/icons/key.svg +1 -0
  217. data/vendor/assets/images/icons/lock.svg +1 -0
  218. data/vendor/assets/images/icons/magnify-in.svg +1 -0
  219. data/vendor/assets/images/icons/magnify.svg +1 -0
  220. data/vendor/assets/images/icons/menu.svg +1 -0
  221. data/vendor/assets/images/icons/message.svg +1 -0
  222. data/vendor/assets/images/icons/mobile.svg +1 -0
  223. data/vendor/assets/images/icons/monthly-dd.svg +1 -0
  224. data/vendor/assets/images/icons/network.svg +1 -0
  225. data/vendor/assets/images/icons/no-exit.svg +1 -0
  226. data/vendor/assets/images/icons/pdf.svg +1 -0
  227. data/vendor/assets/images/icons/pencil.svg +1 -0
  228. data/vendor/assets/images/icons/person-add.svg +1 -0
  229. data/vendor/assets/images/icons/person.svg +1 -0
  230. data/vendor/assets/images/icons/phone.svg +1 -0
  231. data/vendor/assets/images/icons/piggy-bank.svg +1 -0
  232. data/vendor/assets/images/icons/pin.svg +1 -0
  233. data/vendor/assets/images/icons/play.svg +1 -0
  234. data/vendor/assets/images/icons/pound-circle.svg +1 -0
  235. data/vendor/assets/images/icons/pound-note.svg +1 -0
  236. data/vendor/assets/images/icons/present.svg +1 -0
  237. data/vendor/assets/images/icons/print.svg +1 -0
  238. data/vendor/assets/images/icons/quarterly-dd.svg +1 -0
  239. data/vendor/assets/images/icons/question-circle.svg +1 -0
  240. data/vendor/assets/images/icons/quote.svg +1 -0
  241. data/vendor/assets/images/icons/recycle.svg +1 -0
  242. data/vendor/assets/images/icons/remove.svg +1 -0
  243. data/vendor/assets/images/icons/renewable.svg +1 -0
  244. data/vendor/assets/images/icons/results.svg +1 -0
  245. data/vendor/assets/images/icons/save.svg +1 -0
  246. data/vendor/assets/images/icons/share.svg +1 -0
  247. data/vendor/assets/images/icons/shield.svg +1 -0
  248. data/vendor/assets/images/icons/sim.svg +1 -0
  249. data/vendor/assets/images/icons/smiley.svg +1 -0
  250. data/vendor/assets/images/icons/sort.svg +1 -0
  251. data/vendor/assets/images/icons/speech-circle.svg +1 -0
  252. data/vendor/assets/images/icons/speech.svg +1 -0
  253. data/vendor/assets/images/icons/spinner-rebrand.svg +1 -0
  254. data/vendor/assets/images/icons/spinner.svg +1 -0
  255. data/vendor/assets/images/icons/star-half.svg +1 -0
  256. data/vendor/assets/images/icons/star.svg +1 -0
  257. data/vendor/assets/images/icons/starline-half.svg +1 -0
  258. data/vendor/assets/images/icons/starline.svg +1 -0
  259. data/vendor/assets/images/icons/talk.svg +1 -0
  260. data/vendor/assets/images/icons/tick-circle.svg +1 -0
  261. data/vendor/assets/images/icons/tick.svg +1 -0
  262. data/vendor/assets/images/icons/tv.svg +1 -0
  263. data/vendor/assets/images/icons/twitter-brand.svg +1 -0
  264. data/vendor/assets/images/icons/twitter.svg +1 -0
  265. data/vendor/assets/images/icons/ustyle.svg +1 -0
  266. data/vendor/assets/images/icons/uswitch.svg +1 -0
  267. data/vendor/assets/images/icons/variable.svg +1 -0
  268. data/vendor/assets/images/icons/warning-circle.svg +1 -0
  269. data/vendor/assets/images/icons/warning.svg +1 -0
  270. data/vendor/assets/images/icons/wifi.svg +1 -0
  271. data/vendor/assets/images/icons/wiki.svg +1 -0
  272. data/vendor/assets/images/icons/xml.svg +1 -0
  273. data/vendor/assets/images/icons.svg +1 -0
  274. data/vendor/assets/javascripts/ustyle/backdrop.js +56 -0
  275. data/vendor/assets/javascripts/ustyle/classtoggler.js +76 -0
  276. data/vendor/assets/javascripts/ustyle/overlay.js +152 -0
  277. data/vendor/assets/javascripts/ustyle/tabs.js +166 -0
  278. data/vendor/assets/javascripts/ustyle/utils.js +113 -0
  279. data/vendor/assets/javascripts/ustyle.js +4 -0
  280. data/vendor/assets/stylesheets/rebrand-content.scss +1 -0
  281. data/vendor/assets/stylesheets/rebrand.scss +1 -0
  282. data/vendor/assets/stylesheets/ustyle/_all.scss +55 -0
  283. data/vendor/assets/stylesheets/ustyle/_content.scss +5 -0
  284. data/vendor/assets/stylesheets/ustyle/_global.scss +20 -0
  285. data/vendor/assets/stylesheets/ustyle/articles/_base.scss +100 -0
  286. data/vendor/assets/stylesheets/ustyle/articles/_guide.scss +57 -0
  287. data/vendor/assets/stylesheets/ustyle/articles/_more.scss +31 -0
  288. data/vendor/assets/stylesheets/ustyle/articles/_news.scss +213 -0
  289. data/vendor/assets/stylesheets/ustyle/articles/_related.scss +76 -0
  290. data/vendor/assets/stylesheets/ustyle/basics/_extends.scss +73 -0
  291. data/vendor/assets/stylesheets/ustyle/basics/_fonts.scss +27 -0
  292. data/vendor/assets/stylesheets/ustyle/basics/_functions.scss +78 -0
  293. data/vendor/assets/stylesheets/ustyle/basics/_grid.scss +86 -0
  294. data/vendor/assets/stylesheets/ustyle/basics/_typography.scss +123 -0
  295. data/vendor/assets/stylesheets/ustyle/basics/_variables.scss +166 -0
  296. data/vendor/assets/stylesheets/ustyle/basics/variables/_colors.scss +94 -0
  297. data/vendor/assets/stylesheets/ustyle/basics/variables/_forms.scss +98 -0
  298. data/vendor/assets/stylesheets/ustyle/basics/variables/_icons.scss +43 -0
  299. data/vendor/assets/stylesheets/ustyle/components/_backdrop.scss +23 -0
  300. data/vendor/assets/stylesheets/ustyle/components/_breadcrumbs.scss +66 -0
  301. data/vendor/assets/stylesheets/ustyle/components/_button.scss +187 -0
  302. data/vendor/assets/stylesheets/ustyle/components/_calculator.scss +41 -0
  303. data/vendor/assets/stylesheets/ustyle/components/_comp-table-row.scss +341 -0
  304. data/vendor/assets/stylesheets/ustyle/components/_compliance-banner.scss +38 -0
  305. data/vendor/assets/stylesheets/ustyle/components/_content-group.scss +33 -0
  306. data/vendor/assets/stylesheets/ustyle/components/_cta.scss +66 -0
  307. data/vendor/assets/stylesheets/ustyle/components/_grid-classes.scss +52 -0
  308. data/vendor/assets/stylesheets/ustyle/components/_hero.scss +115 -0
  309. data/vendor/assets/stylesheets/ustyle/components/_links.scss +26 -0
  310. data/vendor/assets/stylesheets/ustyle/components/_lists-li.scss +92 -0
  311. data/vendor/assets/stylesheets/ustyle/components/_lists.scss +39 -0
  312. data/vendor/assets/stylesheets/ustyle/components/_loader.scss +139 -0
  313. data/vendor/assets/stylesheets/ustyle/components/_overlay.scss +183 -0
  314. data/vendor/assets/stylesheets/ustyle/components/_progress.scss +138 -0
  315. data/vendor/assets/stylesheets/ustyle/components/_promo-banner.scss +131 -0
  316. data/vendor/assets/stylesheets/ustyle/components/_reminder.scss +87 -0
  317. data/vendor/assets/stylesheets/ustyle/components/_tab-navigation.scss +114 -0
  318. data/vendor/assets/stylesheets/ustyle/components/_table-toolbar.scss +91 -0
  319. data/vendor/assets/stylesheets/ustyle/components/_tabs.scss +300 -0
  320. data/vendor/assets/stylesheets/ustyle/components/_tooltip.scss +243 -0
  321. data/vendor/assets/stylesheets/ustyle/components/_usp.scss +88 -0
  322. data/vendor/assets/stylesheets/ustyle/content/_base.scss +227 -0
  323. data/vendor/assets/stylesheets/ustyle/content/_c-header.scss +27 -0
  324. data/vendor/assets/stylesheets/ustyle/content/_c-social.scss +9 -0
  325. data/vendor/assets/stylesheets/ustyle/content/_c-tabs.scss +30 -0
  326. data/vendor/assets/stylesheets/ustyle/forms/_base.scss +9 -0
  327. data/vendor/assets/stylesheets/ustyle/forms/_fields.scss +78 -0
  328. data/vendor/assets/stylesheets/ustyle/forms/_input-group.scss +154 -0
  329. data/vendor/assets/stylesheets/ustyle/forms/_input.scss +61 -0
  330. data/vendor/assets/stylesheets/ustyle/forms/_radio-checkbox.scss +144 -0
  331. data/vendor/assets/stylesheets/ustyle/forms/_reset.scss +21 -0
  332. data/vendor/assets/stylesheets/ustyle/forms/_select.scss +154 -0
  333. data/vendor/assets/stylesheets/ustyle/forms/_textarea.scss +33 -0
  334. data/vendor/assets/stylesheets/ustyle/forms/_toggle.scss +114 -0
  335. data/vendor/assets/stylesheets/ustyle/forms/_validation.scss +104 -0
  336. data/vendor/assets/stylesheets/ustyle/icons/_base.scss +241 -0
  337. data/vendor/assets/stylesheets/ustyle/mixins/_arrow.scss +51 -0
  338. data/vendor/assets/stylesheets/ustyle/mixins/_base.scss +7 -0
  339. data/vendor/assets/stylesheets/ustyle/mixins/_baseline.scss +43 -0
  340. data/vendor/assets/stylesheets/ustyle/mixins/_forms.scss +84 -0
  341. data/vendor/assets/stylesheets/ustyle/mixins/_general.scss +24 -0
  342. data/vendor/assets/stylesheets/ustyle/mixins/_link-colors.scss +44 -0
  343. data/vendor/assets/stylesheets/ustyle/mixins/_media-query.scss +121 -0
  344. data/vendor/assets/stylesheets/ustyle/mixins/_typography.scss +98 -0
  345. data/vendor/assets/stylesheets/ustyle/tables/_base.scss +4 -0
  346. data/vendor/assets/stylesheets/ustyle/tables/_tables-basic.scss +72 -0
  347. data/vendor/assets/stylesheets/ustyle/tables/_tables-sortable.scss +72 -0
  348. data/vendor/assets/stylesheets/ustyle/tables/_tables-with-key-cells.scss +18 -0
  349. data/vendor/assets/stylesheets/ustyle/tables/_variables.scss +15 -0
  350. data/vendor/assets/stylesheets/ustyle/utilities/_general.scss +116 -0
  351. data/vendor/assets/stylesheets/ustyle/utilities/_grid.scss +13 -0
  352. data/vendor/assets/stylesheets/ustyle/utilities/_images.scss +34 -0
  353. data/vendor/assets/stylesheets/ustyle/utilities/_responsive.scss +101 -0
  354. data/vendor/assets/stylesheets/ustyle/utilities/_spacing.scss +73 -0
  355. data/vendor/assets/stylesheets/ustyle/vendor/normalize.scss +427 -0
  356. data/vendor/assets/stylesheets/ustyle-content.scss +2 -0
  357. data/vendor/assets/stylesheets/ustyle.scss +1 -0
  358. metadata +517 -0
@@ -0,0 +1,304 @@
1
+ ---
2
+ name: Usability testing
3
+ ---
4
+ <!-- Index -->
5
+
6
+ <ul class="table-of-contents">
7
+ <li><a href="#no-validation">When don't we need user validation?</a></li>
8
+ <li><a href="#validation">When do we need user validation?</a></li>
9
+ <li><a href="#testing">How to test</a></li>
10
+ </ul>
11
+
12
+ <!-- Intro -->
13
+ <p>Usability testing can be used to establish problems that need solving, validate a hypothesis or to test a solution. Depending on what's required, there are different types of testing availability.</p>
14
+
15
+ <p>However, not every change needs to be tested. This page is deisgned to highlight when should and shouldn't use testing, and how we should do it when we do.</p>
16
+
17
+ <!-- When don’t we need validation of our designs? -->
18
+ <div class="us-content-group">
19
+ <a id="no-validation"></a>
20
+ <h2>When don’t we need validation of our designs?</h2>
21
+ <p>Plenty of design changes don’t require upfront hypothesis validation. If the design change is due to any of the following it may not need validation from users:</p>
22
+ <ul>
23
+ <li><a href="#Site-consistency">Site consistency</a></li>
24
+ <li><a href="#Design-conventions">Design conventions</a></li>
25
+ <li><a href="#Usability-conventions">Usability conventions</a></li>
26
+ <li><a href="#External-requirements">External requirements</a></li>
27
+ </ul>
28
+
29
+ <a id="Site-consistency"></a>
30
+ <h3>Site consistency</h3>
31
+ <p>Colour, font, shading, button types, and anything in uStyle is a given. We want to achieve site consistency for brand reasons.</p>
32
+ <p>Functionality, UI, hierarchy are not 'look and feel' consistency.</p>
33
+ <h4>Example</h4>
34
+ <p>Moving the first two Broadband designs ('Oldest stlye' and 'Old style') to be more ‘in line’ with the third design ('New style') is an on-going project of consistency.</p>
35
+ <p>Changing the colours of the first design or moving to a consistent layout would not require testing.</p>
36
+ <p>Similarly, changing the row-data presentation in the second example to be more consistent with the third example would not require testing.</p>
37
+ <div class="us-grid-row">
38
+ <div class="us-col-md-6">
39
+ <i>Oldest style</i><img alt="image" class="us-img--full trailered" src="/images/site-consistency01.png">
40
+ <i>New style</i><img alt="image" class="us-img--full trailered" src="/images/site-consistency03.png">
41
+ </div>
42
+ <div class="us-col-md-6">
43
+ <i>Old style</i><img alt="image" class="us-img--full trailered" src="/images/site-consistency02.png">
44
+ </div>
45
+ </div>
46
+
47
+ <a id="Design-conventions"></a>
48
+ <h3>Design conventions</h3>
49
+ <p>There are certain web-design standards, and in our aim for a consistent user experience, maintaining web consistency is an important part of that.</p>
50
+ <p>The following is a non-exhaustive list of design conventions:</p>
51
+ <ul>
52
+ <li>Logos top (left) and links to HP</li>
53
+ <li>Navigation is top of the page</li>
54
+ <li>Text links are blue (pre-click)</li>
55
+ <li>Buttons link to stuff (affordance)</li>
56
+ <li>Icons (search)</li>
57
+ <li>Visual hierarchy</li>
58
+ <li>Search (top right)</li>
59
+ <li>Clickable form fields</li>
60
+ </ul>
61
+ <h4>Example</h4>
62
+ <p>A basic UI convention is the distinction between active elements and inactive elements, with inactive elements being 'greyed out'.</p>
63
+ <p>The below car insurance has an overlay that must be interacted with to continue with the page below, but only part of the page is greyed out.</p>
64
+ <p>Five clickable elements on this page aren’t greyed out, despite not being clickable:</p>
65
+ <div class="us-grid-row">
66
+ <div class="us-col-md-6">
67
+ <img alt="image" class="us-img--full trailered" src="/images/design-conventions.png">
68
+ </div>
69
+ </div>
70
+
71
+ <a id="Usability-conventions"></a>
72
+ <h3>Usability conventions</h3>
73
+ <p>The <a href="https://www.nngroup.com/articles/ten-usability-heuristics/">ten basic usability heurisitcs</a>, like basic design rules, give us a number of usability principles that must be sense-checked against. Designs that do not meet these requirements give us a clear problem to be solved without the requirement of validation. </p>
74
+
75
+ <h4>Visibility of system status</h4>
76
+ <p>Keep users informed about what is going on through appropriate feedback within reasonable time. In the example below the user cannot see what impact selecting a dropdown option has because the overlay covers the results table:</p>
77
+ <div class="us-grid-row">
78
+ <div class="us-col-md-8">
79
+ <img alt="image" class="us-img--full trailered" src="/images/ux-conventions-visibility.png">
80
+ <p>
81
+ <i>"Did updating those filters do anything?"</i>
82
+ </p>
83
+ </div>
84
+ </div>
85
+
86
+ <h4>Match between system and the real world</h4>
87
+ <p>Speak the users' language with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow real-world conventions, making information appear in a natural and logical order.</p>
88
+ <div class="us-grid-row">
89
+ <div class="us-col-md-4">
90
+ <img alt="image" class="us-img--full trailered" src="/images/ux-conventions-real-world.png">
91
+ <p>
92
+ <i>"Large as in size of people or house? Doesn’t it depend what they’re doing? What’s a Plusnet safeguard?"</i>
93
+ </p>
94
+ </div>
95
+ </div>
96
+
97
+ <h4>User control and freedom</h4>
98
+ <p>If a user makes a mistake, let them undo, redo, go back, etc...</p>
99
+ <div class="us-grid-row">
100
+ <div class="us-col-md-10">
101
+ <img alt="image" class="us-img--full trailered" src="/images/ux-conventions-freedom.png">
102
+ <p>
103
+ <i>"I wanted more details...and now i've left the site....how do I get back?”</i>
104
+ </p>
105
+ </div>
106
+ </div>
107
+
108
+ <h4>Consistency and standards</h4>
109
+ <p>Users should not have to wonder whether different words, situations, or actions mean the same thing.</p>
110
+ <div class="us-grid-row">
111
+ <div class="us-col-md-8">
112
+ <img alt="image" class="us-img--full trailered" src="/images/ux-conventions-consistency.png">
113
+ <p>
114
+ <i>"Is a plan and a tariff the same thing?”</i>
115
+ </p>
116
+ </div>
117
+ </div>
118
+
119
+ <h4>Error prevention</h4>
120
+ <p>Even better than good error messages is a careful design which prevents a problem from occurring in the first place.</p>
121
+ <div class="us-grid-row">
122
+ <div class="us-col-md-8">
123
+ <img alt="image" class="us-img--full trailered" src="/images/ux-conventions-error.png">
124
+ <p>
125
+ <i>"No deals, why did you present it as an option?"</i>
126
+ </p>
127
+ </div>
128
+ </div>
129
+
130
+ <h4>Recognition rather than recall</h4>
131
+ <p>Minimise the user's memory load by making objects, actions, and options visible. The user should not have to remember information from one part to another.</p>
132
+ <div class="us-grid-row">
133
+ <div class="us-col-md-4">
134
+ <img alt="image" class="us-img--full trailered" src="/images/ux-conventions-recognition.png">
135
+ <p>
136
+ <i>"I’ve filtered these results, but by what?"</i>
137
+ </p>
138
+ </div>
139
+ </div>
140
+
141
+ <h4>Flexibility and efficiency of use</h4>
142
+ <p>llow users to tailor frequent actions. 1-button checkout via Amazon, or Add to my wishlist via Airbnb.</p>
143
+ <div class="us-grid-row">
144
+ <div class="us-col-md-8">
145
+ <img alt="image" class="us-img--full trailered" src="/images/ux-conventions-flexibility.png">
146
+ <p>
147
+ <i>"I personalised all these details yesterday, why has it just reverted?"</i>
148
+ </p>
149
+ </div>
150
+ </div>
151
+
152
+ <h4>Aesthetic and minimalist design</h4>
153
+ <p>Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility.</p>
154
+ <div class="us-grid-row">
155
+ <div class="us-col-md-6">
156
+ <img alt="image" class="us-img--full trailered" src="/images/ux-conventions-minimalist.png">
157
+ <p>
158
+ <i>"What am I supposed to do on this page?"</i>
159
+ </p>
160
+ </div>
161
+ </div>
162
+
163
+ <h4>Help users recognise, diagnose, and recover from errors</h4>
164
+ <p>Error messages should be expressed in plain language, precisely indicate the problem, and constructively suggest a solution.</p>
165
+ <div class="us-grid-row">
166
+ <div class="us-col-md-6">
167
+ <img alt="image" class="us-img--full trailered" src="/images/ux-conventions-errors.png">
168
+ <p>
169
+ <i>"Ahhhh....the ol' requested format..."</i>
170
+ </p>
171
+ </div>
172
+ </div>
173
+
174
+ <h4>Help and documentation</h4>
175
+ <p>Any such help information should be easy to find, focused on the user's task, list concrete steps to be carried out, and not be too wordy.</p>
176
+
177
+ <a id="External-requirements"></a>
178
+ <h3>External requirements</h3>
179
+ <p>Sometimes design is dictated - commercial or regulatory or business.</p>
180
+ <p>If there is flexibility around how these are implemented we can enter the design process. Sometimes there isn’t though, and they have to be implemented.</p>
181
+ <h4>Example</h4>
182
+ <div class="us-grid-row">
183
+ <div class="us-col-md-6">
184
+ <img alt="image" class="us-img--full trailered" src="/images/external-requirements.png">
185
+ <p>
186
+ <i>"The brand red clashes with this provider's red."</i>
187
+ </p>
188
+ </div>
189
+ </div>
190
+ </div>
191
+
192
+
193
+ <!-- When do we need validation of our designs? -->
194
+
195
+ <div class="us-content-group">
196
+ <a id="validation"></a>
197
+ <h2>When do we need validation?</h2>
198
+ <p>If our change isn’t down to one of the above then it’s problem solving, so we need to structure our approach to design differently - we need to <strong>understand the problem</strong> first.</p>
199
+
200
+ <h3>Symptoms not problems</h3>
201
+ <p>A problem statement is the design brief, but first we need a good problem.</p>
202
+ <p>Data tells us about results, not causes. It tells us that it looks like there is a problem, but now what the problem is. Data comes from:</p>
203
+ <ul>
204
+ <li>GA</li>
205
+ <li>Fullstory</li>
206
+ <li>Crazyegg</li>
207
+ </ul>
208
+ <p>Similarly business objectives are things we desire to happen. They tell us what we want to the outcome to be. Objectives sound like:</p>
209
+ <ul>
210
+ <li>Increase conversion by…</li>
211
+ <li>Reduce drop out by…</li>
212
+ <li>Stop people bouncing on…</li>
213
+ <li>Stop people clicking out on…</li>
214
+ <li>Get people to click on…</li>
215
+ </ul>
216
+ <p>These tell us there is a problem, but we don’t know what it is.</p>
217
+ <p>A real problems is something we’ve observed a significant number of occasions.</p>
218
+
219
+ <h3>How to define the problem</h3>
220
+ <p>Testing designed to steer design, or validate assumptions about what problems users are encountering, is known as ‘formative’ testing. It’s open-ended, and the tasks are simply to run a comparison, or to go through a journey start to finish.</p>
221
+ <p>Any type of testing, whether it be face-to-face, guerilla, remote, or interviews, can help define the problem. This allows us to frame the problem with a problem statement. A problem statement is:</p>
222
+ <blockquote>A concise description of the issues that need to be addressed - it is specific, measurable and explains what it impacts. There are no assumptions or solutions.</blockquote>
223
+
224
+ <h3>Only with a problem can you design a solution</h3>
225
+ <p>Once the problem is clearly defined, start trying to solve it (one problem at a time), but remember to validate the solutions as soon as possible.</p>
226
+ <p>'Summative' usability testing can help validate. Summative testing gives the user a particular task to complete that tests the solution against the problem. Again, any type of testing can perform this function.</p>
227
+
228
+ <h3>But wait!</h3>
229
+ <p>User testing is great to validate flows, designs and interactions, but it's not exhaustive. There might be bugs, or solutions that don't work in certain scenarios. This is where in-house testing and the device lab comes in.</p>
230
+ </div>
231
+
232
+
233
+
234
+ <!-- Testing -->
235
+
236
+ <a id="testing"></a>
237
+ <div class="us-content-group">
238
+ <h2>How to test</h2>
239
+ <p>So what type of testing should we use, and when?</p>
240
+ <a href="https://www.nngroup.com/articles/which-ux-research-methods/">This article by Nielsen Norman Group</a> is a great starting point to understand testing methods and when to apply each.</p>
241
+ <p>There are over 20 types of validation, including quant methods, but here at uSwitch we predominantly use the following:</p>
242
+ <ul>
243
+ <li><a href="#interviews">Interviews</a></li>
244
+ <li><a href="#face-to-face">Face-to-face usability testing</a></li>
245
+ <li><a href="#guerilla-testing">Guerilla testing</a></li>
246
+ <li><a href="#in-house-testing">In-house testing</a></li>
247
+ </ul>
248
+
249
+ <a id="interviews"></a>
250
+ <h3>Interviews</h3>
251
+ <p>Interviews are designed to understand behaviours, needs and pain-points around a particular task.</p>
252
+ <p>They are open-ended and can help define design personas - archetypes that can be used as a reference point for any design changes for that product.</p>
253
+ <h4>How</h4>
254
+ <p>See the interview checklist</p>
255
+ <h4>When</h4>
256
+ <p>Interviews are most commonly used at the earliest stage of product development to determine the needs/problems that the product will address.</p>
257
+
258
+ <a id="face-to-face"></a>
259
+ <h3>Face-to-face usability testing</h3>
260
+ <p>Face-to-face testing can be used in a formative or summative sense, and can be combined with an interview and simple exercises, like card sorting.</p>
261
+ <p>This is the highest-fidelity form of validation. The feedback you receive will be of the highest quality, but it will also take you the most time.</p>
262
+
263
+ <h4>How</h4>
264
+ <p>Face-to-face testing consists of preparing a particular task, putting it in front of real users, and seeing how they get on.</p>
265
+ <p>As it’s face-to-face, you can also interview users in this format, or ask them to complete exercises such as:</p>
266
+ <ul>
267
+ <li>Product Reaction Cards - Used to determine how desirable a product or process is</li>
268
+ <li>Unmarked Semantic Differential Scales - Used to understand reactions to particular words and phrases</li>
269
+ <li>Card sorting - Used to understand hierarchy of importance, or expected flows</li>
270
+ </ul>
271
+ <p>See the testing checklist for a step-by-step guide to setting up and running a test. The most crucial components are:</p>
272
+ <ul>
273
+ <li>Goals - What are you trying to achieve?</li>
274
+ <li>Tasks - Every task you ask a user to complete should answer a question you need answered. Formative testing on an exisiting product will have open-ended goals, whereas tasks designed to test a solution should be specific.</li>
275
+ <li>Test plan - Script, scenario, tasks, participants, questions, anything the moderators needs. Write it all down so you have it to hand during the test.</li>
276
+ <li>Test the test - Something will go wrong, promise, so test it first.</li>
277
+ <li>Get your team involved - There's nothing like seeing your solution fail first hand.</li>
278
+ </ul>
279
+ <h4>When</h4>
280
+ <p>Anytime. For an existing product where the objective is to discover problems, an open-ended test asking users to complete the most common journey. This should be done at least once a year.</p>
281
+ <p>For a new product or feature face-to-face testing is always a good idea. The objective here is to <strong>test the solution against the problem</strong> using particular tasks.</p>
282
+
283
+ <a id="guerilla-testing"></a>
284
+ <h3>Guerilla testing</h3>
285
+ <p>A lower-fidelity version of face-to-face testing, guerilla testing sacrifices quality for speed. The feedback you receive will be of lower quality as the participants may not fit user types, and the testing environment is more ‘ad-hoc’ (think coffee shops, sandwich places).</p>
286
+ <p>Just like face-to-face testing, guerilla testing involves preparing a particular task, putting it in front of real users, and seeing how they get on. You can also do interviews and get quant feedback but again, the feedback will be lower quality.</p>
287
+ <h4>How</h4>
288
+ <p>See the guerilla testing checklist for a step-by-step guide to setting up and running a test.</p>
289
+ <p>The number of participants should be at least 5 for guerilla testing, but you can use your discretion.</p>
290
+ <h4>When</h4>
291
+ <p>Guerilla testing is perfect at the early stage of a design, when you want to sense check a particular flow, component, or wording.</p>
292
+ <p>Any fidelity of design can be used. Guerilla testing works best when kept relatively informal, and the participant feels at ease.</p>
293
+
294
+ <a id="in-house-testing"></a>
295
+ <h3>In-house testing</h3>
296
+ <p>Asking your colleagues in the office for feedback. This is the quickest but lowest quality form of validation.</p>
297
+ <p>Like guerilla testing this is an informal type of testing, but the quality is considerably lower owing to familiarity with the product, bias based on personal relationships and a mismatch between persona types and testers.</p>
298
+ <p>In-house testing is perfect for bug testing, seeing if anyone can ‘break’ your design, and last-minute tweaks. It is not for designed to surface flow or interaction changes.</p>
299
+ <h4>How</h4>
300
+ <p>See the bug-testing checklist</p>
301
+ <h4>When</h4>
302
+ <p>A few days before release</p>
303
+
304
+ </div>
@@ -0,0 +1,51 @@
1
+ ---
2
+ template: simple.tpl
3
+ name: uSwitch living styleguide
4
+ ---
5
+ <p>
6
+ The sum of our efforts towards style guidelines, a pattern library and an automated front-end. Made with &#10084; at <a href="https://www.uswitch.com" target="_blank"><strong class="us-color--blue">uSwitch.com</strong></a>
7
+ </p>
8
+ <div class="us-content-group mobile-bordered">
9
+ <div class="us-grid-row">
10
+ <div class="us-col-md-6">
11
+ <h3>Design guidelines</h3>
12
+ <p>uStyle includes documentation and guidelines relating to our core design principles. It is where we document everything that happens within our brand, UX and front-end development.</p>
13
+ </div>
14
+ <div class="us-col-md-6">
15
+ <h3>Automated development</h3>
16
+ <p>uStyle is a gem, a bower package, a npm package and static assets. This allows our team setup to choose how they wish to implement the core front-end of uSwitch. We've tried to be as accessible as possible.</p>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ <div class="us-content-group mobile-bordered">
21
+ <div class="us-grid-row">
22
+ <div class="us-col-md-6">
23
+ <h3>Pattern library</h3>
24
+ <p>At its core, uStyle is a pattern library. It contains all current components and elements of the uSwitch UI. These are documented in the <a href="/pattern-library/">pattern library</a> section.</p>
25
+ </div>
26
+ <div class="us-col-md-6">
27
+ <h3>Designer + developer happiness</h3>
28
+ <p>Delivering designer + developer happiness is very important to us. uStyle provides a base for all our design and development work and allows our designers and developers to focus on the things that matter, whilst making their lives easier when prototyping.</p>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ <div class="us-content-group">
33
+ <h2>The logo</h2>
34
+ <div class="us-grid-row">
35
+ <div class="us-col-md-2">
36
+ <svg class="us-icon--large us-icon--ustyle" role="img">
37
+ <use xlink:href="/images/icons.svg#icon-ustyle"></use>
38
+ </svg>
39
+ </div>
40
+ <div class="us-col-md-10">
41
+ <p>There is no reason for this logo other than it's funny and unicorns are all the rage just now.</p>
42
+
43
+ <p><strong>Disclaimer:</strong> uSwitch is not a unicorn company.
44
+ </div>
45
+ </div>
46
+ </div>
47
+ <div class="us-content-group">
48
+ <h2>We're looking for great talent</h2>
49
+ <p>Want to help us build more things like uStyle? We're constantly trying to deliver a better experience for customers and developers, and we're looking for passionate people to join our team.</p>
50
+ <p>Fire us an email at <a href="mailto:jobs+developer@uswitch.com">jobs@uswitch.com</a> with your CV and tell us a bit about yourself.</p>
51
+ </div>
@@ -0,0 +1,220 @@
1
+ ---
2
+ name: Style
3
+ ---
4
+
5
+ The smallest mistake can undermine the biggest (and most important) of messages. Those writing for uSwitch should ensure they follow these style rules that cover everything from headlines to hyphens, and numbers to names.
6
+
7
+ <ul class='table-of-contents'>
8
+ <li><a href="#Abbreviations">Abbreviations</a></li>
9
+ <li><a href="#Acronyms"> Acronyms</a></li>
10
+ <li><a href="#Ampersand">Ampersand</a></li>
11
+ <li><a href="#Apostrophes">Apostrophes</a></li>
12
+ <li><a href="#British English">British English</a></li>
13
+ <li><a href="#Bullet points">Bullet points</a></li>
14
+ <li><a href="#Capital letters">Capital letters</a></li>
15
+ <li><a href="#Company names and references">Company names and references</a></li>
16
+ <li><a href="#Contractions">Contractions</a></li>
17
+ <li><a href="#Dashes and hyphens">Dashes and hyphens</a></li>
18
+ <li><a href="#Dates">Dates</a></li>
19
+ <li><a href="#Full stops">Full stops</a></li>
20
+ <li><a href="#Government">Government</a></li>
21
+ <li><a href="#Legals, disclaimers and caveats">Legals, disclaimers and caveats</a></li>
22
+ <li><a href="#Less vs. Fewer">Less vs. Fewer</a></li>
23
+ <li><a href="#Numbers">Numbers</a></li>
24
+ <li><a href="#OK">OK</a></li>
25
+ <li><a href="#Percentages">Percentages</a></li>
26
+ <li><a href="#Plans vs tariffs">Plans vs tariffs</a></li>
27
+ <li><a href="#Quotation marks">Quotation marks</a></li>
28
+ <li><a href="#Titles and Names">Titles and Names</a></li>
29
+ <li><a href="#Wi-Fi">Wi-Fi</a></li>
30
+ </ul>
31
+
32
+ <span id="Abbreviations"></span>
33
+ **Abbreviations**
34
+
35
+ For names of companies or organisations, if an abbreviation is more familiar than the full form (e.g. BBC, IBM) use that. If not, write the name in full the first time you mention it, followed by the abbreviation in brackets. The next time you refer to it, use only the abbreviation.
36
+
37
+ <span id="Acronyms"></span>
38
+ **Acronyms**
39
+
40
+ Write out in first use, noting the acronym in brackets; then use just the acronym going forward. Familiar acronyms such as WiFi, HTML, HMRC and BT are exempt from this rule.
41
+
42
+ <blockquote>
43
+ The TaxPayers’ Alliance (TPA) has warned that the campaigns being led by lobbies could lead to higher household bills. Matthew Sinclair, director of the TPA ...
44
+ </blockquote>
45
+
46
+ <span id="Ampersand"></span>
47
+ **Ampersand**
48
+
49
+ Do not use the “&” symbol unless it is part of a company or product name.
50
+
51
+ <span id="Apostrophes"></span>
52
+ **Apostrophes**
53
+
54
+ Avoid common misuse of apostrophes:
55
+
56
+ - Mixing up it’s (it is) and its (possessive)
57
+ - Using to denote plural: DVD’s (wrong) vs DVDs (correct)
58
+ - When writing Dos and Don’ts (not Do’s and Don’ts)
59
+ - When writing decades 1990s (not 1990’s); the ’80s (not the 80’s)
60
+
61
+ <span id="British English"></span>
62
+ **British English**
63
+
64
+ Use the British ‘s’ in words such as ‘realise’, and ‘specialise’, rather than the American ‘z’.
65
+
66
+ <span id="Bullet points"></span>
67
+ **Bullet points**
68
+
69
+ Bullet points are a good way to make web copy easier to scan for readers. Bullet points should always be round, and limit bullets to six or fewer. Make sure they are grammatically logical.
70
+
71
+ <span id="Capital letters"></span>
72
+ **Capital letters**
73
+
74
+ Never use all capital letters. Headlines follow usual sentence structure, with only the first word and proper nouns utilising capitals.
75
+
76
+ <span id="Company names and references"></span>
77
+ **Company names and references**
78
+
79
+ Follow punctuation and capitalisation of company names and products as they are branded.
80
+
81
+ <blockquote>
82
+ E.ON, iPhone, iSaver
83
+ </blockquote>
84
+
85
+ When referencing a company in a news or guide, remember to always keep them in the singular.
86
+
87
+ <blockquote>
88
+ BT is launching a new ... (not BT are launching a new ...)
89
+ </blockquote>
90
+
91
+ <span id="Contractions"></span>
92
+ **Contractions**
93
+
94
+ Our tone of voice is friendly and familiar, so it’s fine to use contractions like ‘they’ll’, ‘it’ll’, ‘isn’t’.
95
+
96
+ <span id="Dashes and hyphens"></span>
97
+ **Dashes and hyphens**
98
+
99
+ If you use a dash within a sentence to create emphasis, then use a long em dash – rather than a hyphen (-).
100
+ Compound adjectives before a noun generally use a hyphen (e.g. ‘the well-organised energy provider’). After a noun, they should be separated (e.g. ‘the energy provider was well organised’).
101
+
102
+ <span id="Dates"></span>
103
+ **Dates**
104
+
105
+ Always write out the date, using day, month, year format in news and guides:
106
+
107
+ <blockquote>
108
+ 9 December 2013. When using dates in tables, this may be shortened for space reasons to 9/12/13
109
+ </blockquote>
110
+
111
+ In forms when asking for a date we always use the DD/MM/YYYY format.
112
+
113
+ <span id="Exclamation marks"></span>
114
+ **Exclamation marks**
115
+
116
+ Use sparingly, never in headers or intro copy, best suited for marketing/promotional material or news/blogs.
117
+
118
+ <span id="Full stops"></span>
119
+ **Full stops**
120
+
121
+ Don’t use full stops at the end of headlines.
122
+
123
+ <span id="Government"></span>
124
+ **Government**
125
+
126
+ Do not capitalise unless starting a sentence. The abbreviated Gov’t can be used in headlines and desk heads/straplines.
127
+
128
+ <span id="Legals, disclaimers and caveats"></span>
129
+ **Legals, disclaimers and caveats**
130
+
131
+ Superscript numbering should be used when there is more than one caveat, however, when there is only one caveat in a communication, an asterisk (*) should be used.
132
+
133
+ <span id="Less vs. Fewer"></span>
134
+ **Less vs. Fewer**
135
+
136
+ Use “less” when the subject is something that cannot be counted
137
+
138
+ <blockquote>
139
+ She wants to have less clutter on her desk.
140
+ </blockquote>
141
+
142
+ Use “fewer” when the subject is something that can be counted
143
+
144
+ <blockquote>
145
+ He sent fewer texts after getting a £100 phone bill.
146
+ </blockquote>
147
+
148
+ <span id="Numbers"></span>
149
+ **Numbers**
150
+
151
+ - Numbers nine and below must be written out: one, two, three, etc.
152
+ - Numbers 10 and higher use numerals: 15, 67, 987, etc.
153
+ - Spell out any amount when it starts a sentence: Three hundred and twenty customers surveyed said they had been wrongly billed on more than 15 occasions.
154
+ - Use commas with figures 1,000 and above.
155
+ - With million and billion, write out in body copy; the abbreviation (£43bn) is acceptable in news headlines for space reasons.
156
+ - Always use numerals when using the “£” or “%” symbols
157
+
158
+ <span id="OK"></span>
159
+ **OK**
160
+
161
+ Not Ok or okay.
162
+
163
+ <span id="Percentages"></span>
164
+ **Percentages**
165
+
166
+ Always use the “%” symbol; only use “per cent” at the start of a sentence. Always use numerals when talking about percentages (54%), unless it starts a sentence. We never use abbreviation “pc” when talking about percentages.
167
+
168
+ <blockquote>
169
+ Fifty-five per cent of the population own an iPhone.
170
+ </blockquote>
171
+
172
+ <blockquote>
173
+ Of those surveyed, 55% said they had been denied a credit card.
174
+ </blockquote>
175
+
176
+ <span id="Plans vs tariffs"></span>
177
+ **Plans vs tariffs**
178
+
179
+ Plans is the preferred term, only switch to use of tariff when trying to avoid repetition within one email or guide.
180
+
181
+ <span id="Quotation marks"></span>
182
+ **Quotation marks**
183
+
184
+ Always use double quotation marks (“) when placing a direct quote in body copy.
185
+
186
+ Use single quote marks (‘) in headlines, standfirsts/dek heads and when quoting within a quote:
187
+
188
+ <blockquote>
189
+ Super-fast broadband uptake ‘reaches 20% in UK’
190
+ </blockquote>
191
+
192
+ <blockquote>
193
+ “Super-fast broadband will be the engine for growth for the broadband future of Britain," he said.
194
+ </blockquote>
195
+
196
+ <span id="Titles and Names"></span>
197
+ **Titles and Names**
198
+
199
+ Professional titles are not capitalised unless it directly precedes a name:
200
+
201
+ <blockquote>
202
+ Director of Consumer Policy Jane Smith said that the news was a shock.
203
+ </blockquote>
204
+
205
+ <blockquote>
206
+ Jane Smith, director of consumer policy at the company, said the news came as a shock.
207
+ </blockquote>
208
+
209
+ On first reference, use the person’s first and last name. On subsequent references, last name only is used.
210
+
211
+ Mr/Mrs/Miss/Ms is never used.
212
+
213
+ <blockquote>
214
+ Energy Secretary Ed Davey was on-hand to field questions about the news. Davey arrived late, citing a long-running meeting.
215
+ </blockquote>
216
+
217
+ <span id="Wi-Fi"></span>
218
+ **Wi-Fi**
219
+
220
+ Not wifi, WIFI, WiFi, etc.