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,227 @@
1
+ @import "ustyle/content/c-header";
2
+ @import "ustyle/content/c-social";
3
+
4
+ $content-heading-font-sizes: 30px, 24px, 20px, 18px, 16px, 16px;
5
+
6
+ .us-content {
7
+ // scss-lint:disable all
8
+
9
+ margin-bottom: $gutter-width;
10
+
11
+ @include baseline($base-font-size, $root: true);
12
+
13
+ @include respond-to(tablet) {
14
+ @include baseline(18px, $root: true);
15
+ }
16
+
17
+ @include respond-to(desktop) {
18
+ @include baseline(20px, $root: true);
19
+ text-rendering: optimizeSpeed;
20
+ }
21
+
22
+ @for $level from 1 through 6 {
23
+ h#{$level},
24
+ .us-heading--#{$level} {
25
+ @include heading($level, $font-sizes: $content-heading-font-sizes);
26
+ }
27
+ }
28
+
29
+ // scss-lint:enable all
30
+
31
+ h2,
32
+ h3,
33
+ h4,
34
+ h5,
35
+ h6 {
36
+ margin-top: 30px;
37
+ margin-bottom: .5em;
38
+
39
+ @include respond-to(tablet) {
40
+ margin-top: 50px;
41
+ }
42
+ }
43
+ //
44
+ // Default typography styling
45
+ //
46
+ p,
47
+ ul,
48
+ blockquote {
49
+ a {
50
+ @extend %anchor-link;
51
+ }
52
+ }
53
+ //
54
+ // Default image styling
55
+ //
56
+ img {
57
+ height: auto;
58
+ max-width: 100%;
59
+ padding-top: 1em;
60
+ margin-bottom: 1em;
61
+ }
62
+ //
63
+ // Default table styling
64
+ //
65
+ table {
66
+ width: 100%;
67
+ font-size: 16px;
68
+ border-collapse: separate;
69
+
70
+ img,
71
+ p {
72
+ @extend %reset-box-model;
73
+ }
74
+
75
+ a {
76
+ border: 0;
77
+ }
78
+
79
+ td,
80
+ th {
81
+ padding: $gutter-width / 4;
82
+ text-align: left;
83
+ vertical-align: middle;
84
+ border-bottom: 1px solid $c-bordergrey;
85
+ }
86
+
87
+ thead {
88
+ background-color: $c-keylinegrey;
89
+ }
90
+ }
91
+ //
92
+ // Figure / image captions
93
+ //
94
+ figure {
95
+ padding: $gutter-width / 2;
96
+ margin: 0;
97
+ background-color: $c-bggrey;
98
+ border: 1px solid $c-keylinegrey;
99
+
100
+ img {
101
+ padding-top: 0;
102
+ margin-bottom: 0;
103
+ }
104
+
105
+ figcaption {
106
+ display: inline-block;
107
+ vertical-align: top;
108
+
109
+ @include respond-to(tablet, true) {
110
+ width: 50%;
111
+ margin-left: $gutter-width;
112
+ }
113
+ }
114
+ }
115
+
116
+ .strap {
117
+ @include baseline(18px);
118
+
119
+ @include respond-to(tablet) {
120
+ @include baseline(22px);
121
+ margin-bottom: 2em;
122
+ }
123
+ }
124
+
125
+ .us-cta {
126
+ font-size: 16px;
127
+ }
128
+
129
+ .internal-menu {
130
+ @extend %list;
131
+ }
132
+
133
+ // scss-lint:disable NestingDepth, SelectorDepth
134
+ .plans-ending {
135
+ @extend %clearfix;
136
+ @extend %reset-box-model;
137
+ list-style: none;
138
+ border-top: 1px solid $c-blue;
139
+
140
+ > li {
141
+ padding-top: .5em;
142
+ padding-bottom: .5em;
143
+ margin: 0;
144
+ border-bottom: 1px solid $c-blue;
145
+ }
146
+
147
+ ul {
148
+ list-style: disc;
149
+ }
150
+
151
+ .row {
152
+ position: relative;
153
+ font-weight: 700;
154
+ color: $c-blue;
155
+ cursor: pointer;
156
+ transition: color .3s;
157
+
158
+ &:after {
159
+ position: absolute;
160
+ top: 50%;
161
+ right: 1em;
162
+ margin-top: -.75em;
163
+ font-size: 2em;
164
+ font-weight: 700;
165
+ content: "\27E9";
166
+ }
167
+
168
+ &:hover {
169
+ color: $c-typecyan;
170
+ }
171
+ }
172
+
173
+ img {
174
+ @extend %reset-box-model;
175
+ margin: 0 1em 0 1em;
176
+ vertical-align: middle;
177
+ }
178
+
179
+ .table-container {
180
+ margin-top: .5em;
181
+ }
182
+
183
+ .us-btn {
184
+ @extend %btn;
185
+ @extend %btn--primary;
186
+ }
187
+
188
+ .js & {
189
+ .table-container {
190
+ display: none;
191
+ }
192
+ }
193
+ }
194
+
195
+ .fuel-breakdown {
196
+ @extend %clearfix;
197
+ @extend %reset-box-model;
198
+ width: 100%;
199
+ overflow: hidden;
200
+ list-style: none;
201
+
202
+ li {
203
+ float: left;
204
+ padding: $gutter-width / 2 0;
205
+ font-size: 16px;
206
+ font-size: rem(16px);
207
+ color: #fff;
208
+ text-align: center;
209
+ vertical-align: middle;
210
+
211
+ b {
212
+ display: block;
213
+ }
214
+ }
215
+
216
+ $fuel-colors: (coal, $c-bordergrey), (gas, $c-typecyan), (nuclear, $c-orange), (renewable, $c-green), (other, $c-typegrey);
217
+ @each $color in $fuel-colors {
218
+ .#{nth($color, 1)} {
219
+ background-color: nth($color, 2);
220
+ @if nth($color, 1) == other {
221
+ text-indent: -999em;
222
+ }
223
+ }
224
+ }
225
+ }
226
+ // scss-lint:enable NestingDepth, SelectorDepth
227
+ }
@@ -0,0 +1,27 @@
1
+ .us-content__header {
2
+ img {
3
+ display: none;
4
+ height: auto;
5
+ max-width: 100%;
6
+ min-width: 100%;
7
+
8
+ @include respond-to(tablet, true) {
9
+ display: block;
10
+ }
11
+ }
12
+ }
13
+
14
+ .us-content__title {
15
+ position: relative;
16
+ padding: .5em 0 0 0;
17
+ margin: 0;
18
+ clear: both;
19
+ font-size: 1.6785em; // 26px
20
+ color: $c-navy;
21
+ background-color: #fff;
22
+
23
+ @include respond-to(desktop, true) {
24
+ @include heading(1, $extend: false);
25
+ padding: .5em 0 1em 0;
26
+ }
27
+ }
@@ -0,0 +1,9 @@
1
+ .us-social {
2
+ padding-top: 1em;
3
+ }
4
+
5
+ .us-social-btn {
6
+ display: inline-block;
7
+ margin-right: .5em;
8
+ vertical-align: top;
9
+ }
@@ -0,0 +1,30 @@
1
+ .us-content__tabs {
2
+ @extend %clearfix;
3
+ padding-right: $gutter-width / 2;
4
+ padding-left: $gutter-width / 2;
5
+ margin-bottom: $gutter-width / 2;
6
+ border-bottom: 1px solid $c-keylinegrey;
7
+ }
8
+
9
+ .us-content__tab-link {
10
+ @extend %small-font;
11
+ @include bold-font;
12
+ @include link-colors($c-typegrey, $c-typecyan, $c-typegrey, $c-typegrey);
13
+ position: relative;
14
+ top: 1px;
15
+ display: inline-block;
16
+ padding: .5em 1em;
17
+ color: $c-typegrey-2;
18
+ background-color: $c-keylinegrey;
19
+ border-top: 1px solid $c-keylinegrey;
20
+ border-right: 1px solid $c-keylinegrey;
21
+ border-left: 1px solid $c-keylinegrey;
22
+ border-top-right-radius: 2px;
23
+ border-top-left-radius: 2px;
24
+ }
25
+
26
+ .us-content__tab-link--active {
27
+ color: $c-typegrey;
28
+ background-color: #fff;
29
+ border-color: $c-keylinegrey;
30
+ }
@@ -0,0 +1,9 @@
1
+ @import "ustyle/forms/reset";
2
+ @import "ustyle/forms/fields";
3
+ @import "ustyle/forms/input";
4
+ @import "ustyle/forms/textarea";
5
+ @import "ustyle/forms/input-group";
6
+ @import "ustyle/forms/radio-checkbox";
7
+ @import "ustyle/forms/toggle";
8
+ @import "ustyle/forms/select";
9
+ @import "ustyle/forms/validation";
@@ -0,0 +1,78 @@
1
+ // @page Pattern Library/Forms
2
+ // @name Fields
3
+ //
4
+ // @description
5
+ // This is the basic form field, `.us-field` wrapper for any single input or select. It sets a few layout options by default (margin) and styles any labels within. You can create a fake label style with `.us-faux-label`
6
+ //
7
+ // #### Best practices
8
+ // * All form inputs must have a corresponding label, linked to the input
9
+ // * The label should be visible; placeholders should not be relied on as not every browser can see them, nor can all screenreaders. A visible permanent label provides continuous context
10
+ // * For text inputs that are optional, add "(optional)" to the input label
11
+ // * Add `aria-required` to any input field that must to be filled in
12
+ // * See our best practices for [writing form labels](../language/microcopy.html#Form text, form labels)
13
+ //
14
+ // @state .us-field--blocked - Blocked label styling.
15
+ // @state .us-field--inline - Inline label styling.
16
+ //
17
+ // @markup
18
+ // <div class="us-field {$modifiers}">
19
+ // <label for="name">Name</label>
20
+ // <input class="us-form-input" id="name" name="name" placeholder="Please enter your name">
21
+ // </div>
22
+
23
+ $default-label-color: $c-uswitch-navy !default;
24
+ $default-label-size: 18px !default;
25
+ $default-label-width: em(120px, $default-label-size) !default;
26
+ $default-label-margin: .25em !default;
27
+ $label-inline-breakpoint: tablet !default;
28
+
29
+ %base-block-label {
30
+ display: block;
31
+ margin-bottom: $default-label-margin;
32
+ }
33
+
34
+ .us-field {
35
+ @extend %clearfix;
36
+ margin-bottom: 1em;
37
+
38
+ > label,
39
+ > .us-faux-label {
40
+ @include heading-font;
41
+ margin-right: 1em;
42
+ font-size: em($default-label-size);
43
+ color: $default-label-color;
44
+ }
45
+ }
46
+
47
+ .us-field-blocked,
48
+ .us-field--blocked {
49
+ > label,
50
+ > .us-faux-label {
51
+ @extend %base-block-label;
52
+ }
53
+ }
54
+
55
+ // This is an inline field, for quick, easy to read forms
56
+ .us-field--inline {
57
+ > label,
58
+ > .us-faux-label {
59
+ @extend %base-block-label;
60
+
61
+ @include respond-to($label-inline-breakpoint, true) {
62
+ display: inline-block;
63
+ vertical-align: middle;
64
+ }
65
+ }
66
+ }
67
+
68
+ // The toggle field is for radios and checkboxes. It sits within the .us-field to allow
69
+ // styling for labels of radio/checkboxes
70
+ .us-field-toggle {
71
+ label {
72
+ @include normal-font;
73
+ padding: .35em .5em;
74
+ font-weight: normal;
75
+ line-height: 1.5em;
76
+ cursor: pointer;
77
+ }
78
+ }
@@ -0,0 +1,154 @@
1
+ // @page Pattern Library/Forms
2
+ // @name Input group
3
+ //
4
+ // @description
5
+ // Input groups allow you to add "boxes" to the left or right of an input. These boxes usually contain a visual icon to represent the usage of the input.
6
+ //
7
+ // @state .us-input-group--disabled - Disabled state for input groups.
8
+ // @state .us-input-group--blocked - Fluid style.
9
+ //
10
+ // @markup
11
+ // <div class="us-input-group us-margin-bottom {$modifiers}">
12
+ // <span class="us-input-group__box"><svg role="presentation" aria-hidden="true" class="us-icon--small us-icon--inputgrey"><use xlink:href="/images/icons.svg#icon-envelope"></use></svg></span>
13
+ // <input class="us-form-input" type="text" id="email" placeholder="Email" />
14
+ // </div>
15
+ //
16
+ // <div class="us-input-group us-margin-bottom {$modifiers}">
17
+ // <input class="us-form-input" type="text" id="kwh" />
18
+ // <span class="us-input-group__box">kWh</span>
19
+ // </div>
20
+ //
21
+ // <div class="us-input-group us-margin-bottom {$modifiers}">
22
+ // <span class="us-input-group__box"><svg role="presentation" aria-hidden="true" class="us-icon--small us-icon--inputgrey"><use xlink:href="/images/icons.svg#icon-envelope"></use></svg></span>
23
+ // <input class="us-form-input" type="text" id="email" placeholder="Email" />
24
+ // <span class="us-input-group__box">kWh</span>
25
+ // </div>
26
+
27
+ .us-input-group {
28
+ @include input-sizing();
29
+
30
+ position: relative;
31
+ display: table;
32
+ vertical-align: middle;
33
+ border-collapse: separate;
34
+
35
+ @include respond-to(tablet, true) {
36
+ display: inline-table;
37
+ }
38
+
39
+ .us-form-input {
40
+ position: relative;
41
+ display: table-cell;
42
+ float: left;
43
+ width: 100%;
44
+ height: 100%;
45
+
46
+ &--large {
47
+ height: 100%;
48
+ }
49
+
50
+ &:first-child {
51
+ border-right: 0;
52
+ }
53
+
54
+ &:last-child {
55
+ border-left: 0;
56
+ }
57
+
58
+ &:not(:first-child):not(:last-child) {
59
+ border-right: 0;
60
+ border-left: 0;
61
+ }
62
+ }
63
+
64
+ // scss-lint:disable NestingDepth
65
+ &:not(.us-input-group--disabled) {
66
+ &:hover .us-input-group__box,
67
+ &:hover:not(:focus-within) .us-form-input {
68
+ color: $c-dark-grey;
69
+ border-color: $c-form-element-border-hover;
70
+
71
+ [class^="us-icon--"],
72
+ .us-icon {
73
+ fill: $c-dark-grey;
74
+ }
75
+ }
76
+
77
+ &:focus-within .us-input-group__box {
78
+ color: $c-uswitch-navy;
79
+ border-color: $c-form-element-border-active;
80
+
81
+ [class^="us-icon--"],
82
+ .us-icon {
83
+ fill: $c-uswitch-navy;
84
+ }
85
+ }
86
+ }
87
+ }
88
+
89
+ .us-input-group--disabled {
90
+ .us-input-group__box {
91
+ @include form-element-disabled;
92
+
93
+ [class^="us-icon--"],
94
+ .us-icon {
95
+ opacity: .35;
96
+ }
97
+ }
98
+
99
+ .us-form-input {
100
+ @include form-element-disabled;
101
+ }
102
+ }
103
+
104
+ .us-input-group--blocked {
105
+ width: 100%;
106
+
107
+ .us-input-group__box {
108
+ width: 1%;
109
+ }
110
+ }
111
+
112
+ .us-input-group__box {
113
+ display: table-cell;
114
+ width: 1%;
115
+ padding-right: .5em;
116
+ padding-left: .5em;
117
+ color: $c-grey;
118
+ text-align: center;
119
+ white-space: nowrap;
120
+ vertical-align: middle;
121
+ background-color: $c-form-element-background;
122
+ border: 1px solid $c-form-element-border;
123
+ height: 100%;
124
+
125
+ @include respond-to(tablet, true) {
126
+ width: auto;
127
+ }
128
+
129
+ [class^="us-icon--"],
130
+ .us-icon {
131
+ fill: $c-grey;
132
+ vertical-align: middle;
133
+ }
134
+ }
135
+
136
+ .us-input-group__box:first-child {
137
+ border-right: 0;
138
+ }
139
+
140
+ .us-input-group__box:last-child {
141
+ border-left: 0;
142
+ }
143
+
144
+ .us-input-group__box:first-child,
145
+ .us-input-group .us-form-input:first-child {
146
+ border-top-right-radius: 0;
147
+ border-bottom-right-radius: 0;
148
+ }
149
+
150
+ .us-input-group__box:last-child,
151
+ .us-input-group .us-form-input:last-child {
152
+ border-bottom-left-radius: 0;
153
+ border-top-left-radius: 0;
154
+ }
@@ -0,0 +1,61 @@
1
+ // @page Pattern Library/Forms
2
+ // @name Inputs
3
+ //
4
+ // @description
5
+ // Our standard input styling across the website. This is specifically for text, email, password, search etc. type inputs.
6
+ //
7
+ // #### Best practices
8
+ // * Specifying an appropriate [type attribute](https://developer.mozilla.org/en/docs/Web/HTML/Element/Input#attr-type) (e.g. type="tel" for telephone number fields) will not only control what input is displayed, but also helps mobile devices select a keyboard layout suitable for entering that type of data.
9
+ // * Where appropriate use the [autocomplete attribute](https://developer.mozilla.org/en/docs/Web/HTML/Element/Input#attr-autocomplete) to make it easier for the browser to fill in fields on the users behalf, saving them time on lengthy forms.
10
+ //
11
+ // @state .us-form-input--large - Larger input style.
12
+ // @state .us-form-input--blocked - Fluid input style.
13
+ // @state .us-form-input--error - Visual feedback for when the input has an error.
14
+ // @state .us-form-input--success - Visual feedback for when success needs to be communicated to the user.
15
+ // @state .us-form-input--disabled - Inactive state for form inputs that can't be interacted with.
16
+ //
17
+ // @markup
18
+ // <input class="us-form-input {$modifiers}" type="text" placeholder="Placeholder">
19
+
20
+ $input-placeholder-color: $c-grey !default;
21
+
22
+ .us-form-input {
23
+ @extend %base-form-element;
24
+ @extend %input-background--normalise;
25
+ @include placeholder($input-placeholder-color);
26
+ @include input-sizing();
27
+ outline: 0;
28
+ box-shadow: none;
29
+
30
+ &:focus {
31
+ @include placeholder($c-uswitch-navy);
32
+ }
33
+
34
+ @if $media-query-legacy-support {
35
+ .ie8 & {
36
+ height: auto;
37
+ }
38
+ }
39
+ }
40
+
41
+ .us-form-input.large,
42
+ .us-form-input--large {
43
+ @include input-sizing(large);
44
+ }
45
+
46
+ .us-form-input--blocked {
47
+ width: 100%;
48
+ }
49
+
50
+ .us-form-input--error {
51
+ @extend %base-form-element--error;
52
+ }
53
+
54
+ .us-form-input--success {
55
+ @extend %base-form-element--success;
56
+ }
57
+
58
+ .us-form-input:disabled,
59
+ .us-form-input--disabled {
60
+ @include form-element-disabled;
61
+ }