idsk_frontend_toolkit 7.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (227) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/.gitmodules +3 -0
  4. data/.ruby-version +1 -0
  5. data/.travis/govuk_frontend_toolkit_gem_push.enc +0 -0
  6. data/.travis/govuk_frontend_toolkit_gem_push.pub +1 -0
  7. data/.travis.yml +23 -0
  8. data/CONTRIBUTING.md +13 -0
  9. data/Gemfile +3 -0
  10. data/LICENCE +20 -0
  11. data/README.md +61 -0
  12. data/Rakefile +10 -0
  13. data/app/assets/.gitignore +5 -0
  14. data/app/assets/.ruby-version +1 -0
  15. data/app/assets/.travis/README.md +23 -0
  16. data/app/assets/.travis/govuk_frontend_toolkit_push.enc +0 -0
  17. data/app/assets/.travis/govuk_frontend_toolkit_push.pub +1 -0
  18. data/app/assets/.travis.yml +18 -0
  19. data/app/assets/CHANGELOG.md +381 -0
  20. data/app/assets/CONTRIBUTING.md +23 -0
  21. data/app/assets/Gemfile +4 -0
  22. data/app/assets/Gemfile.lock +48 -0
  23. data/app/assets/Gruntfile.js +68 -0
  24. data/app/assets/LICENCE +20 -0
  25. data/app/assets/README.md +170 -0
  26. data/app/assets/VERSION.txt +1 -0
  27. data/app/assets/create-release.sh +38 -0
  28. data/app/assets/docs/analytics.md +270 -0
  29. data/app/assets/docs/functions.md +62 -0
  30. data/app/assets/docs/javascript.md +337 -0
  31. data/app/assets/docs/mixins.md +617 -0
  32. data/app/assets/images/accordion-arrow-2x.png +0 -0
  33. data/app/assets/images/accordion-arrow.png +0 -0
  34. data/app/assets/images/arrow-sprite.png +0 -0
  35. data/app/assets/images/crests/bis_crest_13px.png +0 -0
  36. data/app/assets/images/crests/bis_crest_13px_x2.png +0 -0
  37. data/app/assets/images/crests/bis_crest_18px.png +0 -0
  38. data/app/assets/images/crests/bis_crest_18px_x2.png +0 -0
  39. data/app/assets/images/crests/bis_crest_27px.png +0 -0
  40. data/app/assets/images/crests/bis_crest_27px_x2.png +0 -0
  41. data/app/assets/images/crests/coastguard_13px.png +0 -0
  42. data/app/assets/images/crests/coastguard_13px_x2.png +0 -0
  43. data/app/assets/images/crests/coastguard_18px.png +0 -0
  44. data/app/assets/images/crests/coastguard_18px_x2.png +0 -0
  45. data/app/assets/images/crests/coastguard_27px.png +0 -0
  46. data/app/assets/images/crests/coastguard_27px_x2.png +0 -0
  47. data/app/assets/images/crests/dit_crest_13px.png +0 -0
  48. data/app/assets/images/crests/dit_crest_13px_x2.png +0 -0
  49. data/app/assets/images/crests/dit_crest_18px.png +0 -0
  50. data/app/assets/images/crests/dit_crest_18px_x2.png +0 -0
  51. data/app/assets/images/crests/dit_crest_27px.png +0 -0
  52. data/app/assets/images/crests/dit_crest_27px_x2.png +0 -0
  53. data/app/assets/images/crests/hmrc_crest_13px.png +0 -0
  54. data/app/assets/images/crests/hmrc_crest_13px_x2.png +0 -0
  55. data/app/assets/images/crests/hmrc_crest_18px.png +0 -0
  56. data/app/assets/images/crests/hmrc_crest_18px_x2.png +0 -0
  57. data/app/assets/images/crests/hmrc_crest_27px.png +0 -0
  58. data/app/assets/images/crests/hmrc_crest_27px_x2.png +0 -0
  59. data/app/assets/images/crests/ho_crest_13px.png +0 -0
  60. data/app/assets/images/crests/ho_crest_13px_x2.png +0 -0
  61. data/app/assets/images/crests/ho_crest_18px.png +0 -0
  62. data/app/assets/images/crests/ho_crest_18px_x2.png +0 -0
  63. data/app/assets/images/crests/ho_crest_27px.png +0 -0
  64. data/app/assets/images/crests/ho_crest_27px_x2.png +0 -0
  65. data/app/assets/images/crests/mod_crest_13px.png +0 -0
  66. data/app/assets/images/crests/mod_crest_13px_x2.png +0 -0
  67. data/app/assets/images/crests/mod_crest_18px.png +0 -0
  68. data/app/assets/images/crests/mod_crest_18px_x2.png +0 -0
  69. data/app/assets/images/crests/mod_crest_27px.png +0 -0
  70. data/app/assets/images/crests/mod_crest_27px_x2.png +0 -0
  71. data/app/assets/images/crests/org_crest_13px.png +0 -0
  72. data/app/assets/images/crests/org_crest_13px_x2.png +0 -0
  73. data/app/assets/images/crests/org_crest_18px.png +0 -0
  74. data/app/assets/images/crests/org_crest_18px_x2.png +0 -0
  75. data/app/assets/images/crests/org_crest_27px.png +0 -0
  76. data/app/assets/images/crests/org_crest_27px_x2.png +0 -0
  77. data/app/assets/images/crests/portcullis_13px.png +0 -0
  78. data/app/assets/images/crests/portcullis_13px_x2.png +0 -0
  79. data/app/assets/images/crests/portcullis_18px.png +0 -0
  80. data/app/assets/images/crests/portcullis_18px_x2.png +0 -0
  81. data/app/assets/images/crests/portcullis_27px.png +0 -0
  82. data/app/assets/images/crests/portcullis_27px_x2.png +0 -0
  83. data/app/assets/images/crests/so_crest_13px.png +0 -0
  84. data/app/assets/images/crests/so_crest_13px_x2.png +0 -0
  85. data/app/assets/images/crests/so_crest_18px.png +0 -0
  86. data/app/assets/images/crests/so_crest_18px_x2.png +0 -0
  87. data/app/assets/images/crests/so_crest_27px.png +0 -0
  88. data/app/assets/images/crests/so_crest_27px_x2.png +0 -0
  89. data/app/assets/images/crests/ukaea_crest_13px.png +0 -0
  90. data/app/assets/images/crests/ukaea_crest_13px_x2.png +0 -0
  91. data/app/assets/images/crests/ukaea_crest_18px.png +0 -0
  92. data/app/assets/images/crests/ukaea_crest_18px_x2.png +0 -0
  93. data/app/assets/images/crests/ukaea_crest_27px.png +0 -0
  94. data/app/assets/images/crests/ukaea_crest_27px_x2.png +0 -0
  95. data/app/assets/images/crests/ukho_13px.png +0 -0
  96. data/app/assets/images/crests/ukho_13px_x2.png +0 -0
  97. data/app/assets/images/crests/ukho_18px.png +0 -0
  98. data/app/assets/images/crests/ukho_18px_x2.png +0 -0
  99. data/app/assets/images/crests/ukho_27px.png +0 -0
  100. data/app/assets/images/crests/ukho_27px_x2.png +0 -0
  101. data/app/assets/images/crests/wales_crest_13px.png +0 -0
  102. data/app/assets/images/crests/wales_crest_13px_x2.png +0 -0
  103. data/app/assets/images/crests/wales_crest_18px.png +0 -0
  104. data/app/assets/images/crests/wales_crest_18px_x2.png +0 -0
  105. data/app/assets/images/crests/wales_crest_27px.png +0 -0
  106. data/app/assets/images/crests/wales_crest_27px_x2.png +0 -0
  107. data/app/assets/images/icon-arrow-left.png +0 -0
  108. data/app/assets/images/icon-calendar-2x.png +0 -0
  109. data/app/assets/images/icon-calendar.png +0 -0
  110. data/app/assets/images/icon-file-download-2x.png +0 -0
  111. data/app/assets/images/icon-file-download.png +0 -0
  112. data/app/assets/images/icon-important-2x.png +0 -0
  113. data/app/assets/images/icon-important.png +0 -0
  114. data/app/assets/images/icon-information-2x.png +0 -0
  115. data/app/assets/images/icon-information.png +0 -0
  116. data/app/assets/images/icon-locator-2x.png +0 -0
  117. data/app/assets/images/icon-locator.png +0 -0
  118. data/app/assets/images/icon-pointer-2x.png +0 -0
  119. data/app/assets/images/icon-pointer-black-2x.png +0 -0
  120. data/app/assets/images/icon-pointer-black.png +0 -0
  121. data/app/assets/images/icon-pointer-indexed.png +0 -0
  122. data/app/assets/images/icon-pointer.png +0 -0
  123. data/app/assets/images/icon-search-2x.png +0 -0
  124. data/app/assets/images/icon-search.png +0 -0
  125. data/app/assets/images/icon-steps/icon-step-1-2x.png +0 -0
  126. data/app/assets/images/icon-steps/icon-step-1.png +0 -0
  127. data/app/assets/images/icon-steps/icon-step-10-2x.png +0 -0
  128. data/app/assets/images/icon-steps/icon-step-10.png +0 -0
  129. data/app/assets/images/icon-steps/icon-step-11-2x.png +0 -0
  130. data/app/assets/images/icon-steps/icon-step-11.png +0 -0
  131. data/app/assets/images/icon-steps/icon-step-12-2x.png +0 -0
  132. data/app/assets/images/icon-steps/icon-step-12.png +0 -0
  133. data/app/assets/images/icon-steps/icon-step-13-2x.png +0 -0
  134. data/app/assets/images/icon-steps/icon-step-13.png +0 -0
  135. data/app/assets/images/icon-steps/icon-step-14-2x.png +0 -0
  136. data/app/assets/images/icon-steps/icon-step-14.png +0 -0
  137. data/app/assets/images/icon-steps/icon-step-2-2x.png +0 -0
  138. data/app/assets/images/icon-steps/icon-step-2.png +0 -0
  139. data/app/assets/images/icon-steps/icon-step-3-2x.png +0 -0
  140. data/app/assets/images/icon-steps/icon-step-3.png +0 -0
  141. data/app/assets/images/icon-steps/icon-step-4-2x.png +0 -0
  142. data/app/assets/images/icon-steps/icon-step-4.png +0 -0
  143. data/app/assets/images/icon-steps/icon-step-5-2x.png +0 -0
  144. data/app/assets/images/icon-steps/icon-step-5.png +0 -0
  145. data/app/assets/images/icon-steps/icon-step-6-2x.png +0 -0
  146. data/app/assets/images/icon-steps/icon-step-6.png +0 -0
  147. data/app/assets/images/icon-steps/icon-step-7-2x.png +0 -0
  148. data/app/assets/images/icon-steps/icon-step-7.png +0 -0
  149. data/app/assets/images/icon-steps/icon-step-8-2x.png +0 -0
  150. data/app/assets/images/icon-steps/icon-step-8.png +0 -0
  151. data/app/assets/images/icon-steps/icon-step-9-2x.png +0 -0
  152. data/app/assets/images/icon-steps/icon-step-9.png +0 -0
  153. data/app/assets/images/player-icon-forward.png +0 -0
  154. data/app/assets/images/player-icon-pause.png +0 -0
  155. data/app/assets/images/player-icon-play.png +0 -0
  156. data/app/assets/images/player-icon-rewind.png +0 -0
  157. data/app/assets/images/player-icon-volume.png +0 -0
  158. data/app/assets/images/separator-2x.png +0 -0
  159. data/app/assets/images/separator.png +0 -0
  160. data/app/assets/javascripts/govuk/analytics/analytics.js +143 -0
  161. data/app/assets/javascripts/govuk/analytics/download-link-tracker.js +41 -0
  162. data/app/assets/javascripts/govuk/analytics/error-tracking.js +51 -0
  163. data/app/assets/javascripts/govuk/analytics/external-link-tracker.js +56 -0
  164. data/app/assets/javascripts/govuk/analytics/google-analytics-universal-tracker.js +166 -0
  165. data/app/assets/javascripts/govuk/analytics/govuk-tracker.js +134 -0
  166. data/app/assets/javascripts/govuk/analytics/mailto-link-tracker.js +38 -0
  167. data/app/assets/javascripts/govuk/analytics/print-intent.js +39 -0
  168. data/app/assets/javascripts/govuk/details.polyfill.js +240 -0
  169. data/app/assets/javascripts/govuk/modules/auto-track-event.js +30 -0
  170. data/app/assets/javascripts/govuk/modules.js +61 -0
  171. data/app/assets/javascripts/govuk/primary-links.js +57 -0
  172. data/app/assets/javascripts/govuk/selection-buttons.js +116 -0
  173. data/app/assets/javascripts/govuk/shim-links-with-button-role.js +34 -0
  174. data/app/assets/javascripts/govuk/show-hide-content.js +172 -0
  175. data/app/assets/javascripts/govuk/stick-at-top-when-scrolling.js +128 -0
  176. data/app/assets/javascripts/govuk/stop-scrolling-at-footer.js +139 -0
  177. data/app/assets/javascripts/govuk_toolkit.js +1 -0
  178. data/app/assets/javascripts/stageprompt.js +69 -0
  179. data/app/assets/javascripts/vendor/jquery/jquery.player.min.js +25 -0
  180. data/app/assets/javascripts/vendor/polyfills/bind.js +40 -0
  181. data/app/assets/package.json +25 -0
  182. data/app/assets/spec/manifest.js +41 -0
  183. data/app/assets/spec/stylesheets/_colour_contrast_spec.scss +12 -0
  184. data/app/assets/spec/support/LocalTestRunner.html +21 -0
  185. data/app/assets/spec/support/console-runner.js +102 -0
  186. data/app/assets/spec/support/load.js +47 -0
  187. data/app/assets/spec/support/run_jasmine_test.js +62 -0
  188. data/app/assets/spec/unit/analytics/analytics.spec.js +315 -0
  189. data/app/assets/spec/unit/analytics/download-link-tracker.spec.js +72 -0
  190. data/app/assets/spec/unit/analytics/error-tracking.spec.js +65 -0
  191. data/app/assets/spec/unit/analytics/external-link-tracker.spec.js +109 -0
  192. data/app/assets/spec/unit/analytics/google-analytics-universal-tracker.spec.js +180 -0
  193. data/app/assets/spec/unit/analytics/govuk-tracker.spec.js +171 -0
  194. data/app/assets/spec/unit/analytics/mailto-link-tracker.spec.js +62 -0
  195. data/app/assets/spec/unit/details.polyfill.spec.js +91 -0
  196. data/app/assets/spec/unit/modules/auto-track-event.spec.js +54 -0
  197. data/app/assets/spec/unit/modules.spec.js +93 -0
  198. data/app/assets/spec/unit/primary-links.spec.js +55 -0
  199. data/app/assets/spec/unit/selection-button.spec.js +761 -0
  200. data/app/assets/spec/unit/shim-links-with-button-role.spec.js +41 -0
  201. data/app/assets/spec/unit/show-hide-content.spec.js +306 -0
  202. data/app/assets/spec/unit/stick-at-top-when-scrolling.spec.js +137 -0
  203. data/app/assets/stylesheets/.gitkeep +0 -0
  204. data/app/assets/stylesheets/_colours.scss +2 -0
  205. data/app/assets/stylesheets/_conditionals.scss +81 -0
  206. data/app/assets/stylesheets/_css3.scss +90 -0
  207. data/app/assets/stylesheets/_device-pixels.scss +10 -0
  208. data/app/assets/stylesheets/_font_stack.scss +25 -0
  209. data/app/assets/stylesheets/_grid_layout.scss +136 -0
  210. data/app/assets/stylesheets/_helpers.scss +16 -0
  211. data/app/assets/stylesheets/_measurements.scss +14 -0
  212. data/app/assets/stylesheets/_shims.scss +55 -0
  213. data/app/assets/stylesheets/_typography.scss +249 -0
  214. data/app/assets/stylesheets/_url-helpers.scss +16 -0
  215. data/app/assets/stylesheets/colours/_organisation.scss +104 -0
  216. data/app/assets/stylesheets/colours/_palette.scss +77 -0
  217. data/app/assets/stylesheets/design-patterns/_alpha-beta.scss +67 -0
  218. data/app/assets/stylesheets/design-patterns/_breadcrumbs.scss +53 -0
  219. data/app/assets/stylesheets/design-patterns/_buttons.scss +145 -0
  220. data/app/assets/stylesheets/design-patterns/_media-player.scss +264 -0
  221. data/app/assets/trigger.sh +24 -0
  222. data/idsk_frontend_toolkit.gemspec +49 -0
  223. data/lib/idsk_frontend_toolkit/engine.rb +4 -0
  224. data/lib/idsk_frontend_toolkit/version.rb +5 -0
  225. data/lib/idsk_frontend_toolkit.rb +4 -0
  226. data/publish.sh +30 -0
  227. metadata +314 -0
@@ -0,0 +1,25 @@
1
+ // GOV.UK font stacks, referred to in typography.scss
2
+
3
+ // New Transport Light
4
+ $nta-light: "nta", Arial, sans-serif;
5
+ $nta-light-tabular: "ntatabularnumbers", $nta-light;
6
+
7
+ // Helvetica Regular
8
+ $helvetica-regular: "HelveticaNeue", "Helvetica Neue", "Arial", "Helvetica", sans-serif;
9
+
10
+ // Allow font stack to be overridden
11
+ // Not all apps using toolkit use New Transport
12
+ $toolkit-font-stack: $nta-light !default;
13
+ $toolkit-font-stack-tabular: $nta-light-tabular !default;
14
+
15
+ // Font reset for print
16
+ $print-reset: sans-serif;
17
+
18
+ // Fallback variable names after renaming previous uppercase names to be lowercase
19
+ // @deprecated, please only use the lowercase versions
20
+ // Make an exception to the linting as these are still used a lot
21
+ // scss-lint:disable NameFormat
22
+ $NTA-Light: $nta-light;
23
+ $NTA-Light-Tabular: $nta-light-tabular;
24
+ $Helvetica-Regular: $helvetica-regular;
25
+ $Print-reset: $print-reset;
@@ -0,0 +1,136 @@
1
+ @import 'conditionals';
2
+ @import 'css3';
3
+ @import 'measurements';
4
+ @import 'shims';
5
+
6
+ $site-width: 960px;
7
+
8
+ // An extendable selector to wrap your entire site content block
9
+ // It limits the sites width to be 960px wide and maintains consistent margins
10
+ // on the site of the page and shrinks the margins for mobile.
11
+ //
12
+ // Usage:
13
+ //
14
+ // #page-container {
15
+ // @extend %site-width-container;
16
+ // }
17
+
18
+ %site-width-container {
19
+ max-width: $site-width;
20
+
21
+ @include ie-lte(8) {
22
+ width: $site-width;
23
+ }
24
+
25
+ margin: 0 $gutter-half;
26
+
27
+ @include media(tablet) {
28
+ margin: 0 $gutter;
29
+ }
30
+
31
+ @include media($min-width: ($site-width + $gutter * 2)) {
32
+ margin: 0 auto;
33
+ }
34
+ }
35
+
36
+ // An extendable selector to outdent to the full page-width
37
+ // So that you can create elements that take up the gutters on the side of the
38
+ // page and butt up to the edge of the browser on smaller screens (rather than
39
+ // leaving a gutter at the edge of the page).
40
+ //
41
+ // Usage:
42
+ //
43
+ // .hero-image-container {
44
+ // @extend %outdent-to-full-width;
45
+ // }
46
+ %outdent-to-full-width {
47
+ margin-left: -$gutter-half;
48
+ margin-right: -$gutter-half;
49
+
50
+ @include media(tablet) {
51
+ margin-left: -$gutter;
52
+ margin-right: -$gutter;
53
+ }
54
+ }
55
+
56
+ // An extendable selector to define a row for grid columns to sit in
57
+ //
58
+ // Usage:
59
+ //
60
+ // .grid-row {
61
+ // @extend %grid-row;
62
+ // }
63
+
64
+ %grid-row {
65
+ @extend %contain-floats;
66
+ margin: 0 (-$gutter-half);
67
+ }
68
+
69
+ // A mixin for a grid column
70
+ // Creates a cross browser grid column with a standardised gutter between the
71
+ // columns. Widths should be defined as fractions of the full desktop width
72
+ // they want to fill. By default they break to become full width at tablet size
73
+ // but that can be configured to be desktop using the `$full-width` argument.
74
+ //
75
+ // Usage:
76
+ //
77
+ // .column-quarter {
78
+ // @include grid-column( 1/4 );
79
+ // }
80
+ // .column-half {
81
+ // @include grid-column( 1/2 );
82
+ // }
83
+ // .column-third {
84
+ // @include grid-column( 1/3 );
85
+ // }
86
+ // .column-two-thirds {
87
+ // @include grid-column( 2/3 );
88
+ // }
89
+ // .column-desktop-third {
90
+ // @include grid-column( 1/3, $full-width: desktop );
91
+ // }
92
+
93
+ @mixin grid-column($width, $full-width: tablet, $float: left) {
94
+
95
+ @include media($full-width) {
96
+ float: $float;
97
+ width: percentage($width);
98
+ }
99
+
100
+ @include ie-lte(7) {
101
+ width: (($site-width + $gutter) * $width) - $gutter;
102
+ }
103
+
104
+ padding: 0 $gutter-half;
105
+ @include box-sizing(border-box);
106
+ }
107
+
108
+
109
+ // OLD deprecated grid mixins
110
+ // You should migrate to the mixins above in the future
111
+
112
+ // Outer block sets a max width
113
+ @mixin outer-block {
114
+ @warn "The @mixin outer-block is deprecated and should be updated to use new grid helpers";
115
+ margin: 0 auto;
116
+ width: auto;
117
+ max-width: 960 + $gutter * 2;
118
+ @extend %contain-floats;
119
+
120
+ @include ie-lte(8) {
121
+ width: 1020px;
122
+ }
123
+ }
124
+
125
+ // Inner block sets either margin or padding
126
+ // to align content with header and footer
127
+ @mixin inner-block($margin-or-padding: padding) {
128
+ @warn "The @mixin inner-block is deprecated and should be updated to use new grid helpers";
129
+ #{$margin-or-padding}-left: $gutter-half;
130
+ #{$margin-or-padding}-right: $gutter-half;
131
+
132
+ @include media(tablet) {
133
+ #{$margin-or-padding}-left: $gutter;
134
+ #{$margin-or-padding}-right: $gutter;
135
+ }
136
+ }
@@ -0,0 +1,16 @@
1
+ // Base font size in pixels
2
+ $base-font-size: 16;
3
+
4
+ // Convert pixels to em
5
+ @function pem($px, $base: $base-font-size) {
6
+
7
+ @if (unitless($px)) {
8
+ $px: $px * 1px;
9
+ }
10
+
11
+ @if (unitless($base)) {
12
+ $base: $base * 1px;
13
+ }
14
+
15
+ @return $px / $base * 1em;
16
+ }
@@ -0,0 +1,14 @@
1
+ // Measurements used across GOV.UK
2
+
3
+ $full-width: 100%;
4
+ $one-quarter: $full-width / 4;
5
+ $one-third: $full-width / 3;
6
+ $half: $full-width / 2;
7
+ $two-thirds: ($full-width) - ($one-third);
8
+ $three-quarters: ($full-width) - ($one-quarter);
9
+
10
+ $gutter: 30px;
11
+ $gutter-one-quarter: $gutter / 4;
12
+ $gutter-one-third: $gutter / 3;
13
+ $gutter-half: $gutter / 2;
14
+ $gutter-two-thirds: $gutter - $gutter-one-third;
@@ -0,0 +1,55 @@
1
+ // Cross-browser shims
2
+ // Ways of normalising properties across browsers.
3
+
4
+ @import "conditionals";
5
+
6
+ // From: https://blog.mozilla.org/webdev/2009/02/20/cross-browser-inline-block/
7
+
8
+ // Usage:
9
+ //
10
+ // @include inline-block
11
+ // or
12
+ // @include inline-block("250px")
13
+ //
14
+ // which gives a min-height to the inline-block elements.
15
+
16
+
17
+ @mixin inline-block($min-height: "") {
18
+ display: -moz-inline-stack;
19
+ display: inline-block;
20
+
21
+ @if $min-height != "" {
22
+ min-height: $min-height;
23
+ }
24
+
25
+ @include ie-lte(7) {
26
+ zoom: 1;
27
+ display: inline;
28
+ }
29
+
30
+ @include ie(6) {
31
+ @if $min-height != "" {
32
+ height: $min-height;
33
+ }
34
+ }
35
+ }
36
+
37
+
38
+ // Contain floats usage:
39
+ //
40
+ // .this-has-floated-children {
41
+ // @extend %contain-floats;
42
+ // }
43
+
44
+
45
+ %contain-floats {
46
+ &:after {
47
+ content: "";
48
+ display: block;
49
+ clear: both;
50
+ }
51
+
52
+ @include ie-lte(7) {
53
+ zoom: 1;
54
+ }
55
+ }
@@ -0,0 +1,249 @@
1
+ @import 'font_stack';
2
+ @import 'conditionals';
3
+ @import 'device-pixels';
4
+ @import 'url-helpers';
5
+
6
+ // GOV.UK typography palettes
7
+
8
+ // ANATOMY OF A TYPE STYLE
9
+ // -----------------------
10
+ // These are a collection of graphic styles. They are deliberately
11
+ // abstracted from semantic HTML context to enable flexible re-use.
12
+ // Although there is a lot of duplication within this file, as long
13
+ // as you GZIP your CSS it shouldnt cause any bloat.
14
+
15
+
16
+ // CORE FONTS - NEW TRANSPORT
17
+
18
+ // Allow uppercase letters in font stack variable names
19
+ // scss-lint:disable NameFormat
20
+
21
+ $is-print: false !default;
22
+
23
+ @mixin _core-font-generator($font-size: 19px, $font-size-640: 16px, $font-size-print: 14pt, $line-height: (25 / 19), $line-height-640: (20 / 16), $tabular-numbers: false, $font-weight: 400) {
24
+ @if $tabular-numbers == true {
25
+ font-family: $toolkit-font-stack-tabular;
26
+ } @else if $is-print {
27
+ font-family: $Print-reset;
28
+ } @else {
29
+ font-family: $toolkit-font-stack;
30
+ @if $toolkit-font-stack == "$NTA-Light" {
31
+ @if $font-weight > 400 {
32
+ font-size-adjust: 0.525;
33
+ } @else {
34
+ font-size-adjust: 0.5;
35
+ }
36
+ }
37
+ }
38
+ font-weight: $font-weight;
39
+ text-transform: none;
40
+
41
+ @if $is-print {
42
+ font-size: $font-size-print;
43
+ line-height: $line-height;
44
+
45
+ } @else {
46
+ font-size: $font-size-640;
47
+ line-height: $line-height-640;
48
+
49
+ @include media(tablet) {
50
+ font-size: $font-size;
51
+ line-height: $line-height;
52
+ }
53
+ }
54
+ }
55
+ // scss-lint:enable NameFormat
56
+
57
+ @mixin core-80($line-height: (80 / 80), $line-height-640: (55 / 53), $tabular-numbers: false, $font-weight: 400) {
58
+ $font-size: 80px;
59
+ $font-size-640: 53px;
60
+ $font-size-print: 28pt;
61
+ @include _core-font-generator($font-size, $font-size-640, $font-size-print, $line-height, $line-height-640, $tabular-numbers, $font-weight);
62
+ }
63
+
64
+ @mixin core-48($line-height: (50 / 48), $line-height-640: (35 / 32), $tabular-numbers: false, $font-weight: 400) {
65
+ $font-size: 48px;
66
+ $font-size-640: 32px;
67
+ $font-size-print: 18pt;
68
+ @include _core-font-generator($font-size, $font-size-640, $font-size-print, $line-height, $line-height-640, $tabular-numbers, $font-weight);
69
+ }
70
+
71
+ @mixin core-36($line-height: (40 / 36), $line-height-640: (25 / 24), $tabular-numbers: false, $font-weight: 400) {
72
+ $font-size: 36px;
73
+ $font-size-640: 24px;
74
+ $font-size-print: 18pt;
75
+ @include _core-font-generator($font-size, $font-size-640, $font-size-print, $line-height, $line-height-640, $tabular-numbers, $font-weight);
76
+ }
77
+
78
+ @mixin core-27($line-height: (30 / 27), $line-height-640: (20 / 18), $tabular-numbers: false, $font-weight: 400) {
79
+ $font-size: 27px;
80
+ $font-size-640: 20px;
81
+ $font-size-print: 16pt;
82
+ @include _core-font-generator($font-size, $font-size-640, $font-size-print, $line-height, $line-height-640, $tabular-numbers, $font-weight);
83
+ }
84
+
85
+ @mixin core-24($line-height: (30 / 24), $line-height-640: (24 / 20), $tabular-numbers: false, $font-weight: 400) {
86
+ $font-size: 24px;
87
+ $font-size-640: 18px;
88
+ $font-size-print: 16pt;
89
+ @include _core-font-generator($font-size, $font-size-640, $font-size-print, $line-height, $line-height-640, $tabular-numbers, $font-weight);
90
+ }
91
+
92
+ @mixin core-19($line-height: (25 / 19), $line-height-640: (20 / 16), $tabular-numbers: false, $font-weight: 400) {
93
+ $font-size: 19px;
94
+ $font-size-640: 16px;
95
+ $font-size-print: 14pt;
96
+ @include _core-font-generator($font-size, $font-size-640, $font-size-print, $line-height, $line-height-640, $tabular-numbers, $font-weight);
97
+ }
98
+
99
+ @mixin core-16($line-height: (20 / 16), $line-height-640: (16 / 14), $tabular-numbers: false, $font-weight: 400) {
100
+ $font-size: 16px;
101
+ $font-size-640: 14px;
102
+ $font-size-print: 12pt;
103
+ @include _core-font-generator($font-size, $font-size-640, $font-size-print, $line-height, $line-height-640, $tabular-numbers, $font-weight);
104
+ }
105
+
106
+ @mixin core-14($line-height: (20 / 14), $line-height-640: (15 / 12), $tabular-numbers: false, $font-weight: 400) {
107
+ $font-size: 14px;
108
+ $font-size-640: 12px;
109
+ $font-size-print: 11pt;
110
+ @include _core-font-generator($font-size, $font-size-640, $font-size-print, $line-height, $line-height-640, $tabular-numbers, $font-weight);
111
+ }
112
+
113
+ @mixin bold-80($line-height: (80 / 80), $line-height-640: (55 / 53), $tabular-numbers: false) {
114
+ @include core-80($line-height, $line-height-640, $tabular-numbers: $tabular-numbers, $font-weight: 700);
115
+ }
116
+
117
+ @mixin bold-48($line-height: (50 / 48), $line-height-640: (35 / 32), $tabular-numbers: false) {
118
+ @include core-48($line-height, $line-height-640, $tabular-numbers: $tabular-numbers, $font-weight: 700);
119
+ }
120
+
121
+ @mixin bold-36($line-height: (40 / 36), $line-height-640: (25 / 24), $tabular-numbers: false) {
122
+ @include core-36($line-height, $line-height-640, $tabular-numbers: $tabular-numbers, $font-weight: 700);
123
+ }
124
+
125
+ @mixin bold-27($line-height: (30 / 27), $line-height-640: (20 / 18), $tabular-numbers: false) {
126
+ @include core-27($line-height, $line-height-640, $tabular-numbers: $tabular-numbers, $font-weight: 700);
127
+ }
128
+
129
+ @mixin bold-24($line-height: (30 / 24), $line-height-640: (24 / 20), $tabular-numbers: false) {
130
+ @include core-24($line-height, $line-height-640, $tabular-numbers: $tabular-numbers, $font-weight: 700);
131
+ }
132
+
133
+ @mixin bold-19($line-height: (25 / 19), $line-height-640: (20 / 16), $tabular-numbers: false) {
134
+ @include core-19($line-height, $line-height-640, $tabular-numbers: $tabular-numbers, $font-weight: 700);
135
+ }
136
+
137
+ @mixin bold-16($line-height: (20 / 16), $line-height-640: (16 / 14), $tabular-numbers: false) {
138
+ @include core-16($line-height, $line-height-640, $tabular-numbers: $tabular-numbers, $font-weight: 700);
139
+ }
140
+
141
+ @mixin bold-14($line-height: (20 / 14), $line-height-640: (15 / 12), $tabular-numbers: false) {
142
+ @include core-14($line-height, $line-height-640, $tabular-numbers: $tabular-numbers, $font-weight: 700);
143
+ }
144
+
145
+ @mixin heading-80($tabular-numbers: false) {
146
+ @include core-80($tabular-numbers: $tabular-numbers);
147
+
148
+ display: block;
149
+
150
+ padding-top: 8px;
151
+ padding-bottom: 7px;
152
+
153
+ @include media(tablet) {
154
+ padding-top: 6px;
155
+ padding-bottom: 14px;
156
+ }
157
+ }
158
+
159
+ @mixin heading-48($tabular-numbers: false) {
160
+ @include core-48($tabular-numbers: $tabular-numbers);
161
+
162
+ display: block;
163
+
164
+ padding-top: 10px;
165
+ padding-bottom: 10px;
166
+
167
+ @include media(tablet) {
168
+ padding-top: 7px;
169
+ padding-bottom: 13px;
170
+ }
171
+ }
172
+
173
+ @mixin heading-36($tabular-numbers: false) {
174
+ @include core-36($tabular-numbers: $tabular-numbers);
175
+
176
+ display: block;
177
+
178
+ padding-top: 8px;
179
+ padding-bottom: 7px;
180
+
181
+ @include media(tablet) {
182
+ padding-top: 6px;
183
+ padding-bottom: 9px;
184
+ }
185
+ }
186
+
187
+ @mixin heading-27($tabular-numbers: false) {
188
+ @include core-27($tabular-numbers: $tabular-numbers);
189
+
190
+ display: block;
191
+
192
+ padding-top: 8px;
193
+ padding-bottom: 7px;
194
+
195
+ @include media(tablet) {
196
+ padding-top: 4px;
197
+ padding-bottom: 6px;
198
+ }
199
+ }
200
+
201
+ @mixin heading-24($tabular-numbers: false) {
202
+ @include core-24($tabular-numbers: $tabular-numbers);
203
+
204
+ display: block;
205
+
206
+ padding-top: 9px;
207
+ padding-bottom: 6px;
208
+
209
+ @include media(tablet) {
210
+ padding-top: 6px;
211
+ padding-bottom: 4px;
212
+ }
213
+ }
214
+
215
+ @mixin copy-19($tabular-numbers: false) {
216
+ @include core-19($tabular-numbers: $tabular-numbers);
217
+
218
+ padding-top: 2px;
219
+ padding-bottom: 8px;
220
+
221
+ @include media(tablet) {
222
+ padding-top: 0;
223
+ padding-bottom: 5px;
224
+ }
225
+ }
226
+
227
+ @mixin copy-16($tabular-numbers: false) {
228
+ @include core-16($tabular-numbers: $tabular-numbers);
229
+
230
+ padding-top: 8px;
231
+ padding-bottom: 7px;
232
+
233
+ @include media(tablet) {
234
+ padding-top: 5px;
235
+ padding-bottom: 5px;
236
+ }
237
+ }
238
+
239
+ @mixin copy-14($tabular-numbers: false) {
240
+ @include core-14($tabular-numbers: $tabular-numbers);
241
+
242
+ padding-top: 8px;
243
+ padding-bottom: 7px;
244
+
245
+ @include media(tablet) {
246
+ padding-top: 5px;
247
+ padding-bottom: 5px;
248
+ }
249
+ }
@@ -0,0 +1,16 @@
1
+ // URL Helpers
2
+
3
+ $path: false !default;
4
+
5
+ // A function which can either output a image-url to be used with the Rails
6
+ // Asset Pipeline or Compass or a plain url which is prefixed with a defined
7
+ // path variable.
8
+ @function file-url($file) {
9
+ $url: '';
10
+ @if $path {
11
+ $url: url($path + $file);
12
+ } @else {
13
+ $url: image-url($file);
14
+ }
15
+ @return $url;
16
+ }
@@ -0,0 +1,104 @@
1
+ // We use `websafe` to mean strong enough contrast against white to
2
+ // be used for copy and meet the AAA (large text) and AA (smaller
3
+ // copy) WCAG guidelines.
4
+
5
+ $attorney-generals-office: #9f1888;
6
+ $attorney-generals-office-websafe: #a03a88;
7
+ $cabinet-office: #005abb;
8
+ $cabinet-office-websafe: #347da4;
9
+ $civil-service: #af292e;
10
+ $department-for-business-innovation-skills: #003479;
11
+ $department-for-business-innovation-skills-websafe: #347da4;
12
+ $department-for-communities-and-local-government: #00857e;
13
+ $department-for-communities-and-local-government-websafe: #37836e;
14
+ $department-for-culture-media-sport: #d40072;
15
+ $department-for-culture-media-sport-websafe: #a03155;
16
+ $department-for-education: #003a69;
17
+ $department-for-education-websafe: #347ca9;
18
+ $department-for-environment-food-rural-affairs: #00a33b;
19
+ $department-for-environment-food-rural-affairs-websafe: #008938;
20
+ $department-for-international-development: #002878;
21
+ $department-for-international-development-websafe: #405e9a;
22
+ $department-for-international-trade: #CF102D;
23
+ $department-for-international-trade-websafe: $link-colour;
24
+ $department-for-transport: #006c56;
25
+ $department-for-transport-websafe: #398373;
26
+ $department-for-work-pensions: #00beb7;
27
+ $department-for-work-pensions-websafe: #37807b;
28
+ $department-of-energy-climate-change: #009ddb;
29
+ $department-of-energy-climate-change-websafe: #2b7cac;
30
+ $department-of-health: #00ad93;
31
+ $department-of-health-websafe: #39836e;
32
+ $foreign-commonwealth-office: #003e74;
33
+ $foreign-commonwealth-office-websafe: #406e97;
34
+ $government-equalities-office: #9325b2;
35
+ $hm-government: #0076c0;
36
+ $hm-government-websafe: #347da4;
37
+ $hm-revenue-customs: #009390;
38
+ $hm-revenue-customs-websafe: #008670;
39
+ $hm-treasury: #af292e;
40
+ $hm-treasury-websafe: #832322;
41
+ $home-office: #9325b2;
42
+ $home-office-websafe: #9440b2;
43
+ $ministry-of-defence: #4d2942;
44
+ $ministry-of-defence-websafe: #5a5c92;
45
+ $ministry-of-justice: #231f20;
46
+ $ministry-of-justice-websafe: #5a5c92;
47
+ $northern-ireland-office: #002663;
48
+ $northern-ireland-office-websafe: #3e598c;
49
+ $office-of-the-advocate-general-for-scotland: #002663;
50
+ $office-of-the-advocate-general-for-scotland-websafe: $link-colour;
51
+ $office-of-the-leader-of-the-house-of-lords: #9c132e;
52
+ $office-of-the-leader-of-the-house-of-lords-websafe: #c2395d;
53
+ $scotland-office: #002663;
54
+ $scotland-office-websafe: #405c8a;
55
+ // Note: the 'the' part here will get dropped
56
+ $the-office-of-the-leader-of-the-house-of-commons: #317023;
57
+ $the-office-of-the-leader-of-the-house-of-commons-websafe: #005f8f;
58
+ $uk-export-finance: #005747;
59
+ $uk-export-finance-websafe: $link-colour;
60
+ $uk-trade-investment: #C80651;
61
+ $uk-trade-investment-websafe: $link-colour;
62
+ $wales-office: #a33038;
63
+ $wales-office-websafe: #7a242a;
64
+
65
+ // All organisation colours in a list
66
+ // (class_name, brand colour, WCAG acceptible text colour)
67
+ //
68
+ // example usage:
69
+ // @each $organisation in $all-organisation-brand-colours {
70
+ // .#{nth($organisation, 1)} {
71
+ // border-color: nth($organisation, 2);
72
+ // }
73
+ // }
74
+
75
+ $all-organisation-brand-colours:
76
+ 'attorney-generals-office' $attorney-generals-office $attorney-generals-office-websafe,
77
+ 'cabinet-office' $cabinet-office $cabinet-office-websafe,
78
+ 'civil-service' $civil-service $civil-service,
79
+ 'department-for-business-innovation-skills' $department-for-business-innovation-skills $department-for-business-innovation-skills-websafe,
80
+ 'department-for-communities-and-local-government' $department-for-communities-and-local-government $department-for-communities-and-local-government-websafe,
81
+ 'department-for-culture-media-sport' $department-for-culture-media-sport $department-for-culture-media-sport-websafe,
82
+ 'department-for-education' $department-for-education $department-for-education-websafe,
83
+ 'department-for-environment-food-rural-affairs' $department-for-environment-food-rural-affairs $department-for-environment-food-rural-affairs-websafe,
84
+ 'department-for-international-development' $department-for-international-development $department-for-international-development-websafe,
85
+ 'department-for-international-trade' $department-for-international-trade $department-for-international-trade-websafe,
86
+ 'department-for-transport' $department-for-transport $department-for-transport-websafe,
87
+ 'department-for-work-pensions' $department-for-work-pensions $department-for-work-pensions-websafe,
88
+ 'department-of-energy-climate-change' $department-of-energy-climate-change $department-of-energy-climate-change-websafe,
89
+ 'department-of-health' $department-of-health $department-of-health-websafe,
90
+ 'foreign-commonwealth-office' $foreign-commonwealth-office $foreign-commonwealth-office-websafe,
91
+ 'hm-government' $hm-government $hm-government-websafe,
92
+ 'hm-revenue-customs' $hm-revenue-customs $hm-revenue-customs-websafe,
93
+ 'hm-treasury' $hm-treasury $hm-treasury-websafe,
94
+ 'home-office' $home-office $home-office-websafe,
95
+ 'ministry-of-defence' $ministry-of-defence $ministry-of-defence-websafe,
96
+ 'ministry-of-justice' $ministry-of-justice $ministry-of-justice-websafe,
97
+ 'northern-ireland-office' $northern-ireland-office $northern-ireland-office-websafe,
98
+ 'office-of-the-advocate-general-for-scotland' $office-of-the-advocate-general-for-scotland $office-of-the-advocate-general-for-scotland-websafe,
99
+ 'office-of-the-leader-of-the-house-of-lords' $office-of-the-leader-of-the-house-of-lords $office-of-the-leader-of-the-house-of-lords-websafe,
100
+ 'scotland-office' $scotland-office $scotland-office-websafe,
101
+ 'the-office-of-the-leader-of-the-house-of-commons' $the-office-of-the-leader-of-the-house-of-commons $the-office-of-the-leader-of-the-house-of-commons-websafe,
102
+ 'uk-export-finance' $uk-export-finance $uk-export-finance-websafe,
103
+ 'uk-trade-investment' $uk-trade-investment $uk-trade-investment-websafe,
104
+ 'wales-office' $wales-office $wales-office-websafe;
@@ -0,0 +1,77 @@
1
+ // Brand colours
2
+ $govuk-blue: #005ea5;
3
+ $mainstream-brand: $govuk-blue;
4
+
5
+ // Standard palette, colours
6
+ $purple: #2e358b;
7
+ $purple-50: #9799c4;
8
+ $purple-25: #d5d6e7;
9
+ $mauve: #6f72af;
10
+ $mauve-50: #b7b9d7;
11
+ $mauve-25: #e2e2ef;
12
+ $fuschia: #912b88;
13
+ $fuschia-50: #c994c3;
14
+ $fuschia-25: #e9d4e6;
15
+ $pink: #d53880;
16
+ $pink-50: #eb9bbe;
17
+ $pink-25: #f6d7e5;
18
+ $baby-pink: #f499be;
19
+ $baby-pink-50: #faccdf;
20
+ $baby-pink-25: #fdebf2;
21
+ $red: #b10e1e;
22
+ $red-50: #d9888c;
23
+ $red-25: #efcfd1;
24
+ $mellow-red: #df3034;
25
+ $mellow-red-50: #ef9998;
26
+ $mellow-red-25: #f9d6d6;
27
+ $orange: #f47738;
28
+ $orange-50: #fabb96;
29
+ $orange-25: #fde4d4;
30
+ $brown: #b58840;
31
+ $brown-50: #dac39c;
32
+ $brown-25: #f0e7d7;
33
+ $yellow: #ffbf47;
34
+ $yellow-50: #ffdf94;
35
+ $yellow-25: #fff2d3;
36
+ $grass-green: #85994b;
37
+ $grass-green-50: #c2cca3;
38
+ $grass-green-25: #e7ebda;
39
+ $green: #006435;
40
+ $green-50: #7fb299;
41
+ $green-25: #cce0d6;
42
+ $turquoise: #28a197;
43
+ $turquoise-50: #95d0cb;
44
+ $turquoise-25: #d5ecea;
45
+ $light-blue: #2b8cc4;
46
+ $light-blue-50: #96c6e2;
47
+ $light-blue-25: #d5e8f3;
48
+
49
+ // Standard palette, greys
50
+ $black: #0b0c0c;
51
+ $grey-1: #6f777b;
52
+ $grey-2: #bfc1c3;
53
+ $grey-3: #dee0e2;
54
+ $grey-4: #f8f8f8;
55
+ $white: #fff;
56
+
57
+ // Semantic colour names
58
+ $link-colour: $govuk-blue;
59
+ $link-active-colour: $light-blue;
60
+ $link-hover-colour: $light-blue;
61
+ $link-visited-colour: #4c2c92;
62
+ $button-colour: #00823b;
63
+ $focus-colour: $yellow;
64
+ $text-colour: $black; // Standard text colour
65
+ $secondary-text-colour: $grey-1; // Section headers, help text etc.
66
+ $border-colour: $grey-2; // Borders, seperators, rules, keylines etc.
67
+ $panel-colour: $grey-3; // Related links panel, page footer etc.
68
+ $canvas-colour: $grey-4; // Page background
69
+ $highlight-colour: $grey-4; // Table stripes etc.
70
+ $page-colour: $white; // The page
71
+ $discovery-colour: $govuk-blue; // Discovery badges and banners
72
+ $alpha-colour: $govuk-blue; // Alpha badges and banners
73
+ $beta-colour: $govuk-blue; // Beta badges and banners
74
+ $live-colour: $grass-green; // Live badges and banners
75
+ $banner-text-colour: #000; // Text colour for Alpha & Beta banners
76
+ $error-colour: $red; // Error text and border colour
77
+ $error-background: #fef7f7; // Error background colour