@department-of-veterans-affairs/css-library 0.7.4 → 0.8.0

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 (50) hide show
  1. package/dist/fonts/bitter-bold.ttf +0 -0
  2. package/dist/fonts/bitter-bold.woff2 +0 -0
  3. package/dist/fonts/bitter-regular.ttf +0 -0
  4. package/dist/fonts/bitter-regular.woff2 +0 -0
  5. package/dist/stylesheets/_mixins.scss +452 -0
  6. package/dist/stylesheets/base/fonts.css +1589 -0
  7. package/dist/stylesheets/base/utils.css +137 -0
  8. package/dist/stylesheets/base/va.css +1843 -0
  9. package/dist/{full.css → stylesheets/core.css} +341 -2299
  10. package/dist/stylesheets/formation-overrides/_variables.scss +170 -0
  11. package/dist/stylesheets/formation-overrides/core/base.css +64 -0
  12. package/dist/stylesheets/formation-overrides/core/fonts.css +46 -0
  13. package/dist/stylesheets/formation-overrides/elements/buttons.css +562 -0
  14. package/dist/stylesheets/formation-overrides/elements/inputs.css +384 -0
  15. package/dist/stylesheets/formation-overrides/elements/labels.css +28 -0
  16. package/dist/stylesheets/formation-overrides/elements/lists.css +57 -0
  17. package/dist/stylesheets/formation-overrides/elements/table.css +78 -0
  18. package/dist/stylesheets/formation-overrides/elements/typography.css +274 -0
  19. package/dist/stylesheets/mobile-typography.css +13 -0
  20. package/dist/stylesheets/modules/m-action-link.css +1443 -0
  21. package/dist/stylesheets/modules/m-additional-info.css +39 -0
  22. package/dist/stylesheets/modules/m-alert.css +254 -0
  23. package/dist/stylesheets/modules/m-breadcrumbs.css +96 -0
  24. package/dist/stylesheets/modules/m-button.css +153 -0
  25. package/dist/stylesheets/modules/m-dropdown.css +47 -0
  26. package/dist/stylesheets/modules/m-emergency-banner.css +33 -0
  27. package/dist/stylesheets/modules/m-external-link.css +14 -0
  28. package/dist/stylesheets/modules/m-form-elements.css +231 -0
  29. package/dist/stylesheets/modules/m-form-process.css +219 -0
  30. package/dist/stylesheets/modules/m-homepage-hero.css +76 -0
  31. package/dist/stylesheets/modules/m-hub-page-link-list.css +40 -0
  32. package/dist/stylesheets/modules/m-loading-indicator.css +41 -0
  33. package/dist/stylesheets/modules/m-maintenance-banner.css +33 -0
  34. package/dist/stylesheets/modules/m-megamenu.css +365 -0
  35. package/dist/stylesheets/modules/m-modal.css +117 -0
  36. package/dist/stylesheets/modules/m-nav-linklist.css +49 -0
  37. package/dist/stylesheets/modules/m-nav-sidebar.css +349 -0
  38. package/dist/stylesheets/modules/m-omb-info.css +15 -0
  39. package/dist/stylesheets/modules/m-overlay.css +72 -0
  40. package/dist/stylesheets/modules/m-print.css +27 -0
  41. package/dist/stylesheets/modules/m-process-list.css +162 -0
  42. package/dist/stylesheets/modules/va-pagination.css +90 -0
  43. package/dist/stylesheets/modules/va-tabs.css +53 -0
  44. package/dist/stylesheets/shame.css +266 -0
  45. package/dist/tokens/css/variables.css +1 -1
  46. package/dist/tokens/scss/variables.scss +1 -1
  47. package/package.json +8 -6
  48. /package/dist/{base → stylesheets/base}/headings.css +0 -0
  49. /package/dist/{uswds-typography.css → stylesheets/uswds-typography.css} +0 -0
  50. /package/dist/{utilities.css → stylesheets/utilities.css} +0 -0
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,452 @@
1
+ //============ PORTED MIXINS FROM FORMATION ==============//
2
+
3
+ // This is an override on Neat's media mixin to create media queries for both screen and print
4
+ // https://github.com/thoughtbot/neat/blob/v1.8.0/app/assets/stylesheets/grid/_media.scss
5
+
6
+ @import "../../dist/tokens/scss/variables.scss";
7
+ @import "./formation-overrides/variables";
8
+
9
+ // Define default feature:
10
+ $default-feature: min-width;
11
+
12
+ @mixin media($query: $feature $value $columns, $total-columns: $grid-columns) {
13
+ @if length($query) == 1 {
14
+ @media screen and ($default-feature: nth($query, 1)), print and ($default-feature: nth($query, 1)) {
15
+ $default-grid-columns: $grid-columns;
16
+ $grid-columns: $total-columns !global;
17
+ @content;
18
+ $grid-columns: $default-grid-columns !global;
19
+ }
20
+ } @else {
21
+ $loop-to: length($query);
22
+ $media-query: "screen and ";
23
+ $default-grid-columns: $grid-columns;
24
+ $grid-columns: $total-columns !global;
25
+
26
+ @if is-not(is-even(length($query))) {
27
+ $grid-columns: nth($query, $loop-to) !global;
28
+ $loop-to: $loop-to - 1;
29
+ }
30
+
31
+ $i: 1;
32
+ @while $i <= $loop-to {
33
+ $media-query: $media-query + "(" + nth($query, $i) + ": " + nth($query, $i + 1) + ") ";
34
+
35
+ @if ($i + 1) != $loop-to {
36
+ $media-query: $media-query + "and ";
37
+ }
38
+
39
+ $i: $i + 2;
40
+ }
41
+
42
+ // Append "print" at the end so that grid layouts always take effect on print.
43
+ $media-query: $media-query + ", print";
44
+
45
+ @media #{$media-query} {
46
+ @content;
47
+ $grid-columns: $default-grid-columns !global;
48
+ }
49
+ }
50
+ }
51
+
52
+ $color-gray-light:#aeb0b5;
53
+ $focus-outline: 2px dotted $color-gray-light;
54
+ $focus-spacing: 3px;
55
+
56
+ // Focus state mixin
57
+ @mixin focus {
58
+ outline: $focus-outline;
59
+ outline-offset: $focus-spacing;
60
+ }
61
+
62
+ // Used for creating the source string for fonts using @font-face
63
+ // Reference: http://goo.gl/Ru1bKP
64
+
65
+ @function font-url-prefixer($asset-pipeline) {
66
+ @if $asset-pipeline == true {
67
+ @return font-url;
68
+ } @else {
69
+ @return url;
70
+ }
71
+ }
72
+
73
+ @function font-source-declaration(
74
+ $font-family,
75
+ $file-path,
76
+ $asset-pipeline,
77
+ $file-formats,
78
+ $font-url) {
79
+
80
+ $src: ();
81
+
82
+ $formats-map: (
83
+ eot: "#{$file-path}.eot?#iefix" format("embedded-opentype"),
84
+ woff2: "#{$file-path}.woff2" format("woff2"),
85
+ woff: "#{$file-path}.woff" format("woff"),
86
+ ttf: "#{$file-path}.ttf" format("truetype"),
87
+ svg: "#{$file-path}.svg##{$font-family}" format("svg")
88
+ );
89
+
90
+ @each $key, $values in $formats-map {
91
+ @if contains($file-formats, $key) {
92
+ $file-path: nth($values, 1);
93
+ $font-format: nth($values, 2);
94
+
95
+ @if $asset-pipeline == true {
96
+ $src: append($src, font-url($file-path) $font-format, comma);
97
+ } @else {
98
+ $src: append($src, url($file-path) $font-format, comma);
99
+ }
100
+ }
101
+ }
102
+
103
+ @return $src;
104
+ }
105
+
106
+ $asset-pipeline: false;
107
+
108
+ @mixin font-face(
109
+ $font-family,
110
+ $file-path,
111
+ $weight: normal,
112
+ $style: normal,
113
+ $asset-pipeline: $asset-pipeline,
114
+ $file-formats: eot woff2 woff ttf svg) {
115
+
116
+ $font-url-prefix: font-url-prefixer($asset-pipeline);
117
+
118
+ @font-face {
119
+ font-family: $font-family;
120
+ font-style: $style;
121
+ font-weight: $weight;
122
+
123
+ src: font-source-declaration(
124
+ $font-family,
125
+ $file-path,
126
+ $asset-pipeline,
127
+ $file-formats,
128
+ $font-url-prefix
129
+ );
130
+ }
131
+ }
132
+
133
+ /**
134
+ /uswds/dist/scss/lib/addons/_margin.scss
135
+ **/
136
+ @mixin margin($vals...) {
137
+ @include directional-property(margin, false, $vals...);
138
+ }
139
+
140
+ /**
141
+ uswds/src/stylesheets/lib/helpers/_directional-values.scss
142
+ **/
143
+
144
+ /// Directional-property mixins are shorthands for writing properties like the following
145
+ ///
146
+ /// @ignore You can also use `false` instead of `null`.
147
+ ///
148
+ /// @param {List} $vals
149
+ /// List of directional values
150
+ ///
151
+ /// @example scss - Usage
152
+ /// .element {
153
+ /// @include border-style(dotted null);
154
+ /// @include margin(null 0 10px);
155
+ /// }
156
+ ///
157
+ /// @example css - CSS Output
158
+ /// .element {
159
+ /// border-bottom-style: dotted;
160
+ /// border-top-style: dotted;
161
+ /// margin-bottom: 10px;
162
+ /// margin-left: 0;
163
+ /// margin-right: 0;
164
+ /// }
165
+ ///
166
+ /// @require {function} contains-falsy
167
+ ///
168
+ /// @return {List}
169
+
170
+ @function collapse-directionals($vals) {
171
+ $output: null;
172
+
173
+ $a: nth($vals, 1);
174
+ $b: if(length($vals) < 2, $a, nth($vals, 2));
175
+ $c: if(length($vals) < 3, $a, nth($vals, 3));
176
+ $d: if(length($vals) < 2, $a, nth($vals, if(length($vals) < 4, 2, 4)));
177
+
178
+ @if $a == 0 { $a: 0; }
179
+ @if $b == 0 { $b: 0; }
180
+ @if $c == 0 { $c: 0; }
181
+ @if $d == 0 { $d: 0; }
182
+
183
+ @if $a == $b and $a == $c and $a == $d { $output: $a; }
184
+ @else if $a == $c and $b == $d { $output: $a $b; }
185
+ @else if $b == $d { $output: $a $b $c; }
186
+ @else { $output: $a $b $c $d; }
187
+
188
+ @return $output;
189
+ }
190
+
191
+ /// Output directional properties, for instance `margin`.
192
+ ///
193
+ /// @access private
194
+ ///
195
+ /// @param {String} $pre
196
+ /// Prefix to use
197
+ /// @param {String} $suf
198
+ /// Suffix to use
199
+ /// @param {List} $vals
200
+ /// List of values
201
+ ///
202
+ /// @require {function} collapse-directionals
203
+ /// @require {function} contains-falsy
204
+
205
+ @mixin directional-property($pre, $suf, $vals) {
206
+ // Property Names
207
+ $top: $pre + "-top" + if($suf, "-#{$suf}", "");
208
+ $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", "");
209
+ $left: $pre + "-left" + if($suf, "-#{$suf}", "");
210
+ $right: $pre + "-right" + if($suf, "-#{$suf}", "");
211
+ $all: $pre + if($suf, "-#{$suf}", "");
212
+
213
+ $vals: collapse-directionals($vals);
214
+
215
+ @if contains-falsy($vals) {
216
+ @if nth($vals, 1) { #{$top}: nth($vals, 1); }
217
+
218
+ @if length($vals) == 1 {
219
+ @if nth($vals, 1) { #{$right}: nth($vals, 1); }
220
+ } @else {
221
+ @if nth($vals, 2) { #{$right}: nth($vals, 2); }
222
+ }
223
+
224
+ @if length($vals) == 2 {
225
+ @if nth($vals, 1) { #{$bottom}: nth($vals, 1); }
226
+ @if nth($vals, 2) { #{$left}: nth($vals, 2); }
227
+ } @else if length($vals) == 3 {
228
+ @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
229
+ @if nth($vals, 2) { #{$left}: nth($vals, 2); }
230
+ } @else if length($vals) == 4 {
231
+ @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
232
+ @if nth($vals, 4) { #{$left}: nth($vals, 4); }
233
+ }
234
+ } @else {
235
+ #{$all}: $vals;
236
+ }
237
+ }
238
+
239
+ /// Provides a quick method for targeting `padding` on specific sides of a box. Use a `null` value to “skip” a side.
240
+ ///
241
+ /// @param {Arglist} $vals
242
+ /// List of arguments
243
+ ///
244
+ /// @example scss - Usage
245
+ /// .element {
246
+ /// @include padding(12vh null 10px 5%);
247
+ /// }
248
+ ///
249
+ /// @example css - CSS Output
250
+ /// .element {
251
+ /// padding-bottom: 10px;
252
+ /// padding-left: 5%;
253
+ /// padding-top: 12vh;
254
+ /// }
255
+ ///
256
+ /// @require {mixin} directional-property
257
+ ///
258
+ /// @output `padding`
259
+
260
+ @mixin padding($vals...) {
261
+ @include directional-property(padding, false, $vals...);
262
+ }
263
+
264
+ /// Makes an element a outer container by centering it in the viewport, clearing its floats, and setting its `max-width`.
265
+ /// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested.
266
+ ///
267
+ /// @param {Number [unit]} $local-max-width [$max-width]
268
+ /// Max width to be applied to the element. Can be a percentage or a measure.
269
+ ///
270
+ /// @example scss - Usage
271
+ /// .element {
272
+ /// @include outer-container(100%);
273
+ /// }
274
+ ///
275
+ /// @example css - CSS Output
276
+ /// .element {
277
+ /// max-width: 100%;
278
+ /// margin-left: auto;
279
+ /// margin-right: auto;
280
+ /// }
281
+ ///
282
+ /// .element::after {
283
+ /// clear: both;
284
+ /// content: "";
285
+ /// display: table;
286
+ /// }
287
+
288
+ @mixin outer-container($local-max-width: $max-width) {
289
+ @include clearfix;
290
+ max-width: $local-max-width;
291
+ margin: {
292
+ left: auto;
293
+ right: auto;
294
+ }
295
+ }
296
+
297
+ /// Provides an easy way to include a clearfix for containing floats.
298
+ ///
299
+ /// @link http://cssmojo.com/latest_new_clearfix_so_far/
300
+ ///
301
+ /// @example scss - Usage
302
+ /// .element {
303
+ /// @include clearfix;
304
+ /// }
305
+ ///
306
+ /// @example css - CSS Output
307
+ /// .element::after {
308
+ /// clear: both;
309
+ /// content: "";
310
+ /// display: table;
311
+ /// }
312
+
313
+ @mixin clearfix {
314
+ &::after {
315
+ clear: both;
316
+ content: "";
317
+ display: table;
318
+ }
319
+ }
320
+
321
+ @mixin modal-close-button {
322
+ background-color: transparent;
323
+ color: $color-primary;
324
+ font-size: scale-rem(2.25rem);
325
+ padding: 0;
326
+ position: absolute;
327
+ margin: units(2);
328
+ right: 0;
329
+ top: 0;
330
+ width: auto;
331
+ z-index: 9;
332
+
333
+ &:hover {
334
+ background-color: transparent;
335
+ color: $color-primary-darker;
336
+ }
337
+
338
+ &:active {
339
+ background-color: transparent;
340
+ color: $color-primary-darkest;
341
+ }
342
+ }
343
+
344
+ // There are a few places where the exit-icon is explicitly hidden using prop / values
345
+ // like 'background-image: none;'. In these cases, we want to hide the corresponding
346
+ // content placed in the ::after pseudo-element
347
+ @mixin no-sr-content {
348
+ &:after {
349
+ content: none;
350
+ }
351
+ }
352
+
353
+ @mixin color-transition {
354
+ -webkit-transition-duration: 0.3s;
355
+ transition-duration: 0.3s;
356
+
357
+ -webkit-transition-timing-function: ease-in-out;
358
+ transition-timing-function: ease-in-out;
359
+
360
+ // Transition only these properties.
361
+ -webkit-transition-property: color, background-color, border-color;
362
+ transition-property: color, background-color, border-color;
363
+ }
364
+
365
+ @mixin media-maxwidth($bp) {
366
+ @media screen and (max-width: #{$bp}) {
367
+ @content;
368
+ }
369
+ }
370
+
371
+ @mixin focus-gold-light-outline($offset: 2) {
372
+ outline: $focus-outline;
373
+ outline-offset: #{$offset}px;
374
+ }
375
+
376
+ @mixin modal-close-button {
377
+ background-color: transparent;
378
+ color: $color-primary;
379
+ font-size: scale-rem(2.25rem);
380
+ padding: 0;
381
+ position: absolute;
382
+ margin: units(2);
383
+ right: 0;
384
+ top: 0;
385
+ width: auto;
386
+ z-index: 9;
387
+
388
+ &:hover {
389
+ background-color: transparent;
390
+ color: $color-primary-darker;
391
+ }
392
+
393
+ &:active {
394
+ background-color: transparent;
395
+ color: $color-primary-darkest;
396
+ }
397
+ }
398
+
399
+ @mixin button-link {
400
+ background: none;
401
+ background-color: transparent !important;
402
+ border: 0;
403
+ border-radius: 0;
404
+ outline: 0;
405
+ padding: 0 !important;
406
+ margin: 0;
407
+ text-align: left;
408
+ -webkit-font-smoothing: auto;
409
+ color: $color-link-default !important;
410
+ font-weight: normal;
411
+ text-decoration: underline;
412
+ display: inline;
413
+ width: auto !important;
414
+ line-height: inherit;
415
+ &:hover {
416
+ background: none;
417
+ border: 0;
418
+ border-radius: 0;
419
+ outline: 0;
420
+ padding: 0 !important;
421
+ color: $color-link-default;
422
+ text-decoration: underline;
423
+ background-color: $color-link-default-hover !important;
424
+ @include color-transition;
425
+ }
426
+ &:active {
427
+ background: $color-link-default-hover;
428
+ }
429
+ &:focus {
430
+ @include focus-gold-light-outline;
431
+ outline-offset: 0;
432
+ }
433
+ &:disabled {
434
+ text-decoration: none;
435
+ color: $color-gray-light !important;
436
+ }
437
+ }
438
+
439
+ // Aria hidden helper
440
+ @mixin accessibly-hidden() {
441
+ &[aria-hidden=true] {
442
+ display: none;
443
+ }
444
+ }
445
+
446
+ @mixin linear-gradient-background($from, $to) {
447
+ background: $from; /* Old browsers */
448
+ background: -moz-linear-gradient(top, $from 0%, $to 63%); /* FF3.6-15 */
449
+ background: -webkit-linear-gradient(top, $from 0%,$to 63%); /* Chrome10-25,Safari5.1-6 */
450
+ background: linear-gradient(to bottom, $from 0%,$to 63%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
451
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=$from, endColorstr=$to,GradientType=0 ); /* IE6-9 */
452
+ }