diff --git a/docs/gulpfile.js b/docs/gulpfile.js index 3c39e7efc2..c157a01797 100644 --- a/docs/gulpfile.js +++ b/docs/gulpfile.js @@ -17,10 +17,6 @@ const argv = require('minimist')(process.argv.slice(2)); const gutil = require('gulp-util'); const series = require('stream-series'); -const config = { - demoFolder: 'demo-partials' -}; - gulp.task('demos', function() { const demos = []; return generateDemos() diff --git a/gulp/config.js b/gulp/config.js index fc04d9bfdd..3e8656c22b 100644 --- a/gulp/config.js +++ b/gulp/config.js @@ -10,20 +10,89 @@ module.exports = { ' * @license MIT\n' + ' * v' + VERSION + '\n' + ' */\n', - jsBaseFiles: [ - 'src/core/**/*.js' + jsCoreFiles: [ + 'src/core/*.js', + 'src/core/util/autofocus.js', + 'src/core/util/color.js', + 'src/core/util/constant.js', + 'src/core/util/iterator.js', + 'src/core/util/media.js', + 'src/core/util/prefixer.js', + 'src/core/util/util.js', + 'src/core/util/animation/animate.js', + 'src/core/util/animation/animateCss.js', + 'src/core/services/aria/*.js', + 'src/core/services/compiler/*.js', + 'src/core/services/gesture/*.js', + 'src/core/services/interaction/*.js', + 'src/core/services/interimElement/*.js', + 'src/core/services/layout/*.js', + 'src/core/services/liveAnnouncer/*.js', + 'src/core/services/meta/*.js', + 'src/core/services/registry/*.js', + 'src/core/services/ripple/button_ripple.js', + 'src/core/services/ripple/checkbox_ripple.js', + 'src/core/services/ripple/list_ripple.js', + 'src/core/services/ripple/ripple.js', + 'src/core/services/ripple/tab_ripple.js', + 'src/core/services/theming/theme.palette.js', + 'src/core/services/theming/theming.js' ], - jsFiles: [ + jsHintFiles: [ 'src/**/*.js', '!src/**/*.spec.js' ], - mockFiles : [ + componentPaths: [ + 'src/components/autocomplete', + 'src/components/backdrop', + 'src/components/bottomSheet', + 'src/components/button', + 'src/components/card', + 'src/components/checkbox', + 'src/components/chips', + 'src/components/colors', + 'src/components/content', + 'src/components/datepicker', + 'src/components/dialog', + 'src/components/divider', + 'src/components/fabActions', + 'src/components/fabSpeedDial', + 'src/components/fabToolbar', + 'src/components/gridList', + 'src/components/icon', + 'src/components/input', + 'src/components/list', + 'src/components/menu', + 'src/components/menuBar', + 'src/components/navBar', + 'src/components/panel', + 'src/components/progressCircular', + 'src/components/progressLinear', + 'src/components/radioButton', + 'src/components/select', + 'src/components/showHide', + 'src/components/sidenav', + 'src/components/slider', + 'src/components/sticky', + 'src/components/subheader', + 'src/components/swipe', + 'src/components/switch', + 'src/components/tabs', + 'src/components/toast', + 'src/components/toolbar', + 'src/components/tooltip', + 'src/components/truncate', + 'src/components/virtualRepeat', + 'src/components/whiteframe' + ], + mockFiles: [ 'test/angular-material-mocks.js' ], themeBaseFiles: [ 'src/core/style/variables.scss', 'src/core/style/mixins.scss' ], + themeCore: 'src/core/style/core-theme.scss', scssBaseFiles: [ 'src/core/style/color-palette.scss', 'src/core/style/variables.scss', @@ -33,6 +102,7 @@ module.exports = { 'src/core/style/layout.scss', 'src/components/panel/*.scss' ], + scssServicesLayout: 'src/core/services/layout/layout.scss', scssLayoutFiles: [ 'src/core/style/variables.scss', 'src/core/style/mixins.scss', @@ -44,14 +114,46 @@ module.exports = { 'src/core/style/mixins.scss', 'src/core/services/layout/layout-attributes.scss' ], - scssPaths : [ - 'src/components/**/*.scss', - 'src/core/services/**/*.scss' + scssComponentPaths: [ + 'src/components/autocomplete', + 'src/components/backdrop', + 'src/components/bottomSheet', + 'src/components/button', + 'src/components/card', + 'src/components/checkbox', + 'src/components/chips', + 'src/components/content', + 'src/components/datepicker', + 'src/components/dialog', + 'src/components/divider', + 'src/components/fabSpeedDial', + 'src/components/fabToolbar', + 'src/components/gridList', + 'src/components/icon', + 'src/components/input', + 'src/components/list', + 'src/components/menu', + 'src/components/menuBar', + 'src/components/navBar', + // panel is included in scssBaseFiles above + 'src/components/progressCircular', + 'src/components/progressLinear', + 'src/components/radioButton', + 'src/components/select', + 'src/components/sidenav', + 'src/components/slider', + 'src/components/sticky', + 'src/components/subheader', + 'src/components/swipe', + 'src/components/switch', + 'src/components/tabs', + 'src/components/toast', + 'src/components/toolbar', + 'src/components/tooltip', + 'src/components/truncate', + 'src/components/virtualRepeat', + 'src/components/whiteframe' ], - cssIEPaths : ['src/**/ie_fixes.css'], - paths: 'src/+(components|core)/**', - outputDir: 'dist/', - demoFolder: 'demo-partials' + cssIEPaths: ['src/**/ie_fixes.css'], + outputDir: 'dist/' }; - - diff --git a/gulp/tasks/build-demo.js b/gulp/tasks/build-demo.js index 67850a7a5a..0cb39c16ee 100644 --- a/gulp/tasks/build-demo.js +++ b/gulp/tasks/build-demo.js @@ -3,5 +3,5 @@ const util = require('../util'); exports.dependencies = ['build', 'build-module-demo']; exports.task = function() { - return util.buildModule(util.readModuleArg(), false); + return util.buildModule(util.readModuleArg()); }; diff --git a/gulp/tasks/build-js.js b/gulp/tasks/build-js.js index dafc1cb144..fbfc4f933c 100644 --- a/gulp/tasks/build-js.js +++ b/gulp/tasks/build-js.js @@ -1,5 +1,5 @@ const util = require('../util'); exports.task = function() { - return util.buildJs(true); + return util.buildJs(); }; diff --git a/gulp/tasks/build-module-demo.js b/gulp/tasks/build-module-demo.js index 997feb189a..0f88c0ad84 100644 --- a/gulp/tasks/build-module-demo.js +++ b/gulp/tasks/build-module-demo.js @@ -18,24 +18,23 @@ exports.task = function() { const mod = util.readModuleArg(); const name = mod.split('.').pop(); const demoIndexTemplate = fs.readFileSync( - ROOT + '/docs/config/template/demo-index.template.html', 'utf8' + ROOT + '/docs/config/template/demo-index.template.html', 'utf8' ).toString(); gutil.log('Building demos for', mod, '...'); return utils.readModuleDemos(mod, function() { return lazypipe() - .pipe(gulpif, /.css$/, sass()) - .pipe(gulpif, /.css$/, util.autoprefix()) - .pipe(gulp.dest, BUILD_MODE.outputDir + name) + .pipe(gulpif, /.css$/, sass()) + .pipe(gulpif, /.css$/, util.autoprefix()) + .pipe(gulp.dest, BUILD_MODE.outputDir + name) (); }) - .pipe(through2.obj(function(demo, enc, next) { - fs.writeFileSync( - path.resolve(BUILD_MODE.outputDir, name, demo.name, 'index.html'), - _.template(demoIndexTemplate)(demo) - ); - next(); - })); - + .pipe(through2.obj(function(demo, enc, next) { + fs.writeFileSync( + path.resolve(BUILD_MODE.outputDir, name, demo.name, 'index.html'), + _.template(demoIndexTemplate)(demo) + ); + next(); + })); }; diff --git a/gulp/tasks/build-scss.js b/gulp/tasks/build-scss.js index ba8b9e4b8a..3cb940c391 100644 --- a/gulp/tasks/build-scss.js +++ b/gulp/tasks/build-scss.js @@ -13,101 +13,104 @@ const gulpif = require('gulp-if'); const minifyCss = util.minifyCss; const args = util.args; const IS_DEV = require('../const').IS_DEV; +const path = require('path'); exports.task = function() { const streams = []; - const modules = args.modules, - overrides = args.override, - dest = args['output-dir'] || config.outputDir, - layoutDest= dest + 'layouts/'; + const modules = args.modules, + overrides = args.override, + dest = args['output-dir'] || config.outputDir, + layoutDest = dest + 'layouts/'; gutil.log("Building css files..."); // create SCSS file for distribution streams.push( gulp.src(getPaths()) - .pipe(util.filterNonCodeFiles()) - .pipe(filter(['**', '!**/*.css'])) - .pipe(filter(['**', '!**/*-theme.scss'])) - .pipe(filter(['**', '!**/*-attributes.scss'])) - .pipe(concat('angular-material.scss')) - .pipe(gulp.dest(dest)) // raw uncompiled SCSS - .pipe(sass()) - .pipe(util.dedupeCss()) - .pipe(util.autoprefix()) - .pipe(insert.prepend(config.banner)) - .pipe(gulp.dest(dest)) // unminified - .pipe(gulpif(!IS_DEV, minifyCss())) - .pipe(gulpif(!IS_DEV, util.dedupeCss())) - .pipe(rename({extname: '.min.css'})) - .pipe(gulp.dest(dest)) // minified + .pipe(util.filterNonCodeFiles()) + .pipe(filter(['**', '!**/*.css'])) + .pipe(filter(['**', '!**/*-theme.scss'])) + .pipe(filter(['**', '!**/*-attributes.scss'])) + .pipe(concat('angular-material.scss')) + .pipe(insert.prepend(config.banner)) + .pipe(gulp.dest(dest)) // raw uncompiled SCSS + .pipe(sass()) + .pipe(util.dedupeCss()) + .pipe(util.autoprefix()) + .pipe(gulp.dest(dest)) // unminified + .pipe(gulpif(!IS_DEV, minifyCss())) + .pipe(gulpif(!IS_DEV, util.dedupeCss())) + .pipe(rename({extname: '.min.css'})) + .pipe(gulp.dest(dest)) // minified ); streams.push( - gulp.src(config.cssIEPaths.slice()) // append raw CSS for IE Fixes - .pipe(concat('angular-material.layouts.ie_fixes.css')) - .pipe(gulp.dest(layoutDest)) + gulp.src(config.cssIEPaths.slice()) // append raw CSS for IE Fixes + .pipe(concat('angular-material.layouts.ie_fixes.css')) + .pipe(gulp.dest(layoutDest)) ); // Generate standalone SCSS (and CSS) file for Layouts API // The use of these classnames is automated but requires - // the Javascript module module `material.core.layout` + // the Javascript module `material.core.layout` // > (see src/core/services/layout.js) // NOTE: this generated css is ALSO appended to the published // angular-material.css file streams.push( gulp.src(config.scssLayoutFiles) - .pipe(concat('angular-material.layouts.scss')) - .pipe(sassUtils.hoistScssVariables()) - .pipe(insert.prepend(config.banner)) - .pipe(gulp.dest(layoutDest)) // raw uncompiled SCSS - .pipe(sass()) - .pipe(util.dedupeCss()) - .pipe(util.autoprefix()) - .pipe(rename({ extname : '.css'})) - .pipe(gulp.dest(layoutDest)) - .pipe(gulpif(!IS_DEV, minifyCss())) - .pipe(gulpif(!IS_DEV, util.dedupeCss())) - .pipe(rename({extname: '.min.css'})) - .pipe(gulp.dest(layoutDest)) + .pipe(concat('angular-material.layouts.scss')) + .pipe(sassUtils.hoistScssVariables()) + .pipe(insert.prepend(config.banner)) + .pipe(gulp.dest(layoutDest)) // raw uncompiled SCSS + .pipe(sass()) + .pipe(util.dedupeCss()) + .pipe(util.autoprefix()) + .pipe(rename({extname: '.css'})) + .pipe(gulp.dest(layoutDest)) + .pipe(gulpif(!IS_DEV, minifyCss())) + .pipe(gulpif(!IS_DEV, util.dedupeCss())) + .pipe(rename({extname: '.min.css'})) + .pipe(gulp.dest(layoutDest)) ); // Generate the Layout-Attributes SCSS and CSS files // These are intended to allow usages of the Layout styles // without: // * use of the Layout directives and classnames, and - // * Layout module `material.core.layout + // * Layout module `material.core.layout` streams.push( - gulp.src(config.scssLayoutAttributeFiles) - .pipe(concat('angular-material.layout-attributes.scss')) - .pipe(sassUtils.hoistScssVariables()) - .pipe(gulp.dest(layoutDest)) // raw uncompiled SCSS - .pipe(sass()) - .pipe(util.dedupeCss()) - .pipe(util.autoprefix()) - .pipe(rename({ extname : '.css'})) - .pipe(insert.prepend(config.banner)) - .pipe(gulp.dest(layoutDest)) - .pipe(gulpif(!IS_DEV, minifyCss())) - .pipe(gulpif(!IS_DEV, util.dedupeCss())) - .pipe(rename({extname: '.min.css'})) - .pipe(gulp.dest(layoutDest)) + gulp.src(config.scssLayoutAttributeFiles) + .pipe(concat('angular-material.layout-attributes.scss')) + .pipe(sassUtils.hoistScssVariables()) + .pipe(gulp.dest(layoutDest)) // raw uncompiled SCSS + .pipe(sass()) + .pipe(util.dedupeCss()) + .pipe(util.autoprefix()) + .pipe(rename({extname: '.css'})) + .pipe(insert.prepend(config.banner)) + .pipe(gulp.dest(layoutDest)) + .pipe(gulpif(!IS_DEV, minifyCss())) + .pipe(gulpif(!IS_DEV, util.dedupeCss())) + .pipe(rename({extname: '.min.css'})) + .pipe(gulp.dest(layoutDest)) ); return series(streams); - - function getPaths () { - const paths = config.scssBaseFiles.slice(); + /** + * @returns {string[]} array of SCSS file paths used in the build + */ + function getPaths() { + const paths = config.scssBaseFiles.slice(0); if (modules) { - paths.push.apply(paths, modules.split(',').map(function (module) { + paths.push.apply(paths, modules.split(',').map(function(module) { return 'src/components/' + module + '/*.scss'; })); } else { - paths.push('src/components/**/*.scss'); - paths.push('src/core/services/layout/**/*.scss'); + config.scssComponentPaths.forEach(component => paths.push(path.join(component, '*.scss'))); + paths.push(config.scssServicesLayout); } overrides && paths.unshift(overrides); return paths; diff --git a/gulp/tasks/jshint.js b/gulp/tasks/jshint.js index cafa3ca923..141a24dbd3 100644 --- a/gulp/tasks/jshint.js +++ b/gulp/tasks/jshint.js @@ -3,7 +3,7 @@ const gulp = require('gulp'); const jshint = require('gulp-jshint'); exports.task = function() { - return gulp.src(config.jsFiles) + return gulp.src(config.jsHintFiles) .pipe(jshint('.jshintrc')) .pipe(jshint.reporter('jshint-summary', { fileColCol: ',bold', diff --git a/gulp/util.js b/gulp/util.js index 78e054c386..5d5d9ba050 100644 --- a/gulp/util.js +++ b/gulp/util.js @@ -40,34 +40,38 @@ exports.args = args; /** * Builds the entire component library javascript. */ -function buildJs () { - const jsFiles = config.jsBaseFiles.concat([path.join(config.paths, '*.js')]); +function buildJs() { + const jsFiles = config.jsCoreFiles; + config.componentPaths.forEach(component => { + jsFiles.push(path.join(component, '*.js')); + jsFiles.push(path.join(component, '**/*.js')); + }); gutil.log("building js files..."); const jsBuildStream = gulp.src(jsFiles) - .pipe(filterNonCodeFiles()) - .pipe(utils.buildNgMaterialDefinition()) - .pipe(plumber()) - .pipe(ngAnnotate()) - .pipe(utils.addJsWrapper(true)); + .pipe(filterNonCodeFiles()) + .pipe(utils.buildNgMaterialDefinition()) + .pipe(plumber()) + .pipe(ngAnnotate()) + .pipe(utils.addJsWrapper(true)); const jsProcess = series(jsBuildStream, themeBuildStream()) - .pipe(concat('angular-material.js')) - .pipe(BUILD_MODE.transform()) - .pipe(insert.prepend(config.banner)) - .pipe(insert.append(';window.ngMaterial={version:{full: "' + VERSION +'"}};')) - .pipe(gulp.dest(config.outputDir)) - .pipe(gulpif(!IS_DEV, uglify({ output: { comments: 'some' }}))) - .pipe(rename({ extname: '.min.js' })) - .pipe(gulp.dest(config.outputDir)); + .pipe(concat('angular-material.js')) + .pipe(BUILD_MODE.transform()) + .pipe(insert.prepend(config.banner)) + .pipe(insert.append(';window.ngMaterial={version:{full: "' + VERSION + '"}};')) + .pipe(gulp.dest(config.outputDir)) + .pipe(gulpif(!IS_DEV, uglify({output: {comments: 'some'}}))) + .pipe(rename({extname: '.min.js'})) + .pipe(gulp.dest(config.outputDir)); return series(jsProcess, deployMaterialMocks()); // Deploy the `angular-material-mocks.js` file to the `dist` directory function deployMaterialMocks() { return gulp.src(config.mockFiles) - .pipe(gulp.dest(config.outputDir)); + .pipe(gulp.dest(config.outputDir)); } } @@ -83,8 +87,8 @@ function minifyCss(extraOptions) { } /** - * @param module {string} - * @param opts {{isRelease, minify, useBower}} + * @param {string} module + * @param {{isRelease, minify, useBower}=} opts */ function buildModule(module, opts) { opts = opts || {}; @@ -97,54 +101,54 @@ function buildModule(module, opts) { utils.copyDemoAssets(name, 'src/components/', 'dist/demos/'); let stream = utils.filesForModule(module) - .pipe(filterNonCodeFiles()) - .pipe(filterLayoutAttrFiles()) - .pipe(gulpif('*.scss', buildModuleStyles(name))) - .pipe(gulpif('*.js', buildModuleJs(name))); + .pipe(filterNonCodeFiles()) + .pipe(filterLayoutAttrFiles()) + .pipe(gulpif('*.scss', buildModuleStyles(name))) + .pipe(gulpif('*.js', buildModuleJs(name))); if (module === 'material.core') { stream = splitStream(stream); } return stream - .pipe(BUILD_MODE.transform()) - .pipe(insert.prepend(config.banner)) - .pipe(gulpif(opts.minify, buildMin())) - .pipe(gulpif(opts.useBower, buildBower())) - .pipe(gulp.dest(BUILD_MODE.outputDir + name)); + .pipe(BUILD_MODE.transform()) + .pipe(insert.prepend(config.banner)) + .pipe(gulpif(opts.minify, buildMin())) + .pipe(gulpif(opts.useBower, buildBower())) + .pipe(gulp.dest(BUILD_MODE.outputDir + name)); - function splitStream (stream) { + function splitStream(stream) { const js = series(stream, themeBuildStream()) - .pipe(filter('**/*.js')) - .pipe(concat('core.js')); + .pipe(filter('**/*.js')) + .pipe(concat('core.js')); const css = stream - .pipe(filter(['**/*.css', '!**/ie_fixes.css'])); + .pipe(filter(['**/*.css', '!**/ie_fixes.css'])); return series(js, css); } function buildMin() { return lazypipe() - .pipe(gulpif, /.css$/, minifyCss(), - uglify({ output: { comments: 'some' }}) - .on('error', function(e) { - console.log('\x07',e.message); - return this.end(); - } - ) + .pipe(gulpif, /.css$/, minifyCss(), + uglify({output: {comments: 'some'}}) + .on('error', function(e) { + console.log('\x07', e.message); + return this.end(); + } + ) ) - .pipe(rename, function(path) { - path.extname = path.extname - .replace(/.js$/, '.min.js') - .replace(/.css$/, '.min.css'); - }) + .pipe(rename, function(path) { + path.extname = path.extname + .replace(/.js$/, '.min.js') + .replace(/.css$/, '.min.css'); + }) (); } function buildBower() { return lazypipe() - .pipe(utils.buildModuleBower, name, VERSION)(); + .pipe(utils.buildModuleBower, name, VERSION)(); } function buildModuleJs(name) { @@ -162,18 +166,21 @@ function buildModule(module, opts) { } ]; return lazypipe() - .pipe(plumber) - .pipe(ngAnnotate) - .pipe(frep, patterns) - .pipe(concat, name + '.js') + .pipe(plumber) + .pipe(ngAnnotate) + .pipe(frep, patterns) + .pipe(concat, name + '.js') (); } + /** + * @param {string} name module name + * @returns {*} + */ function buildModuleStyles(name) { - let files = []; config.themeBaseFiles.forEach(function(fileGlob) { - files = files.concat(glob(fileGlob, { cwd: ROOT })); + files = files.concat(glob(fileGlob, {cwd: ROOT})); }); const baseStyles = files.map(function(fileName) { @@ -181,26 +188,28 @@ function buildModule(module, opts) { }).join('\n'); return lazypipe() - .pipe(insert.prepend, baseStyles) - .pipe(gulpif, /theme.scss/, rename(name + '-default-theme.scss'), concat(name + '.scss')) - // Theme files are suffixed with the `default-theme.scss` string. - // In some cases there are multiple theme SCSS files, which should be concatenated together. - .pipe(gulpif, /default-theme.scss/, concat(name + '-default-theme.scss')) - .pipe(sass) - .pipe(dedupeCss) - .pipe(utils.autoprefix) + .pipe(insert.prepend, baseStyles) + .pipe(gulpif, /theme.scss/, rename(name + '-default-theme.scss'), concat(name + '.scss')) + // Theme files are suffixed with the `default-theme.scss` string. + // In some cases there are multiple theme SCSS files, which should be concatenated together. + .pipe(gulpif, /default-theme.scss/, concat(name + '-default-theme.scss')) + .pipe(sass) + .pipe(dedupeCss) + .pipe(utils.autoprefix) (); // Invoke the returning lazypipe function to create our new pipe. } - } +/** + * @returns {string} module name. i.e. material.components.icon + */ function readModuleArg() { const module = args.c ? 'material.components.' + args.c : (args.module || args.m); if (!module) { gutil.log('\nProvide a component argument via `-c`:', - '\nExample: -c toast'); + '\nExample: -c toast'); gutil.log('\nOr provide a module argument via `--module` or `-m`.', - '\nExample: --module=material.components.toast or -m material.components.dialog'); + '\nExample: --module=material.components.toast or -m material.components.dialog'); throw new Error("Unable to read module arguments."); } return module; @@ -224,14 +233,19 @@ function filterNonCodeFiles() { // builds the theming related css and provides it as a JS const for angular function themeBuildStream() { - return gulp.src(config.themeBaseFiles.concat(path.join(config.paths, '*-theme.scss'))) - .pipe(concat('default-theme.scss')) - .pipe(utils.hoistScssVariables()) - .pipe(sass()) - .pipe(dedupeCss()) - // The PostCSS orderedValues plugin modifies the theme color expressions. - .pipe(minifyCss({ orderedValues: false })) - .pipe(utils.cssToNgConstant('material.core', '$MD_THEME_CSS')); + // Make a copy so that we don't modify the actual config that is used by other functions + var paths = config.themeBaseFiles.slice(0); + config.componentPaths.forEach(component => paths.push(path.join(component, '*-theme.scss'))); + paths.push(config.themeCore); + + return gulp.src(paths) + .pipe(concat('default-theme.scss')) + .pipe(utils.hoistScssVariables()) + .pipe(sass()) + .pipe(dedupeCss()) + // The PostCSS orderedValues plugin modifies the theme color expressions. + .pipe(minifyCss({orderedValues: false})) + .pipe(utils.cssToNgConstant('material.core', '$MD_THEME_CSS')); } // Removes duplicated CSS properties. @@ -260,7 +274,7 @@ function dedupeCss() { gutil.log(gutil.colors.yellow( 'Removed duplicate property: "' + - prop.prop + ': ' + prop.value + '" from "' + rule.selector + '"...' + prop.prop + ': ' + prop.value + '" from "' + rule.selector + '"...' )); } }); diff --git a/scripts/gulp-utils.js b/scripts/gulp-utils.js index ded2bb1d8e..96fea1c416 100644 --- a/scripts/gulp-utils.js +++ b/scripts/gulp-utils.js @@ -112,6 +112,10 @@ exports.pathsForModule = function(name) { } }; +/** + * @param {string} name module name + * @returns {*} + */ exports.filesForModule = function(name) { if (pathsForModules[name]) { return srcFiles(pathsForModules[name]); diff --git a/src/components/icon/icon.scss b/src/components/icon/icon.scss index 52c6a218da..e01edb1771 100644 --- a/src/components/icon/icon.scss +++ b/src/components/icon/icon.scss @@ -21,39 +21,3 @@ md-icon { width: auto; } } - -// -//@font-face { -// font-family:"material"; -// src:url("/dist/material-font/material.eot"); -// font-weight:normal; -// font-style:normal; -//} -// -//@font-face { -// font-family:"material"; -// src:url("/dist/material-font/material.eot"); -// src:url("/dist/material-font/material.eot?#iefix") format("embedded-opentype"), -// url("/dist/material-font/material.woff") format("woff"), -// url("/dist/material-font/material.ttf") format("truetype"), -// url("/dist/material-font/material.svg?#material") format("svg"); -// font-weight:normal; -// font-style:normal; -//} -// -///* Bootstrap Overrides */ -//[class^="icon-"]:before, -//[class*=" icon-"]:before { -// font-family:"material"; -// display:inline-block; -// vertical-align:middle; -// line-height:1; -// font-weight:normal; -// font-style:normal; -// speak:none; -// text-decoration:inherit; -// text-transform:none; -// text-rendering:optimizeLegibility; -// -webkit-font-smoothing:antialiased; -// -moz-osx-font-smoothing:grayscale; -//} diff --git a/src/core/style/variables.scss b/src/core/style/variables.scss index 055ae6c245..1ba9f66933 100644 --- a/src/core/style/variables.scss +++ b/src/core/style/variables.scss @@ -3,7 +3,7 @@ $font-family: Roboto, 'Helvetica Neue', sans-serif !default; $font-size: 10px !default; -//-- Must be defined before $font-size. +//-- Must be defined after $font-size and before variables that depend on the function. @function rem($multiplier) { @return $multiplier * $font-size; }