index.js 894 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. var postcss = require('postcss');
  2. var bug4 = require('./bugs/bug4');
  3. var bug6 = require('./bugs/bug6');
  4. var bug81a = require('./bugs/bug81a');
  5. var doNothingValues = [
  6. 'none',
  7. 'auto',
  8. 'content',
  9. 'inherit',
  10. 'initial',
  11. 'unset'
  12. ];
  13. module.exports = postcss.plugin('postcss-flexbugs-fixes', function(opts) {
  14. var options = Object.assign({ bug4: true, bug6: true, bug81a: true }, opts);
  15. return function(css) {
  16. css.walkDecls(function(d) {
  17. if (d.value.indexOf('var(') > -1) {
  18. return;
  19. }
  20. if (d.value === 'none') {
  21. return;
  22. }
  23. var values = postcss.list.space(d.value);
  24. if (doNothingValues.indexOf(d.value) > 0 && values.length === 1) {
  25. return;
  26. }
  27. if (options.bug4) {
  28. bug4(d);
  29. }
  30. if (options.bug6) {
  31. bug6(d);
  32. }
  33. if (options.bug81a) {
  34. bug81a(d);
  35. }
  36. });
  37. };
  38. });