gerillass 1.6.2 → 2.0.1

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 +33 -9
  2. package/SKILL.md +32 -34
  3. package/gerillass.json +188 -196
  4. package/package.json +3 -13
  5. package/scss/_gerillass.scss +8 -92
  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 +8 -5
  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.2",
3
+ "version": "2.0.1",
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",
@@ -879,33 +922,6 @@
879
922
  ".a { @include radial-gradient(circle, 42, (red, blue)); }"
880
923
  ]
881
924
  },
882
- {
883
- "name": "ratio-box",
884
- "kind": "mixin",
885
- "arguments": [
886
- {
887
- "name": "$ratio",
888
- "default": "null",
889
- "accepts": [
890
- "a string such as \"16/9\" or \"16:9\"",
891
- "a unitless number such as 1.77",
892
- "null for the 16/9 default"
893
- ]
894
- }
895
- ],
896
- "file": "scss/library/_ratio-box.scss",
897
- "signature": "ratio-box($ratio: null)",
898
- "summary": "Container that holds a fixed aspect ratio. Its single direct child is stretched to fill it.",
899
- "examples": [
900
- ".hero { @include ratio-box(\"16/9\"); }",
901
- ".square { @include ratio-box(\"1/1\"); }",
902
- ".default { @include ratio-box; }"
903
- ],
904
- "rejects": [
905
- ".hero { @include ratio-box(16 9); }",
906
- ".hero { @include ratio-box(16px); }"
907
- ]
908
- },
909
925
  {
910
926
  "name": "remove",
911
927
  "kind": "mixin",
@@ -999,31 +1015,6 @@
999
1015
  ],
1000
1016
  "rejects": []
1001
1017
  },
1002
- {
1003
- "name": "responsive-video",
1004
- "kind": "mixin",
1005
- "arguments": [
1006
- {
1007
- "name": "$ratio",
1008
- "default": "null",
1009
- "accepts": [
1010
- "a string such as \"16/9\" or \"16:9\"",
1011
- "a unitless number",
1012
- "null for the 16/9 default"
1013
- ]
1014
- }
1015
- ],
1016
- "file": "scss/library/_responsive-video.scss",
1017
- "signature": "responsive-video($ratio: null)",
1018
- "summary": "Wrapper that keeps an embedded video at a fixed aspect ratio.",
1019
- "examples": [
1020
- ".video { @include responsive-video(\"16/9\"); }",
1021
- ".video { @include responsive-video; }"
1022
- ],
1023
- "rejects": [
1024
- ".video { @include responsive-video(16 9); }"
1025
- ]
1026
- },
1027
1018
  {
1028
1019
  "name": "scissors",
1029
1020
  "kind": "mixin",
@@ -1398,7 +1389,7 @@
1398
1389
  ]
1399
1390
  },
1400
1391
  {
1401
- "name": "__clearUnit",
1392
+ "name": "clearUnit",
1402
1393
  "kind": "function",
1403
1394
  "arguments": [
1404
1395
  {
@@ -1410,15 +1401,15 @@
1410
1401
  }
1411
1402
  ],
1412
1403
  "file": "scss/utilities/_clear-unit.scss",
1413
- "signature": "__clearUnit($value)",
1404
+ "signature": "clearUnit($value)",
1414
1405
  "summary": "Strips the unit off a number, returning it unitless.",
1415
1406
  "examples": [
1416
- ".a { line-height: __clearUnit(24px); }"
1407
+ ".a { line-height: clearUnit(24px); }"
1417
1408
  ],
1418
1409
  "rejects": []
1419
1410
  },
1420
1411
  {
1421
- "name": "__clearWhitespace",
1412
+ "name": "clearWhitespace",
1422
1413
  "kind": "function",
1423
1414
  "arguments": [
1424
1415
  {
@@ -1430,17 +1421,17 @@
1430
1421
  }
1431
1422
  ],
1432
1423
  "file": "scss/utilities/_clear-whitespace.scss",
1433
- "signature": "__clearWhitespace($string)",
1424
+ "signature": "clearWhitespace($string)",
1434
1425
  "summary": "Removes every space from a string.",
1435
1426
  "examples": [
1436
- ".a { content: __clearWhitespace(\"a b c\"); }"
1427
+ ".a { content: clearWhitespace(\"a b c\"); }"
1437
1428
  ],
1438
1429
  "rejects": [
1439
- ".a { --x: #{__clearWhitespace(42)}; }"
1430
+ ".a { --x: #{clearWhitespace(42)}; }"
1440
1431
  ]
1441
1432
  },
1442
1433
  {
1443
- "name": "__convertToEm",
1434
+ "name": "convertToEm",
1444
1435
  "kind": "function",
1445
1436
  "arguments": [
1446
1437
  {
@@ -1452,15 +1443,15 @@
1452
1443
  }
1453
1444
  ],
1454
1445
  "file": "scss/utilities/_convert-to-em.scss",
1455
- "signature": "__convertToEm($value)",
1446
+ "signature": "convertToEm($value)",
1456
1447
  "summary": "Converts a pixel length to em, against a 16px base.",
1457
1448
  "examples": [
1458
- ".a { margin: __convertToEm(24px); }"
1449
+ ".a { margin: convertToEm(24px); }"
1459
1450
  ],
1460
1451
  "rejects": []
1461
1452
  },
1462
1453
  {
1463
- "name": "__convertToNumber",
1454
+ "name": "convertToNumber",
1464
1455
  "kind": "function",
1465
1456
  "arguments": [
1466
1457
  {
@@ -1472,46 +1463,54 @@
1472
1463
  }
1473
1464
  ],
1474
1465
  "file": "scss/utilities/_convert-to-number.scss",
1475
- "signature": "__convertToNumber($value)",
1466
+ "signature": "convertToNumber($value)",
1476
1467
  "summary": "Parses a string of digits into a number.",
1477
1468
  "examples": [
1478
- ".a { z-index: __convertToNumber(\"42\"); }"
1469
+ ".a { z-index: convertToNumber(\"42\"); }"
1479
1470
  ],
1480
1471
  "rejects": [
1481
- ".a { --x: #{__convertToNumber(42)}; }"
1472
+ ".a { --x: #{convertToNumber(42)}; }"
1482
1473
  ]
1483
1474
  },
1484
1475
  {
1485
- "name": "__darken",
1476
+ "name": "fillNulls",
1486
1477
  "kind": "function",
1487
1478
  "arguments": [
1488
1479
  {
1489
- "name": "$color",
1480
+ "name": "$value",
1490
1481
  "required": true,
1491
1482
  "accepts": [
1492
- "a colour"
1483
+ "a list that may contain nulls"
1493
1484
  ]
1494
1485
  },
1495
1486
  {
1496
- "name": "$percentage",
1497
- "required": true,
1487
+ "name": "$seperation",
1488
+ "default": "comma",
1498
1489
  "accepts": [
1499
- "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"
1500
1499
  ]
1501
1500
  }
1502
1501
  ],
1503
- "file": "scss/utilities/_darken.scss",
1504
- "signature": "__darken($color, $percentage)",
1505
- "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.",
1506
1505
  "examples": [
1507
- ".a { color: __darken(red, 20%); }"
1506
+ ".a { margin: fillNulls(1px null 3px null, space); }"
1508
1507
  ],
1509
1508
  "rejects": [
1510
- ".a { color: __darken(notacolor, 20%); }"
1509
+ ".a { --x: #{fillNulls(1px null, nonsense)}; }"
1511
1510
  ]
1512
1511
  },
1513
1512
  {
1514
- "name": "__fontSizer",
1513
+ "name": "fontSizer",
1515
1514
  "kind": "function",
1516
1515
  "arguments": [
1517
1516
  {
@@ -1530,15 +1529,15 @@
1530
1529
  }
1531
1530
  ],
1532
1531
  "file": "scss/utilities/_font-sizer.scss",
1533
- "signature": "__fontSizer($size, $time)",
1532
+ "signature": "fontSizer($size, $time)",
1534
1533
  "summary": "Multiplies a size by a factor. Handy for a modular scale.",
1535
1534
  "examples": [
1536
- ".a { font-size: __fontSizer(16px, 1.5); }"
1535
+ ".a { font-size: fontSizer(16px, 1.5); }"
1537
1536
  ],
1538
1537
  "rejects": []
1539
1538
  },
1540
1539
  {
1541
- "name": "__fontSource",
1540
+ "name": "fontSource",
1542
1541
  "kind": "function",
1543
1542
  "arguments": [
1544
1543
  {
@@ -1564,15 +1563,15 @@
1564
1563
  }
1565
1564
  ],
1566
1565
  "file": "scss/utilities/_font-source.scss",
1567
- "signature": "__fontSource($font-family, $file-path, $file-formats)",
1566
+ "signature": "fontSource($font-family, $file-path, $file-formats)",
1568
1567
  "summary": "Builds one src entry for an @font-face rule.",
1569
1568
  "examples": [
1570
- ".a { content: \"#{__fontSource(\"Inter\", \"/fonts/inter\", woff2)}\"; }"
1569
+ ".a { content: \"#{fontSource(\"Inter\", \"/fonts/inter\", woff2)}\"; }"
1571
1570
  ],
1572
1571
  "rejects": []
1573
1572
  },
1574
1573
  {
1575
- "name": "__isColor",
1574
+ "name": "isColor",
1576
1575
  "kind": "function",
1577
1576
  "arguments": [
1578
1577
  {
@@ -1584,17 +1583,17 @@
1584
1583
  }
1585
1584
  ],
1586
1585
  "file": "scss/utilities/_is-color.scss",
1587
- "signature": "__isColor($value)",
1586
+ "signature": "isColor($value)",
1588
1587
  "summary": "Returns the value if every item in it is a colour, and errors otherwise.",
1589
1588
  "examples": [
1590
- ".a { color: __isColor(red); }"
1589
+ ".a { color: isColor(red); }"
1591
1590
  ],
1592
1591
  "rejects": [
1593
- ".a { color: __isColor(nonsense); }"
1592
+ ".a { color: isColor(nonsense); }"
1594
1593
  ]
1595
1594
  },
1596
1595
  {
1597
- "name": "__isGutter",
1596
+ "name": "isGutter",
1598
1597
  "kind": "function",
1599
1598
  "arguments": [
1600
1599
  {
@@ -1606,16 +1605,16 @@
1606
1605
  }
1607
1606
  ],
1608
1607
  "file": "scss/utilities/_is-gutter.scss",
1609
- "signature": "__isGutter($value)",
1608
+ "signature": "isGutter($value)",
1610
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().",
1611
1610
  "examples": [
1612
- ".a { --x: #{__isGutter(20px)}; }",
1613
- ".a { --x: #{__isGutter(var(--gap))}; }"
1611
+ ".a { --x: #{isGutter(20px)}; }",
1612
+ ".a { --x: #{isGutter(var(--gap))}; }"
1614
1613
  ],
1615
1614
  "rejects": []
1616
1615
  },
1617
1616
  {
1618
- "name": "__isNumber",
1617
+ "name": "isNumber",
1619
1618
  "kind": "function",
1620
1619
  "arguments": [
1621
1620
  {
@@ -1627,15 +1626,15 @@
1627
1626
  }
1628
1627
  ],
1629
1628
  "file": "scss/utilities/_is-number.scss",
1630
- "signature": "__isNumber($value)",
1629
+ "signature": "isNumber($value)",
1631
1630
  "summary": "Returns the value if it is a number.",
1632
1631
  "examples": [
1633
- ".a { z-index: __isNumber(5); }"
1632
+ ".a { z-index: isNumber(5); }"
1634
1633
  ],
1635
1634
  "rejects": []
1636
1635
  },
1637
1636
  {
1638
- "name": "__isTime",
1637
+ "name": "isTime",
1639
1638
  "kind": "function",
1640
1639
  "arguments": [
1641
1640
  {
@@ -1647,46 +1646,17 @@
1647
1646
  }
1648
1647
  ],
1649
1648
  "file": "scss/utilities/_is-time.scss",
1650
- "signature": "__isTime($value)",
1649
+ "signature": "isTime($value)",
1651
1650
  "summary": "Returns the value if it is a time in s or ms, and errors otherwise.",
1652
1651
  "examples": [
1653
- ".a { animation-duration: __isTime(0.4s); }"
1652
+ ".a { animation-duration: isTime(0.4s); }"
1654
1653
  ],
1655
1654
  "rejects": [
1656
- ".a { animation-duration: __isTime(400px); }"
1655
+ ".a { animation-duration: isTime(400px); }"
1657
1656
  ]
1658
1657
  },
1659
1658
  {
1660
- "name": "__lighten",
1661
- "kind": "function",
1662
- "arguments": [
1663
- {
1664
- "name": "$color",
1665
- "required": true,
1666
- "accepts": [
1667
- "a colour"
1668
- ]
1669
- },
1670
- {
1671
- "name": "$percentage",
1672
- "required": true,
1673
- "accepts": [
1674
- "a percentage"
1675
- ]
1676
- }
1677
- ],
1678
- "file": "scss/utilities/_lighten.scss",
1679
- "signature": "__lighten($color, $percentage)",
1680
- "summary": "Mixes a colour towards white by a percentage.",
1681
- "examples": [
1682
- ".a { color: __lighten(red, 20%); }"
1683
- ],
1684
- "rejects": [
1685
- ".a { color: __lighten(notacolor, 20%); }"
1686
- ]
1687
- },
1688
- {
1689
- "name": "__mapDeepGet",
1659
+ "name": "mapDeepGet",
1690
1660
  "kind": "function",
1691
1661
  "arguments": [
1692
1662
  {
@@ -1705,52 +1675,15 @@
1705
1675
  }
1706
1676
  ],
1707
1677
  "file": "scss/utilities/_map-deep-get.scss",
1708
- "signature": "__mapDeepGet($map, $keys...)",
1678
+ "signature": "mapDeepGet($map, $keys...)",
1709
1679
  "summary": "Reads a value out of a nested map by following a chain of keys.",
1710
1680
  "examples": [
1711
- ".a { height: __mapDeepGet($map-for-tablets, \"iPadPro\", \"height\"); }"
1681
+ ".a { height: mapDeepGet($map-for-tablets, \"iPadPro\", \"height\"); }"
1712
1682
  ],
1713
1683
  "rejects": []
1714
1684
  },
1715
1685
  {
1716
- "name": "__null",
1717
- "kind": "function",
1718
- "arguments": [
1719
- {
1720
- "name": "$value",
1721
- "required": true,
1722
- "accepts": [
1723
- "a list that may contain nulls"
1724
- ]
1725
- },
1726
- {
1727
- "name": "$seperation",
1728
- "default": "comma",
1729
- "accepts": [
1730
- "comma",
1731
- "space"
1732
- ]
1733
- },
1734
- {
1735
- "name": "$skip",
1736
- "default": "false",
1737
- "accepts": [
1738
- "true to leave nulls in place instead of using 0"
1739
- ]
1740
- }
1741
- ],
1742
- "file": "scss/utilities/_null.scss",
1743
- "signature": "__null($value, $seperation: comma, $skip: false)",
1744
- "summary": "Replaces null entries in a list with 0, or drops them.",
1745
- "examples": [
1746
- ".a { margin: __null(1px null 3px null, space); }"
1747
- ],
1748
- "rejects": [
1749
- ".a { --x: #{__null(1px null, nonsense)}; }"
1750
- ]
1751
- },
1752
- {
1753
- "name": "__pixelify",
1686
+ "name": "pixelify",
1754
1687
  "kind": "function",
1755
1688
  "arguments": [
1756
1689
  {
@@ -1762,17 +1695,17 @@
1762
1695
  }
1763
1696
  ],
1764
1697
  "file": "scss/utilities/_pixelify.scss",
1765
- "signature": "__pixelify($value)",
1698
+ "signature": "pixelify($value)",
1766
1699
  "summary": "Returns the value with a px unit, adding one if it is missing.",
1767
1700
  "examples": [
1768
- ".a { width: __pixelify(24); }"
1701
+ ".a { width: pixelify(24); }"
1769
1702
  ],
1770
1703
  "rejects": [
1771
- ".a { --x: #{__pixelify(nonsense)}; }"
1704
+ ".a { --x: #{pixelify(nonsense)}; }"
1772
1705
  ]
1773
1706
  },
1774
1707
  {
1775
- "name": "__pseudoSelector",
1708
+ "name": "pseudoSelector",
1776
1709
  "kind": "function",
1777
1710
  "arguments": [
1778
1711
  {
@@ -1791,15 +1724,15 @@
1791
1724
  }
1792
1725
  ],
1793
1726
  "file": "scss/utilities/_pseudo-selector.scss",
1794
- "signature": "__pseudoSelector($elements, $pseudo: null)",
1727
+ "signature": "pseudoSelector($elements, $pseudo: null)",
1795
1728
  "summary": "Appends a pseudo-class to every selector in a list.",
1796
1729
  "examples": [
1797
- ".a { content: \"#{__pseudoSelector((\"button\", \"a\"), \"hover\")}\"; }"
1730
+ ".a { content: \"#{pseudoSelector((\"button\", \"a\"), \"hover\")}\"; }"
1798
1731
  ],
1799
1732
  "rejects": []
1800
1733
  },
1801
1734
  {
1802
- "name": "__remify",
1735
+ "name": "remify",
1803
1736
  "kind": "function",
1804
1737
  "arguments": [
1805
1738
  {
@@ -1811,15 +1744,44 @@
1811
1744
  }
1812
1745
  ],
1813
1746
  "file": "scss/utilities/_remify.scss",
1814
- "signature": "__remify($value)",
1747
+ "signature": "remify($value)",
1815
1748
  "summary": "Converts a pixel length to rem, against a 16px root.",
1816
1749
  "examples": [
1817
- ".a { font-size: __remify(24px); }"
1750
+ ".a { font-size: remify(24px); }"
1818
1751
  ],
1819
1752
  "rejects": []
1820
1753
  },
1821
1754
  {
1822
- "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",
1823
1785
  "kind": "function",
1824
1786
  "arguments": [
1825
1787
  {
@@ -1831,17 +1793,46 @@
1831
1793
  }
1832
1794
  ],
1833
1795
  "file": "scss/utilities/_shorthand-property.scss",
1834
- "signature": "__shorthandProperty($value)",
1796
+ "signature": "shorthandProperty($value)",
1835
1797
  "summary": "Expands one to four values into the four-value CSS shorthand order.",
1836
1798
  "examples": [
1837
- ".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%); }"
1838
1829
  ],
1839
1830
  "rejects": [
1840
- ".a { margin: __shorthandProperty(1px 2px 3px 4px 5px); }"
1831
+ ".a { color: tint(notacolor, 20%); }"
1841
1832
  ]
1842
1833
  },
1843
1834
  {
1844
- "name": "__validateBreakpoint",
1835
+ "name": "validateBreakpoint",
1845
1836
  "kind": "function",
1846
1837
  "arguments": [
1847
1838
  {
@@ -1853,15 +1844,15 @@
1853
1844
  }
1854
1845
  ],
1855
1846
  "file": "scss/utilities/_validate-breakpoint.scss",
1856
- "signature": "__validateBreakpoint($value)",
1847
+ "signature": "validateBreakpoint($value)",
1857
1848
  "summary": "Resolves a breakpoint name to its width, passing other values through.",
1858
1849
  "examples": [
1859
- ".a { width: __validateBreakpoint(\"medium\"); }"
1850
+ ".a { width: validateBreakpoint(\"medium\"); }"
1860
1851
  ],
1861
1852
  "rejects": []
1862
1853
  },
1863
1854
  {
1864
- "name": "__validateLength",
1855
+ "name": "validateLength",
1865
1856
  "kind": "function",
1866
1857
  "arguments": [
1867
1858
  {
@@ -1873,15 +1864,15 @@
1873
1864
  }
1874
1865
  ],
1875
1866
  "file": "scss/utilities/_validate-length.scss",
1876
- "signature": "__validateLength($value)",
1867
+ "signature": "validateLength($value)",
1877
1868
  "summary": "Returns the value if it is a length or one of auto, inherit, initial, 0.",
1878
1869
  "examples": [
1879
- ".a { width: __validateLength(20px); }"
1870
+ ".a { width: validateLength(20px); }"
1880
1871
  ],
1881
1872
  "rejects": []
1882
1873
  },
1883
1874
  {
1884
- "name": "__validateRatio",
1875
+ "name": "validateRatio",
1885
1876
  "kind": "function",
1886
1877
  "arguments": [
1887
1878
  {
@@ -1895,17 +1886,18 @@
1895
1886
  }
1896
1887
  ],
1897
1888
  "file": "scss/utilities/_validate-ratio.scss",
1898
- "signature": "__validateRatio($ratio)",
1899
- "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.",
1900
1891
  "examples": [
1901
- ".a { padding-top: __validateRatio(\"16/9\"); }"
1892
+ ".a { aspect-ratio: validateRatio(\"16/9\"); }",
1893
+ ".a { aspect-ratio: validateRatio(1.5); }"
1902
1894
  ],
1903
1895
  "rejects": [
1904
- ".a { padding-top: __validateRatio(16 9); }"
1896
+ ".a { aspect-ratio: validateRatio(16 9); }"
1905
1897
  ]
1906
1898
  },
1907
1899
  {
1908
- "name": "__validateScissors",
1900
+ "name": "validateScissors",
1909
1901
  "kind": "function",
1910
1902
  "arguments": [
1911
1903
  {
@@ -1917,10 +1909,10 @@
1917
1909
  }
1918
1910
  ],
1919
1911
  "file": "scss/utilities/_validate-scissors.scss",
1920
- "signature": "__validateScissors($value)",
1912
+ "signature": "validateScissors($value)",
1921
1913
  "summary": "Normalises corner values for the scissors mixin, adding px where missing.",
1922
1914
  "examples": [
1923
- ".a { content: \"#{__validateScissors(12px)}\"; }"
1915
+ ".a { content: \"#{validateScissors(12px)}\"; }"
1924
1916
  ],
1925
1917
  "rejects": []
1926
1918
  }