~stephen-stewart/ulysses/move-box-sizing-to-base

« back to all changes in this revision

Viewing changes to gulpfile.js

  • Committer: Tarmac
  • Author(s): Stephen Stewart
  • Date: 2014-09-25 09:26:43 UTC
  • mfrom: (43.1.14 gulpify-and-update)
  • Revision ID: tarmac-20140925092643-jzluuaboybxm4q73
[r=james-w] update to version 1.0.0

* update grids to pure 0.5
* default to border-box
* default to minified css
* switch to gulp
* remove bower dep
* svg symbols

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
var autoprefixer = require('gulp-autoprefixer');
 
2
var changed = require('gulp-changed');
 
3
var concat = require('gulp-concat');
 
4
var csslint = require('gulp-csslint');
 
5
var csso = require('gulp-csso');
 
6
var del = require('del');
 
7
var fs = require('fs');
 
8
var gulp = require('gulp');
 
9
var gulpFilter = require('gulp-filter');
 
10
var phantomcss = require('gulp-phantomcss');
 
11
var pureGrids = require('rework-pure-grids');
 
12
var replace = require('gulp-replace');
 
13
var rework = require('rework');
 
14
var svgSymbols = require('gulp-svg-symbols');
 
15
var webserver = require('gulp-webserver');
 
16
 
 
17
var paths = {
 
18
  'css': ['src/normalize.css', 'src/*.css'],
 
19
  'normalize': 'node_modules/normalize.css/normalize.css',
 
20
  'grids': 'node_modules/purecss/grids-core.css',
 
21
  'src': 'src/',
 
22
  'dest': 'public/'
 
23
};
 
24
 
 
25
gulp.task('default', ['build']);
 
26
// to be run when newer versions of Pure or normalize are available in npm
 
27
gulp.task('update', ['clean', 'copy', 'grids', 'build']);
 
28
gulp.task('test', ['clean', 'build', 'test-small', 'test-large']);
 
29
 
 
30
gulp.task('watch', function() {
 
31
  gulp.watch(paths.src + '**/*.css', ['build']);
 
32
  gulp.watch([paths.normalize, paths.grids], ['copy']);
 
33
  gulp.watch('gulpfile.js', ['grids']);
 
34
});
 
35
 
 
36
gulp.task('build', function() {
 
37
  var filter = gulpFilter(['*.css', '!*-small.css']);
 
38
  return gulp.src(paths.css)
 
39
  .pipe(changed(paths.dest))
 
40
  .pipe(csslint('.csslintrc'))
 
41
  .pipe(csslint.reporter())
 
42
  .pipe(autoprefixer())
 
43
  .pipe(csso())
 
44
  .pipe(gulp.dest(paths.dest))
 
45
  .pipe(filter)
 
46
  .pipe(concat('ulysses.css'))
 
47
  .pipe(gulp.dest(paths.dest));
 
48
});
 
49
 
 
50
gulp.task('clean', function(cb) {
 
51
  // You can use multiple globbing patterns as you would with `gulp.src`
 
52
  del([paths.dest], cb);
 
53
});
 
54
 
 
55
gulp.task('copy', function() {
 
56
  gulp.src([paths.normalize, paths.grids])
 
57
  .pipe(replace(/pure-/g, 'ues-'))
 
58
  .pipe(gulp.dest(paths.src));
 
59
});
 
60
 
 
61
gulp.task('grids', function() {
 
62
 
 
63
  var css = rework('').use(pureGrids.units([5, 24], {
 
64
    mediaQueries: {
 
65
      sm  : 'screen and (min-width: 30em)',
 
66
      med : 'screen and (min-width: 48em)',
 
67
      lrg : 'screen and (min-width: 64em)',
 
68
      xlrg: 'screen and (min-width: 75em)'
 
69
    },
 
70
    decimals: 6,
 
71
    selectorPrefix: '.ues-u-'
 
72
  }));
 
73
 
 
74
  var stream = fs.createWriteStream(paths.src + 'grids-units.css');
 
75
  stream.write(css.toString());
 
76
  stream.end();
 
77
 
 
78
});
 
79
 
 
80
gulp.task('symbols', function () {
 
81
  return gulp.src('src/icons/*.svg')
 
82
  .pipe(svgSymbols({
 
83
    css: false,
 
84
    className: '.ues-icon-%f',
 
85
  }))
 
86
  .pipe(gulp.dest('assets'));
 
87
});
 
88
 
 
89
gulp.task('test-large', function (){
 
90
  return gulp.src('./test/visual/config/desktop.js')
 
91
  .pipe(phantomcss({
 
92
    screenshots: './test/visual/screenshots/desktop/'
 
93
  }));
 
94
});
 
95
 
 
96
gulp.task('test-small', function (){
 
97
  return gulp.src('./test/visual/config/smallscreen.js')
 
98
  .pipe(phantomcss({
 
99
    screenshots: './test/visual/screenshots/smallscreen/',
 
100
    viewportSize: [320, 480]
 
101
  }));
 
102
});
 
103
 
 
104
gulp.task('webserver', function() {
 
105
  gulp.src('test')
 
106
  .pipe(webserver({
 
107
    open: true,
 
108
    host: '0.0.0.0'
 
109
  }));
 
110
});