Return styles to browser defaults.

matches-prefixer.js 1.0KB

12345678910111213141516171819202122232425262728293031323334
  1. // From: https://gist.github.com/dennisgaebel/4290fd6e5dbba5e9b35e2587dcc20849
  2. const postcss = require('postcss');
  3. module.exports = postcss.plugin('postcss-matches', () => {
  4. return root => {
  5. root.walkRules(rule => {
  6. if (rule.selector.indexOf(':matches(') !== -1) {
  7. mozRule = rule.clone();
  8. webkitRule = rule.clone();
  9. mozRule.selectors = rule.selectors.reduce((all, i) => {
  10. if (i.indexOf(':matches(') !== -1) {
  11. return all.concat([
  12. i.replace(/:matches\(/gi, ':-moz-any(')
  13. ])
  14. } else {
  15. return all.concat([i])
  16. }
  17. }, []);
  18. webkitRule.selectors = rule.selectors.reduce((all, i) => {
  19. if (i.indexOf(':matches(') !== -1) {
  20. return all.concat([
  21. i.replace(/:matches\(/gi, ':-webkit-any('),
  22. ])
  23. } else {
  24. return all.concat([i])
  25. }
  26. }, []);
  27. root.append(mozRule);
  28. root.append(webkitRule);
  29. }
  30. })
  31. }
  32. });