Пример #1
0
gulp.task('styles', function () {
  var processors = [
    atImport(),
    cssnext({browsers: ['last 2 versions']}),
    cssnano(),
  ];
  // return gulp.src('./src/*.css')
  // to watch all files in the directory
  return gulp.src('./src/styles.css')
    .pipe(postcss(processors))
    .pipe(gulp.dest('./dist'));
});
Пример #2
0
 postcss: function(wp) {
   return [
     cssimports({
       addDependencyTo: wp
     }),
     cssvariables(),
     cssnesting(),
     rucksack({
       autoprefixer: true
     })
   ];
 },
    components.forEach(function (component) {
      var newDir = rmHtmlExt(component.replace('src/', ''))
      var newFile = newDir + '/index.html'
      var componentHtml = fs.readFileSync(component, 'utf8')

      var fmParsed = fm.parse(componentHtml)
      var frontMatter = fmParsed.attributes || {}
      frontMatter.bodyClass = frontMatter.bodyClass || ''
      frontMatter.title = frontMatter.title || getTitle(component)
      frontMatter.name = frontMatter.name || getName(component)
      frontMatter.classes = getClasses(fmParsed.body).map(function(klass) {
        return '.' + klass
      })
      frontMatter.componentHtml = componentHtml
      frontMatter.content = fmParsed.body
      frontMatter.escapedHtml = escapeHtml(fmParsed.body)
      frontMatter.footer = footer
      frontMatter.analytics = analytics
      frontMatter.head = head
      frontMatter.highlight = highlight
      frontMatter.componentsForNav = componentsForNav

      var moduleSrcs = {}
      var getModules = postcss.plugin('get-modules', function () {
        return function (css, result) {
          css.walkRules(function (rule) {
            moduleSrcs[rule.source.input.from] = true
          })
        }
      })

      postcss([
        atImport(), cssVariables(), conditionals(), customMedia(), select(frontMatter.classes),
        removeComments({ removeAll: true }), mqPacker(), removeEmpty(), getModules(), perfectionist()
      ]).process(tachyonsCss, {
        from: 'src/css/tachyons.css'
      }).then(function (result) {
        console.log('component css selection complete for', component)
        frontMatter.componentCss = result.css
        frontMatter.stats = cssstats(frontMatter.componentCss)

        // TODO: Update me once src/ uses the npm modules
        frontMatter.modules = Object.keys(moduleSrcs).map(function (module) {
          return 'tachyons-' + module.split('/_')[1].replace('.css', '')
        })

        var compiledPage = _.template(template)(frontMatter)
        console.log('creating new dir', newDir)
        mkdirp.sync(newDir)
        fs.writeFileSync(newFile, compiledPage)
        console.log('finished component build for', component)
      }).catch(function (e) { console.log(e) })
    })
Пример #4
0
function transformSyntax(input, src, path) {
  const processors = [
    pcssImport({ path: ['src/styles'] }),
    pcssMixins,
    pcssVar,
    pcssNested,
    autoprefixer,
  ];
  return postcss(processors).process(input, {
    from: `${path}/${src}.css`,
  }).then(result => result.css).catch(err => console.log(err));
}
Пример #5
0
 postcss: function (webpack) {
   return [
     postcssImport({
       addDependencyTo: webpack
     }),
     require('postcss-clearfix'),
     require('postcss-mixins'),
     require('autoprefixer'),
     require('postcss-custom-media'),
     require('postcss-css-variables'),
   ];
 },
Пример #6
0
gulp.task('css', function() {
    var processors = [
        cssimport(),
        autoprefixer({
            browsers: ['last 2 versions']
        })
    ];
    
    return gulp.src(SRC + '/assets/css/style*.css')
        .pipe(postcss(processors))
        .pipe(gulp.dest(DEST + '/assets/css'));
});
Пример #7
0
gulp.task('styles:dev', function()
{
    // Store PostCSS processors
    var processors = [
        cssImport(),
        cssCalc(),
        cssMixins(),
        cssSimpleVars({
            silent: true
        }),
        cssColorFunction(),
        cssNested(),
        cssCustomMedia(),
        lost(),
        cssConditionals(),
        cssSimpleExtend(),
        cssDiscardComments(),
        autoprefixer({
            browsers: [
                'last 2 versions',
                'safari 5',
                'ie 9',
                'ie 10',
                'ie 11'
            ]
        })
    ];
    // Return source css files
    return gulp.src(srcPath.styles + 'ensphere.pcss')
    // Return any errors
        .pipe(plumber({
            errorHandler: function (err) {
                console.log(err);
                this.emit('end');
            }
        }))
        // Initialize sourcemap
        .pipe(sourcemaps.init())
        // Process through postcss
        .pipe(postcss(processors))
        .pipe(rename({
            basename : 'ensphere',
            extname: '.css'
        }))
        // Write the sourcemap
        .pipe(sourcemaps.write('maps', {
            includeContent: false,
            sourceRoot: distPath.styles + 'ensphere.css'
        }))
        // Write out the css file to dist
        .pipe(gulp.dest(distPath.styles));
});
 postcss: function(webpack) {
     return [
       postcssImport({addDependencyTo: webpack}),
       precss,
       autoprefixer,
       postcssMixins,
       simpleVars,
       colorFunctions,
       postcssBEM,
       postcssNested,
       customMedia
     ];
 },
Пример #9
0
 postcssPlugins: function(webpack) {
   return [
     postcssImport({
       addDependencyTo: webpack
     }),
     cssnext({
       browsers: ['last 2 versions', 'IE > 10'],
     }),
     postcssReporter({
       clearMessages: true,
     }),
   ];
 },
Пример #10
0
 postcss: function(webpack) {
   return {
     defaults: [postcssImport, precss, autoprefixer],
     cleaner: [
       postcssImport({
         addDependencyTo: webpack,
         path: [ path.resolve(__dirname, 'src') ]
       }),
       precss,
       autoprefixer
     ]
   }
 }
Пример #11
0
gulp.task('styles', function() {
	return (
		gulp.src('./css/all.css')
			.pipe(postcss([
				cssimport(),
				cssnext(),
				reporter()
			]))
			.pipe(nano())
			.pipe(gulp.dest('./dist/css'))
			.pipe(browserSync.stream())
	);
});
Пример #12
0
gulp.task('css', function () {
  var processors = [
    cssImport(),
    autoprefixer({browsers: ['> 1%', 'last 2 versions']}),
  ];
  return gulp.src(dirs.src + '/css/' + pkg.name + '.css')
    .pipe(header(banner, {pkg:pkg}))
    .pipe(postcss(processors))
    .pipe(gulp.dest(dirs.dist + '/css'))
    .pipe(cssnano())
    .pipe(rename({ suffix: '.min' }))
    .pipe(gulp.dest(dirs.dist + '/css'));
});
 postcss: function (webpack) {
   return [
     atImport({ addDependencyTo: webpack }),
     precss,
     fontMagician,
     cssnext({ browsers: ['last 2 versions'] }),
     lost,
     postCSSFocus,
     nested,
     mqpacker,
     cssnano({ autoprefixer: false })
   ]
 }
Пример #14
0
 postcss: function () {
   return [
     cssimport({
       // see postcss-import docs to learn about onImport callback
       // https://github.com/postcss/postcss-import
       path: spec.stylePath,
       onImport: function (files) {
         files.forEach(this.addDependency)
       }.bind(this)
     }),
     cssnext()
   ]
 },
Пример #15
0
gulp.task('styles', function () {
    var processors = [
        cssimport(),
        hwb(),
        customMedia(),
        customProperties(),
        autoprefixer({ browsers: ['last 2 versions'] })
    ];

    return gulp.src(['css/main.css', 'css/frontpage-only.css'])
        .pipe(postcss(processors))
        .pipe(gulp.dest('dist/css'));
});
Пример #16
0
gulp.task('css', function () {
  var processors = [
    autoprefixer({browsers: ['last 1 version']}),
    atImport({from: './src/style.css'})
  ]

  return gulp.src('./src/*.css')
    .pipe(sourcemaps.init())
    .pipe(postcss(processors))
    .pipe(sourcemaps.write('.'))
    .pipe(gulp.dest('./build'))
    .pipe(connect.reload())
})
gulp.task('postcss', ['clean-css'], function() {
  var processors = [
    autoprefixer({browsers: ['last 1 version']}),
    inlineImport(),
    gray(),
    nested(),
    variables()
  ];
  return gulp.src('./src/css/*.css')
    .pipe(postcss(processors))
    .pipe(gulp.dest('./build/css'))
    .pipe(browserSync.stream());
});
Пример #18
0
module.exports = function (_ctx) {
    return {
        'map': ENABLE_SOURCE_MAP ? { 'inline': false } : false,

        'plugins': [
            importPlugin({
                root: process.cwd(),
                path: [], // we'd like to enforce to use a relative path.
                skipDuplicates: true,
            }),
        ],
    };
};
Пример #19
0
 config.postcss = function(webpack) {
     return [
         postcssImport({
             async: true,
             addDependencyTo: webpack,
         }),
         autoprefixer({
             browsers: ['last 2 versions'],
         }),
         postcssFontMagician(),
         precss(),
     ]
 }
Пример #20
0
module.exports = co.wrap(function* (config) {
  const
    from = `${ config.root }/src/global.css`,
    to = `${ config.output }/global.css`,
    css = yield fsp.readFile(from, 'utf8'),
    p = postcss()
      .use(postcssImport())
      .use(postcssUrl())
      .use(autoprefixer())
      .use(cssnano({ safe: true })),
    result = yield p.process(css, { from, to })

  yield fsp.writeFile(to, result.css)
})
Пример #21
0
  postcss: function () {
    // use webpack context
    var postcssImport = require('postcss-import');

    return [
      postcssImport({
        onImport: function (files) {
          files.forEach(this.addDependency);
        }.bind(this)
      }),

      require('postcss-custom-properties'),
    ]
  },
Пример #22
0
	function bundle () {
		return gulp.src('./test/manual/suite/**/*.css')
				.pipe(plumber(handleError))
				.pipe(sourcemaps.init({
					loadMaps: true
				}))
				.pipe(postcss([
					atImport()
				]))
				.pipe(sourcemaps.write())
				.pipe(plumber.stop())
				.pipe(gulp.dest('./test-dist'))
				.pipe(debug({ title: 'Style:' }));
	}
Пример #23
0
 config.postcss = webpack => [
   importer({
     addDependencyTo: webpack
   }),
   stylelint,
   cssnext,
   lost,
   normalize,
   // this doesn't work with unicode-range etc
   font({
     formats: 'woff2'
   }),
   reporter
 ]
Пример #24
0
test("cssNodeContextLookup checking media context", t => {
  const testLookup = cssNodeContextLookup()

  t.plan(8)
  postcss([postcssImport()])
    .process("@import 'fixtures/one.css'; @import 'fixtures/two.css';", {
      from: path.join(__dirname, "fake.css"),
    })
    .then(result => {
      const rulesBySelector = {}
      result.root.walkRules(rule => {
        rulesBySelector[rule.selector] = rule
      })

      // a-d are in one file; e-h in another
      t.equal(
        testLookup.getContext(rulesBySelector.a, rulesBySelector.a.parent),
        testLookup.getContext(rulesBySelector.b, rulesBySelector.b.parent)
      )
      t.notEqual(
        testLookup.getContext(rulesBySelector.a, rulesBySelector.a.parent),
        testLookup.getContext(rulesBySelector.c, rulesBySelector.c.parent)
      )
      t.notEqual(
        testLookup.getContext(rulesBySelector.a, rulesBySelector.a.parent),
        testLookup.getContext(rulesBySelector.e, rulesBySelector.e.parent)
      )
      t.equal(
        testLookup.getContext(rulesBySelector.c, rulesBySelector.c.parent),
        testLookup.getContext(rulesBySelector.d, rulesBySelector.d.parent)
      )
      t.notEqual(
        testLookup.getContext(rulesBySelector.c, rulesBySelector.c.parent),
        testLookup.getContext(rulesBySelector.g, rulesBySelector.g.parent)
      )
      t.equal(
        testLookup.getContext(rulesBySelector.e, rulesBySelector.e.parent),
        testLookup.getContext(rulesBySelector.f, rulesBySelector.f.parent)
      )
      t.notEqual(
        testLookup.getContext(rulesBySelector.f, rulesBySelector.f.parent),
        testLookup.getContext(rulesBySelector.g, rulesBySelector.g.parent)
      )
      t.equal(
        testLookup.getContext(rulesBySelector.g, rulesBySelector.g.parent),
        testLookup.getContext(rulesBySelector.h, rulesBySelector.h.parent)
      )
    })
    .catch(err => console.log(err.stack)) // eslint-disable-line
})
                plugins: () => {
                  const plugins = [
                    postcssImport(),
                    postcssPresetEnv({
                      stage: 0
                    })
                  ]

                  if (argv.mode === 'production') {
                    plugins.push(cssnano());
                  }

                  return plugins;
                }
Пример #26
0
 postcss: function () {
   return [
     postcssImport({
       addDependencyTo: webpack,
       // path: [path.resolve(rootDir, 'node_modules')]
       // path: path.resolve(rootDir, 'src')
     }),
     postcssMixins,
     postcssSimpleVars,
     postcssNested,
     postcssNormalize,
     autoprefixer({browsers: ['last 2 version']})
   ];
 },
Пример #27
0
gulp.task('styles', function() {
	var processors = [
		autoprefixer,
		atImport()
	];

	return gulp.src(config.paths.scss.entry)
		.pipe(sass({
			includePaths: ['node_modules/'],
		})).on('error', sass.logError)
		.pipe(postcss(processors))
		.pipe(gulp.dest(config.paths.css.dest))
		.pipe(gulpif(browserSync.active, browserSync.reload({stream: true})));
});
Пример #28
0
function plugins(root) {
  if (_plugins) return _plugins
  var np = node_path(root)
  debug('plugin NODE_PATH=%s', np)

  _plugins = [
    cssimport({ path: np ? np : [], glob: true, root: root }),
    cssnext({ import: false }),
    nested(),
    vars()
  ]

  return _plugins
}
Пример #29
0
 plugins: loader => [
   cssImport({
     skipDuplicates: true
   }),
   require('postcss-flexbugs-fixes'),
   require('postcss-mixins'),
   postcssPresetEnv({
     stage: 2,
     features: {
       "nesting-rules": true
     }
   }),
   require('precss') // SASS-like markup,
 ]
Пример #30
0
  postcss: function(webpack) {
    return [
      postcssImport({addDependencyTo: webpack}),
      stylelint({
        config: require('../stylelint.config.js'),
        failOnError: true
      }),
      // do not autoprefixer the css because of style lint in development env,
      // whereas it will be called in production env, see production.config.js

      // cssnext({autoprefixer: {browsers: "ie >= 9, ..."}}),
      postcssReporter({clearMessages: true})
    ];
  }