gerillass 1.4.0 → 1.6.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.
package/gerillass.json ADDED
@@ -0,0 +1,1869 @@
1
+ {
2
+ "name": "gerillass",
3
+ "version": "1.6.0",
4
+ "description": "Gerillass is an open-source toolkit that contains a set of Sass mixins to help designers and developers to create better, faster and consistent user interfaces.",
5
+ "homepage": "https://gerillass.com",
6
+ "documentation": "https://docs.gerillass.com",
7
+ "prefix": "gls-",
8
+ "load": {
9
+ "packageImporter": "@use \"pkg:gerillass\" as *;",
10
+ "bundler": "@use \"gerillass\" as *;",
11
+ "loadPath": "@use \"gerillass\" as *; // with loadPaths: [\"node_modules/gerillass/scss\"]"
12
+ },
13
+ "members": [
14
+ {
15
+ "name": "adaptive",
16
+ "kind": "mixin",
17
+ "arguments": [
18
+ {
19
+ "name": "$gutter",
20
+ "default": "30px",
21
+ "accepts": [
22
+ "a length subtracted from each side at every breakpoint"
23
+ ]
24
+ }
25
+ ],
26
+ "file": "scss/library/_adaptive.scss",
27
+ "signature": "adaptive($gutter: 30px)",
28
+ "summary": "Centred container whose max-width steps up at every breakpoint.",
29
+ "examples": [
30
+ ".wrap { @include adaptive; }",
31
+ ".wrap { @include adaptive(16px); }"
32
+ ],
33
+ "rejects": []
34
+ },
35
+ {
36
+ "name": "after",
37
+ "kind": "mixin",
38
+ "arguments": [
39
+ {
40
+ "name": "$content",
41
+ "default": "null",
42
+ "accepts": [
43
+ "a string used as the content value",
44
+ "a data- attribute name, rendered as attr()",
45
+ "null to write content yourself"
46
+ ]
47
+ }
48
+ ],
49
+ "file": "scss/library/_after.scss",
50
+ "signature": "after($content: null)",
51
+ "summary": "Styles the ::after pseudo-element. A `data-` argument becomes an attr() content value.",
52
+ "examples": [
53
+ ".a { @include after(\"→\") { color: red; } }",
54
+ ".a { @include after(\"data-label\") { color: red; } }",
55
+ ".a { @include after { content: \"x\"; } }"
56
+ ],
57
+ "rejects": []
58
+ },
59
+ {
60
+ "name": "all-buttons",
61
+ "kind": "mixin",
62
+ "arguments": [
63
+ {
64
+ "name": "$pseudo",
65
+ "default": "null",
66
+ "accepts": [
67
+ "hover",
68
+ "focus",
69
+ "active",
70
+ "disabled",
71
+ "null for the plain state"
72
+ ]
73
+ }
74
+ ],
75
+ "file": "scss/library/_all-buttons.scss",
76
+ "signature": "all-buttons($pseudo: null)",
77
+ "summary": "Targets every button-like element at once, optionally in one pseudo-class state.",
78
+ "examples": [
79
+ "@include all-buttons { cursor: pointer; }",
80
+ "@include all-buttons(\"hover\") { opacity: 0.8; }"
81
+ ],
82
+ "rejects": [
83
+ "@include all-buttons(nonsense) { color: red; }"
84
+ ]
85
+ },
86
+ {
87
+ "name": "all-text-inputs",
88
+ "kind": "mixin",
89
+ "arguments": [
90
+ {
91
+ "name": "$pseudo",
92
+ "default": "null",
93
+ "accepts": [
94
+ "hover",
95
+ "focus",
96
+ "active",
97
+ "invalid",
98
+ "required",
99
+ "disabled",
100
+ "null for the plain state"
101
+ ]
102
+ }
103
+ ],
104
+ "file": "scss/library/_all-text-inputs.scss",
105
+ "signature": "all-text-inputs($pseudo: null)",
106
+ "summary": "Targets every text-like input at once, optionally in one pseudo-class state.",
107
+ "examples": [
108
+ "@include all-text-inputs { border: 1px solid; }",
109
+ "@include all-text-inputs(\"focus\") { outline: 2px solid; }"
110
+ ],
111
+ "rejects": [
112
+ "@include all-text-inputs(nonsense) { color: red; }"
113
+ ]
114
+ },
115
+ {
116
+ "name": "antialias",
117
+ "kind": "mixin",
118
+ "arguments": [
119
+ {
120
+ "name": "$value",
121
+ "default": "null",
122
+ "accepts": [
123
+ "\"only\" inside a selector to affect just that element",
124
+ "null for the element and its descendants"
125
+ ]
126
+ }
127
+ ],
128
+ "file": "scss/library/_antialias.scss",
129
+ "signature": "antialias($value: null)",
130
+ "summary": "Turns on subpixel-antialiased text smoothing.",
131
+ "examples": [
132
+ "@include antialias;",
133
+ ".a { @include antialias(\"only\"); }"
134
+ ],
135
+ "rejects": [
136
+ "@include antialias(only);",
137
+ ".a { @include antialias(bogus); }"
138
+ ]
139
+ },
140
+ {
141
+ "name": "background-dots",
142
+ "kind": "mixin",
143
+ "arguments": [
144
+ {
145
+ "name": "$color",
146
+ "default": "null",
147
+ "accepts": [
148
+ "one colour, or two for the diagonal variant",
149
+ "null for a translucent black"
150
+ ]
151
+ },
152
+ {
153
+ "name": "$size",
154
+ "default": "1em",
155
+ "accepts": [
156
+ "dot radius"
157
+ ]
158
+ },
159
+ {
160
+ "name": "$gutter",
161
+ "default": "$size * 5",
162
+ "accepts": [
163
+ "spacing between dots"
164
+ ]
165
+ },
166
+ {
167
+ "name": "$diagonal",
168
+ "default": "true",
169
+ "accepts": [
170
+ "true",
171
+ "false"
172
+ ]
173
+ },
174
+ {
175
+ "name": "$image",
176
+ "default": "null",
177
+ "accepts": [
178
+ "an image path to sit behind the dots"
179
+ ]
180
+ }
181
+ ],
182
+ "file": "scss/library/_background-dots.scss",
183
+ "signature": "background-dots($color: null, $size: 1em, $gutter: $size * 5, $diagonal: true, $image: null)",
184
+ "summary": "Repeating dot pattern as a background, optionally over an image.",
185
+ "examples": [
186
+ ".a { @include background-dots; }",
187
+ ".a { @include background-dots(red); }",
188
+ ".a { @include background-dots(red, 1em, 5em, false); }"
189
+ ],
190
+ "rejects": [
191
+ ".a { @include background-dots(red, 1em, 5em, maybe); }"
192
+ ]
193
+ },
194
+ {
195
+ "name": "background-image",
196
+ "kind": "mixin",
197
+ "arguments": [
198
+ {
199
+ "name": "$image-url",
200
+ "default": "null",
201
+ "accepts": [
202
+ "an image path",
203
+ "null to filter the element itself instead"
204
+ ]
205
+ },
206
+ {
207
+ "name": "$filter-color",
208
+ "default": "null",
209
+ "accepts": [
210
+ "one colour, or several for a gradient"
211
+ ]
212
+ },
213
+ {
214
+ "name": "$filter-direction",
215
+ "default": "null",
216
+ "accepts": [
217
+ "an angle such as 45deg",
218
+ "a direction name such as top or bottom-left"
219
+ ]
220
+ }
221
+ ],
222
+ "file": "scss/library/_background-image.scss",
223
+ "signature": "background-image($image-url: null, $filter-color: null, $filter-direction: null)",
224
+ "summary": "Background image with an optional colour or gradient filter laid over it.",
225
+ "examples": [
226
+ ".a { @include background-image(\"/img/a.png\"); }",
227
+ ".a { @include background-image(\"/img/a.png\", rgba(0,0,0,0.5)); }",
228
+ ".a { @include background-image(\"/img/a.png\", (red, blue), \"top\"); }"
229
+ ],
230
+ "rejects": [
231
+ ".a { @include background-image(\"/img/a.png\", (red, blue), sideways); }"
232
+ ]
233
+ },
234
+ {
235
+ "name": "background-stripes",
236
+ "kind": "mixin",
237
+ "arguments": [
238
+ {
239
+ "name": "$color",
240
+ "default": "null",
241
+ "accepts": [
242
+ "one colour, or several for a multi-stripe pattern",
243
+ "null for a translucent black"
244
+ ]
245
+ },
246
+ {
247
+ "name": "$thickness",
248
+ "default": "1em",
249
+ "accepts": [
250
+ "stripe thickness"
251
+ ]
252
+ },
253
+ {
254
+ "name": "$rotation",
255
+ "default": "-45deg",
256
+ "accepts": [
257
+ "an angle; a unitless number is treated as degrees"
258
+ ]
259
+ },
260
+ {
261
+ "name": "$image",
262
+ "default": "null",
263
+ "accepts": [
264
+ "an image path to sit behind the stripes"
265
+ ]
266
+ }
267
+ ],
268
+ "file": "scss/library/_background-stripes.scss",
269
+ "signature": "background-stripes($color: null, $thickness: 1em, $rotation: -45deg, $image: null)",
270
+ "summary": "Repeating stripe pattern as a background, optionally over an image.",
271
+ "examples": [
272
+ ".a { @include background-stripes; }",
273
+ ".a { @include background-stripes(red, 2em, -30deg); }"
274
+ ],
275
+ "rejects": []
276
+ },
277
+ {
278
+ "name": "before",
279
+ "kind": "mixin",
280
+ "arguments": [
281
+ {
282
+ "name": "$content",
283
+ "default": "null",
284
+ "accepts": [
285
+ "a string used as the content value",
286
+ "a data- attribute name, rendered as attr()",
287
+ "null to write content yourself"
288
+ ]
289
+ }
290
+ ],
291
+ "file": "scss/library/_before.scss",
292
+ "signature": "before($content: null)",
293
+ "summary": "Styles the ::before pseudo-element. A `data-` argument becomes an attr() content value.",
294
+ "examples": [
295
+ ".a { @include before(\"→\") { color: red; } }",
296
+ ".a { @include before(\"data-label\") { color: red; } }"
297
+ ],
298
+ "rejects": []
299
+ },
300
+ {
301
+ "name": "border-box",
302
+ "kind": "mixin",
303
+ "arguments": [
304
+ {
305
+ "name": "$value",
306
+ "default": "null",
307
+ "accepts": [
308
+ "\"only\" inside a selector to affect just that element",
309
+ "null for the element and its descendants"
310
+ ]
311
+ }
312
+ ],
313
+ "file": "scss/library/_border-box.scss",
314
+ "signature": "border-box($value: null)",
315
+ "summary": "Applies box-sizing: border-box.",
316
+ "examples": [
317
+ "@include border-box;",
318
+ ".a { @include border-box(\"only\"); }"
319
+ ],
320
+ "rejects": [
321
+ "@include border-box(only);",
322
+ ".a { @include border-box(bogus); }"
323
+ ]
324
+ },
325
+ {
326
+ "name": "border-radius",
327
+ "kind": "mixin",
328
+ "arguments": [
329
+ {
330
+ "name": "$args",
331
+ "variadic": true,
332
+ "accepts": [
333
+ "one length for every corner",
334
+ "a corner name plus a length",
335
+ "four lengths: top-left, top-right, bottom-right, bottom-left"
336
+ ]
337
+ }
338
+ ],
339
+ "file": "scss/library/_border-radius.scss",
340
+ "signature": "border-radius($args...)",
341
+ "summary": "Rounds corners, either all of them, one named corner, or all four individually.",
342
+ "examples": [
343
+ ".a { @include border-radius(8px); }",
344
+ ".a { @include border-radius(\"top\", 8px); }",
345
+ ".a { @include border-radius(1px, 2px, 3px, 4px); }"
346
+ ],
347
+ "rejects": [
348
+ ".a { @include border-radius(1px, 2px, 3px); }",
349
+ ".a { @include border-radius(nonsense, 5px); }"
350
+ ]
351
+ },
352
+ {
353
+ "name": "brand-logo",
354
+ "kind": "mixin",
355
+ "arguments": [
356
+ {
357
+ "name": "$width",
358
+ "required": true,
359
+ "accepts": [
360
+ "a length"
361
+ ]
362
+ },
363
+ {
364
+ "name": "$height",
365
+ "required": true,
366
+ "accepts": [
367
+ "a length"
368
+ ]
369
+ },
370
+ {
371
+ "name": "$image-url",
372
+ "default": "null",
373
+ "accepts": [
374
+ "an image path"
375
+ ]
376
+ }
377
+ ],
378
+ "file": "scss/library/_brand-logo.scss",
379
+ "signature": "brand-logo($width, $height, $image-url: null)",
380
+ "summary": "Logo box with an image and an accessible stretched link over it.",
381
+ "examples": [
382
+ ".logo { @include brand-logo(120px, 40px, \"/img/logo.svg\"); }"
383
+ ],
384
+ "rejects": []
385
+ },
386
+ {
387
+ "name": "breakpoint",
388
+ "kind": "mixin",
389
+ "arguments": [
390
+ {
391
+ "name": "$params",
392
+ "variadic": true,
393
+ "accepts": [
394
+ "one breakpoint name, for exactly that width",
395
+ "min or max plus a breakpoint",
396
+ "between plus two breakpoints",
397
+ "a start and an end value"
398
+ ]
399
+ }
400
+ ],
401
+ "file": "scss/library/_breakpoint.scss",
402
+ "signature": "breakpoint($params...)",
403
+ "summary": "Media query built from the breakpoint map, or from raw lengths.",
404
+ "examples": [
405
+ ".a { @include breakpoint(\"medium\") { color: red; } }",
406
+ ".a { @include breakpoint(\"min\", \"medium\") { color: red; } }",
407
+ ".a { @include breakpoint(\"between\", \"medium\" \"large\") { color: red; } }"
408
+ ],
409
+ "rejects": []
410
+ },
411
+ {
412
+ "name": "breakpointer",
413
+ "kind": "mixin",
414
+ "arguments": [
415
+ {
416
+ "name": "$selector",
417
+ "default": "null",
418
+ "accepts": [
419
+ "a selector to attach to when called at root",
420
+ "null for body"
421
+ ]
422
+ }
423
+ ],
424
+ "file": "scss/library/_breakpointer.scss",
425
+ "signature": "breakpointer($selector: null)",
426
+ "summary": "Debug helper that prints the active breakpoint name into a pseudo-element.",
427
+ "examples": [
428
+ "@include breakpointer;",
429
+ ".a { @include breakpointer; }"
430
+ ],
431
+ "rejects": []
432
+ },
433
+ {
434
+ "name": "center",
435
+ "kind": "mixin",
436
+ "arguments": [
437
+ {
438
+ "name": "$axis",
439
+ "default": "\"both\"",
440
+ "accepts": [
441
+ "both",
442
+ "horizontal",
443
+ "vertical"
444
+ ]
445
+ }
446
+ ],
447
+ "file": "scss/library/_center.scss",
448
+ "signature": "center($axis: \"both\")",
449
+ "summary": "Absolutely centres an element inside its positioned parent.",
450
+ "examples": [
451
+ ".modal { @include center; }",
452
+ ".bar { @include center(\"horizontal\"); }"
453
+ ],
454
+ "rejects": [
455
+ ".modal { @include center(diagonal); }"
456
+ ]
457
+ },
458
+ {
459
+ "name": "circle",
460
+ "kind": "mixin",
461
+ "arguments": [
462
+ {
463
+ "name": "$size",
464
+ "required": true,
465
+ "accepts": [
466
+ "a length used for both width and height"
467
+ ]
468
+ }
469
+ ],
470
+ "file": "scss/library/_circle.scss",
471
+ "signature": "circle($size)",
472
+ "summary": "Square element with a fully rounded border, i.e. a circle.",
473
+ "examples": [
474
+ ".dot { @include circle(24px); }"
475
+ ],
476
+ "rejects": []
477
+ },
478
+ {
479
+ "name": "clearfix",
480
+ "kind": "mixin",
481
+ "arguments": [],
482
+ "file": "scss/library/_clearfix.scss",
483
+ "signature": "clearfix",
484
+ "summary": "Clears floated children using an ::after pseudo-element.",
485
+ "examples": [
486
+ ".row { @include clearfix; }"
487
+ ],
488
+ "rejects": []
489
+ },
490
+ {
491
+ "name": "columnizer",
492
+ "kind": "mixin",
493
+ "arguments": [
494
+ {
495
+ "name": "$params",
496
+ "variadic": true,
497
+ "accepts": [
498
+ "a column count",
499
+ "a column count plus a gutter length",
500
+ "a column count plus a boolean fill flag",
501
+ "a column count, a gutter and a fill flag"
502
+ ]
503
+ }
504
+ ],
505
+ "file": "scss/library/_columnizer.scss",
506
+ "signature": "columnizer($params...)",
507
+ "summary": "Flexbox grid of equal columns, with an optional gutter and fill behaviour.",
508
+ "examples": [
509
+ ".grid { @include columnizer(3); }",
510
+ ".grid { @include columnizer(3, 20px); }",
511
+ ".grid { @include columnizer(3, 20px, true); }"
512
+ ],
513
+ "rejects": [
514
+ ".grid { @include columnizer(3, 20px, true, 9); }"
515
+ ]
516
+ },
517
+ {
518
+ "name": "counter",
519
+ "kind": "mixin",
520
+ "arguments": [
521
+ {
522
+ "name": "$params",
523
+ "variadic": true,
524
+ "accepts": [
525
+ "a counter style name",
526
+ "a prefix and/or suffix string",
527
+ "a prefix, a counter style and a suffix"
528
+ ]
529
+ }
530
+ ],
531
+ "file": "scss/library/_counter.scss",
532
+ "signature": "counter($params...)",
533
+ "summary": "CSS counter for a list, with optional text before and after the number.",
534
+ "examples": [
535
+ ".list { @include counter(\"decimal\"); }",
536
+ ".list { @include counter(\".\"); }",
537
+ ".list { @include counter(\"(\", \"decimal\", \")\"); }"
538
+ ],
539
+ "rejects": []
540
+ },
541
+ {
542
+ "name": "ellipsis",
543
+ "kind": "mixin",
544
+ "arguments": [
545
+ {
546
+ "name": "$width",
547
+ "default": "100%",
548
+ "accepts": [
549
+ "a max-width"
550
+ ]
551
+ },
552
+ {
553
+ "name": "$display",
554
+ "default": "inline-block",
555
+ "accepts": [
556
+ "a display value"
557
+ ]
558
+ }
559
+ ],
560
+ "file": "scss/library/_ellipsis.scss",
561
+ "signature": "ellipsis($width: 100%, $display: inline-block)",
562
+ "summary": "Truncates a single line of text with an ellipsis.",
563
+ "examples": [
564
+ ".a { @include ellipsis; }",
565
+ ".a { @include ellipsis(200px); }"
566
+ ],
567
+ "rejects": []
568
+ },
569
+ {
570
+ "name": "escape-to-parent",
571
+ "kind": "mixin",
572
+ "arguments": [
573
+ {
574
+ "name": "$selector",
575
+ "default": "null",
576
+ "accepts": [
577
+ "a selector to prepend"
578
+ ]
579
+ }
580
+ ],
581
+ "file": "scss/library/_escape-to-parent.scss",
582
+ "signature": "escape-to-parent($selector: null)",
583
+ "summary": "Re-roots the current selector under another one using @at-root.",
584
+ "examples": [
585
+ ".a { @include escape-to-parent(\".theme-dark\") { color: white; } }"
586
+ ],
587
+ "rejects": []
588
+ },
589
+ {
590
+ "name": "except",
591
+ "kind": "mixin",
592
+ "arguments": [
593
+ {
594
+ "name": "$params",
595
+ "variadic": true,
596
+ "accepts": [
597
+ "a positive or negative index",
598
+ "first, last, odd or even",
599
+ "a selector such as .foo",
600
+ "several indexes"
601
+ ]
602
+ }
603
+ ],
604
+ "file": "scss/library/_except.scss",
605
+ "signature": "except($params...)",
606
+ "summary": "Selects every sibling except the ones named.",
607
+ "examples": [
608
+ ".a { @include except(\"first\") { margin: 0; } }",
609
+ ".a { @include except(2) { margin: 0; } }",
610
+ ".a { @include except(1, 3) { margin: 0; } }"
611
+ ],
612
+ "rejects": [
613
+ ".a { @include except(#ff0000) { margin: 0; } }"
614
+ ]
615
+ },
616
+ {
617
+ "name": "font-face",
618
+ "kind": "mixin",
619
+ "arguments": [
620
+ {
621
+ "name": "$font-family",
622
+ "required": true,
623
+ "accepts": [
624
+ "the family name"
625
+ ]
626
+ },
627
+ {
628
+ "name": "$file-path",
629
+ "required": true,
630
+ "accepts": [
631
+ "path to the files, without an extension"
632
+ ]
633
+ },
634
+ {
635
+ "name": "$font-style",
636
+ "default": "normal",
637
+ "accepts": [
638
+ "normal, italic or oblique, or a weight number"
639
+ ]
640
+ },
641
+ {
642
+ "name": "$font-weight",
643
+ "default": "400",
644
+ "accepts": [
645
+ "a weight"
646
+ ]
647
+ },
648
+ {
649
+ "name": "$file-formats",
650
+ "default": "eot woff2 woff ttf svg",
651
+ "accepts": [
652
+ "any of eot, woff2, woff, ttf, svg"
653
+ ]
654
+ }
655
+ ],
656
+ "file": "scss/library/_font-face.scss",
657
+ "signature": "font-face($font-family, $file-path, $font-style: normal, $font-weight: 400, $file-formats: eot woff2 woff ttf svg)",
658
+ "summary": "Emits an @font-face rule for one family across several file formats. Must be called at the root.",
659
+ "examples": [
660
+ "@include font-face(\"Inter\", \"/fonts/inter\");",
661
+ "@include font-face(\"Inter\", \"/fonts/inter\", italic, 700, woff2 woff);"
662
+ ],
663
+ "rejects": [
664
+ ".a { @include font-face(\"Inter\", \"/fonts/inter\"); }"
665
+ ]
666
+ },
667
+ {
668
+ "name": "hide",
669
+ "kind": "mixin",
670
+ "arguments": [
671
+ {
672
+ "name": "$toggle",
673
+ "default": "\"hide\"",
674
+ "accepts": [
675
+ "hide",
676
+ "unhide"
677
+ ]
678
+ }
679
+ ],
680
+ "file": "scss/library/_hide.scss",
681
+ "signature": "hide($toggle: \"hide\")",
682
+ "summary": "Visually hides an element while keeping it available to screen readers, or reverses that.",
683
+ "examples": [
684
+ ".a { @include hide; }",
685
+ ".a { @include hide(\"unhide\"); }"
686
+ ],
687
+ "rejects": [
688
+ ".a { @include hide(nonsense); }"
689
+ ]
690
+ },
691
+ {
692
+ "name": "linear-gradient",
693
+ "kind": "mixin",
694
+ "arguments": [
695
+ {
696
+ "name": "$direction",
697
+ "required": true,
698
+ "accepts": [
699
+ "a direction name such as top or bottom-left",
700
+ "an angle such as 45deg"
701
+ ]
702
+ },
703
+ {
704
+ "name": "$colors",
705
+ "required": true,
706
+ "accepts": [
707
+ "two or more colours"
708
+ ]
709
+ }
710
+ ],
711
+ "file": "scss/library/_linear-gradient.scss",
712
+ "signature": "linear-gradient($direction, $colors)",
713
+ "summary": "Linear gradient background from a direction name or an angle.",
714
+ "examples": [
715
+ ".a { @include linear-gradient(\"top\", (red, blue)); }",
716
+ ".a { @include linear-gradient(45deg, (red, blue)); }"
717
+ ],
718
+ "rejects": []
719
+ },
720
+ {
721
+ "name": "loadify",
722
+ "kind": "mixin",
723
+ "arguments": [
724
+ {
725
+ "name": "$params",
726
+ "variadic": true,
727
+ "accepts": [
728
+ "init at the root, or nothing",
729
+ "a delay, and optionally a duration, on an element"
730
+ ]
731
+ }
732
+ ],
733
+ "file": "scss/library/_loadify.scss",
734
+ "signature": "loadify($params...)",
735
+ "summary": "Fades elements in on page load. Call once at the root to set up, then on each element.",
736
+ "examples": [
737
+ "@include loadify(init);\n.a { @include loadify; }",
738
+ "@include loadify;\n.a { @include loadify(0.4s, 1s); }"
739
+ ],
740
+ "rejects": [
741
+ "@include loadify(nonsense);"
742
+ ]
743
+ },
744
+ {
745
+ "name": "only",
746
+ "kind": "mixin",
747
+ "arguments": [
748
+ {
749
+ "name": "$params",
750
+ "variadic": true,
751
+ "accepts": [
752
+ "a positive or negative index",
753
+ "first, last, odd or even",
754
+ "a selector such as .foo",
755
+ "several indexes"
756
+ ]
757
+ }
758
+ ],
759
+ "file": "scss/library/_only.scss",
760
+ "signature": "only($params...)",
761
+ "summary": "Selects only the siblings named.",
762
+ "examples": [
763
+ ".a { @include only(\"first\") { margin: 0; } }",
764
+ ".a { @include only(-1) { margin: 0; } }",
765
+ ".a { @include only(1, 3) { margin: 0; } }"
766
+ ],
767
+ "rejects": [
768
+ ".a { @include only(#ff0000) { margin: 0; } }"
769
+ ]
770
+ },
771
+ {
772
+ "name": "placeholder-shown",
773
+ "kind": "mixin",
774
+ "arguments": [],
775
+ "file": "scss/library/_placeholder-shown.scss",
776
+ "signature": "placeholder-shown",
777
+ "summary": "Styles an input while its placeholder is visible.",
778
+ "examples": [
779
+ ".field { @include placeholder-shown { border-color: gray; } }"
780
+ ],
781
+ "rejects": []
782
+ },
783
+ {
784
+ "name": "placeholder",
785
+ "kind": "mixin",
786
+ "arguments": [],
787
+ "file": "scss/library/_placeholder.scss",
788
+ "signature": "placeholder",
789
+ "summary": "Styles the placeholder text of an input across vendor prefixes.",
790
+ "examples": [
791
+ ".field { @include placeholder { color: gray; } }"
792
+ ],
793
+ "rejects": []
794
+ },
795
+ {
796
+ "name": "position",
797
+ "kind": "mixin",
798
+ "arguments": [
799
+ {
800
+ "name": "$position",
801
+ "default": "absolute",
802
+ "accepts": [
803
+ "any CSS position value"
804
+ ]
805
+ },
806
+ {
807
+ "name": "$offsets",
808
+ "default": "0",
809
+ "accepts": [
810
+ "one to four lengths in shorthand order, or auto/inherit/initial/0"
811
+ ]
812
+ }
813
+ ],
814
+ "file": "scss/library/_position.scss",
815
+ "signature": "position($position: absolute, $offsets: 0)",
816
+ "summary": "Sets position and offsets in one call, using shorthand order.",
817
+ "examples": [
818
+ ".a { @include position(absolute, 0); }",
819
+ ".a { @include position(fixed, 0 10px); }"
820
+ ],
821
+ "rejects": []
822
+ },
823
+ {
824
+ "name": "radial-gradient",
825
+ "kind": "mixin",
826
+ "arguments": [
827
+ {
828
+ "name": "$shape",
829
+ "required": true,
830
+ "accepts": [
831
+ "circle or ellipse"
832
+ ]
833
+ },
834
+ {
835
+ "name": "$position",
836
+ "required": true,
837
+ "accepts": [
838
+ "a position name such as center or top-left",
839
+ "a raw CSS position"
840
+ ]
841
+ },
842
+ {
843
+ "name": "$colors",
844
+ "required": true,
845
+ "accepts": [
846
+ "two or more colours"
847
+ ]
848
+ }
849
+ ],
850
+ "file": "scss/library/_radial-gradient.scss",
851
+ "signature": "radial-gradient($shape, $position, $colors)",
852
+ "summary": "Radial gradient background from a shape and a position.",
853
+ "examples": [
854
+ ".a { @include radial-gradient(circle, \"center\", (red, blue)); }"
855
+ ],
856
+ "rejects": []
857
+ },
858
+ {
859
+ "name": "ratio-box",
860
+ "kind": "mixin",
861
+ "arguments": [
862
+ {
863
+ "name": "$ratio",
864
+ "default": "null",
865
+ "accepts": [
866
+ "a string such as \"16/9\" or \"16:9\"",
867
+ "a unitless number such as 1.77",
868
+ "null for the 16/9 default"
869
+ ]
870
+ }
871
+ ],
872
+ "file": "scss/library/_ratio-box.scss",
873
+ "signature": "ratio-box($ratio: null)",
874
+ "summary": "Container that holds a fixed aspect ratio. Its single direct child is stretched to fill it.",
875
+ "examples": [
876
+ ".hero { @include ratio-box(\"16/9\"); }",
877
+ ".square { @include ratio-box(\"1/1\"); }",
878
+ ".default { @include ratio-box; }"
879
+ ],
880
+ "rejects": [
881
+ ".hero { @include ratio-box(16 9); }",
882
+ ".hero { @include ratio-box(16px); }"
883
+ ]
884
+ },
885
+ {
886
+ "name": "remove",
887
+ "kind": "mixin",
888
+ "arguments": [
889
+ {
890
+ "name": "$params",
891
+ "variadic": true,
892
+ "accepts": [
893
+ "nothing, to hide it always",
894
+ "one breakpoint",
895
+ "min or max plus a breakpoint",
896
+ "a start and an end breakpoint"
897
+ ]
898
+ }
899
+ ],
900
+ "file": "scss/library/_remove.scss",
901
+ "signature": "remove($params...)",
902
+ "summary": "Hides an element outright, or only within a breakpoint range.",
903
+ "examples": [
904
+ ".a { @include remove; }",
905
+ ".a { @include remove(\"medium\"); }",
906
+ ".a { @include remove(\"min\", \"medium\"); }"
907
+ ],
908
+ "rejects": [
909
+ ".a { @include remove(a, b, c); }"
910
+ ]
911
+ },
912
+ {
913
+ "name": "reset-css",
914
+ "kind": "mixin",
915
+ "arguments": [],
916
+ "file": "scss/library/_reset-css.scss",
917
+ "signature": "reset-css",
918
+ "summary": "Meyer reset. Must be called at the root of the stylesheet.",
919
+ "examples": [
920
+ "@include reset-css;"
921
+ ],
922
+ "rejects": [
923
+ ".a { @include reset-css; }"
924
+ ]
925
+ },
926
+ {
927
+ "name": "reset-figure",
928
+ "kind": "mixin",
929
+ "arguments": [],
930
+ "file": "scss/library/_reset-figure.scss",
931
+ "signature": "reset-figure",
932
+ "summary": "Removes default figure margins and makes the image inside responsive.",
933
+ "examples": [
934
+ "figure { @include reset-figure; }"
935
+ ],
936
+ "rejects": []
937
+ },
938
+ {
939
+ "name": "resizable",
940
+ "kind": "mixin",
941
+ "arguments": [
942
+ {
943
+ "name": "$direction",
944
+ "default": "both",
945
+ "accepts": [
946
+ "a CSS resize value such as both, horizontal, vertical or none"
947
+ ]
948
+ },
949
+ {
950
+ "name": "$overflow",
951
+ "default": "auto",
952
+ "accepts": [
953
+ "a CSS overflow value"
954
+ ]
955
+ }
956
+ ],
957
+ "file": "scss/library/_resizable.scss",
958
+ "signature": "resizable($direction: both, $overflow: auto)",
959
+ "summary": "Makes an element user-resizable.",
960
+ "examples": [
961
+ ".a { @include resizable; }",
962
+ ".a { @include resizable(vertical, scroll); }"
963
+ ],
964
+ "rejects": []
965
+ },
966
+ {
967
+ "name": "responsive-image",
968
+ "kind": "mixin",
969
+ "arguments": [],
970
+ "file": "scss/library/_responsive-image.scss",
971
+ "signature": "responsive-image",
972
+ "summary": "Makes an image fill its container width.",
973
+ "examples": [
974
+ "img { @include responsive-image; }"
975
+ ],
976
+ "rejects": []
977
+ },
978
+ {
979
+ "name": "responsive-video",
980
+ "kind": "mixin",
981
+ "arguments": [
982
+ {
983
+ "name": "$ratio",
984
+ "default": "null",
985
+ "accepts": [
986
+ "a string such as \"16/9\" or \"16:9\"",
987
+ "a unitless number",
988
+ "null for the 16/9 default"
989
+ ]
990
+ }
991
+ ],
992
+ "file": "scss/library/_responsive-video.scss",
993
+ "signature": "responsive-video($ratio: null)",
994
+ "summary": "Wrapper that keeps an embedded video at a fixed aspect ratio.",
995
+ "examples": [
996
+ ".video { @include responsive-video(\"16/9\"); }",
997
+ ".video { @include responsive-video; }"
998
+ ],
999
+ "rejects": [
1000
+ ".video { @include responsive-video(16 9); }"
1001
+ ]
1002
+ },
1003
+ {
1004
+ "name": "scissors",
1005
+ "kind": "mixin",
1006
+ "arguments": [
1007
+ {
1008
+ "name": "$corners",
1009
+ "required": true,
1010
+ "accepts": [
1011
+ "one length for every corner",
1012
+ "four lengths: top-left, top-right, bottom-right, bottom-left"
1013
+ ]
1014
+ }
1015
+ ],
1016
+ "file": "scss/library/_scissors.scss",
1017
+ "signature": "scissors($corners)",
1018
+ "summary": "Cuts the corners off an element with clip-path.",
1019
+ "examples": [
1020
+ ".a { @include scissors(12px); }",
1021
+ ".a { @include scissors(4px 8px 12px 16px); }"
1022
+ ],
1023
+ "rejects": [
1024
+ ".a { @include scissors(5px 10px); }"
1025
+ ]
1026
+ },
1027
+ {
1028
+ "name": "screen-agent",
1029
+ "kind": "mixin",
1030
+ "arguments": [
1031
+ {
1032
+ "name": "$resolution",
1033
+ "required": true,
1034
+ "accepts": [
1035
+ "1x, 2x or 3x",
1036
+ "a raw resolution such as 120dpi"
1037
+ ]
1038
+ }
1039
+ ],
1040
+ "file": "scss/library/_screen-agent.scss",
1041
+ "signature": "screen-agent($resolution)",
1042
+ "summary": "Media query targeting a screen pixel density.",
1043
+ "examples": [
1044
+ ".a { @include screen-agent(\"2x\") { background-image: url(\"/img/a@2x.png\"); } }"
1045
+ ],
1046
+ "rejects": []
1047
+ },
1048
+ {
1049
+ "name": "sizer",
1050
+ "kind": "mixin",
1051
+ "arguments": [
1052
+ {
1053
+ "name": "$width",
1054
+ "required": true,
1055
+ "accepts": [
1056
+ "a length"
1057
+ ]
1058
+ },
1059
+ {
1060
+ "name": "$height",
1061
+ "default": "$width",
1062
+ "accepts": [
1063
+ "a length; defaults to the width"
1064
+ ]
1065
+ }
1066
+ ],
1067
+ "file": "scss/library/_sizer.scss",
1068
+ "signature": "sizer($width, $height: $width)",
1069
+ "summary": "Sets width and height together; one argument makes a square.",
1070
+ "examples": [
1071
+ ".a { @include sizer(40px); }",
1072
+ ".a { @include sizer(120px, 40px); }"
1073
+ ],
1074
+ "rejects": []
1075
+ },
1076
+ {
1077
+ "name": "smartphone",
1078
+ "kind": "mixin",
1079
+ "arguments": [
1080
+ {
1081
+ "name": "$device",
1082
+ "required": true,
1083
+ "accepts": [
1084
+ "a key from $map-for-smartphones, such as iPhone11"
1085
+ ]
1086
+ },
1087
+ {
1088
+ "name": "$orientation",
1089
+ "default": "null",
1090
+ "accepts": [
1091
+ "portrait",
1092
+ "landscape",
1093
+ "null for portrait"
1094
+ ]
1095
+ }
1096
+ ],
1097
+ "file": "scss/library/_smartphone.scss",
1098
+ "signature": "smartphone($device, $orientation: null)",
1099
+ "summary": "Media query targeting a known smartphone by device dimensions.",
1100
+ "examples": [
1101
+ ".a { @include smartphone(\"iPhone11\") { display: none; } }",
1102
+ ".a { @include smartphone(\"iPhone11\", landscape) { display: none; } }"
1103
+ ],
1104
+ "rejects": [
1105
+ ".a { @include smartphone(Nokia3310) { display: none; } }",
1106
+ ".a { @include smartphone(\"iPhone11\", sideways) { display: none; } }"
1107
+ ]
1108
+ },
1109
+ {
1110
+ "name": "sprite",
1111
+ "kind": "mixin",
1112
+ "arguments": [
1113
+ {
1114
+ "name": "$params",
1115
+ "variadic": true,
1116
+ "accepts": [
1117
+ "an image path ending in .png, .jpg or .svg",
1118
+ "a background position",
1119
+ "both, image first"
1120
+ ]
1121
+ }
1122
+ ],
1123
+ "file": "scss/library/_sprite.scss",
1124
+ "signature": "sprite($params...)",
1125
+ "summary": "Sets up an element as a sprite tile: an image, a background position, or both.",
1126
+ "examples": [
1127
+ ".icon { @include sprite(\"/img/sprite.png\"); }",
1128
+ ".icon { @include sprite(\"/img/sprite.png\", 0 -40px); }",
1129
+ ".icon { @include sprite(0 -40px); }"
1130
+ ],
1131
+ "rejects": [
1132
+ ".icon { @include sprite(\"/img/sprite.txt\"); }"
1133
+ ]
1134
+ },
1135
+ {
1136
+ "name": "stretched-link",
1137
+ "kind": "mixin",
1138
+ "arguments": [
1139
+ {
1140
+ "name": "$value",
1141
+ "default": "\"before\"",
1142
+ "accepts": [
1143
+ "before",
1144
+ "after"
1145
+ ]
1146
+ }
1147
+ ],
1148
+ "file": "scss/library/_stretched-link.scss",
1149
+ "signature": "stretched-link($value: \"before\")",
1150
+ "summary": "Expands a link to cover its positioned parent, so the whole card is clickable.",
1151
+ "examples": [
1152
+ ".card a { @include stretched-link; }",
1153
+ ".card a { @include stretched-link(\"after\"); }"
1154
+ ],
1155
+ "rejects": [
1156
+ ".card a { @include stretched-link(middle); }"
1157
+ ]
1158
+ },
1159
+ {
1160
+ "name": "tablet",
1161
+ "kind": "mixin",
1162
+ "arguments": [
1163
+ {
1164
+ "name": "$device",
1165
+ "required": true,
1166
+ "accepts": [
1167
+ "a key from $map-for-tablets, such as iPadPro"
1168
+ ]
1169
+ },
1170
+ {
1171
+ "name": "$orientation",
1172
+ "default": "null",
1173
+ "accepts": [
1174
+ "portrait",
1175
+ "landscape",
1176
+ "null for portrait"
1177
+ ]
1178
+ }
1179
+ ],
1180
+ "file": "scss/library/_tablet.scss",
1181
+ "signature": "tablet($device, $orientation: null)",
1182
+ "summary": "Media query targeting a known tablet by device dimensions.",
1183
+ "examples": [
1184
+ ".a { @include tablet(\"iPadPro\") { display: none; } }",
1185
+ ".a { @include tablet(\"iPad\", landscape) { display: none; } }"
1186
+ ],
1187
+ "rejects": [
1188
+ ".a { @include tablet(Surface) { display: none; } }"
1189
+ ]
1190
+ },
1191
+ {
1192
+ "name": "text-gradient",
1193
+ "kind": "mixin",
1194
+ "arguments": [
1195
+ {
1196
+ "name": "$direction",
1197
+ "required": true,
1198
+ "accepts": [
1199
+ "a direction name such as top or bottom-left",
1200
+ "an angle such as 45deg"
1201
+ ]
1202
+ },
1203
+ {
1204
+ "name": "$colors",
1205
+ "required": true,
1206
+ "accepts": [
1207
+ "two or more colours"
1208
+ ]
1209
+ }
1210
+ ],
1211
+ "file": "scss/library/_text-gradient.scss",
1212
+ "signature": "text-gradient($direction, $colors)",
1213
+ "summary": "Applies a linear gradient to the text itself via background-clip.",
1214
+ "examples": [
1215
+ ".a { @include text-gradient(\"top\", (red, blue)); }"
1216
+ ],
1217
+ "rejects": []
1218
+ },
1219
+ {
1220
+ "name": "text-image",
1221
+ "kind": "mixin",
1222
+ "arguments": [
1223
+ {
1224
+ "name": "$image",
1225
+ "default": "null",
1226
+ "accepts": [
1227
+ "an image path"
1228
+ ]
1229
+ }
1230
+ ],
1231
+ "file": "scss/library/_text-image.scss",
1232
+ "signature": "text-image($image: null)",
1233
+ "summary": "Fills the text with an image via background-clip.",
1234
+ "examples": [
1235
+ ".a { @include text-image(\"/img/t.png\"); }"
1236
+ ],
1237
+ "rejects": []
1238
+ },
1239
+ {
1240
+ "name": "text-selection",
1241
+ "kind": "mixin",
1242
+ "arguments": [
1243
+ {
1244
+ "name": "$value",
1245
+ "default": "null",
1246
+ "accepts": [
1247
+ "\"only\" inside a selector to affect just that element",
1248
+ "null for the element and its descendants"
1249
+ ]
1250
+ }
1251
+ ],
1252
+ "file": "scss/library/_text-selection.scss",
1253
+ "signature": "text-selection($value: null)",
1254
+ "summary": "Styles the ::selection pseudo-element.",
1255
+ "examples": [
1256
+ "@include text-selection { background: yellow; }",
1257
+ ".a { @include text-selection(\"only\") { background: yellow; } }"
1258
+ ],
1259
+ "rejects": [
1260
+ ".a { @include text-selection(bogus) { background: yellow; } }"
1261
+ ]
1262
+ },
1263
+ {
1264
+ "name": "text-shadow",
1265
+ "kind": "mixin",
1266
+ "arguments": [
1267
+ {
1268
+ "name": "$params",
1269
+ "variadic": true,
1270
+ "accepts": [
1271
+ "one or more groups of direction, colour and size"
1272
+ ]
1273
+ }
1274
+ ],
1275
+ "file": "scss/library/_text-shadow.scss",
1276
+ "signature": "text-shadow($params...)",
1277
+ "summary": "Layered text shadows built from a direction, a colour and an offset.",
1278
+ "examples": [
1279
+ ".a { @include text-shadow(bottom-right red 5px); }"
1280
+ ],
1281
+ "rejects": []
1282
+ },
1283
+ {
1284
+ "name": "text-stroke",
1285
+ "kind": "mixin",
1286
+ "arguments": [
1287
+ {
1288
+ "name": "$fallback-color",
1289
+ "default": "black",
1290
+ "accepts": [
1291
+ "a colour for browsers without text-stroke"
1292
+ ]
1293
+ },
1294
+ {
1295
+ "name": "$color",
1296
+ "default": "transparent",
1297
+ "accepts": [
1298
+ "the text fill colour"
1299
+ ]
1300
+ },
1301
+ {
1302
+ "name": "$stroke-color",
1303
+ "default": "black",
1304
+ "accepts": [
1305
+ "the outline colour"
1306
+ ]
1307
+ },
1308
+ {
1309
+ "name": "$stroke-width",
1310
+ "default": "1px",
1311
+ "accepts": [
1312
+ "a length"
1313
+ ]
1314
+ }
1315
+ ],
1316
+ "file": "scss/library/_text-stroke.scss",
1317
+ "signature": "text-stroke($fallback-color: black, $color: transparent, $stroke-color: black, $stroke-width: 1px)",
1318
+ "summary": "Outlines text using the webkit text-stroke properties.",
1319
+ "examples": [
1320
+ ".a { @include text-stroke; }",
1321
+ ".a { @include text-stroke(black, transparent, red, 2px); }"
1322
+ ],
1323
+ "rejects": []
1324
+ },
1325
+ {
1326
+ "name": "triangle",
1327
+ "kind": "mixin",
1328
+ "arguments": [
1329
+ {
1330
+ "name": "$direction",
1331
+ "default": "\"bottom\"",
1332
+ "accepts": [
1333
+ "top",
1334
+ "top-right",
1335
+ "right",
1336
+ "bottom-right",
1337
+ "bottom",
1338
+ "bottom-left",
1339
+ "left",
1340
+ "top-left"
1341
+ ]
1342
+ },
1343
+ {
1344
+ "name": "$color",
1345
+ "default": "black",
1346
+ "accepts": [
1347
+ "any colour value"
1348
+ ]
1349
+ },
1350
+ {
1351
+ "name": "$size",
1352
+ "default": "10px 8px",
1353
+ "accepts": [
1354
+ "one length, or two lengths as width then height"
1355
+ ]
1356
+ }
1357
+ ],
1358
+ "file": "scss/library/_triangle.scss",
1359
+ "signature": "triangle($direction: \"bottom\", $color: black, $size: 10px 8px)",
1360
+ "summary": "Draws a CSS triangle out of borders, pointing in a given direction.",
1361
+ "examples": [
1362
+ ".caret { @include triangle(\"bottom\", black, 10px 8px); }",
1363
+ ".arrow { @include triangle(\"left\", red); }"
1364
+ ],
1365
+ "rejects": [
1366
+ ".caret { @include triangle(sideways); }",
1367
+ ".caret { @include triangle(\"top\", notacolor); }"
1368
+ ]
1369
+ },
1370
+ {
1371
+ "name": "__clearUnit",
1372
+ "kind": "function",
1373
+ "arguments": [
1374
+ {
1375
+ "name": "$value",
1376
+ "required": true,
1377
+ "accepts": [
1378
+ "any number with a unit"
1379
+ ]
1380
+ }
1381
+ ],
1382
+ "file": "scss/utilities/_clear-unit.scss",
1383
+ "signature": "__clearUnit($value)",
1384
+ "summary": "Strips the unit off a number, returning it unitless.",
1385
+ "examples": [
1386
+ ".a { line-height: __clearUnit(24px); }"
1387
+ ],
1388
+ "rejects": []
1389
+ },
1390
+ {
1391
+ "name": "__clearWhitespace",
1392
+ "kind": "function",
1393
+ "arguments": [
1394
+ {
1395
+ "name": "$string",
1396
+ "required": true,
1397
+ "accepts": [
1398
+ "any string"
1399
+ ]
1400
+ }
1401
+ ],
1402
+ "file": "scss/utilities/_clear-whitespace.scss",
1403
+ "signature": "__clearWhitespace($string)",
1404
+ "summary": "Removes every space from a string.",
1405
+ "examples": [
1406
+ ".a { content: __clearWhitespace(\"a b c\"); }"
1407
+ ],
1408
+ "rejects": []
1409
+ },
1410
+ {
1411
+ "name": "__convertToEm",
1412
+ "kind": "function",
1413
+ "arguments": [
1414
+ {
1415
+ "name": "$value",
1416
+ "required": true,
1417
+ "accepts": [
1418
+ "a pixel length"
1419
+ ]
1420
+ }
1421
+ ],
1422
+ "file": "scss/utilities/_convert-to-em.scss",
1423
+ "signature": "__convertToEm($value)",
1424
+ "summary": "Converts a pixel length to em, against a 16px base.",
1425
+ "examples": [
1426
+ ".a { margin: __convertToEm(24px); }"
1427
+ ],
1428
+ "rejects": []
1429
+ },
1430
+ {
1431
+ "name": "__convertToNumber",
1432
+ "kind": "function",
1433
+ "arguments": [
1434
+ {
1435
+ "name": "$value",
1436
+ "required": true,
1437
+ "accepts": [
1438
+ "a string containing only digits"
1439
+ ]
1440
+ }
1441
+ ],
1442
+ "file": "scss/utilities/_convert-to-number.scss",
1443
+ "signature": "__convertToNumber($value)",
1444
+ "summary": "Parses a string of digits into a number.",
1445
+ "examples": [
1446
+ ".a { z-index: __convertToNumber(\"42\"); }"
1447
+ ],
1448
+ "rejects": []
1449
+ },
1450
+ {
1451
+ "name": "__darken",
1452
+ "kind": "function",
1453
+ "arguments": [
1454
+ {
1455
+ "name": "$color",
1456
+ "required": true,
1457
+ "accepts": [
1458
+ "a colour"
1459
+ ]
1460
+ },
1461
+ {
1462
+ "name": "$percentage",
1463
+ "required": true,
1464
+ "accepts": [
1465
+ "a percentage"
1466
+ ]
1467
+ }
1468
+ ],
1469
+ "file": "scss/utilities/_darken.scss",
1470
+ "signature": "__darken($color, $percentage)",
1471
+ "summary": "Mixes a colour towards black by a percentage.",
1472
+ "examples": [
1473
+ ".a { color: __darken(red, 20%); }"
1474
+ ],
1475
+ "rejects": [
1476
+ ".a { color: __darken(notacolor, 20%); }"
1477
+ ]
1478
+ },
1479
+ {
1480
+ "name": "__fontSizer",
1481
+ "kind": "function",
1482
+ "arguments": [
1483
+ {
1484
+ "name": "$size",
1485
+ "required": true,
1486
+ "accepts": [
1487
+ "a length"
1488
+ ]
1489
+ },
1490
+ {
1491
+ "name": "$time",
1492
+ "required": true,
1493
+ "accepts": [
1494
+ "a unitless multiplier"
1495
+ ]
1496
+ }
1497
+ ],
1498
+ "file": "scss/utilities/_font-sizer.scss",
1499
+ "signature": "__fontSizer($size, $time)",
1500
+ "summary": "Multiplies a size by a factor. Handy for a modular scale.",
1501
+ "examples": [
1502
+ ".a { font-size: __fontSizer(16px, 1.5); }"
1503
+ ],
1504
+ "rejects": []
1505
+ },
1506
+ {
1507
+ "name": "__fontSource",
1508
+ "kind": "function",
1509
+ "arguments": [
1510
+ {
1511
+ "name": "$font-family",
1512
+ "required": true,
1513
+ "accepts": [
1514
+ "the family name"
1515
+ ]
1516
+ },
1517
+ {
1518
+ "name": "$file-path",
1519
+ "required": true,
1520
+ "accepts": [
1521
+ "path without an extension"
1522
+ ]
1523
+ },
1524
+ {
1525
+ "name": "$file-formats",
1526
+ "required": true,
1527
+ "accepts": [
1528
+ "one of eot, woff2, woff, ttf, svg"
1529
+ ]
1530
+ }
1531
+ ],
1532
+ "file": "scss/utilities/_font-source.scss",
1533
+ "signature": "__fontSource($font-family, $file-path, $file-formats)",
1534
+ "summary": "Builds one src entry for an @font-face rule.",
1535
+ "examples": [
1536
+ ".a { content: \"#{__fontSource(\"Inter\", \"/fonts/inter\", woff2)}\"; }"
1537
+ ],
1538
+ "rejects": []
1539
+ },
1540
+ {
1541
+ "name": "__isColor",
1542
+ "kind": "function",
1543
+ "arguments": [
1544
+ {
1545
+ "name": "$value",
1546
+ "required": true,
1547
+ "accepts": [
1548
+ "a colour, or a list of colours"
1549
+ ]
1550
+ }
1551
+ ],
1552
+ "file": "scss/utilities/_is-color.scss",
1553
+ "signature": "__isColor($value)",
1554
+ "summary": "Returns the value if every item in it is a colour, and errors otherwise.",
1555
+ "examples": [
1556
+ ".a { color: __isColor(red); }"
1557
+ ],
1558
+ "rejects": [
1559
+ ".a { color: __isColor(nonsense); }"
1560
+ ]
1561
+ },
1562
+ {
1563
+ "name": "__isNumber",
1564
+ "kind": "function",
1565
+ "arguments": [
1566
+ {
1567
+ "name": "$value",
1568
+ "required": true,
1569
+ "accepts": [
1570
+ "any value"
1571
+ ]
1572
+ }
1573
+ ],
1574
+ "file": "scss/utilities/_is-number.scss",
1575
+ "signature": "__isNumber($value)",
1576
+ "summary": "Returns the value if it is a number.",
1577
+ "examples": [
1578
+ ".a { z-index: __isNumber(5); }"
1579
+ ],
1580
+ "rejects": []
1581
+ },
1582
+ {
1583
+ "name": "__isTime",
1584
+ "kind": "function",
1585
+ "arguments": [
1586
+ {
1587
+ "name": "$value",
1588
+ "required": true,
1589
+ "accepts": [
1590
+ "a duration such as 0.2s or 300ms, or 0"
1591
+ ]
1592
+ }
1593
+ ],
1594
+ "file": "scss/utilities/_is-time.scss",
1595
+ "signature": "__isTime($value)",
1596
+ "summary": "Returns the value if it is a time in s or ms, and errors otherwise.",
1597
+ "examples": [
1598
+ ".a { animation-duration: __isTime(0.4s); }"
1599
+ ],
1600
+ "rejects": [
1601
+ ".a { animation-duration: __isTime(400px); }"
1602
+ ]
1603
+ },
1604
+ {
1605
+ "name": "__lighten",
1606
+ "kind": "function",
1607
+ "arguments": [
1608
+ {
1609
+ "name": "$color",
1610
+ "required": true,
1611
+ "accepts": [
1612
+ "a colour"
1613
+ ]
1614
+ },
1615
+ {
1616
+ "name": "$percentage",
1617
+ "required": true,
1618
+ "accepts": [
1619
+ "a percentage"
1620
+ ]
1621
+ }
1622
+ ],
1623
+ "file": "scss/utilities/_lighten.scss",
1624
+ "signature": "__lighten($color, $percentage)",
1625
+ "summary": "Mixes a colour towards white by a percentage.",
1626
+ "examples": [
1627
+ ".a { color: __lighten(red, 20%); }"
1628
+ ],
1629
+ "rejects": [
1630
+ ".a { color: __lighten(notacolor, 20%); }"
1631
+ ]
1632
+ },
1633
+ {
1634
+ "name": "__mapDeepGet",
1635
+ "kind": "function",
1636
+ "arguments": [
1637
+ {
1638
+ "name": "$map",
1639
+ "required": true,
1640
+ "accepts": [
1641
+ "a map"
1642
+ ]
1643
+ },
1644
+ {
1645
+ "name": "$keys",
1646
+ "variadic": true,
1647
+ "accepts": [
1648
+ "one key per level of nesting"
1649
+ ]
1650
+ }
1651
+ ],
1652
+ "file": "scss/utilities/_map-deep-get.scss",
1653
+ "signature": "__mapDeepGet($map, $keys...)",
1654
+ "summary": "Reads a value out of a nested map by following a chain of keys.",
1655
+ "examples": [
1656
+ ".a { height: __mapDeepGet($map-for-tablets, \"iPadPro\", \"height\"); }"
1657
+ ],
1658
+ "rejects": []
1659
+ },
1660
+ {
1661
+ "name": "__null",
1662
+ "kind": "function",
1663
+ "arguments": [
1664
+ {
1665
+ "name": "$value",
1666
+ "required": true,
1667
+ "accepts": [
1668
+ "a list that may contain nulls"
1669
+ ]
1670
+ },
1671
+ {
1672
+ "name": "$seperation",
1673
+ "default": "comma",
1674
+ "accepts": [
1675
+ "comma",
1676
+ "space"
1677
+ ]
1678
+ },
1679
+ {
1680
+ "name": "$skip",
1681
+ "default": "false",
1682
+ "accepts": [
1683
+ "true to leave nulls in place instead of using 0"
1684
+ ]
1685
+ }
1686
+ ],
1687
+ "file": "scss/utilities/_null.scss",
1688
+ "signature": "__null($value, $seperation: comma, $skip: false)",
1689
+ "summary": "Replaces null entries in a list with 0, or drops them.",
1690
+ "examples": [
1691
+ ".a { margin: __null(1px null 3px null, space); }"
1692
+ ],
1693
+ "rejects": []
1694
+ },
1695
+ {
1696
+ "name": "__pixelify",
1697
+ "kind": "function",
1698
+ "arguments": [
1699
+ {
1700
+ "name": "$value",
1701
+ "required": true,
1702
+ "accepts": [
1703
+ "a number, with or without a unit"
1704
+ ]
1705
+ }
1706
+ ],
1707
+ "file": "scss/utilities/_pixelify.scss",
1708
+ "signature": "__pixelify($value)",
1709
+ "summary": "Returns the value with a px unit, adding one if it is missing.",
1710
+ "examples": [
1711
+ ".a { width: __pixelify(24); }"
1712
+ ],
1713
+ "rejects": []
1714
+ },
1715
+ {
1716
+ "name": "__pseudoSelector",
1717
+ "kind": "function",
1718
+ "arguments": [
1719
+ {
1720
+ "name": "$elements",
1721
+ "required": true,
1722
+ "accepts": [
1723
+ "a list of selectors"
1724
+ ]
1725
+ },
1726
+ {
1727
+ "name": "$pseudo",
1728
+ "default": "null",
1729
+ "accepts": [
1730
+ "a pseudo-class name, without the colon"
1731
+ ]
1732
+ }
1733
+ ],
1734
+ "file": "scss/utilities/_pseudo-selector.scss",
1735
+ "signature": "__pseudoSelector($elements, $pseudo: null)",
1736
+ "summary": "Appends a pseudo-class to every selector in a list.",
1737
+ "examples": [
1738
+ ".a { content: \"#{__pseudoSelector((\"button\", \"a\"), \"hover\")}\"; }"
1739
+ ],
1740
+ "rejects": []
1741
+ },
1742
+ {
1743
+ "name": "__remify",
1744
+ "kind": "function",
1745
+ "arguments": [
1746
+ {
1747
+ "name": "$value",
1748
+ "required": true,
1749
+ "accepts": [
1750
+ "a pixel length"
1751
+ ]
1752
+ }
1753
+ ],
1754
+ "file": "scss/utilities/_remify.scss",
1755
+ "signature": "__remify($value)",
1756
+ "summary": "Converts a pixel length to rem, against a 16px root.",
1757
+ "examples": [
1758
+ ".a { font-size: __remify(24px); }"
1759
+ ],
1760
+ "rejects": []
1761
+ },
1762
+ {
1763
+ "name": "__shorthandProperty",
1764
+ "kind": "function",
1765
+ "arguments": [
1766
+ {
1767
+ "name": "$value",
1768
+ "required": true,
1769
+ "accepts": [
1770
+ "one to four values"
1771
+ ]
1772
+ }
1773
+ ],
1774
+ "file": "scss/utilities/_shorthand-property.scss",
1775
+ "signature": "__shorthandProperty($value)",
1776
+ "summary": "Expands one to four values into the four-value CSS shorthand order.",
1777
+ "examples": [
1778
+ ".a { margin: __shorthandProperty(10px 20px); }"
1779
+ ],
1780
+ "rejects": [
1781
+ ".a { margin: __shorthandProperty(1px 2px 3px 4px 5px); }"
1782
+ ]
1783
+ },
1784
+ {
1785
+ "name": "__validateBreakpoint",
1786
+ "kind": "function",
1787
+ "arguments": [
1788
+ {
1789
+ "name": "$value",
1790
+ "required": true,
1791
+ "accepts": [
1792
+ "a key from $map-for-breakpoints, or a raw length"
1793
+ ]
1794
+ }
1795
+ ],
1796
+ "file": "scss/utilities/_validate-breakpoint.scss",
1797
+ "signature": "__validateBreakpoint($value)",
1798
+ "summary": "Resolves a breakpoint name to its width, passing other values through.",
1799
+ "examples": [
1800
+ ".a { width: __validateBreakpoint(\"medium\"); }"
1801
+ ],
1802
+ "rejects": []
1803
+ },
1804
+ {
1805
+ "name": "__validateLength",
1806
+ "kind": "function",
1807
+ "arguments": [
1808
+ {
1809
+ "name": "$value",
1810
+ "required": true,
1811
+ "accepts": [
1812
+ "a length with a unit, or auto, inherit, initial, 0"
1813
+ ]
1814
+ }
1815
+ ],
1816
+ "file": "scss/utilities/_validate-length.scss",
1817
+ "signature": "__validateLength($value)",
1818
+ "summary": "Returns the value if it is a length or one of auto, inherit, initial, 0.",
1819
+ "examples": [
1820
+ ".a { width: __validateLength(20px); }"
1821
+ ],
1822
+ "rejects": []
1823
+ },
1824
+ {
1825
+ "name": "__validateRatio",
1826
+ "kind": "function",
1827
+ "arguments": [
1828
+ {
1829
+ "name": "$ratio",
1830
+ "required": true,
1831
+ "accepts": [
1832
+ "a string such as \"16/9\" or \"16:9\"",
1833
+ "a unitless number",
1834
+ "null for the 16/9 default"
1835
+ ]
1836
+ }
1837
+ ],
1838
+ "file": "scss/utilities/_validate-ratio.scss",
1839
+ "signature": "__validateRatio($ratio)",
1840
+ "summary": "Turns an aspect ratio into the padding-top percentage that holds it.",
1841
+ "examples": [
1842
+ ".a { padding-top: __validateRatio(\"16/9\"); }"
1843
+ ],
1844
+ "rejects": [
1845
+ ".a { padding-top: __validateRatio(16 9); }"
1846
+ ]
1847
+ },
1848
+ {
1849
+ "name": "__validateScissors",
1850
+ "kind": "function",
1851
+ "arguments": [
1852
+ {
1853
+ "name": "$value",
1854
+ "required": true,
1855
+ "accepts": [
1856
+ "one to four numbers, with or without units"
1857
+ ]
1858
+ }
1859
+ ],
1860
+ "file": "scss/utilities/_validate-scissors.scss",
1861
+ "signature": "__validateScissors($value)",
1862
+ "summary": "Normalises corner values for the scissors mixin, adding px where missing.",
1863
+ "examples": [
1864
+ ".a { content: \"#{__validateScissors(12px)}\"; }"
1865
+ ],
1866
+ "rejects": []
1867
+ }
1868
+ ]
1869
+ }