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,67 @@
1
+ @import "../colours";
2
+ @import "../typography";
3
+ @import "../shims";
4
+ @import "../grid_layout";
5
+
6
+ // Phase banner usage:
7
+ //
8
+ // .phase-banner {
9
+ // @include phase-banner();
10
+ // }
11
+
12
+ @mixin phase-banner($state: '') {
13
+
14
+ @if $state != '' {
15
+ @warn 'Passing a phase to the alpha/beta banners is deprecated';
16
+ }
17
+
18
+ padding: 10px 0 8px;
19
+
20
+ @include media(tablet) {
21
+ padding-bottom: 10px;
22
+ }
23
+
24
+ border-bottom: 1px solid $border-colour;
25
+
26
+ p {
27
+ display: table;
28
+ margin: 0;
29
+ color: $banner-text-colour;
30
+ @include core-16;
31
+ }
32
+
33
+ .phase-tag {
34
+ @include phase-tag();
35
+ }
36
+
37
+ span {
38
+ display: table-cell;
39
+ vertical-align: baseline;
40
+ }
41
+ }
42
+
43
+ // Phase tag usage:
44
+ //
45
+ // Alpha or beta
46
+ // .phase-tag {
47
+ // @include phase-tag;
48
+ // }
49
+
50
+ @mixin phase-tag($state: '') {
51
+
52
+ @if $state != '' {
53
+ @warn 'Passing a phase to the phase-tag mixin is deprecated';
54
+ }
55
+
56
+ @include inline-block;
57
+ margin: 0 8px 0 0;
58
+ padding: 2px 5px 0;
59
+
60
+ @include bold-16($line-height: 20 / 16);
61
+ text-transform: uppercase;
62
+ letter-spacing: 1px;
63
+ text-decoration: none;
64
+
65
+ color: $white;
66
+ background-color: $govuk-blue;
67
+ }
@@ -0,0 +1,53 @@
1
+ @import "../colours";
2
+ @import "../typography";
3
+ @import "../shims";
4
+ @import "../url-helpers";
5
+
6
+ // Breadcrumbs usage:
7
+ //
8
+ // .breadcrumbs {
9
+ // @include breadcrumbs;
10
+ // }
11
+
12
+ @mixin breadcrumbs {
13
+
14
+ padding-top: 0.75em;
15
+ padding-bottom: 0.75em;
16
+
17
+ ol {
18
+ @extend %contain-floats;
19
+ }
20
+
21
+ li {
22
+ @include core-16;
23
+ float: left;
24
+
25
+ background-image: file-url("separator.png");
26
+
27
+ @include device-pixel-ratio() {
28
+ background-image: file-url("separator-2x.png");
29
+ background-size: 6px 11px;
30
+ }
31
+
32
+ background-position: 0% 50%;
33
+ background-repeat: no-repeat;
34
+
35
+ list-style: none;
36
+
37
+ margin-left: 0.6em;
38
+ margin-bottom: 0.4em;
39
+ padding-left: 0.9em;
40
+
41
+ &:first-child {
42
+ background-image: none;
43
+ margin-left: 0;
44
+ padding-left: 0;
45
+ }
46
+
47
+ }
48
+
49
+ a {
50
+ color: $text-colour;
51
+ }
52
+
53
+ }
@@ -0,0 +1,145 @@
1
+ @import '../shims';
2
+ @import '../css3';
3
+ @import '../conditionals';
4
+ @import '../colours';
5
+
6
+ // Mixin and defaults for making buttons on GOV.UK services.
7
+
8
+ // For guidance, see: https://www.gov.uk/service-manual/design-and-content/resources/buttons.html
9
+
10
+ // Example usage:
11
+
12
+ // .button{
13
+ // @include button;
14
+ // }
15
+ // .button-secondary{
16
+ // @include button($grey-3);
17
+ // }
18
+ // .button-warning{
19
+ // @include button($red);
20
+ // }
21
+
22
+
23
+ @mixin button($colour: $button-colour) {
24
+ // Colour
25
+ background-color: $colour;
26
+
27
+ // Size and shape
28
+ position: relative;
29
+ @include inline-block;
30
+ padding: .526315em .789473em .263157em; // 10px 15px 5px
31
+ border: none;
32
+ @include border-radius(0);
33
+ outline: 1px solid transparent; // keep some button appearance when changing colour settings in browsers
34
+ outline-offset: -1px; // fixes bug in Safari that outline width on focus is not overwritten, is reset to 0 on focus in govuk_template
35
+ -webkit-appearance: none;
36
+
37
+ // Bottom edge effect
38
+ @include box-shadow(0 2px 0 darken($colour, 15%));
39
+ @include ie-lte(8) {
40
+ border-bottom: 2px solid darken($colour, 15%);
41
+ }
42
+
43
+ // Text
44
+ font-size: 1em; // inherit from parent
45
+ line-height: 1.25;
46
+ text-decoration: none;
47
+ -webkit-font-smoothing: antialiased;
48
+
49
+ // Interaction
50
+ cursor: pointer;
51
+
52
+ &:visited {
53
+ background-color: $colour;
54
+ }
55
+
56
+ &:hover,
57
+ &:focus {
58
+ background-color: darken($colour, 5%);
59
+ }
60
+
61
+ &:active {
62
+ top: 2px;
63
+ @include box-shadow(0 0 0 $colour);
64
+ }
65
+
66
+ // Disabled button styles
67
+ &.disabled,
68
+ &[disabled="disabled"],
69
+ &[disabled] {
70
+ @include opacity(0.5);
71
+ &:hover {
72
+ cursor: default;
73
+ background-color: $colour;
74
+ }
75
+
76
+ &:active {
77
+ top: 0;
78
+ @include box-shadow(0 2px 0 darken($colour, 15%));
79
+ @include ie-lte(8) {
80
+ border-bottom: 2px solid darken($colour, 15%);
81
+ }
82
+ }
83
+ }
84
+
85
+ // Set text colour depending on background colour
86
+ @if lightness($colour) < 50% {
87
+ color: $white;
88
+
89
+ &:link,
90
+ &:link:focus,
91
+ &:hover,
92
+ &:focus,
93
+ &:visited {
94
+ color: $white;
95
+ }
96
+ } @else {
97
+ color: $text-colour;
98
+
99
+ &:link,
100
+ &:link:focus,
101
+ &:hover,
102
+ &:focus,
103
+ &:visited {
104
+ color: $text-colour;
105
+ }
106
+ }
107
+
108
+ // making the click target bigger than the button
109
+ // (and fill the space made when the button moves)
110
+ &:before {
111
+ content: "";
112
+ height: 110%;
113
+ width: 100%;
114
+ display: block;
115
+ background: transparent;
116
+ position: absolute;
117
+ top: 0;
118
+ left: 0;
119
+ }
120
+
121
+ &:active:before {
122
+ top: -10%;
123
+ height: 120%;
124
+
125
+ // IE6 ignores the :before psuedo-class but applies the block to :active
126
+ // It therefore needs to be reset
127
+ @include ie(6) {
128
+ top: auto;
129
+ height: 100%;
130
+ }
131
+ }
132
+
133
+ // Fixes a bug where IE puts a black border around certain elements
134
+ @include ie-lte(8) {
135
+ &[type="submit"],
136
+ &[type="reset"],
137
+ &[type="button"] {
138
+ filter: chroma(color = $black);
139
+ }
140
+
141
+ &[type=submit].button {
142
+ filter: none;
143
+ }
144
+ }
145
+ }
@@ -0,0 +1,264 @@
1
+ @import '../colours';
2
+ @import '../url-helpers';
3
+
4
+ // Player overrides
5
+
6
+ @mixin media-player {
7
+ display: block;
8
+ overflow: hidden;
9
+ margin: 30px 0;
10
+
11
+ &.player-wide {
12
+ min-width: 580px;
13
+ }
14
+
15
+ span {
16
+ display: block;
17
+ margin: 0;
18
+ padding: 0;
19
+ }
20
+
21
+ .video {
22
+ position: relative;
23
+ z-index: 3000;
24
+
25
+ iframe {
26
+ display: block;
27
+ }
28
+ }
29
+
30
+ .logo {
31
+ display: none;
32
+ }
33
+
34
+ .control-bar {
35
+ position: relative;
36
+ width: 100%;
37
+ height: 60px;
38
+ border-bottom: 1px solid $border-colour;
39
+
40
+ button {
41
+ background: transparent;
42
+ border: none;
43
+ padding: 0;
44
+ cursor: pointer;
45
+ }
46
+
47
+ a,
48
+ button {
49
+ &:focus {
50
+ background-color: $focus-colour;
51
+ outline: none;
52
+ }
53
+ }
54
+
55
+ .player-controls {
56
+ .play,
57
+ .pause {
58
+ position: absolute;
59
+ bottom: 0;
60
+ left: 0;
61
+ width: 40px;
62
+ height: 40px;
63
+ overflow: hidden;
64
+ text-indent: -5000%;
65
+ background-repeat: no-repeat;
66
+ background-position: center left;
67
+ }
68
+
69
+ .play {
70
+ background-image: file-url('player-icon-play.png');
71
+ }
72
+
73
+ .pause {
74
+ background-image: file-url('player-icon-pause.png');
75
+ }
76
+
77
+ .rewind,
78
+ .forward {
79
+ position: absolute;
80
+ top: 0;
81
+ z-index: 30;
82
+ height: 20px;
83
+ width: 40px;
84
+ overflow: hidden;
85
+ text-indent: -5000%;
86
+ background-repeat: no-repeat;
87
+ background-position: center left;
88
+ }
89
+
90
+ .rewind {
91
+ left: 0;
92
+ background-image: file-url('player-icon-rewind.png');
93
+ }
94
+
95
+ .forward {
96
+ left: 100%;
97
+ margin-left: -40px;
98
+ background-image: file-url('player-icon-forward.png');
99
+ }
100
+ }
101
+
102
+ .volume-controls {
103
+ position: absolute;
104
+ bottom: 0;
105
+ right: 0;
106
+ height: 40px;
107
+ width: 180px;
108
+ overflow: visible;
109
+
110
+ .mute {
111
+ position: absolute;
112
+ bottom: 0;
113
+ right: 0;
114
+ height: 40px;
115
+ width: 50px;
116
+ padding-top: 1px;
117
+ font-size: 14px;
118
+ line-height: 40px;
119
+ text-align: center;
120
+ }
121
+
122
+ .muted {
123
+ color: $light-blue;
124
+
125
+ ~ * {
126
+ opacity: 0.333;
127
+ }
128
+
129
+ ~ .vol-display {
130
+ text-decoration: line-through;
131
+ }
132
+ }
133
+
134
+ .muted::after {
135
+ content: "d";
136
+ }
137
+
138
+ .vol-down,
139
+ .vol-up {
140
+ position: absolute;
141
+ bottom: 0;
142
+ height: 40px;
143
+ width: 60px;
144
+ font-size: 24px;
145
+ line-height: 40px;
146
+ text-align: center;
147
+ z-index: 10;
148
+
149
+ &:hover,
150
+ &:focus {
151
+ color: $light-blue;
152
+ background-color: transparent;
153
+ outline: none;
154
+
155
+ &:before {
156
+ background-color: $focus-colour;
157
+ }
158
+ }
159
+
160
+ &:before {
161
+ content: "";
162
+ display: inline-block;
163
+ position: absolute;
164
+ width: 50%;
165
+ height: 100%;
166
+ z-index: -1;
167
+ }
168
+ }
169
+
170
+ .vol-down {
171
+ text-align: left;
172
+ padding-left: 10px;
173
+ left: 0;
174
+
175
+ &:before {
176
+ left: 0;
177
+ }
178
+ }
179
+
180
+ .vol-up {
181
+ text-align: right;
182
+ padding-right: 10px;
183
+ left: 65px;
184
+
185
+ &:before {
186
+ right: 0;
187
+ }
188
+ }
189
+
190
+ .vol-display {
191
+ position: absolute;
192
+ bottom: 0;
193
+ left: 25px;
194
+ height: 40px;
195
+ width: 0;
196
+ padding-left: 35px;
197
+ overflow: visible;
198
+ font-size: 14px;
199
+ font-weight: bold;
200
+ line-height: 40px;
201
+ background-repeat: no-repeat;
202
+ background-position: center left;
203
+ background-image: file-url('player-icon-volume.png');
204
+ }
205
+ }
206
+
207
+ .current-time {
208
+ position: absolute;
209
+ bottom: 0;
210
+ left: 45px;
211
+ height: 40px;
212
+ font-size: 14px;
213
+ line-height: 40px;
214
+ font-weight: bold;
215
+ }
216
+
217
+ .duration-time {
218
+ display: none;
219
+ position: absolute;
220
+ bottom: 0;
221
+ right: 10px;
222
+ height: 40px;
223
+ line-height: 40px;
224
+ font-size: 16px;
225
+ font-weight: bold;
226
+ }
227
+
228
+ .ui-slider {
229
+ position: absolute;
230
+ top: 0;
231
+ right: 0;
232
+ width: 100%;
233
+ height: 20px;
234
+ overflow: hidden;
235
+ background: $border-colour;
236
+
237
+ .progress-bar {
238
+ position: absolute;
239
+ top: 0;
240
+ left: 0;
241
+ height: 100%;
242
+ padding-bottom: 1px;
243
+ background: $light-blue;
244
+ }
245
+
246
+ .ui-slider-handle {
247
+ position: absolute;
248
+ top: 0;
249
+ height: 100%;
250
+ padding-bottom: 1px;
251
+ width: 20px;
252
+ // Allow RGBA here, it is the only colour value with alpha transparency
253
+ // scss-lint:disable ColorVariable
254
+ color: rgba(0, 0, 0, 0.5);
255
+ z-index: 10;
256
+ }
257
+ }
258
+ }
259
+
260
+ .ui-helper-hidden-accessible {
261
+ position: absolute;
262
+ left: -5000%;
263
+ }
264
+ }
@@ -0,0 +1,24 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ PAYLOAD='{
6
+ "request": {
7
+ "branch": "master"
8
+ }}'
9
+
10
+ curl -s -X POST \
11
+ -H "Content-Type: application/json" \
12
+ -H "Accept: application/json" \
13
+ -H "Travis-API-Version: 3" \
14
+ -H "Authorization: token $TRAVIS_TOKEN" \
15
+ -d "$PAYLOAD" \
16
+ https://api.travis-ci.org/repo/alphagov%2Fgovuk_frontend_toolkit_gem/requests
17
+
18
+ curl -s -X POST \
19
+ -H "Content-Type: application/json" \
20
+ -H "Accept: application/json" \
21
+ -H "Travis-API-Version: 3" \
22
+ -H "Authorization: token $TRAVIS_TOKEN" \
23
+ -d "$PAYLOAD" \
24
+ https://api.travis-ci.org/repo/alphagov%2Fgovuk_frontend_toolkit_npm/requests
@@ -0,0 +1,49 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+
3
+ require "idsk_frontend_toolkit/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "idsk_frontend_toolkit"
7
+ s.version = IDSKFrontendToolkit.toolkit_version
8
+ s.summary = 'Tools for building frontend applications'
9
+ s.authors = ["Ernest Walzel", "Government Digital Service"]
10
+ s.email = ["ernest.walzel@slovensko.digital", "govuk-dev@digital.cabinet-office.gov.uk"]
11
+ s.homepage = 'https://github.com/id-sk/idsk_frontend_toolkit'
12
+ s.license = 'MIT'
13
+
14
+ s.add_dependency "railties", ">= 3.1.0"
15
+
16
+ s.add_dependency "sass", ">= 3.2.0"
17
+ s.add_development_dependency "rake", "0.9.2.2"
18
+
19
+ s.require_paths = ["lib", "app"]
20
+ s.files = `git ls-files`.split($\)
21
+
22
+ # We need to include the files from the submodules, example from:
23
+ # http://somethingaboutcode.wordpress.com/2012/09/27/include-files-from-git-submodules-when-building-a-ruby-gem/
24
+
25
+ gemroot_path = `pwd`.strip
26
+ # get an array of submodule dirs by executing 'pwd' inside each submodule
27
+ `git submodule --quiet foreach pwd`.split($\).each do |submodule_path|
28
+ # for each submodule, change working directory to that submodule
29
+ Dir.chdir(submodule_path) do
30
+
31
+ # issue git ls-files in submodule's directory
32
+ submodule_files = `git ls-files`.split($\)
33
+
34
+ # prepend the submodule path to create absolute file paths
35
+ submodule_files_fullpaths = submodule_files.map do |filename|
36
+ "#{submodule_path}/#{filename}"
37
+ end
38
+
39
+ # remove leading path parts to get paths relative to the gem's root dir
40
+ # (this assumes, that the gemspec resides in the gem's root dir)
41
+ submodule_files_paths = submodule_files_fullpaths.map do |filename|
42
+ filename.gsub "#{gemroot_path}/", ""
43
+ end
44
+
45
+ # add relative paths to gem.files
46
+ s.files += submodule_files_paths
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,4 @@
1
+ module IDSKFrontendToolkit
2
+ class Engine < ::Rails::Engine
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+ module IDSKFrontendToolkit
2
+ def self.toolkit_version
3
+ File.read(File.expand_path('../../app/assets/VERSION.txt', File.dirname(__FILE__)))
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ module IDSKFrontendToolkit
2
+ require 'idsk_frontend_toolkit/engine'
3
+ autoload 'Version', 'idsk_frontend_toolkit/version'
4
+ end
data/publish.sh ADDED
@@ -0,0 +1,30 @@
1
+ #!/bin/sh
2
+ set -e
3
+
4
+ # Checkout master as we are currently have an individual commit checked out on
5
+ # a detached tree. This means when we commit later it will be on a branch
6
+ git checkout master
7
+ git reset --hard origin/master
8
+
9
+ # Init the submodule and checkout the revision pinned in `.gitmodules`
10
+ git submodule update --init
11
+
12
+ # The version of the toolkit defined by the pinned submodule
13
+ PINNED_SUBMODULE_VERSION=`cat app/assets/VERSION.txt`
14
+
15
+ # Force the submodule to pull the latest and checkout origin/master
16
+ git submodule foreach git pull origin master
17
+
18
+ # The version of the toolkit defined in the submodules master branch
19
+ NEW_SUBMODULE_VERSION=`cat app/assets/VERSION.txt`
20
+
21
+ # Install gem dependencies and run tests
22
+ bundle install
23
+ bundle exec rake
24
+
25
+ # If the submodule has a new version string
26
+ if [ "$PINNED_SUBMODULE_VERSION" != "$NEW_SUBMODULE_VERSION" ]; then
27
+ # Commit the updated submodule and push it to origin
28
+ git commit -am "Bump to version $NEW_SUBMODULE_VERSION"
29
+ git push origin_ssh master
30
+ fi