govuk_frontend_toolkit 0.41.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. data/.gitignore +3 -0
  2. data/.gitmodules +3 -0
  3. data/CONTRIBUTING.md +13 -0
  4. data/Gemfile +4 -0
  5. data/LICENCE +20 -0
  6. data/README.md +46 -0
  7. data/Rakefile +16 -0
  8. data/app/assets/.gitignore +1 -0
  9. data/app/assets/.travis.yml +3 -0
  10. data/app/assets/CONTRIBUTING.md +18 -0
  11. data/app/assets/Gruntfile.js +19 -0
  12. data/app/assets/LICENCE +20 -0
  13. data/app/assets/README.md +675 -0
  14. data/app/assets/images/crests/bis_crest_13px.png +0 -0
  15. data/app/assets/images/crests/bis_crest_13px_x2.png +0 -0
  16. data/app/assets/images/crests/bis_crest_18px.png +0 -0
  17. data/app/assets/images/crests/bis_crest_18px_x2.png +0 -0
  18. data/app/assets/images/crests/bis_crest_27px.png +0 -0
  19. data/app/assets/images/crests/bis_crest_27px_x2.png +0 -0
  20. data/app/assets/images/crests/coastguard_13px.png +0 -0
  21. data/app/assets/images/crests/coastguard_13px_x2.png +0 -0
  22. data/app/assets/images/crests/coastguard_18px.png +0 -0
  23. data/app/assets/images/crests/coastguard_18px_x2.png +0 -0
  24. data/app/assets/images/crests/coastguard_27px.png +0 -0
  25. data/app/assets/images/crests/coastguard_27px_x2.png +0 -0
  26. data/app/assets/images/crests/hmrc_crest_13px.png +0 -0
  27. data/app/assets/images/crests/hmrc_crest_13px_x2.png +0 -0
  28. data/app/assets/images/crests/hmrc_crest_18px.png +0 -0
  29. data/app/assets/images/crests/hmrc_crest_18px_x2.png +0 -0
  30. data/app/assets/images/crests/hmrc_crest_27px.png +0 -0
  31. data/app/assets/images/crests/hmrc_crest_27px_x2.png +0 -0
  32. data/app/assets/images/crests/ho_crest_13px.png +0 -0
  33. data/app/assets/images/crests/ho_crest_13px_x2.png +0 -0
  34. data/app/assets/images/crests/ho_crest_18px.png +0 -0
  35. data/app/assets/images/crests/ho_crest_18px_x2.png +0 -0
  36. data/app/assets/images/crests/ho_crest_27px.png +0 -0
  37. data/app/assets/images/crests/ho_crest_27px_x2.png +0 -0
  38. data/app/assets/images/crests/mod_crest_13px.png +0 -0
  39. data/app/assets/images/crests/mod_crest_13px_x2.png +0 -0
  40. data/app/assets/images/crests/mod_crest_18px.png +0 -0
  41. data/app/assets/images/crests/mod_crest_18px_x2.png +0 -0
  42. data/app/assets/images/crests/mod_crest_27px.png +0 -0
  43. data/app/assets/images/crests/mod_crest_27px_x2.png +0 -0
  44. data/app/assets/images/crests/org_crest_13px.png +0 -0
  45. data/app/assets/images/crests/org_crest_13px_x2.png +0 -0
  46. data/app/assets/images/crests/org_crest_18px.png +0 -0
  47. data/app/assets/images/crests/org_crest_18px_x2.png +0 -0
  48. data/app/assets/images/crests/org_crest_27px.png +0 -0
  49. data/app/assets/images/crests/org_crest_27px_x2.png +0 -0
  50. data/app/assets/images/crests/portcullis_13px.png +0 -0
  51. data/app/assets/images/crests/portcullis_13px_x2.png +0 -0
  52. data/app/assets/images/crests/portcullis_18px.png +0 -0
  53. data/app/assets/images/crests/portcullis_18px_x2.png +0 -0
  54. data/app/assets/images/crests/portcullis_27px.png +0 -0
  55. data/app/assets/images/crests/portcullis_27px_x2.png +0 -0
  56. data/app/assets/images/crests/so_crest_13px.png +0 -0
  57. data/app/assets/images/crests/so_crest_13px_x2.png +0 -0
  58. data/app/assets/images/crests/so_crest_18px.png +0 -0
  59. data/app/assets/images/crests/so_crest_18px_x2.png +0 -0
  60. data/app/assets/images/crests/so_crest_27px.png +0 -0
  61. data/app/assets/images/crests/so_crest_27px_x2.png +0 -0
  62. data/app/assets/images/crests/ukaea_crest_13px.png +0 -0
  63. data/app/assets/images/crests/ukaea_crest_13px_x2.png +0 -0
  64. data/app/assets/images/crests/ukaea_crest_18px.png +0 -0
  65. data/app/assets/images/crests/ukaea_crest_18px_x2.png +0 -0
  66. data/app/assets/images/crests/ukaea_crest_27px.png +0 -0
  67. data/app/assets/images/crests/ukaea_crest_27px_x2.png +0 -0
  68. data/app/assets/images/crests/ukho_13px.png +0 -0
  69. data/app/assets/images/crests/ukho_13px_x2.png +0 -0
  70. data/app/assets/images/crests/ukho_18px.png +0 -0
  71. data/app/assets/images/crests/ukho_18px_x2.png +0 -0
  72. data/app/assets/images/crests/ukho_27px.png +0 -0
  73. data/app/assets/images/crests/ukho_27px_x2.png +0 -0
  74. data/app/assets/images/crests/wales_crest_13px.png +0 -0
  75. data/app/assets/images/crests/wales_crest_13px_x2.png +0 -0
  76. data/app/assets/images/crests/wales_crest_18px.png +0 -0
  77. data/app/assets/images/crests/wales_crest_18px_x2.png +0 -0
  78. data/app/assets/images/crests/wales_crest_27px.png +0 -0
  79. data/app/assets/images/crests/wales_crest_27px_x2.png +0 -0
  80. data/app/assets/images/external-links/external-link-24x24.png +0 -0
  81. data/app/assets/images/external-links/external-link-black-12x12.png +0 -0
  82. data/app/assets/images/external-links/external-link-black-24x24.png +0 -0
  83. data/app/assets/images/external-links/external-link.png +0 -0
  84. data/app/assets/images/icon-steps/icon-step-1-2x.png +0 -0
  85. data/app/assets/images/icon-steps/icon-step-1.png +0 -0
  86. data/app/assets/images/icon-steps/icon-step-10-2x.png +0 -0
  87. data/app/assets/images/icon-steps/icon-step-10.png +0 -0
  88. data/app/assets/images/icon-steps/icon-step-11-2x.png +0 -0
  89. data/app/assets/images/icon-steps/icon-step-11.png +0 -0
  90. data/app/assets/images/icon-steps/icon-step-12-2x.png +0 -0
  91. data/app/assets/images/icon-steps/icon-step-12.png +0 -0
  92. data/app/assets/images/icon-steps/icon-step-13-2x.png +0 -0
  93. data/app/assets/images/icon-steps/icon-step-13.png +0 -0
  94. data/app/assets/images/icon-steps/icon-step-14-2x.png +0 -0
  95. data/app/assets/images/icon-steps/icon-step-14.png +0 -0
  96. data/app/assets/images/icon-steps/icon-step-2-2x.png +0 -0
  97. data/app/assets/images/icon-steps/icon-step-2.png +0 -0
  98. data/app/assets/images/icon-steps/icon-step-3-2x.png +0 -0
  99. data/app/assets/images/icon-steps/icon-step-3.png +0 -0
  100. data/app/assets/images/icon-steps/icon-step-4-2x.png +0 -0
  101. data/app/assets/images/icon-steps/icon-step-4.png +0 -0
  102. data/app/assets/images/icon-steps/icon-step-5-2x.png +0 -0
  103. data/app/assets/images/icon-steps/icon-step-5.png +0 -0
  104. data/app/assets/images/icon-steps/icon-step-6-2x.png +0 -0
  105. data/app/assets/images/icon-steps/icon-step-6.png +0 -0
  106. data/app/assets/images/icon-steps/icon-step-7-2x.png +0 -0
  107. data/app/assets/images/icon-steps/icon-step-7.png +0 -0
  108. data/app/assets/images/icon-steps/icon-step-8-2x.png +0 -0
  109. data/app/assets/images/icon-steps/icon-step-8.png +0 -0
  110. data/app/assets/images/icon-steps/icon-step-9-2x.png +0 -0
  111. data/app/assets/images/icon-steps/icon-step-9.png +0 -0
  112. data/app/assets/images/player-icon-forward.png +0 -0
  113. data/app/assets/images/player-icon-pause.png +0 -0
  114. data/app/assets/images/player-icon-play.png +0 -0
  115. data/app/assets/images/player-icon-rewind.png +0 -0
  116. data/app/assets/images/player-icon-volume.png +0 -0
  117. data/app/assets/javascripts/govuk/multivariate-test.js +101 -0
  118. data/app/assets/javascripts/govuk/stop-scrolling-at-footer.js +138 -0
  119. data/app/assets/javascripts/govuk_toolkit.js +1 -0
  120. data/app/assets/javascripts/stageprompt.js +63 -0
  121. data/app/assets/javascripts/vendor/jquery/jquery.player.min.js +25 -0
  122. data/app/assets/jenkins.sh +5 -0
  123. data/app/assets/package.json +14 -0
  124. data/app/assets/spec/MultivariateTestSpec.js +166 -0
  125. data/app/assets/stylesheets/.gitkeep +0 -0
  126. data/app/assets/stylesheets/_colours.scss +104 -0
  127. data/app/assets/stylesheets/_conditionals.scss +85 -0
  128. data/app/assets/stylesheets/_css3.scss +61 -0
  129. data/app/assets/stylesheets/_device-pixels.scss +11 -0
  130. data/app/assets/stylesheets/_font_stack.scss +40 -0
  131. data/app/assets/stylesheets/_measurements.scss +7 -0
  132. data/app/assets/stylesheets/_shims.scss +57 -0
  133. data/app/assets/stylesheets/_typography.scss +400 -0
  134. data/app/assets/stylesheets/design-patterns/_alpha-beta.scss +49 -0
  135. data/app/assets/stylesheets/design-patterns/_buttons.scss +142 -0
  136. data/app/assets/stylesheets/design-patterns/_media-player.scss +232 -0
  137. data/govuk_frontend_toolkit.gemspec +50 -0
  138. data/jenkins.sh +8 -0
  139. data/lib/govuk_frontend_toolkit.rb +4 -0
  140. data/lib/govuk_frontend_toolkit/engine.rb +4 -0
  141. data/lib/govuk_frontend_toolkit/version.rb +3 -0
  142. metadata +273 -0
@@ -0,0 +1,61 @@
1
+ /* CSS 3 Mixins
2
+
3
+ Add them as you need them. This should let us manage vendor prefixes in one place.
4
+ */
5
+
6
+ @mixin border-radius($radius) {
7
+ -webkit-border-radius: $radius;
8
+ -moz-border-radius: $radius;
9
+ border-radius: $radius;
10
+ }
11
+ @mixin box-shadow($shadow) {
12
+ -webkit-box-shadow: $shadow;
13
+ -moz-box-shadow: $shadow;
14
+ box-shadow: $shadow;
15
+ }
16
+ @mixin translate($x, $y) {
17
+ -webkit-transform: translate($x, $y);
18
+ -moz-transform: translate($x, $y);
19
+ -o-transform: translate($x, $y);
20
+ transform: translate($x, $y);
21
+ }
22
+
23
+ @mixin gradient($from, $to) {
24
+ background-color: $from; // fallback/image non-cover color
25
+ background-image: -moz-linear-gradient($from, $to); // Firefox 3.6+
26
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from($from), to($to)); // Safari 4+, Chrome 1+
27
+ background-image: -webkit-linear-gradient($from, $to); // Safari 5.1+, Chrome 10+
28
+ background-image: -o-linear-gradient($from, $to); // Opera 11.10+
29
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#{$from}', endColorstr='#{$to}',GradientType=0 ); // IE6-9
30
+ }
31
+
32
+ @mixin transition($property, $duration, $function, $delay: 0s) {
33
+ -webkit-transition: ($property $duration $function $delay);
34
+ -moz-transition: ($property $duration $function $delay);
35
+ -ms-transition: ($property $duration $function $delay);
36
+ -o-transition: ($property $duration $function $delay);
37
+ transition: ($property $duration $function $delay);
38
+ }
39
+
40
+ @mixin box-sizing($type) { // Acceptable values are border, content, and padding - content is the default W3C model
41
+ -webkit-box-sizing: $type;
42
+ -moz-box-sizing: $type;
43
+ box-sizing: $type;
44
+ }
45
+
46
+ @mixin appearance($appearance) {
47
+ -webkit-appearance: $appearance;
48
+ -moz-appearance: $appearance;
49
+ }
50
+
51
+ @mixin calc($property, $calc) {
52
+ #{$property}: -webkit-calc(#{$calc});
53
+ #{$property}: calc(#{$calc});
54
+ }
55
+
56
+ @mixin opacity($trans) {
57
+ zoom: 1;
58
+ filter: alpha(opacity=#{$trans * 100});
59
+ opacity: $trans;
60
+ }
61
+
@@ -0,0 +1,11 @@
1
+ @mixin device-pixel-ratio($ratio: 2) {
2
+ @media only screen and (-webkit-min-device-pixel-ratio: $ratio),
3
+ only screen and (min--moz-device-pixel-ratio: $ratio),
4
+ only screen and ( -o-min-device-pixel-ratio: #{($ratio*10)}/10),
5
+ only screen and ( min-device-pixel-ratio: $ratio),
6
+ only screen and ( min-resolution: #{($ratio*96)}dpi),
7
+ only screen and ( min-resolution: #{$ratio}dppx) {
8
+ @content;
9
+ }
10
+ }
11
+
@@ -0,0 +1,40 @@
1
+ // GOV.UK font stacks, referred to in typography.scss
2
+
3
+
4
+ // Font stack weirdness
5
+ //
6
+ // To ensure embedded fonts fall back to appropriate
7
+ // system fonts (eg, bold embedded font falls back to
8
+ // bold system font, without anyone getting horrible
9
+ // artificially emboldened weights) we're setting
10
+ // the font-stack in a font-face declaration rather
11
+ // than with the usual font-family.
12
+
13
+ // New Transport Light
14
+
15
+ $NTA-Light:
16
+ "nta",
17
+ Arial,
18
+ sans-serif;
19
+
20
+ // New Transport Light with Tabular
21
+
22
+ $NTA-Light-Tabular:
23
+ "ntatabularnumbers",
24
+ "nta",
25
+ Arial,
26
+ sans-serif;
27
+
28
+ // Helvetica Regular
29
+
30
+ @font-face {
31
+ font-family: GDS-Logo;
32
+ src: local("HelveticaNeue"),
33
+ local("Helvetica Neue"),
34
+ local("Arial"),
35
+ local("Helvetica");
36
+ }
37
+
38
+ $Helvetica-Regular:
39
+ "GDS-Logo",
40
+ sans-serif;
@@ -0,0 +1,7 @@
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);
@@ -0,0 +1,57 @@
1
+ /* Cross-browser shims
2
+
3
+ Ways of normalising properties across browsers.
4
+ */
5
+ @import "_conditionals";
6
+
7
+ // From: https://blog.mozilla.org/webdev/2009/02/20/cross-browser-inline-block/
8
+
9
+ /* Usage:
10
+ @include inline-block
11
+
12
+ or
13
+
14
+ @include inline-block("250px")
15
+
16
+ which gives a min-height to the inline-block elements.
17
+ */
18
+
19
+ @mixin inline-block($min-height: "") {
20
+ display: -moz-inline-stack;
21
+ display: inline-block;
22
+
23
+ @if $min-height != "" {
24
+ min-height: $min-height;
25
+ }
26
+
27
+ @include ie-lte(7) {
28
+ zoom: 1;
29
+ display: inline;
30
+ }
31
+
32
+ @include ie(6) {
33
+ @if $min-height != "" {
34
+ height: $min-height;
35
+ }
36
+ }
37
+ }
38
+
39
+
40
+ /* Contain floats usage:
41
+
42
+ .this-has-floated-children {
43
+ @extend %contain-floats;
44
+ }
45
+
46
+ */
47
+
48
+ %contain-floats {
49
+ &:after {
50
+ content: "";
51
+ display: block;
52
+ clear: both;
53
+ }
54
+ @include ie-lte(7) {
55
+ zoom: 1;
56
+ }
57
+ }
@@ -0,0 +1,400 @@
1
+ @import '_font_stack.scss';
2
+ @import '_conditionals.scss';
3
+ @import '_device-pixels.scss';
4
+
5
+ // GOV.UK typography palettes
6
+
7
+ // ANATOMY OF A TYPE STYLE
8
+ // -----------------------
9
+ // These are a collection of graphic styles. They are deliberately
10
+ // abstracted from semantic HTML context to enable flexible re-use.
11
+ // Although there is a lot of duplication within this file, as long
12
+ // as you GZIP your CSS it shouldnt cause any bloat.
13
+
14
+
15
+ // CORE FONTS - NEW TRANSPORT
16
+
17
+ $is-print: false !default;
18
+
19
+ @mixin core-80($line-height: (80 / 80), $line-height-640: (55 / 53), $tabular-numbers: false) {
20
+ @if $tabular-numbers == true {
21
+ font-family: $NTA-Light-Tabular;
22
+ } @else {
23
+ font-family: $NTA-Light;
24
+ }
25
+ @if $is-print == false {
26
+ font-size: 80px;
27
+ } @else {
28
+ font-size: 28pt;
29
+ }
30
+ line-height: $line-height;
31
+ font-weight: 400;
32
+ text-transform: none;
33
+ @media (max-width: 640px) {
34
+ font-size: 53px;
35
+ line-height: $line-height-640;
36
+ }
37
+ }
38
+
39
+ @mixin core-48($line-height: (50 / 48), $line-height-640: (35 / 32), $tabular-numbers: false) {
40
+ @if $tabular-numbers == true {
41
+ font-family: $NTA-Light-Tabular;
42
+ } @else {
43
+ font-family: $NTA-Light;
44
+ }
45
+ @if $is-print == false {
46
+ font-size: 48px;
47
+ } @else {
48
+ font-size: 18pt;
49
+ }
50
+ line-height: $line-height;
51
+ font-weight: 400;
52
+ text-transform: none;
53
+ @media (max-width: 640px) {
54
+ font-size: 32px;
55
+ line-height: $line-height-640;
56
+ }
57
+ }
58
+
59
+ @mixin core-36($line-height: (40 / 36), $line-height-640: (25 / 24), $tabular-numbers: false) {
60
+ @if $tabular-numbers == true {
61
+ font-family: $NTA-Light-Tabular;
62
+ } @else {
63
+ font-family: $NTA-Light;
64
+ }
65
+ @if $is-print == false {
66
+ font-size: 36px;
67
+ } @else {
68
+ font-size: 18pt;
69
+ }
70
+ line-height: $line-height;
71
+ font-weight: 400;
72
+ text-transform: none;
73
+ @media (max-width: 640px) {
74
+ font-size: 24px;
75
+ line-height: $line-height-640;
76
+ }
77
+ }
78
+
79
+ @mixin core-27($line-height: (30 / 27), $line-height-640: (20 / 18), $tabular-numbers: false) {
80
+ @if $tabular-numbers == true {
81
+ font-family: $NTA-Light-Tabular;
82
+ } @else {
83
+ font-family: $NTA-Light;
84
+ }
85
+ @if $is-print == false {
86
+ font-size: 27px;
87
+ } @else {
88
+ font-size: 16pt;
89
+ }
90
+ line-height: $line-height;
91
+ font-weight: 400;
92
+ text-transform: none;
93
+ @media (max-width: 640px) {
94
+ font-size: 18px;
95
+ line-height: $line-height-640;
96
+ }
97
+ }
98
+
99
+ @mixin core-24($line-height: (30 / 24), $line-height-640: (24 / 20), $tabular-numbers: false) {
100
+ @if $tabular-numbers == true {
101
+ font-family: $NTA-Light-Tabular;
102
+ } @else {
103
+ font-family: $NTA-Light;
104
+ }
105
+ @if $is-print == false {
106
+ font-size: 24px;
107
+ } @else {
108
+ font-size: 16pt;
109
+ }
110
+ line-height: $line-height;
111
+ font-weight: 400;
112
+ text-transform: none;
113
+ @media (max-width: 640px) {
114
+ font-size: 20px;
115
+ line-height: $line-height-640;
116
+ }
117
+ }
118
+
119
+ @mixin core-19($line-height: (25 / 19), $line-height-640: (20 / 16), $tabular-numbers: false) {
120
+ @if $tabular-numbers == true {
121
+ font-family: $NTA-Light-Tabular;
122
+ } @else {
123
+ font-family: $NTA-Light;
124
+ }
125
+ @if $is-print == false {
126
+ font-size: 19px;
127
+ } @else {
128
+ font-size: 14pt;
129
+ }
130
+ line-height: $line-height;
131
+ font-weight: 400;
132
+ text-transform: none;
133
+ @media (max-width: 640px) {
134
+ font-size: 16px;
135
+ line-height: $line-height-640;
136
+ }
137
+ }
138
+
139
+ @mixin core-16($line-height: (20 / 16), $line-height-640: (16 / 14), $tabular-numbers: false) {
140
+ @if $tabular-numbers == true {
141
+ font-family: $NTA-Light-Tabular;
142
+ } @else {
143
+ font-family: $NTA-Light;
144
+ }
145
+ @if $is-print == false {
146
+ font-size: 16px;
147
+ } @else {
148
+ font-size: 12pt;
149
+ }
150
+ line-height: $line-height;
151
+ font-weight: 300;
152
+ text-transform: none;
153
+ @media (max-width: 640px) {
154
+ font-size: 14px;
155
+ line-height: $line-height-640;
156
+ }
157
+ }
158
+
159
+ @mixin core-14($line-height: (20 / 14), $line-height-640: (15 / 12), $tabular-numbers: false) {
160
+ @if $tabular-numbers == true {
161
+ font-family: $NTA-Light-Tabular;
162
+ } @else {
163
+ font-family: $NTA-Light;
164
+ }
165
+ @if $is-print == false {
166
+ font-size: 14px;
167
+ } @else {
168
+ font-size: 11pt;
169
+ }
170
+ line-height: $line-height;
171
+ font-weight: 400;
172
+ text-transform: none;
173
+ @media (max-width: 640px) {
174
+ font-size: 12px;
175
+ line-height: $line-height-640;
176
+ }
177
+ }
178
+
179
+ @mixin bold-80($line-height: (80 / 80), $line-height-640: (55 / 53), $tabular-numbers: false) {
180
+ @include core-80($line-height, $line-height-640, $tabular-numbers: $tabular-numbers);
181
+ font-weight: 700;
182
+ }
183
+
184
+ @mixin bold-48($line-height: (50 / 48), $line-height-640: (35 / 32), $tabular-numbers: false) {
185
+ @include core-48($line-height, $line-height-640, $tabular-numbers: $tabular-numbers);
186
+ font-weight: 700;
187
+ }
188
+
189
+ @mixin bold-36($line-height: (40 / 36), $line-height-640: (25 / 24), $tabular-numbers: false) {
190
+ @include core-36($line-height, $line-height-640, $tabular-numbers: $tabular-numbers);
191
+ font-weight: 700;
192
+ }
193
+
194
+ @mixin bold-27($line-height: (30 / 27), $line-height-640: (20 / 18), $tabular-numbers: false) {
195
+ @include core-27($line-height, $line-height-640, $tabular-numbers: $tabular-numbers);
196
+ font-weight: 700;
197
+ }
198
+
199
+ @mixin bold-24($line-height: (30 / 24), $line-height-640: (24 / 20), $tabular-numbers: false) {
200
+ @include core-24($line-height, $line-height-640, $tabular-numbers: $tabular-numbers);
201
+ font-weight: 700;
202
+ }
203
+
204
+ @mixin bold-19($line-height: (25 / 19), $line-height-640: (20 / 16), $tabular-numbers: false) {
205
+ @include core-19($line-height, $line-height-640, $tabular-numbers: $tabular-numbers);
206
+ font-weight: 700;
207
+ }
208
+
209
+ @mixin bold-16($line-height: (20 / 16), $line-height-640: (16 / 14), $tabular-numbers: false) {
210
+ @include core-16($line-height, $line-height-640, $tabular-numbers: $tabular-numbers);
211
+ font-weight: 700;
212
+ }
213
+
214
+ @mixin bold-14($line-height: (20 / 14), $line-height-640: (15 / 12), $tabular-numbers: false) {
215
+ @include core-14($line-height, $line-height-640, $tabular-numbers: $tabular-numbers);
216
+ font-weight: 700;
217
+ }
218
+
219
+ @mixin heading-80($tabular-numbers: false) {
220
+ @include core-80($tabular-numbers: $tabular-numbers);
221
+
222
+ padding-top: 8px;
223
+ padding-bottom: 7px;
224
+
225
+ @include media(tablet){
226
+ padding-top: 6px;
227
+ padding-bottom: 14px;
228
+ }
229
+ }
230
+
231
+ @mixin heading-48($tabular-numbers: false) {
232
+ @include core-48($tabular-numbers: $tabular-numbers);
233
+
234
+ padding-top: 10px;
235
+ padding-bottom: 10px;
236
+
237
+ @include media(tablet){
238
+ padding-top: 7px;
239
+ padding-bottom: 13px;
240
+ }
241
+ }
242
+
243
+ @mixin heading-36($tabular-numbers: false) {
244
+ @include core-36($tabular-numbers: $tabular-numbers);
245
+
246
+ padding-top: 8px;
247
+ padding-bottom: 7px;
248
+
249
+ @include media(tablet){
250
+ padding-top: 6px;
251
+ padding-bottom: 9px;
252
+ }
253
+ }
254
+
255
+ @mixin heading-27($tabular-numbers: false) {
256
+ @include core-27($tabular-numbers: $tabular-numbers);
257
+
258
+ padding-top: 8px;
259
+ padding-bottom: 7px;
260
+
261
+ @include media(tablet){
262
+ padding-top: 4px;
263
+ padding-bottom: 6px;
264
+ }
265
+ }
266
+
267
+ @mixin heading-24($tabular-numbers: false) {
268
+ @include core-24($tabular-numbers: $tabular-numbers);
269
+
270
+ padding-top: 9px;
271
+ padding-bottom: 6px;
272
+
273
+ @include media(tablet){
274
+ padding-top: 6px;
275
+ padding-bottom: 4px;
276
+ }
277
+ }
278
+
279
+ @mixin copy-19($tabular-numbers: false) {
280
+ @include core-19($tabular-numbers: $tabular-numbers);
281
+
282
+ padding-top: 2px;
283
+ padding-bottom: 8px;
284
+
285
+ @include media(tablet){
286
+ padding-top: 0;
287
+ padding-bottom: 5px;
288
+ }
289
+ }
290
+
291
+ @mixin copy-16($tabular-numbers: false) {
292
+ @include core-16($tabular-numbers: $tabular-numbers);
293
+
294
+ padding-top: 8px;
295
+ padding-bottom: 7px;
296
+
297
+ @include media(tablet){
298
+ padding-top: 5px;
299
+ padding-bottom: 5px;
300
+ }
301
+ }
302
+
303
+ @mixin copy-14($tabular-numbers: false) {
304
+ @include core-14($tabular-numbers: $tabular-numbers);
305
+
306
+ padding-top: 8px;
307
+ padding-bottom: 7px;
308
+
309
+ @include media(tablet){
310
+ padding-top: 5px;
311
+ padding-bottom: 5px;
312
+ }
313
+ }
314
+
315
+ // External link styles for all font sizes
316
+
317
+ // Private mixin for use solely by those below
318
+
319
+ @mixin external-link-size($content, $top, $top-hover: top) {
320
+ &:after {
321
+ content: $content;
322
+ background-position: right $top;
323
+ }
324
+
325
+ @if $top-hover == top {
326
+ $top-hover: $top
327
+ }
328
+
329
+ &:hover:after {
330
+ background-position: right $top-hover;
331
+ }
332
+ }
333
+
334
+ @mixin external-link-12-no-hover {
335
+ @include external-link-size($content: "\A0\A0\A0\A0\A0\A0\A0\A0", $top: 0px);
336
+ }
337
+
338
+ @mixin external-link-12 {
339
+ @include external-link-size($content: "\A0\A0\A0\A0\A0\A0\A0\A0", $top: 0px, $top-hover: -388px);
340
+ }
341
+
342
+ @mixin external-link-13-no-hover {
343
+ @include external-link-size($content: "\A0\A0\A0\A0\A0", $top: 1px);
344
+ }
345
+
346
+ @mixin external-link-13 {
347
+ @include external-link-size($content: "\A0\A0\A0\A0\A0", $top: 1px, $top-hover: -387px);
348
+ }
349
+
350
+ @mixin external-link-14 {
351
+ @include external-link-size($content: "\A0\A0\A0\A0\A0", $top: 1px, $top-hover: -387px);
352
+ }
353
+
354
+ @mixin external-link-14-bold-no-hover {
355
+ @include external-link-size($content: "\A0\A0\A0\A0\A0\A0", $top: 2px);
356
+ }
357
+
358
+ @mixin external-link-16 {
359
+ @include external-link-size($content: "\A0\A0\A0\A0\A0", $top: 3px, $top-hover: -385px);
360
+ }
361
+
362
+ @mixin external-link-16-bold-no-hover {
363
+ @include external-link-size($content: "\A0\A0\A0\A0\A0\A0", $top: 3px);
364
+ }
365
+
366
+ @mixin external-link-19-no-hover {
367
+ @include external-link-size($content: "\A0\A0\A0\A0", $top: 6px);
368
+ }
369
+
370
+ @mixin external-link-19 {
371
+ @include external-link-size($content: "\A0\A0\A0\A0", $top: 6px, $top-hover: -382px);
372
+ }
373
+
374
+ @mixin external-link-19-bold-no-hover {
375
+ @include external-link-size($content: "\A0\A0\A0\A0\A0\A0", $top: 6px);
376
+ }
377
+
378
+ @mixin external-link-default {
379
+ &:after {
380
+ background-image: image-url("external-link.png");
381
+ background-repeat: no-repeat;
382
+
383
+ @include device-pixel-ratio() {
384
+ background-image: image-url("external-link-24x24.png");
385
+ background-size: 12px 400px;
386
+ }
387
+ }
388
+ }
389
+
390
+ @mixin external-link-heading {
391
+ &:after {
392
+ background-image: image-url("external-link-black-12x12.png");
393
+ background-repeat: no-repeat;
394
+
395
+ @include device-pixel-ratio() {
396
+ background-image: image-url("external-link-black-24x24.png");
397
+ background-size: 12px 400px;
398
+ }
399
+ }
400
+ }