diff --git a/Gruntfile.js b/Gruntfile.js
index 3aca2de9f1227a5e42a05a769ca27f80edc30b78..cf7f5564bcd7462a3a870bd3fc9dbf5f1ae008ba 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -1,9 +1,10 @@
 var every = require('lodash/collection/every');
 var fs = require('fs');
+const sass = require('node-sass');
 
 module.exports = function (grunt) {
-  var lessDir = 'www/less';
-  var lessVendorDir = lessDir + '/lib';
+  var sassDir = 'www/scss';
+//   var sassVendorDir = sassDir + '/mixins';
   var cssDir = 'www/css';
   var jsDir = 'www/js';
 
@@ -16,51 +17,70 @@ module.exports = function (grunt) {
     jsDir + '/search.js',
   ];
 
-  var wdnMixinLibBaseUrl = 'https://raw.githubusercontent.com/unl/wdntemplates/4.1/wdn/templates_4.1/less/_mixins/';
-  var wdnMixins = [
-    'breakpoints.less',
-    'colors.less',
-    'fonts.less',
-  ];
-  var allMixinsExist = every(wdnMixins, function(value) {
-    return fs.existsSync(lessVendorDir + '/' + value);
-  });
+// TODO: Import DCF and UNLedu 5.0 mixins and variables
+//   var dcfMixinLibBaseUrl = 'https://raw.githubusercontent.com/d-c-n/dcf/master/assets/dist/scss/mixins/';
+//   var dcfMixins = [
+//     '_mixins.backgrounds.scss',
+//     '_mixins.margins.scss',
+//     '_mixins.padding.scss',
+//     '_mixins.typography.scss'
+//   ];
+//   var allMixinsExist = every(dcfMixins, function(value) {
+//     return fs.existsSync(sassVendorDir + '/' + value);
+//   });
 
-  var lessFiles = {};
+  var sassFiles = {};
   cssFiles.forEach(function(file) {
-    lessFiles[cssDir + '/' + file + '.css'] = lessDir + '/' + file + '.less';
+    sassFiles[cssDir + '/' + file + '.css'] = sassDir + '/' + file + '.scss';
   });
 
   var builtJsFiles = {};
   builtJsFiles[jsDir + '/search.min.js'] = jsFiles;
 
-  var autoprefixPlugin = new (require('less-plugin-autoprefix'))({browsers: ["last 2 versions"]});
-  var cleanCssPlugin = new (require('less-plugin-clean-css'))();
+//   var autoprefixPlugin = new (require('less-plugin-autoprefix'))({browsers: ["last 2 versions"]});
+//   var cleanCssPlugin = new (require('less-plugin-clean-css'))();
 
   // load all grunt tasks matching the ['grunt-*', '@*/grunt-*'] patterns
   require('load-grunt-tasks')(grunt);
 
   grunt.initConfig({
-    'curl-dir': {
-      'less-libs': {
-        src: wdnMixins.map(function(file) {
-          return wdnMixinLibBaseUrl + file;
-        }),
-        dest: lessVendorDir
-      }
-    },
-    less: {
-      all: {
-        options: {
-            paths: [lessDir],
-            plugins: [
-              autoprefixPlugin,
-              cleanCssPlugin
-            ]
-          },
-          files: lessFiles
-      }
+
+//     'curl-dir': {
+//       'dcf-mixins': {
+//         src: dcfMixins.map(function(file) {
+//           return dcfMixinLibBaseUrl + file;
+//         }),
+//         dest: sassVendorDir
+//       }
+//       // TODO: add UNLedu 5.0 mixins
+//     },
+
+    sass: {
+			all: {
+				files: sassFiles,
+				options: {
+          implementation: sass,
+					sourceMap: true
+// 					includePaths: [
+// 						__dirname+'/node_modules/modularscale-sass/stylesheets'
+// 					]
+				}
+			},
     },
+
+		postcss: {
+			options: {
+				processors: [
+					require('autoprefixer'),
+					require('cssnano')() // TODO: advanced config of cssnano
+				],
+				map: true
+			},
+			dist: {
+				src: cssDir + '/*.css'
+			}
+		},
+
     uglify: {
       options: {
         sourceMap: true
@@ -69,6 +89,7 @@ module.exports = function (grunt) {
         files: builtJsFiles
       }
     },
+
     requirejs: {
       all: {
         options: {
@@ -98,24 +119,28 @@ module.exports = function (grunt) {
         }
       }
     },
+
     clean: {
-      css: Object.keys(lessFiles).concat(lessVendorDir),
+//       css: Object.keys(sassFiles).concat(sassVendorDir),
+      css: Object.keys(sassFiles),
       js: Object.keys(builtJsFiles).concat(jsDir + '/**/*.map')
     },
+
     watch: {
-      less: {
-        files: lessDir + '/**/*.less',
-        tasks: ['less']
+      sass: {
+        files: sassDir + '/**/*.scss',
+        tasks: ['sass', 'postcss']
       }
     }
+
   });
 
   // establish grunt default
-  var defaultTasks = ['less', 'uglify', 'requirejs'];
+  var defaultTasks = ['sass', 'postcss', 'uglify', 'requirejs'];
   var localTasks = defaultTasks.slice();
-  if (!allMixinsExist) {
-    defaultTasks.unshift('curl-dir');
-  }
+//   if (!allMixinsExist) {
+//     defaultTasks.unshift('curl-dir');
+//   }
   grunt.registerTask('default', defaultTasks);
   grunt.registerTask('all-local', localTasks);