gerillass 1.6.1 → 2.0.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 (71) hide show
  1. package/README.md +39 -4
  2. package/SKILL.md +30 -31
  3. package/gerillass.json +205 -189
  4. package/package.json +3 -13
  5. package/scss/_gerillass.scss +8 -91
  6. package/scss/library/_adaptive.scss +4 -1
  7. package/scss/library/_after.scss +5 -2
  8. package/scss/library/_all-buttons.scss +6 -2
  9. package/scss/library/_all-text-inputs.scss +6 -2
  10. package/scss/library/_aspect-ratio.scss +27 -0
  11. package/scss/library/_background-dots.scss +12 -7
  12. package/scss/library/_background-image.scss +18 -11
  13. package/scss/library/_background-stripes.scss +14 -9
  14. package/scss/library/_before.scss +5 -2
  15. package/scss/library/_border-radius.scss +19 -15
  16. package/scss/library/_brand-logo.scss +3 -1
  17. package/scss/library/_breakpoint.scss +25 -20
  18. package/scss/library/_breakpointer.scss +4 -1
  19. package/scss/library/_center.scss +3 -1
  20. package/scss/library/_columnizer.scss +18 -13
  21. package/scss/library/_counter.scss +21 -18
  22. package/scss/library/_escape-to-parent.scss +3 -1
  23. package/scss/library/_except.scss +12 -8
  24. package/scss/library/_font-face.scss +17 -12
  25. package/scss/library/_index.scss +52 -0
  26. package/scss/library/_linear-gradient.scss +13 -7
  27. package/scss/library/_loadify.scss +15 -11
  28. package/scss/library/_only.scss +12 -8
  29. package/scss/library/_position.scss +10 -6
  30. package/scss/library/_radial-gradient.scss +15 -9
  31. package/scss/library/_remove.scss +17 -14
  32. package/scss/library/_reset-figure.scss +3 -1
  33. package/scss/library/_scissors.scss +24 -21
  34. package/scss/library/_smartphone.scss +10 -6
  35. package/scss/library/_sprite.scss +16 -12
  36. package/scss/library/_stretched-link.scss +3 -1
  37. package/scss/library/_tablet.scss +10 -6
  38. package/scss/library/_text-gradient.scss +13 -7
  39. package/scss/library/_text-shadow.scss +46 -40
  40. package/scss/library/_triangle.scss +15 -10
  41. package/scss/lists/_index.scss +8 -0
  42. package/scss/maps/_index.scss +8 -0
  43. package/scss/utilities/_clear-unit.scss +3 -1
  44. package/scss/utilities/_clear-whitespace.scss +9 -6
  45. package/scss/utilities/_convert-to-em.scss +5 -2
  46. package/scss/utilities/_convert-to-number.scss +10 -6
  47. package/scss/utilities/_fill-nulls.scss +18 -0
  48. package/scss/utilities/_font-sizer.scss +1 -1
  49. package/scss/utilities/_font-source.scss +15 -10
  50. package/scss/utilities/_index.scss +24 -0
  51. package/scss/utilities/_is-color.scss +8 -5
  52. package/scss/utilities/_is-gutter.scss +24 -0
  53. package/scss/utilities/_is-number.scss +4 -2
  54. package/scss/utilities/_is-time.scss +8 -3
  55. package/scss/utilities/_map-deep-get.scss +4 -2
  56. package/scss/utilities/_pixelify.scss +11 -7
  57. package/scss/utilities/_pseudo-selector.scss +4 -2
  58. package/scss/utilities/_remify.scss +3 -1
  59. package/scss/utilities/_shade.scss +10 -0
  60. package/scss/utilities/_shorthand-property.scss +13 -11
  61. package/scss/utilities/_tint.scss +10 -0
  62. package/scss/utilities/_validate-breakpoint.scss +9 -5
  63. package/scss/utilities/_validate-length.scss +10 -5
  64. package/scss/utilities/_validate-ratio.scss +27 -15
  65. package/scss/utilities/_validate-scissors.scss +16 -11
  66. package/scss/_gerillass-prefix.scss +0 -1586
  67. package/scss/library/_ratio-box.scss +0 -19
  68. package/scss/library/_responsive-video.scss +0 -19
  69. package/scss/utilities/_darken.scss +0 -7
  70. package/scss/utilities/_lighten.scss +0 -7
  71. package/scss/utilities/_null.scss +0 -16
package/gerillass.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gerillass",
3
- "version": "1.6.1",
3
+ "version": "2.0.0",
4
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
5
  "homepage": "https://gerillass.com",
6
6
  "documentation": "https://docs.gerillass.com",
@@ -140,6 +140,49 @@
140
140
  ".a { @include antialias(bogus); }"
141
141
  ]
142
142
  },
143
+ {
144
+ "name": "aspect-ratio",
145
+ "kind": "mixin",
146
+ "arguments": [
147
+ {
148
+ "name": "$ratio",
149
+ "default": "null",
150
+ "accepts": [
151
+ "a slash separated string, such as \"16/9\"",
152
+ "a colon separated string, such as \"16:9\"",
153
+ "a number, where 1.5 means 1.5 / 1",
154
+ "null for the 16/9 default"
155
+ ]
156
+ },
157
+ {
158
+ "name": "$fit",
159
+ "default": "cover",
160
+ "accepts": [
161
+ "fill",
162
+ "contain",
163
+ "cover",
164
+ "none",
165
+ "scale-down",
166
+ "null to leave object-fit alone"
167
+ ]
168
+ }
169
+ ],
170
+ "file": "scss/library/_aspect-ratio.scss",
171
+ "signature": "aspect-ratio($ratio: null, $fit: cover)",
172
+ "summary": "Holds an element to a ratio and adds what CSS aspect-ratio alone leaves out: object-fit so an image is cropped rather than stretched, and border: 0 so an iframe does not overflow its container by 4px. Apply it to the element itself, not to a wrapper.",
173
+ "examples": [
174
+ ".thumb { @include aspect-ratio(\"16:9\"); }",
175
+ ".video { @include aspect-ratio(\"16/9\"); }",
176
+ ".tile { @include aspect-ratio(\"1:1\", contain); }",
177
+ ".plain { @include aspect-ratio(1.5, null); }",
178
+ ".default { @include aspect-ratio; }"
179
+ ],
180
+ "rejects": [
181
+ ".thumb { @include aspect-ratio(\"16:9\", nonsense); }",
182
+ ".thumb { @include aspect-ratio(16 9); }",
183
+ ".thumb { @include aspect-ratio(\"sixteen/nine\"); }"
184
+ ]
185
+ },
143
186
  {
144
187
  "name": "background-dots",
145
188
  "kind": "mixin",
@@ -506,8 +549,8 @@
506
549
  "name": "$params",
507
550
  "variadic": true,
508
551
  "accepts": [
509
- "a column count",
510
- "a column count plus a gutter length",
552
+ "a column count, which may be a CSS function such as var(--cols)",
553
+ "a column count plus a gutter length, which may also be a CSS function",
511
554
  "a column count plus a boolean fill flag",
512
555
  "a column count, a gutter and a fill flag"
513
556
  ]
@@ -519,10 +562,13 @@
519
562
  "examples": [
520
563
  ".grid { @include columnizer(3); }",
521
564
  ".grid { @include columnizer(3, 20px); }",
522
- ".grid { @include columnizer(3, 20px, true); }"
565
+ ".grid { @include columnizer(3, 20px, true); }",
566
+ ".grid { @include columnizer(3, var(--gap)); }",
567
+ ".grid { @include columnizer(var(--cols)); }"
523
568
  ],
524
569
  "rejects": [
525
- ".grid { @include columnizer(3, 20px, true, 9); }"
570
+ ".grid { @include columnizer(3, 20px, true, 9); }",
571
+ ".grid { @include columnizer(3, nonsense); }"
526
572
  ]
527
573
  },
528
574
  {
@@ -876,33 +922,6 @@
876
922
  ".a { @include radial-gradient(circle, 42, (red, blue)); }"
877
923
  ]
878
924
  },
879
- {
880
- "name": "ratio-box",
881
- "kind": "mixin",
882
- "arguments": [
883
- {
884
- "name": "$ratio",
885
- "default": "null",
886
- "accepts": [
887
- "a string such as \"16/9\" or \"16:9\"",
888
- "a unitless number such as 1.77",
889
- "null for the 16/9 default"
890
- ]
891
- }
892
- ],
893
- "file": "scss/library/_ratio-box.scss",
894
- "signature": "ratio-box($ratio: null)",
895
- "summary": "Container that holds a fixed aspect ratio. Its single direct child is stretched to fill it.",
896
- "examples": [
897
- ".hero { @include ratio-box(\"16/9\"); }",
898
- ".square { @include ratio-box(\"1/1\"); }",
899
- ".default { @include ratio-box; }"
900
- ],
901
- "rejects": [
902
- ".hero { @include ratio-box(16 9); }",
903
- ".hero { @include ratio-box(16px); }"
904
- ]
905
- },
906
925
  {
907
926
  "name": "remove",
908
927
  "kind": "mixin",
@@ -996,31 +1015,6 @@
996
1015
  ],
997
1016
  "rejects": []
998
1017
  },
999
- {
1000
- "name": "responsive-video",
1001
- "kind": "mixin",
1002
- "arguments": [
1003
- {
1004
- "name": "$ratio",
1005
- "default": "null",
1006
- "accepts": [
1007
- "a string such as \"16/9\" or \"16:9\"",
1008
- "a unitless number",
1009
- "null for the 16/9 default"
1010
- ]
1011
- }
1012
- ],
1013
- "file": "scss/library/_responsive-video.scss",
1014
- "signature": "responsive-video($ratio: null)",
1015
- "summary": "Wrapper that keeps an embedded video at a fixed aspect ratio.",
1016
- "examples": [
1017
- ".video { @include responsive-video(\"16/9\"); }",
1018
- ".video { @include responsive-video; }"
1019
- ],
1020
- "rejects": [
1021
- ".video { @include responsive-video(16 9); }"
1022
- ]
1023
- },
1024
1018
  {
1025
1019
  "name": "scissors",
1026
1020
  "kind": "mixin",
@@ -1395,7 +1389,7 @@
1395
1389
  ]
1396
1390
  },
1397
1391
  {
1398
- "name": "__clearUnit",
1392
+ "name": "clearUnit",
1399
1393
  "kind": "function",
1400
1394
  "arguments": [
1401
1395
  {
@@ -1407,15 +1401,15 @@
1407
1401
  }
1408
1402
  ],
1409
1403
  "file": "scss/utilities/_clear-unit.scss",
1410
- "signature": "__clearUnit($value)",
1404
+ "signature": "clearUnit($value)",
1411
1405
  "summary": "Strips the unit off a number, returning it unitless.",
1412
1406
  "examples": [
1413
- ".a { line-height: __clearUnit(24px); }"
1407
+ ".a { line-height: clearUnit(24px); }"
1414
1408
  ],
1415
1409
  "rejects": []
1416
1410
  },
1417
1411
  {
1418
- "name": "__clearWhitespace",
1412
+ "name": "clearWhitespace",
1419
1413
  "kind": "function",
1420
1414
  "arguments": [
1421
1415
  {
@@ -1427,17 +1421,17 @@
1427
1421
  }
1428
1422
  ],
1429
1423
  "file": "scss/utilities/_clear-whitespace.scss",
1430
- "signature": "__clearWhitespace($string)",
1424
+ "signature": "clearWhitespace($string)",
1431
1425
  "summary": "Removes every space from a string.",
1432
1426
  "examples": [
1433
- ".a { content: __clearWhitespace(\"a b c\"); }"
1427
+ ".a { content: clearWhitespace(\"a b c\"); }"
1434
1428
  ],
1435
1429
  "rejects": [
1436
- ".a { --x: #{__clearWhitespace(42)}; }"
1430
+ ".a { --x: #{clearWhitespace(42)}; }"
1437
1431
  ]
1438
1432
  },
1439
1433
  {
1440
- "name": "__convertToEm",
1434
+ "name": "convertToEm",
1441
1435
  "kind": "function",
1442
1436
  "arguments": [
1443
1437
  {
@@ -1449,15 +1443,15 @@
1449
1443
  }
1450
1444
  ],
1451
1445
  "file": "scss/utilities/_convert-to-em.scss",
1452
- "signature": "__convertToEm($value)",
1446
+ "signature": "convertToEm($value)",
1453
1447
  "summary": "Converts a pixel length to em, against a 16px base.",
1454
1448
  "examples": [
1455
- ".a { margin: __convertToEm(24px); }"
1449
+ ".a { margin: convertToEm(24px); }"
1456
1450
  ],
1457
1451
  "rejects": []
1458
1452
  },
1459
1453
  {
1460
- "name": "__convertToNumber",
1454
+ "name": "convertToNumber",
1461
1455
  "kind": "function",
1462
1456
  "arguments": [
1463
1457
  {
@@ -1469,46 +1463,54 @@
1469
1463
  }
1470
1464
  ],
1471
1465
  "file": "scss/utilities/_convert-to-number.scss",
1472
- "signature": "__convertToNumber($value)",
1466
+ "signature": "convertToNumber($value)",
1473
1467
  "summary": "Parses a string of digits into a number.",
1474
1468
  "examples": [
1475
- ".a { z-index: __convertToNumber(\"42\"); }"
1469
+ ".a { z-index: convertToNumber(\"42\"); }"
1476
1470
  ],
1477
1471
  "rejects": [
1478
- ".a { --x: #{__convertToNumber(42)}; }"
1472
+ ".a { --x: #{convertToNumber(42)}; }"
1479
1473
  ]
1480
1474
  },
1481
1475
  {
1482
- "name": "__darken",
1476
+ "name": "fillNulls",
1483
1477
  "kind": "function",
1484
1478
  "arguments": [
1485
1479
  {
1486
- "name": "$color",
1480
+ "name": "$value",
1487
1481
  "required": true,
1488
1482
  "accepts": [
1489
- "a colour"
1483
+ "a list that may contain nulls"
1490
1484
  ]
1491
1485
  },
1492
1486
  {
1493
- "name": "$percentage",
1494
- "required": true,
1487
+ "name": "$seperation",
1488
+ "default": "comma",
1495
1489
  "accepts": [
1496
- "a percentage"
1490
+ "comma",
1491
+ "space"
1492
+ ]
1493
+ },
1494
+ {
1495
+ "name": "$skip",
1496
+ "default": "false",
1497
+ "accepts": [
1498
+ "true to leave nulls in place instead of using 0"
1497
1499
  ]
1498
1500
  }
1499
1501
  ],
1500
- "file": "scss/utilities/_darken.scss",
1501
- "signature": "__darken($color, $percentage)",
1502
- "summary": "Mixes a colour towards black by a percentage.",
1502
+ "file": "scss/utilities/_fill-nulls.scss",
1503
+ "signature": "fillNulls($value, $seperation: comma, $skip: false)",
1504
+ "summary": "Replaces null entries in a list with 0, or drops them.",
1503
1505
  "examples": [
1504
- ".a { color: __darken(red, 20%); }"
1506
+ ".a { margin: fillNulls(1px null 3px null, space); }"
1505
1507
  ],
1506
1508
  "rejects": [
1507
- ".a { color: __darken(notacolor, 20%); }"
1509
+ ".a { --x: #{fillNulls(1px null, nonsense)}; }"
1508
1510
  ]
1509
1511
  },
1510
1512
  {
1511
- "name": "__fontSizer",
1513
+ "name": "fontSizer",
1512
1514
  "kind": "function",
1513
1515
  "arguments": [
1514
1516
  {
@@ -1527,15 +1529,15 @@
1527
1529
  }
1528
1530
  ],
1529
1531
  "file": "scss/utilities/_font-sizer.scss",
1530
- "signature": "__fontSizer($size, $time)",
1532
+ "signature": "fontSizer($size, $time)",
1531
1533
  "summary": "Multiplies a size by a factor. Handy for a modular scale.",
1532
1534
  "examples": [
1533
- ".a { font-size: __fontSizer(16px, 1.5); }"
1535
+ ".a { font-size: fontSizer(16px, 1.5); }"
1534
1536
  ],
1535
1537
  "rejects": []
1536
1538
  },
1537
1539
  {
1538
- "name": "__fontSource",
1540
+ "name": "fontSource",
1539
1541
  "kind": "function",
1540
1542
  "arguments": [
1541
1543
  {
@@ -1561,15 +1563,15 @@
1561
1563
  }
1562
1564
  ],
1563
1565
  "file": "scss/utilities/_font-source.scss",
1564
- "signature": "__fontSource($font-family, $file-path, $file-formats)",
1566
+ "signature": "fontSource($font-family, $file-path, $file-formats)",
1565
1567
  "summary": "Builds one src entry for an @font-face rule.",
1566
1568
  "examples": [
1567
- ".a { content: \"#{__fontSource(\"Inter\", \"/fonts/inter\", woff2)}\"; }"
1569
+ ".a { content: \"#{fontSource(\"Inter\", \"/fonts/inter\", woff2)}\"; }"
1568
1570
  ],
1569
1571
  "rejects": []
1570
1572
  },
1571
1573
  {
1572
- "name": "__isColor",
1574
+ "name": "isColor",
1573
1575
  "kind": "function",
1574
1576
  "arguments": [
1575
1577
  {
@@ -1581,17 +1583,17 @@
1581
1583
  }
1582
1584
  ],
1583
1585
  "file": "scss/utilities/_is-color.scss",
1584
- "signature": "__isColor($value)",
1586
+ "signature": "isColor($value)",
1585
1587
  "summary": "Returns the value if every item in it is a colour, and errors otherwise.",
1586
1588
  "examples": [
1587
- ".a { color: __isColor(red); }"
1589
+ ".a { color: isColor(red); }"
1588
1590
  ],
1589
1591
  "rejects": [
1590
- ".a { color: __isColor(nonsense); }"
1592
+ ".a { color: isColor(nonsense); }"
1591
1593
  ]
1592
1594
  },
1593
1595
  {
1594
- "name": "__isNumber",
1596
+ "name": "isGutter",
1595
1597
  "kind": "function",
1596
1598
  "arguments": [
1597
1599
  {
@@ -1602,67 +1604,59 @@
1602
1604
  ]
1603
1605
  }
1604
1606
  ],
1605
- "file": "scss/utilities/_is-number.scss",
1606
- "signature": "__isNumber($value)",
1607
- "summary": "Returns the value if it is a number.",
1607
+ "file": "scss/utilities/_is-gutter.scss",
1608
+ "signature": "isGutter($value)",
1609
+ "summary": "True for anything that can sit where a CSS length is expected: a number, a calculation, or a CSS function such as var().",
1608
1610
  "examples": [
1609
- ".a { z-index: __isNumber(5); }"
1611
+ ".a { --x: #{isGutter(20px)}; }",
1612
+ ".a { --x: #{isGutter(var(--gap))}; }"
1610
1613
  ],
1611
1614
  "rejects": []
1612
1615
  },
1613
1616
  {
1614
- "name": "__isTime",
1617
+ "name": "isNumber",
1615
1618
  "kind": "function",
1616
1619
  "arguments": [
1617
1620
  {
1618
1621
  "name": "$value",
1619
1622
  "required": true,
1620
1623
  "accepts": [
1621
- "a duration such as 0.2s or 300ms, or 0"
1624
+ "any value"
1622
1625
  ]
1623
1626
  }
1624
1627
  ],
1625
- "file": "scss/utilities/_is-time.scss",
1626
- "signature": "__isTime($value)",
1627
- "summary": "Returns the value if it is a time in s or ms, and errors otherwise.",
1628
+ "file": "scss/utilities/_is-number.scss",
1629
+ "signature": "isNumber($value)",
1630
+ "summary": "Returns the value if it is a number.",
1628
1631
  "examples": [
1629
- ".a { animation-duration: __isTime(0.4s); }"
1632
+ ".a { z-index: isNumber(5); }"
1630
1633
  ],
1631
- "rejects": [
1632
- ".a { animation-duration: __isTime(400px); }"
1633
- ]
1634
+ "rejects": []
1634
1635
  },
1635
1636
  {
1636
- "name": "__lighten",
1637
+ "name": "isTime",
1637
1638
  "kind": "function",
1638
1639
  "arguments": [
1639
1640
  {
1640
- "name": "$color",
1641
- "required": true,
1642
- "accepts": [
1643
- "a colour"
1644
- ]
1645
- },
1646
- {
1647
- "name": "$percentage",
1641
+ "name": "$value",
1648
1642
  "required": true,
1649
1643
  "accepts": [
1650
- "a percentage"
1644
+ "a duration such as 0.2s or 300ms, or 0"
1651
1645
  ]
1652
1646
  }
1653
1647
  ],
1654
- "file": "scss/utilities/_lighten.scss",
1655
- "signature": "__lighten($color, $percentage)",
1656
- "summary": "Mixes a colour towards white by a percentage.",
1648
+ "file": "scss/utilities/_is-time.scss",
1649
+ "signature": "isTime($value)",
1650
+ "summary": "Returns the value if it is a time in s or ms, and errors otherwise.",
1657
1651
  "examples": [
1658
- ".a { color: __lighten(red, 20%); }"
1652
+ ".a { animation-duration: isTime(0.4s); }"
1659
1653
  ],
1660
1654
  "rejects": [
1661
- ".a { color: __lighten(notacolor, 20%); }"
1655
+ ".a { animation-duration: isTime(400px); }"
1662
1656
  ]
1663
1657
  },
1664
1658
  {
1665
- "name": "__mapDeepGet",
1659
+ "name": "mapDeepGet",
1666
1660
  "kind": "function",
1667
1661
  "arguments": [
1668
1662
  {
@@ -1681,52 +1675,15 @@
1681
1675
  }
1682
1676
  ],
1683
1677
  "file": "scss/utilities/_map-deep-get.scss",
1684
- "signature": "__mapDeepGet($map, $keys...)",
1678
+ "signature": "mapDeepGet($map, $keys...)",
1685
1679
  "summary": "Reads a value out of a nested map by following a chain of keys.",
1686
1680
  "examples": [
1687
- ".a { height: __mapDeepGet($map-for-tablets, \"iPadPro\", \"height\"); }"
1681
+ ".a { height: mapDeepGet($map-for-tablets, \"iPadPro\", \"height\"); }"
1688
1682
  ],
1689
1683
  "rejects": []
1690
1684
  },
1691
1685
  {
1692
- "name": "__null",
1693
- "kind": "function",
1694
- "arguments": [
1695
- {
1696
- "name": "$value",
1697
- "required": true,
1698
- "accepts": [
1699
- "a list that may contain nulls"
1700
- ]
1701
- },
1702
- {
1703
- "name": "$seperation",
1704
- "default": "comma",
1705
- "accepts": [
1706
- "comma",
1707
- "space"
1708
- ]
1709
- },
1710
- {
1711
- "name": "$skip",
1712
- "default": "false",
1713
- "accepts": [
1714
- "true to leave nulls in place instead of using 0"
1715
- ]
1716
- }
1717
- ],
1718
- "file": "scss/utilities/_null.scss",
1719
- "signature": "__null($value, $seperation: comma, $skip: false)",
1720
- "summary": "Replaces null entries in a list with 0, or drops them.",
1721
- "examples": [
1722
- ".a { margin: __null(1px null 3px null, space); }"
1723
- ],
1724
- "rejects": [
1725
- ".a { --x: #{__null(1px null, nonsense)}; }"
1726
- ]
1727
- },
1728
- {
1729
- "name": "__pixelify",
1686
+ "name": "pixelify",
1730
1687
  "kind": "function",
1731
1688
  "arguments": [
1732
1689
  {
@@ -1738,17 +1695,17 @@
1738
1695
  }
1739
1696
  ],
1740
1697
  "file": "scss/utilities/_pixelify.scss",
1741
- "signature": "__pixelify($value)",
1698
+ "signature": "pixelify($value)",
1742
1699
  "summary": "Returns the value with a px unit, adding one if it is missing.",
1743
1700
  "examples": [
1744
- ".a { width: __pixelify(24); }"
1701
+ ".a { width: pixelify(24); }"
1745
1702
  ],
1746
1703
  "rejects": [
1747
- ".a { --x: #{__pixelify(nonsense)}; }"
1704
+ ".a { --x: #{pixelify(nonsense)}; }"
1748
1705
  ]
1749
1706
  },
1750
1707
  {
1751
- "name": "__pseudoSelector",
1708
+ "name": "pseudoSelector",
1752
1709
  "kind": "function",
1753
1710
  "arguments": [
1754
1711
  {
@@ -1767,15 +1724,15 @@
1767
1724
  }
1768
1725
  ],
1769
1726
  "file": "scss/utilities/_pseudo-selector.scss",
1770
- "signature": "__pseudoSelector($elements, $pseudo: null)",
1727
+ "signature": "pseudoSelector($elements, $pseudo: null)",
1771
1728
  "summary": "Appends a pseudo-class to every selector in a list.",
1772
1729
  "examples": [
1773
- ".a { content: \"#{__pseudoSelector((\"button\", \"a\"), \"hover\")}\"; }"
1730
+ ".a { content: \"#{pseudoSelector((\"button\", \"a\"), \"hover\")}\"; }"
1774
1731
  ],
1775
1732
  "rejects": []
1776
1733
  },
1777
1734
  {
1778
- "name": "__remify",
1735
+ "name": "remify",
1779
1736
  "kind": "function",
1780
1737
  "arguments": [
1781
1738
  {
@@ -1787,15 +1744,44 @@
1787
1744
  }
1788
1745
  ],
1789
1746
  "file": "scss/utilities/_remify.scss",
1790
- "signature": "__remify($value)",
1747
+ "signature": "remify($value)",
1791
1748
  "summary": "Converts a pixel length to rem, against a 16px root.",
1792
1749
  "examples": [
1793
- ".a { font-size: __remify(24px); }"
1750
+ ".a { font-size: remify(24px); }"
1794
1751
  ],
1795
1752
  "rejects": []
1796
1753
  },
1797
1754
  {
1798
- "name": "__shorthandProperty",
1755
+ "name": "shade",
1756
+ "kind": "function",
1757
+ "arguments": [
1758
+ {
1759
+ "name": "$color",
1760
+ "required": true,
1761
+ "accepts": [
1762
+ "a colour"
1763
+ ]
1764
+ },
1765
+ {
1766
+ "name": "$percentage",
1767
+ "required": true,
1768
+ "accepts": [
1769
+ "a percentage"
1770
+ ]
1771
+ }
1772
+ ],
1773
+ "file": "scss/utilities/_shade.scss",
1774
+ "signature": "shade($color, $percentage)",
1775
+ "summary": "Mixes a colour towards black by a percentage.",
1776
+ "examples": [
1777
+ ".a { color: shade(red, 20%); }"
1778
+ ],
1779
+ "rejects": [
1780
+ ".a { color: shade(notacolor, 20%); }"
1781
+ ]
1782
+ },
1783
+ {
1784
+ "name": "shorthandProperty",
1799
1785
  "kind": "function",
1800
1786
  "arguments": [
1801
1787
  {
@@ -1807,17 +1793,46 @@
1807
1793
  }
1808
1794
  ],
1809
1795
  "file": "scss/utilities/_shorthand-property.scss",
1810
- "signature": "__shorthandProperty($value)",
1796
+ "signature": "shorthandProperty($value)",
1811
1797
  "summary": "Expands one to four values into the four-value CSS shorthand order.",
1812
1798
  "examples": [
1813
- ".a { margin: __shorthandProperty(10px 20px); }"
1799
+ ".a { margin: shorthandProperty(10px 20px); }"
1800
+ ],
1801
+ "rejects": [
1802
+ ".a { margin: shorthandProperty(1px 2px 3px 4px 5px); }"
1803
+ ]
1804
+ },
1805
+ {
1806
+ "name": "tint",
1807
+ "kind": "function",
1808
+ "arguments": [
1809
+ {
1810
+ "name": "$color",
1811
+ "required": true,
1812
+ "accepts": [
1813
+ "a colour"
1814
+ ]
1815
+ },
1816
+ {
1817
+ "name": "$percentage",
1818
+ "required": true,
1819
+ "accepts": [
1820
+ "a percentage"
1821
+ ]
1822
+ }
1823
+ ],
1824
+ "file": "scss/utilities/_tint.scss",
1825
+ "signature": "tint($color, $percentage)",
1826
+ "summary": "Mixes a colour towards white by a percentage.",
1827
+ "examples": [
1828
+ ".a { color: tint(red, 20%); }"
1814
1829
  ],
1815
1830
  "rejects": [
1816
- ".a { margin: __shorthandProperty(1px 2px 3px 4px 5px); }"
1831
+ ".a { color: tint(notacolor, 20%); }"
1817
1832
  ]
1818
1833
  },
1819
1834
  {
1820
- "name": "__validateBreakpoint",
1835
+ "name": "validateBreakpoint",
1821
1836
  "kind": "function",
1822
1837
  "arguments": [
1823
1838
  {
@@ -1829,15 +1844,15 @@
1829
1844
  }
1830
1845
  ],
1831
1846
  "file": "scss/utilities/_validate-breakpoint.scss",
1832
- "signature": "__validateBreakpoint($value)",
1847
+ "signature": "validateBreakpoint($value)",
1833
1848
  "summary": "Resolves a breakpoint name to its width, passing other values through.",
1834
1849
  "examples": [
1835
- ".a { width: __validateBreakpoint(\"medium\"); }"
1850
+ ".a { width: validateBreakpoint(\"medium\"); }"
1836
1851
  ],
1837
1852
  "rejects": []
1838
1853
  },
1839
1854
  {
1840
- "name": "__validateLength",
1855
+ "name": "validateLength",
1841
1856
  "kind": "function",
1842
1857
  "arguments": [
1843
1858
  {
@@ -1849,15 +1864,15 @@
1849
1864
  }
1850
1865
  ],
1851
1866
  "file": "scss/utilities/_validate-length.scss",
1852
- "signature": "__validateLength($value)",
1867
+ "signature": "validateLength($value)",
1853
1868
  "summary": "Returns the value if it is a length or one of auto, inherit, initial, 0.",
1854
1869
  "examples": [
1855
- ".a { width: __validateLength(20px); }"
1870
+ ".a { width: validateLength(20px); }"
1856
1871
  ],
1857
1872
  "rejects": []
1858
1873
  },
1859
1874
  {
1860
- "name": "__validateRatio",
1875
+ "name": "validateRatio",
1861
1876
  "kind": "function",
1862
1877
  "arguments": [
1863
1878
  {
@@ -1871,17 +1886,18 @@
1871
1886
  }
1872
1887
  ],
1873
1888
  "file": "scss/utilities/_validate-ratio.scss",
1874
- "signature": "__validateRatio($ratio)",
1875
- "summary": "Turns an aspect ratio into the padding-top percentage that holds it.",
1889
+ "signature": "validateRatio($ratio)",
1890
+ "summary": "Turns an aspect ratio into a value for the CSS aspect-ratio property.",
1876
1891
  "examples": [
1877
- ".a { padding-top: __validateRatio(\"16/9\"); }"
1892
+ ".a { aspect-ratio: validateRatio(\"16/9\"); }",
1893
+ ".a { aspect-ratio: validateRatio(1.5); }"
1878
1894
  ],
1879
1895
  "rejects": [
1880
- ".a { padding-top: __validateRatio(16 9); }"
1896
+ ".a { aspect-ratio: validateRatio(16 9); }"
1881
1897
  ]
1882
1898
  },
1883
1899
  {
1884
- "name": "__validateScissors",
1900
+ "name": "validateScissors",
1885
1901
  "kind": "function",
1886
1902
  "arguments": [
1887
1903
  {
@@ -1893,10 +1909,10 @@
1893
1909
  }
1894
1910
  ],
1895
1911
  "file": "scss/utilities/_validate-scissors.scss",
1896
- "signature": "__validateScissors($value)",
1912
+ "signature": "validateScissors($value)",
1897
1913
  "summary": "Normalises corner values for the scissors mixin, adding px where missing.",
1898
1914
  "examples": [
1899
- ".a { content: \"#{__validateScissors(12px)}\"; }"
1915
+ ".a { content: \"#{validateScissors(12px)}\"; }"
1900
1916
  ],
1901
1917
  "rejects": []
1902
1918
  }