idsk_frontend_toolkit 7.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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