uswds-rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +17 -0
  3. data/.editorconfig +14 -0
  4. data/.gitignore +28 -0
  5. data/.rspec +3 -0
  6. data/.rubocop +3 -0
  7. data/.rubocop.yml +16 -0
  8. data/.ruby-version +1 -0
  9. data/.simplecov +13 -0
  10. data/.travis.yml +18 -0
  11. data/CONTRIBUTING.md +50 -0
  12. data/Gemfile +4 -0
  13. data/LICENSE.md +27 -0
  14. data/README.md +64 -0
  15. data/Rakefile +8 -0
  16. data/app/assets/stylesheets/uswds/components/_accordions.scss +150 -0
  17. data/app/assets/stylesheets/uswds/components/_alerts.scss +85 -0
  18. data/app/assets/stylesheets/uswds/components/_footer.scss +382 -0
  19. data/app/assets/stylesheets/uswds/components/_forms.scss +164 -0
  20. data/app/assets/stylesheets/uswds/components/_hero.scss +43 -0
  21. data/app/assets/stylesheets/uswds/components/_navigation.scss +446 -0
  22. data/app/assets/stylesheets/uswds/components/_search.scss +106 -0
  23. data/app/assets/stylesheets/uswds/core/_utilities.scss +232 -0
  24. data/app/assets/stylesheets/uswds/core/_variables.scss +112 -0
  25. data/app/assets/stylesheets/uswds/elements/_inputs.scss +346 -0
  26. data/app/assets/stylesheets/uswds/elements/_typography.scss +257 -0
  27. data/app/assets/stylesheets/uswds/uswds.scss +44 -0
  28. data/lib/uswds-rails.rb +1 -0
  29. data/lib/uswds/rails.rb +7 -0
  30. data/lib/uswds/rails/engine.rb +17 -0
  31. data/lib/uswds/rails/version.rb +6 -0
  32. data/uswds-rails.gemspec +36 -0
  33. data/vendor/assets/fonts/uswds/merriweather-bold-webfont.eot +0 -0
  34. data/vendor/assets/fonts/uswds/merriweather-bold-webfont.ttf +0 -0
  35. data/vendor/assets/fonts/uswds/merriweather-bold-webfont.woff +0 -0
  36. data/vendor/assets/fonts/uswds/merriweather-bold-webfont.woff2 +0 -0
  37. data/vendor/assets/fonts/uswds/merriweather-italic-webfont.eot +0 -0
  38. data/vendor/assets/fonts/uswds/merriweather-italic-webfont.ttf +0 -0
  39. data/vendor/assets/fonts/uswds/merriweather-italic-webfont.woff +0 -0
  40. data/vendor/assets/fonts/uswds/merriweather-italic-webfont.woff2 +0 -0
  41. data/vendor/assets/fonts/uswds/merriweather-light-webfont.eot +0 -0
  42. data/vendor/assets/fonts/uswds/merriweather-light-webfont.ttf +0 -0
  43. data/vendor/assets/fonts/uswds/merriweather-light-webfont.woff +0 -0
  44. data/vendor/assets/fonts/uswds/merriweather-light-webfont.woff2 +0 -0
  45. data/vendor/assets/fonts/uswds/merriweather-regular-webfont.eot +0 -0
  46. data/vendor/assets/fonts/uswds/merriweather-regular-webfont.ttf +0 -0
  47. data/vendor/assets/fonts/uswds/merriweather-regular-webfont.woff +0 -0
  48. data/vendor/assets/fonts/uswds/merriweather-regular-webfont.woff2 +0 -0
  49. data/vendor/assets/fonts/uswds/sourcesanspro-bold-webfont.eot +0 -0
  50. data/vendor/assets/fonts/uswds/sourcesanspro-bold-webfont.ttf +0 -0
  51. data/vendor/assets/fonts/uswds/sourcesanspro-bold-webfont.woff +0 -0
  52. data/vendor/assets/fonts/uswds/sourcesanspro-bold-webfont.woff2 +0 -0
  53. data/vendor/assets/fonts/uswds/sourcesanspro-italic-webfont.eot +0 -0
  54. data/vendor/assets/fonts/uswds/sourcesanspro-italic-webfont.ttf +0 -0
  55. data/vendor/assets/fonts/uswds/sourcesanspro-italic-webfont.woff +0 -0
  56. data/vendor/assets/fonts/uswds/sourcesanspro-italic-webfont.woff2 +0 -0
  57. data/vendor/assets/fonts/uswds/sourcesanspro-light-webfont.eot +0 -0
  58. data/vendor/assets/fonts/uswds/sourcesanspro-light-webfont.ttf +0 -0
  59. data/vendor/assets/fonts/uswds/sourcesanspro-light-webfont.woff +0 -0
  60. data/vendor/assets/fonts/uswds/sourcesanspro-light-webfont.woff2 +0 -0
  61. data/vendor/assets/fonts/uswds/sourcesanspro-regular-webfont.eot +0 -0
  62. data/vendor/assets/fonts/uswds/sourcesanspro-regular-webfont.ttf +0 -0
  63. data/vendor/assets/fonts/uswds/sourcesanspro-regular-webfont.woff +0 -0
  64. data/vendor/assets/fonts/uswds/sourcesanspro-regular-webfont.woff2 +0 -0
  65. data/vendor/assets/images/uswds/alerts/error.png +0 -0
  66. data/vendor/assets/images/uswds/alerts/error.svg +17 -0
  67. data/vendor/assets/images/uswds/alerts/info.png +0 -0
  68. data/vendor/assets/images/uswds/alerts/info.svg +18 -0
  69. data/vendor/assets/images/uswds/alerts/success.png +0 -0
  70. data/vendor/assets/images/uswds/alerts/success.svg +12 -0
  71. data/vendor/assets/images/uswds/alerts/warning.png +0 -0
  72. data/vendor/assets/images/uswds/alerts/warning.svg +16 -0
  73. data/vendor/assets/images/uswds/angle-arrow-down-hover.png +0 -0
  74. data/vendor/assets/images/uswds/angle-arrow-down-hover.svg +1 -0
  75. data/vendor/assets/images/uswds/angle-arrow-down-primary-hover.png +0 -0
  76. data/vendor/assets/images/uswds/angle-arrow-down-primary-hover.svg +1 -0
  77. data/vendor/assets/images/uswds/angle-arrow-down-primary.png +0 -0
  78. data/vendor/assets/images/uswds/angle-arrow-down-primary.svg +1 -0
  79. data/vendor/assets/images/uswds/angle-arrow-down.png +0 -0
  80. data/vendor/assets/images/uswds/angle-arrow-down.svg +1 -0
  81. data/vendor/assets/images/uswds/angle-arrow-up-primary-hover.png +0 -0
  82. data/vendor/assets/images/uswds/angle-arrow-up-primary-hover.svg +1 -0
  83. data/vendor/assets/images/uswds/angle-arrow-up-primary.png +0 -0
  84. data/vendor/assets/images/uswds/angle-arrow-up-primary.svg +1 -0
  85. data/vendor/assets/images/uswds/arrow-down.png +0 -0
  86. data/vendor/assets/images/uswds/arrow-down.svg +1 -0
  87. data/vendor/assets/images/uswds/arrow-right.png +0 -0
  88. data/vendor/assets/images/uswds/arrow-right.svg +1 -0
  89. data/vendor/assets/images/uswds/circle-124.png +0 -0
  90. data/vendor/assets/images/uswds/close.png +0 -0
  91. data/vendor/assets/images/uswds/close.svg +1 -0
  92. data/vendor/assets/images/uswds/correct8.png +0 -0
  93. data/vendor/assets/images/uswds/correct8.svg +1 -0
  94. data/vendor/assets/images/uswds/correct9.png +0 -0
  95. data/vendor/assets/images/uswds/correct9.svg +1 -0
  96. data/vendor/assets/images/uswds/external-link-alt-hover.png +0 -0
  97. data/vendor/assets/images/uswds/external-link-alt-hover.svg +1 -0
  98. data/vendor/assets/images/uswds/external-link-alt.png +0 -0
  99. data/vendor/assets/images/uswds/external-link-alt.svg +1 -0
  100. data/vendor/assets/images/uswds/external-link-hover.png +0 -0
  101. data/vendor/assets/images/uswds/external-link-hover.svg +1 -0
  102. data/vendor/assets/images/uswds/external-link.png +0 -0
  103. data/vendor/assets/images/uswds/external-link.svg +1 -0
  104. data/vendor/assets/images/uswds/favicons/favicon-114.png +0 -0
  105. data/vendor/assets/images/uswds/favicons/favicon-144.png +0 -0
  106. data/vendor/assets/images/uswds/favicons/favicon-16.png +0 -0
  107. data/vendor/assets/images/uswds/favicons/favicon-192.png +0 -0
  108. data/vendor/assets/images/uswds/favicons/favicon-40.png +0 -0
  109. data/vendor/assets/images/uswds/favicons/favicon-57.png +0 -0
  110. data/vendor/assets/images/uswds/favicons/favicon-72.png +0 -0
  111. data/vendor/assets/images/uswds/favicons/favicon.ico +0 -0
  112. data/vendor/assets/images/uswds/favicons/favicon.png +0 -0
  113. data/vendor/assets/images/uswds/hero.png +0 -0
  114. data/vendor/assets/images/uswds/icon-dot-gov.svg +1 -0
  115. data/vendor/assets/images/uswds/icon-https.svg +1 -0
  116. data/vendor/assets/images/uswds/logo-img.png +0 -0
  117. data/vendor/assets/images/uswds/minus-alt.png +0 -0
  118. data/vendor/assets/images/uswds/minus-alt.svg +1 -0
  119. data/vendor/assets/images/uswds/minus.png +0 -0
  120. data/vendor/assets/images/uswds/minus.svg +1 -0
  121. data/vendor/assets/images/uswds/plus-alt.png +0 -0
  122. data/vendor/assets/images/uswds/plus-alt.svg +1 -0
  123. data/vendor/assets/images/uswds/plus.png +0 -0
  124. data/vendor/assets/images/uswds/plus.svg +1 -0
  125. data/vendor/assets/images/uswds/search-alt.png +0 -0
  126. data/vendor/assets/images/uswds/search-alt.svg +1 -0
  127. data/vendor/assets/images/uswds/search.png +0 -0
  128. data/vendor/assets/images/uswds/search.svg +1 -0
  129. data/vendor/assets/images/uswds/social-icons/png/facebook25.png +0 -0
  130. data/vendor/assets/images/uswds/social-icons/png/rss25.png +0 -0
  131. data/vendor/assets/images/uswds/social-icons/png/twitter16.png +0 -0
  132. data/vendor/assets/images/uswds/social-icons/png/youtube15.png +0 -0
  133. data/vendor/assets/images/uswds/social-icons/svg/facebook25.svg +1 -0
  134. data/vendor/assets/images/uswds/social-icons/svg/rss25.svg +1 -0
  135. data/vendor/assets/images/uswds/social-icons/svg/twitter16.svg +1 -0
  136. data/vendor/assets/images/uswds/social-icons/svg/youtube15.svg +1 -0
  137. data/vendor/assets/images/uswds/us_flag_small.png +0 -0
  138. data/vendor/assets/javascripts/uswds/uswds.js +1739 -0
  139. data/vendor/assets/stylesheets/uswds/components/_accordions.scss +150 -0
  140. data/vendor/assets/stylesheets/uswds/components/_alerts.scss +85 -0
  141. data/vendor/assets/stylesheets/uswds/components/_banner.scss +204 -0
  142. data/vendor/assets/stylesheets/uswds/components/_footer.scss +382 -0
  143. data/vendor/assets/stylesheets/uswds/components/_forms.scss +164 -0
  144. data/vendor/assets/stylesheets/uswds/components/_graphic-list.scss +35 -0
  145. data/vendor/assets/stylesheets/uswds/components/_header.scss +221 -0
  146. data/vendor/assets/stylesheets/uswds/components/_hero.scss +43 -0
  147. data/vendor/assets/stylesheets/uswds/components/_layout.scss +36 -0
  148. data/vendor/assets/stylesheets/uswds/components/_media-block.scss +12 -0
  149. data/vendor/assets/stylesheets/uswds/components/_navigation.scss +446 -0
  150. data/vendor/assets/stylesheets/uswds/components/_search.scss +106 -0
  151. data/vendor/assets/stylesheets/uswds/components/_section.scss +37 -0
  152. data/vendor/assets/stylesheets/uswds/components/_sidenav.scss +8 -0
  153. data/vendor/assets/stylesheets/uswds/components/_skipnav.scss +19 -0
  154. data/vendor/assets/stylesheets/uswds/core/_base.scss +30 -0
  155. data/vendor/assets/stylesheets/uswds/core/_fonts.scss +65 -0
  156. data/vendor/assets/stylesheets/uswds/core/_grid.scss +154 -0
  157. data/vendor/assets/stylesheets/uswds/core/_utilities.scss +232 -0
  158. data/vendor/assets/stylesheets/uswds/core/_variables.scss +123 -0
  159. data/vendor/assets/stylesheets/uswds/elements/_buttons.scss +191 -0
  160. data/vendor/assets/stylesheets/uswds/elements/_embed.scss +26 -0
  161. data/vendor/assets/stylesheets/uswds/elements/_figure.scss +13 -0
  162. data/vendor/assets/stylesheets/uswds/elements/_inputs.scss +346 -0
  163. data/vendor/assets/stylesheets/uswds/elements/_labels.scss +20 -0
  164. data/vendor/assets/stylesheets/uswds/elements/_list.scss +32 -0
  165. data/vendor/assets/stylesheets/uswds/elements/_table.scss +47 -0
  166. data/vendor/assets/stylesheets/uswds/elements/_typography.scss +257 -0
  167. data/vendor/assets/stylesheets/uswds/uswds.scss +41 -0
  168. metadata +394 -0
@@ -0,0 +1,346 @@
1
+ // scss-lint:disable QualifyingElement, PropertyCount
2
+
3
+ $input-line-height: 1.3;
4
+ $input-border-width: 1px;
5
+ $input-padding-vertical: 1rem;
6
+
7
+ // input heights will vary by browser and type
8
+ // if height not explicitly set
9
+ $input-height-exact: (
10
+ ($base-font-size * $input-line-height) +
11
+ ($input-padding-vertical * 2) +
12
+ (rem($input-border-width * 2))
13
+ );
14
+
15
+ // truncated to 1 decimal place
16
+ // (i.e., 1.21rem -> 1.2rem)
17
+ $input-height: floor($input-height-exact * 10) / 10;
18
+
19
+ // Block form elements
20
+ /* stylelint-disable selector-no-qualifying-type */
21
+ input,
22
+ textarea,
23
+ select {
24
+ appearance: none;
25
+ border: $input-border-width solid $color-gray;
26
+ border-radius: 0;
27
+ box-sizing: border-box;
28
+ color: $color-base; // standardize on firefox
29
+ display: block;
30
+ font-size: $base-font-size;
31
+ height: $input-height;
32
+ line-height: $input-line-height;
33
+ margin: 0.2em 0;
34
+ max-width: $input-max-width;
35
+ outline: none;
36
+ padding: $input-padding-vertical 0.7em;
37
+ width: 100%;
38
+
39
+ &:focus,
40
+ &.usa-input-focus {
41
+ box-shadow: $focus-shadow;
42
+ }
43
+
44
+ &.usa-input-success {
45
+ border: 3px solid $color-green-light;
46
+ }
47
+ }
48
+ /* stylelint-enable */
49
+
50
+ .usa-input-error {
51
+ border-left: 4px solid $color-secondary-dark;
52
+ margin-top: 3rem;
53
+ padding-bottom: 0.8rem;
54
+ padding-left: 1.5rem;
55
+ padding-top: 0.8rem;
56
+ position: relative;
57
+ right: 1.9rem;
58
+
59
+ input,
60
+ textarea,
61
+ select {
62
+ border: 3px solid $color-secondary-dark;
63
+ width: calc(100% + 1.9rem); // 1.5rem left padding + 4px border from input error spacing
64
+ }
65
+
66
+ label {
67
+ margin-top: 0;
68
+ }
69
+
70
+ .usa-input-inline {
71
+ border: $input-border-width solid $color-gray;
72
+ width: inherit;
73
+ }
74
+
75
+ .usa-input-inline-error {
76
+ border: 3px solid $color-secondary-dark;
77
+ }
78
+ }
79
+
80
+ .usa-input-error-label {
81
+ display: block;
82
+ font-size: $base-font-size;
83
+ font-weight: $font-bold;
84
+ }
85
+
86
+ .usa-input-error-message {
87
+ color: $color-secondary-dark;
88
+ display: block;
89
+ font-size: $base-font-size;
90
+ font-weight: $font-bold;
91
+ padding-bottom: 3px;
92
+ padding-top: 3px;
93
+ }
94
+
95
+ .usa-input-required:after {
96
+ color: $color-secondary-darkest;
97
+ content: ' (*Required)';
98
+ }
99
+
100
+ label {
101
+ display: block;
102
+ margin-top: 3rem;
103
+ max-width: $input-max-width;
104
+ }
105
+
106
+ textarea {
107
+ height: 16rem;
108
+ }
109
+
110
+ select {
111
+ -moz-appearance: none;
112
+ -webkit-appearance: none;
113
+ appearance: none;
114
+ background-color: $color-white;
115
+ background-image: asset-url('#{$image-path}/arrow-down.png');
116
+ background-image: asset-url('#{$image-path}/arrow-down.svg');
117
+ background-position: right 1.3rem center;
118
+ background-repeat: no-repeat;
119
+ background-size: 1.3rem;
120
+ }
121
+
122
+ legend {
123
+ font-size: $h2-font-size;
124
+ font-weight: $font-bold;
125
+ }
126
+
127
+ .usa-fieldset-inputs {
128
+ label {
129
+ margin-top: 0;
130
+ }
131
+ }
132
+
133
+ // Hint text
134
+
135
+ .usa-form-hint {
136
+ color: $color-gray-medium;
137
+ font-family: $font-sans;
138
+ margin-bottom: 0;
139
+ }
140
+
141
+ // Custom checkboxes
142
+
143
+ [type=checkbox],
144
+ [type=radio] {
145
+ margin-left: -2rem;
146
+ opacity: 0;
147
+ position: absolute;
148
+
149
+ .lt-ie9 & {
150
+ border: 0;
151
+ float: left;
152
+ margin: 0.4em 0.4em 0 0;
153
+ position: static;
154
+ width: auto;
155
+ }
156
+ }
157
+
158
+ [type=checkbox] + label,
159
+ [type=radio] + label {
160
+ cursor: pointer;
161
+ font-weight: 400;
162
+ margin-bottom: 0.5em;
163
+ }
164
+
165
+ [type=checkbox] + label::before,
166
+ [type=radio] + label::before {
167
+ background: $color-white;
168
+ border-radius: $border-radius;
169
+ box-shadow: 0 0 0 1px $color-gray-medium;
170
+ content: '\a0';
171
+ display: inline-block;
172
+ height: 1.8rem;
173
+ line-height: 1.8rem;
174
+ margin-right: 0.6em;
175
+ text-indent: 0.15em;
176
+ vertical-align: middle\0; // Target IE 11 and below to vertically center inputs
177
+ width: 1.8rem;
178
+ }
179
+
180
+ [type=radio] + label::before {
181
+ box-shadow: 0 0 0 2px $color-white, 0 0 0 3px $color-gray-medium;
182
+ height: 1.6rem;
183
+ line-height: 1.6rem;
184
+ width: 1.6rem;
185
+ border-radius: 100%;
186
+ }
187
+
188
+ [type=checkbox]:checked + label::before,
189
+ [type=radio]:checked + label::before {
190
+ background-color: $color-primary;
191
+ box-shadow: 0 0 0 1px $color-primary;
192
+ }
193
+
194
+ [type=radio]:checked + label::before {
195
+ box-shadow: 0 0 0 2px $color-white, 0 0 0 4px $color-primary;
196
+ }
197
+
198
+ [type=radio]:focus + label::before {
199
+ box-shadow: 0 0 0 2px $color-white, 0 0 0 4px $color-primary, 0 0 3px 4px $color-focus, 0 0 7px 4px $color-focus;
200
+ }
201
+
202
+ [type=checkbox]:checked + label::before,
203
+ [type=checkbox]:checked:disabled + label::before {
204
+ background-image: asset-url('#{$image-path}/correct8.png');
205
+ background-image: asset-url('#{$image-path}/correct8.svg');
206
+ background-position: 50%;
207
+ background-repeat: no-repeat;
208
+ }
209
+
210
+ [type=checkbox]:focus + label::before {
211
+ box-shadow: 0 0 0 1px $color-white, 0 0 0 3px $color-primary;
212
+ }
213
+
214
+ [type=checkbox]:disabled + label {
215
+ color: $color-gray;
216
+ }
217
+
218
+ [type=checkbox]:disabled + label::before,
219
+ [type=radio]:disabled + label::before {
220
+ background: $color-gray-lighter;
221
+ box-shadow: 0 0 0 1px $color-gray-light;
222
+ cursor: not-allowed;
223
+ }
224
+
225
+ // Range inputs
226
+
227
+ [type=range] {
228
+ -webkit-appearance: none;
229
+ border: none;
230
+ padding-left: 0;
231
+ width: 100%;
232
+ }
233
+
234
+ [type=range]:focus {
235
+ box-shadow: none;
236
+ outline: none;
237
+ }
238
+
239
+ [type=range]::-webkit-slider-runnable-track {
240
+ background: $color-gray-light;
241
+ border: 1px solid $color-gray-medium;
242
+ cursor: pointer;
243
+ height: 1.2rem;
244
+ width: 100%;
245
+ }
246
+
247
+ [type=range]::-moz-range-track {
248
+ background: $color-primary;
249
+ border: 1px solid $color-gray-medium;
250
+ cursor: pointer;
251
+ height: 1.2rem;
252
+ width: 100%;
253
+ }
254
+
255
+ [type=range]::-ms-track {
256
+ background: transparent;
257
+ color: transparent;
258
+ cursor: pointer;
259
+ height: 1.2rem;
260
+ width: 100%;
261
+ }
262
+
263
+ [type=range]::-webkit-slider-thumb {
264
+ -webkit-appearance: none;
265
+ border: 1px solid $color-gray-medium;
266
+ height: 2.2rem;
267
+ border-radius: 1.5rem;
268
+ background: $color-gray-lightest;
269
+ cursor: pointer;
270
+ margin-top: -.65rem;
271
+ width: 2.2rem;
272
+ }
273
+
274
+ [type=range]::-moz-range-thumb {
275
+ background: $color-gray-lightest;
276
+ border: 1px solid $color-gray-medium;
277
+ border-radius: 1.5rem;
278
+ cursor: pointer;
279
+ height: 2.2rem;
280
+ width: 2.2rem;
281
+ }
282
+
283
+ [type=range]::-ms-thumb {
284
+ background: $color-gray-lightest;
285
+ border: 1px solid $color-gray-medium;
286
+ border-radius: 1.5rem;
287
+ cursor: pointer;
288
+ height: 2.2rem;
289
+ width: 2.2rem;
290
+ }
291
+
292
+ [type=range]::-ms-fill-lower {
293
+ background: $color-gray-light;
294
+ border: 1px solid $color-gray-medium;
295
+ border-radius: 2rem;
296
+ }
297
+
298
+ [type=range]::-ms-fill-upper {
299
+ background: $color-gray-light;
300
+ border: 1px solid $color-gray-medium;
301
+ border-radius: 2rem;
302
+ }
303
+
304
+ [type=range]:focus::-webkit-slider-thumb {
305
+ border: 2px solid $color-focus;
306
+ }
307
+
308
+ [type=range]:focus::-moz-range-thumb {
309
+ border: 2px solid $color-focus;
310
+ }
311
+
312
+ [type=range]:focus::-ms-thumb {
313
+ border: 2px solid $color-focus;
314
+ }
315
+
316
+ // Memorable dates
317
+
318
+ .usa-date-of-birth {
319
+ label {
320
+ margin-top: 0;
321
+ }
322
+
323
+ [type=number]::-webkit-inner-spin-button,
324
+ [type=number]::-webkit-outer-spin-button {
325
+ -webkit-appearance: none;
326
+ appearance: none;
327
+ margin: 0;
328
+ }
329
+
330
+ [type=number] {
331
+ -moz-appearance: textfield;
332
+ }
333
+ }
334
+
335
+ .usa-form-group-day,
336
+ .usa-form-group-month,
337
+ .usa-form-group-year {
338
+ clear: none;
339
+ float: left;
340
+ margin-right: 1.5rem;
341
+ width: 5rem;
342
+ }
343
+
344
+ .usa-form-group-year {
345
+ width: 7rem;
346
+ }
@@ -0,0 +1,257 @@
1
+ html {
2
+ font-family: $font-sans;
3
+ font-size: $em-base;
4
+ }
5
+
6
+ body {
7
+ font-size: $base-font-size;
8
+ }
9
+
10
+ p {
11
+ line-height: $base-line-height;
12
+ margin-bottom: 1em;
13
+ margin-top: 1em;
14
+ }
15
+
16
+ a {
17
+ color: $color-primary;
18
+ text-decoration: underline;
19
+
20
+ &:hover,
21
+ &:active {
22
+ color: $color-primary-darker;
23
+ }
24
+
25
+ &:visited {
26
+ color: $color-visited;
27
+ }
28
+
29
+ &:focus {
30
+ box-shadow: $focus-shadow;
31
+ outline: 0;
32
+ }
33
+ }
34
+
35
+ @mixin external-link($external-link, $external-link-hover) {
36
+ &::after {
37
+ background: asset-url('#{$image-path}/#{$external-link}.png') no-repeat 0 0;
38
+ background: asset-url('#{$image-path}/#{$external-link}.svg') no-repeat 0 0;
39
+ background-size: 100%;
40
+ content: '';
41
+ display: inline-block;
42
+ height: 0.65em;
43
+ margin-bottom: -1px;
44
+ margin-left: 4px;
45
+ width: 0.65em;
46
+ }
47
+
48
+ &:hover::after {
49
+ background-image: asset-url('#{$image-path}/#{$external-link-hover}.png');
50
+ background-image: asset-url('#{$image-path}/#{$external-link-hover}.svg');
51
+ }
52
+ }
53
+
54
+ // External link consider "effortless style approach":
55
+ // [href^="http:"]:not([href*="my-domain.com"])
56
+ // [href^="https:"]:not([href*="my-domain.com"])
57
+
58
+ .usa-external_link {
59
+ @include external-link(external-link, external-link-hover);
60
+ }
61
+
62
+ .usa-external_link-alt {
63
+ @include external-link(external-link-alt, external-link-alt-hover);
64
+ }
65
+
66
+ h1,
67
+ h2,
68
+ h3,
69
+ h4,
70
+ h5,
71
+ h6 {
72
+ clear: both;
73
+ font-family: $font-serif;
74
+ line-height: $heading-line-height;
75
+ margin-bottom: .5em;
76
+ margin-top: 1.5em;
77
+ }
78
+
79
+ h1 {
80
+ @include h1();
81
+ }
82
+
83
+ h2 {
84
+ @include h2();
85
+ }
86
+
87
+ h3 {
88
+ @include h3();
89
+ }
90
+
91
+ h4 {
92
+ @include h4();
93
+ }
94
+
95
+ h5 {
96
+ @include h5();
97
+ }
98
+
99
+ h6 {
100
+ @include h6();
101
+ }
102
+
103
+ // Remove user agent styles
104
+
105
+ cite,
106
+ var,
107
+ address,
108
+ dfn {
109
+ font-style: normal;
110
+ }
111
+
112
+ // Custom typography
113
+
114
+ .usa-content {
115
+ p:not(.usa-font-lead),
116
+ ul:not(.usa-accordion):not(.usa-accordion-bordered),
117
+ ol:not(.usa-accordion):not(.usa-accordion-bordered) {
118
+ max-width: $text-max-width;
119
+ }
120
+ }
121
+
122
+ .usa-content-list {
123
+ max-width: $text-max-width;
124
+ }
125
+
126
+ .usa-sans {
127
+ p,
128
+ a,
129
+ li,
130
+ span {
131
+ font-family: $font-sans;
132
+ }
133
+
134
+ a {
135
+ border-bottom: none;
136
+ font-weight: $font-bold;
137
+ }
138
+ }
139
+
140
+ .usa-serif {
141
+ p,
142
+ a,
143
+ li,
144
+ span {
145
+ font-family: $font-serif;
146
+ }
147
+ }
148
+
149
+ .usa-display {
150
+ @include h3();
151
+ margin-bottom: 0;
152
+
153
+ @include media($small-screen) {
154
+ @include h1();
155
+ }
156
+
157
+ @include media($medium-screen) {
158
+ @include title();
159
+ }
160
+ }
161
+
162
+ .usa-font-lead {
163
+ font-family: $font-serif;
164
+ font-size: $lead-font-size;
165
+ line-height: $lead-line-height;
166
+ max-width: $lead-max-width;
167
+ }
168
+
169
+ .usa-image-block {
170
+ position: relative;
171
+ }
172
+
173
+ .usa-image-text-block {
174
+ color: $color-white;
175
+ left: 0;
176
+ margin-left: 8%;
177
+ position: absolute;
178
+ top: 0;
179
+ }
180
+
181
+ .usa-image-text {
182
+ margin-top: 0;
183
+ }
184
+
185
+ .usa-drop_text {
186
+ margin-bottom: 0;
187
+ }
188
+
189
+ .usa-background-dark {
190
+ background-color: $color-gray-dark;
191
+
192
+ p,
193
+ span {
194
+ color: $color-white;
195
+ }
196
+
197
+ a {
198
+ color: $color-gray-lighter;
199
+
200
+ &:hover {
201
+ color: $color-white;
202
+ }
203
+ }
204
+ }
205
+
206
+ .usa-text-small {
207
+ font-size: $h6-font-size;
208
+ margin-top: 0;
209
+ }
210
+
211
+ // Removes top margin from first child and bottom margin from last child on
212
+ // elements when they are within those layout elements.
213
+ .usa-section,
214
+ .usa-grid,
215
+ .usa-grid-full {
216
+ > :first-child {
217
+ margin-top: 0;
218
+ }
219
+
220
+ > :last-child {
221
+ margin-bottom: 0;
222
+ }
223
+ }
224
+
225
+ .usa-width-one-whole,
226
+ .usa-width-one-half,
227
+ .usa-width-one-third,
228
+ .usa-width-two-thirds,
229
+ .usa-width-one-fourth,
230
+ .usa-width-three-fourths,
231
+ .usa-width-one-sixth,
232
+ .usa-width-five-sixths,
233
+ .usa-width-one-twelfth {
234
+ &:first-child {
235
+ > :first-child {
236
+ margin-top: 0;
237
+ }
238
+ }
239
+
240
+ > :first-child {
241
+ @include media($medium-screen) {
242
+ margin-top: 0;
243
+ }
244
+ }
245
+
246
+ &:last-child {
247
+ > :last-child {
248
+ margin-bottom: 0;
249
+ }
250
+ }
251
+
252
+ > :last-child {
253
+ @include media($medium-screen) {
254
+ margin-bottom: 0;
255
+ }
256
+ }
257
+ }