Merge branch 'v4-gulp' into v4-dev

* v4-gulp: (39 commits)
  update docs with removal of grunt
  updated dependencies
  add temporary estraverse-fb dependency based on bug in sub-library
  make sure iife.min is copied to docs dist
  switch back to module only, unlinked
  debugging gh-pages publishing
  stable use of gulp-pipeline through unbundled cjs instead of direct at source.  may switch back but this is verified working externally
  added debug
  Bumped version from 4.0.0 to 4.0.1
  Bumped version from 4.0.0-alpha to 4.0.0
  fixed creation of uglified/min js for core and docs
  docs.min.css wasn't being generated
  remove some old ignores clutter
  refactored for a simpler docs gulp file with reuse of aggregates now that it is possible
  refactored for a simpler gulp file with reuse of aggregates now that it is possible
  prep for first push with gulp
  gulp default && jekyll serve is working locally
  use flat location for dist files
  move to jquery's recommended cdn, and make all cdns use https
  not using sub directories for dist anymore
  ...
This commit is contained in:
Kevin Ross 2016-03-18 20:45:58 -05:00
commit 1b4eb1c82c
77 changed files with 552 additions and 1232 deletions

View File

@ -1,3 +1,3 @@
{
presets: [ "es2015-rollup" ]
"presets": [ "es2015" ]
}

View File

@ -4,7 +4,8 @@
"extends": "eslint:recommended",
"env": {
"browser": true,
"jquery": true
"jquery": true,
"es6": true
}
//,
// "rules": {

11
.gitignore vendored
View File

@ -1,18 +1,15 @@
# Ignore the root dist as buildcontrol will place it on it's own branch (same for gh-pages)
/dist
# Ignore docs dist files
docs/dist/**/*
docs/assets/css/*
docs/assets/js/dist/*
docs/assets/js/docs.*
js/dist/**/*
/build
# Ignore docs files
_gh_pages
_site
# Ignore docs dist files
docs/dist/**/*
# Ignore ruby files
.ruby-version
.bundle

View File

@ -1,8 +1,9 @@
branches:
except:
- v4-dist
# remove this later
# remove the following later:
- v4-dev
- v4-gulp
sudo: false # use the container infrastructure
language: node_js

View File

@ -1,638 +0,0 @@
module.exports = function (grunt) {
'use strict';
// Force use of Unix newlines
grunt.util.linefeed = '\n';
RegExp.quote = function (string) {
return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&');
};
var referenceDocNotice =
'$1\n\n'
+ '[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs\n\n'
+ '{% callout info %}\n**Bootstrap Reference Documentation** \n'
+ 'This is a part of the reference documentation from <a href="http://getbootstrap.com">Bootstrap</a>. \n'
+ 'It is included here to demonstrate rendering with Material Design for Bootstrap default styling. \n'
+ 'See the <a href="/material-design/buttons">Material Design</a> section for more elements and customization options.\n'
+ '{% endcallout %}'
+ '\n\n$2'
var fs = require('fs');
var path = require('path');
var glob = require('glob');
var isTravis = require('is-travis');
var npmShrinkwrap = require('npm-shrinkwrap');
var mq4HoverShim = require('mq4-hover-shim');
var autoprefixer = require('autoprefixer')({
browsers: [
//
// Official browser support policy:
// http://v4-alpha.getbootstrap.com/getting-started/browsers-devices/#supported-browsers
//
'Chrome >= 35', // Exact version number here is kinda arbitrary
// Rather than using Autoprefixer's native "Firefox ESR" version specifier string,
// we deliberately hardcode the number. This is to avoid unwittingly severely breaking the previous ESR in the event that:
// (a) we happen to ship a new Bootstrap release soon after the release of a new ESR,
// such that folks haven't yet had a reasonable amount of time to upgrade; and
// (b) the new ESR has unprefixed CSS properties/values whose absence would severely break webpages
// (e.g. `box-sizing`, as opposed to `background: linear-gradient(...)`).
// Since they've been unprefixed, Autoprefixer will stop prefixing them,
// thus causing them to not work in the previous ESR (where the prefixes were required).
'Firefox >= 31', // Current Firefox Extended Support Release (ESR)
// Note: Edge versions in Autoprefixer & Can I Use refer to the EdgeHTML rendering engine version,
// NOT the Edge app version shown in Edge's "About" screen.
// For example, at the time of writing, Edge 20 on an up-to-date system uses EdgeHTML 12.
// See also https://github.com/Fyrd/caniuse/issues/1928
'Edge >= 12',
'Explorer >= 9',
// Out of leniency, we prefix these 1 version further back than the official policy.
'iOS >= 8',
'Safari >= 8',
// The following remain NOT officially supported, but we're lenient and include their prefixes to avoid severely breaking in them.
'Android 2.3',
'Android >= 4',
'Opera >= 12'
]
});
// Project configuration.
grunt.initConfig({
// Metadata.
pkg: grunt.file.readJSON('package.json'),
banner: '/*!\n' +
' * Bootstrap Material Design v<%= pkg.version %> (<%= pkg.homepage %>)\n' +
' * Copyright 2014-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
' * Licensed under MIT (https://github.com/FezVrasta/bootstrap-material-design/blob/master/LICENSE)\n' +
' */\n',
// Task configuration.
clean: {
dist: 'dist',
'dist-css': 'dist/css',
'dist-js': 'dist/js',
'docs-dist-js': 'docs/dist/js',
'docs-dist-css': 'docs/dist/css'
},
sass: {
options: {
includePaths: ['scss', 'node_modules'],
precision: 6,
sourceComments: true,
sourceMap: true,
outputStyle: 'expanded'
},
core: {
files: {
'dist/css/<%= pkg.name %>.css': 'scss/<%= pkg.name %>.scss'
}
},
docs: {
files: {
'docs/dist/css/docs.css': 'docs/assets/scss/docs.scss'
}
}
},
eslint: {
options: {
configFile: 'js/.eslintrc'
},
target: ['js/src/*.js', 'docs/assets/js/src/*.js']
},
jscs: {
options: {
config: 'js/.jscsrc'
},
grunt: {
src: ['Gruntfile.js', 'grunt/*.js']
},
core: {
src: 'js/src/*.js'
},
test: {
src: 'js/tests/unit/*.js'
},
docs: {
options: {
requireCamelCaseOrUpperCaseIdentifiers: null
},
src: ['docs/assets/js/src/*.js', 'docs/assets/js/*.js', '!docs/assets/js/*.min.js']
}
},
stamp: {
options: {
banner: '<%= banner %>\n'
},
core: {
files: {
src: 'dist/js/*.js'
}
}
},
//concat: {
// options: {
// stripBanners: false,
// sourceMap: true
// },
uglify: {
options: {
compress: {
warnings: true
},
mangle: false,
preserveComments: /^!|@preserve|@license|@cc_on/i
},
dist: {
files: {
'dist/js/bootstrap-material-design.iife.min.js': 'dist/js/bootstrap-material-design.iife.js',
'dist/js/bootstrap-material-design.umd.min.js': 'dist/js/bootstrap-material-design.umd.js'
//,
//'dist/js/bootstrap-material-design.es.min.js': 'dist/js/bootstrap-material-design.es.js'
}
},
'docs-vendor': {
options: {
compress: false
},
src: 'docs/assets/js/vendor/*.js',
//dest: 'docs/assets/js/docs.min.js'
dest: 'docs/dist/js/docs-vendor.min.js'
},
docs: {
files: {
'docs/dist/js/docs.iife.min.js': 'docs/dist/js/docs.iife.js'
}
}
},
qunit: {
options: {
inject: 'js/tests/unit/phantom.js'
},
files: 'js/tests/index.html'
},
// CSS build configuration
scsslint: {
options: {
bundleExec: true,
config: 'scss/.scss-lint.yml',
reporterOutput: null
},
core: {
src: ['scss/*.scss', '!scss/_normalize.scss']
},
docs: {
src: ['docs/assets/scss/*.scss', '!scss/_normalize.scss', '!docs/assets/scss/docs.scss']
}
},
postcss: {
core: {
options: {
map: true,
processors: [
mq4HoverShim.postprocessorFor({hoverSelectorPrefix: '.bs-true-hover '}),
autoprefixer
]
},
src: 'dist/css/*.css'
},
docs: {
options: {
processors: [
autoprefixer
]
},
src: 'docs/dist/css/*.css'
},
examples: {
options: {
processors: [
autoprefixer
]
},
expand: true,
cwd: 'docs/examples/',
src: ['**/*.css'],
dest: 'docs/examples/'
}
},
cssmin: {
options: {
// TODO: disable `zeroUnits` optimization once clean-css 3.2 is released
// and then simplify the fix for https://github.com/twbs/bootstrap/issues/14837 accordingly
compatibility: 'ie9',
keepSpecialComments: '*',
sourceMap: true,
advanced: false
},
core: {
files: [
{
expand: true,
cwd: 'dist/css',
src: ['*.css', '!*.min.css'],
dest: 'dist/css',
ext: '.min.css'
}
]
},
docs: {
files: [
{
expand: true,
cwd: 'docs/dist/css',
src: ['*.css', '!*.min.css'],
dest: 'docs/dist/css',
ext: '.min.css'
}
]
}
},
copy: {
'dist-to-docs': { // for example templates
expand: true,
cwd: 'dist',
src: [
'js/*.iife*',
'css/*.*'
],
dest: 'docs/dist/'
},
'bs-docs-js-vendor': {
expand: true,
cwd: '../bootstrap/docs/assets/js/vendor',
src: [
'**/*',
'!tether.min.js',
'!jquery.min.js'
],
dest: 'docs/assets/js/vendor/'
},
'bs-docs-plugins': {
expand: true,
cwd: '../bootstrap/docs/_plugins',
src: ['**/*', '!bridge.rb'],
dest: 'docs/_plugins/'
},
'bs-docs-scss': {
options: {
// https://regex101.com/r/hG8lU4/1
process: function (content, srcpath) {
return content.replace(/([\s\S]+)/mg, '// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs\n\n$1');
}
},
expand: true,
cwd: '../bootstrap/docs/assets/scss',
src: [
'**/*',
'!docs.scss' // keep variable customizations
],
dest: 'docs/assets/scss/'
},
'bs-docs-components': {
options: {
// //https://regex101.com/r/cZ7aO8/2
process: function (content, srcpath) {
return content.replace(/(---[\s\S]+?---)([\s\S]+)/mg, referenceDocNotice);
}
},
expand: true,
cwd: '../bootstrap/docs/components',
src: [
'**/*'
],
dest: 'docs/components/'
},
'bs-docs-getting-started': {
options: {
// https://regex101.com/r/cZ7aO8/2
process: function (content, srcpath) {
return content
// insert docs reference
.replace(/(---[\s\S]+?---)([\s\S]+)/mg, referenceDocNotice)
// remove sample text 'display' as this is a particular style and is confusing
.replace(/Fancy display heading/, 'Fancy heading');
}
},
expand: true,
cwd: '../bootstrap/docs/getting-started',
src: [
'browsers-devices.md' // only one file
],
dest: 'docs/getting-started/'
},
'bs-docs-content': {
options: {
// https://regex101.com/r/cZ7aO8/2
process: function (content, srcpath) {
return content
// insert docs reference
.replace(/(---[\s\S]+?---)([\s\S]+)/mg, referenceDocNotice)
// remove sample text 'display' as this is a particular style and is confusing
.replace(/Fancy display heading/, 'Fancy heading');
}
},
expand: true,
cwd: '../bootstrap/docs/content',
src: [
'**/*'
],
dest: 'docs/content/'
}
},
connect: {
server: {
options: {
port: 3000,
base: '.'
}
}
},
jekyll: {
options: {
bundleExec: true,
config: '_config.yml',
incremental: false
},
docs: {},
github: {
options: {
//raw: 'github: true'
raw: 'baseurl: "/bootstrap-material-design"'
}
}
},
htmllint: {
options: {
ignore: [
'Element “img” is missing required attribute “src”.',
'Attribute “autocomplete” is only allowed when the input type is “color”, “date”, “datetime”, “datetime-local”, “email”, “month”, “number”, “password”, “range”, “search”, “tel”, “text”, “time”, “url”, or “week”.',
'Attribute “autocomplete” not allowed on element “button” at this point.',
'Element “div” not allowed as child of element “progress” in this context. (Suppressing further errors from this subtree.)',
'Consider using the “h1” element as a top-level heading only (all “h1” elements are treated as top-level headings by many screen readers and other tools).',
'The “datetime” input type is not supported in all browsers. Please be sure to test, and consider using a polyfill.'
]
},
src: ['_gh_pages/**/*.html', 'js/tests/visual/*.html']
},
watch: {
corejs: {
files: 'js/src/*.js',
tasks: ['dist-js']
},
docsjs: { // watch both the source and docs js
files: ['js/src/*.js', 'docs/assets/js/src/*.js'],
tasks: ['docs-js']
},
core: {
files: 'scss/**/*.scss',
tasks: ['dist-css']
},
docs: { // watch both the source and docs scss
files: ['docs/assets/scss/**/*.scss', 'scss/**/*.scss'],
tasks: ['scsslint:docs', 'sass:docs', 'postcss:docs']
}
},
'saucelabs-qunit': {
all: {
options: {
build: process.env.TRAVIS_JOB_ID,
concurrency: 10,
maxRetries: 3,
maxPollRetries: 4,
urls: ['http://127.0.0.1:3000/js/tests/index.html?hidepassed'],
browsers: grunt.file.readYAML('grunt/sauce_browsers.yml')
}
}
},
exec: {
npmUpdate: {
command: 'npm update'
},
'rollup-docs-iife': {
command: 'rollup -c grunt/rollup.docs.iife.config.js'
},
'rollup-iife': {
command: 'rollup -c grunt/rollup.iife.config.js'
},
'rollup-umd': {
command: 'rollup -c grunt/rollup.umd.config.js'
},
'rollup-es2015': {
command: 'rollup -c grunt/rollup.es.config.js'
}
},
buildcontrol: {
options: {
commit: true,
push: true,
remote: 'git@github.com:FezVrasta/bootstrap-material-design.git'
},
pages: {
options: {
// FIXME: remove this when we are ready!!!
remote: 'git@github.com:rosskevin/bootstrap-material-design.git',
dir: '_gh_pages',
branch: 'gh-pages',
message: 'Built from commit %sourceCommit% on branch %sourceBranch%'
}
},
dist: {
options: {
dir: 'dist',
branch: 'v4-dist',
message: 'dist from commit %sourceCommit% on branch %sourceBranch%'
}
}
},
compress: {
main: {
options: {
archive: 'bootstrap-material-design-<%= pkg.version %>-dist.zip',
mode: 'zip',
level: 9,
pretty: true
},
files: [
{
expand: true,
cwd: 'dist/',
src: ['**'],
dest: 'bootstrap-material-design-<%= pkg.version %>-dist'
}
]
}
}
});
// These plugins provide necessary tasks.
require('load-grunt-tasks')(grunt);
require('time-grunt')(grunt);
// Docs HTML validation task
grunt.registerTask('validate-html', ['jekyll:docs', 'htmllint']);
var runSubset = function (subset) {
return !process.env.MDB_TEST || process.env.MDB_TEST === subset;
};
var isUndefOrNonZero = function (val) {
return val === undefined || val !== '0';
};
// Test task.
var testSubtasks = [];
// Skip core tests if running a different subset of the test suite
if (runSubset('core') &&
// Skip core tests if this is a Savage build
process.env.TRAVIS_REPO_SLUG !== 'twbs-savage/bootstrap') {
testSubtasks = testSubtasks.concat(['dist-css', 'dist-js', 'test-scss', 'test-js', 'docs']);
}
// Skip HTML validation if running a different subset of the test suite
if (runSubset('validate-html') &&
isTravis &&
// Skip HTML5 validator when [skip validator] is in the commit message
isUndefOrNonZero(process.env.MDB_DO_VALIDATOR)) {
testSubtasks.push('validate-html');
}
// Only run Sauce Labs tests if there's a Sauce access key
if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined' &&
// Skip Sauce if running a different subset of the test suite
runSubset('sauce-js-unit') &&
// Skip Sauce on Travis when [skip sauce] is in the commit message
isUndefOrNonZero(process.env.MDB_DO_SAUCE)) {
testSubtasks.push('babel:core');
testSubtasks.push('connect');
testSubtasks.push('saucelabs-qunit');
}
grunt.registerTask('test', testSubtasks);
grunt.registerTask('test-js', ['eslint'/*, 'jscs:core', 'jscs:test', 'jscs:grunt'*/, 'qunit']);
// JS distribution task.
grunt.registerTask('dist-js', [
'clean:dist-js',
'eslint',
//'jscs:grunt',
//'jscs:core',
//'jscs:test',
'exec:rollup-iife',
'exec:rollup-umd',
'exec:rollup-es2015',
'stamp',
'uglify:dist',
'copy:dist-to-docs'
]);
grunt.registerTask('docs-js', [
'clean:docs-dist-js',
'copy:dist-to-docs', // ensure dist is present after cleaning
'eslint',
//'jscs:docs',
'exec:rollup-docs-iife',
'uglify:docs',
'uglify:docs-vendor'
]);
grunt.registerTask('test-scss', ['scsslint:core']);
// CSS distribution task.
grunt.registerTask('sass-compile', ['sass:core', 'sass:docs']);
grunt.registerTask('dist-css', [
'scsslint:core',
'clean:dist-css',
'sass-compile',
'postcss:core',
'cssmin:core',
'copy:dist-to-docs'
]);
grunt.registerTask('docs-css', [
'scsslint:docs',
'clean:docs-dist-css',
'copy:dist-to-docs', // ensure dist is present after cleaning
'sass:docs',
'postcss:docs',
'postcss:examples',
'cssmin:docs'
]);
// Full distribution task.
grunt.registerTask('dist', ['clean:dist', 'dist-css', 'dist-js', 'docs']);
// Default task.
grunt.registerTask('default', ['clean:dist', 'test']);
//------
// Docs tasks
// Independent task to be run when we are ready to sync the bootstrap repo's docs locally.
// Should be automated with no need for intervention (other than pulling the right bootstrap release locally)
grunt.registerTask('docs-copy-bootstrap-docs', [
'copy:bs-docs-js-vendor',
'copy:bs-docs-scss',
'copy:bs-docs-getting-started',
'copy:bs-docs-components',
'copy:bs-docs-content',
'copy:bs-docs-plugins'
]);
grunt.registerTask('docs', ['docs-css', 'docs-js']);
//------
//------
// Release and publish
grunt.registerTask('prep-release', [
//'update-shrinkwrap',
'dist',
'jekyll:github' // build site from scratch
//'compress' // compress zip
]);
grunt.registerTask('publish', [
'prep-release', // build all including dist, docs, site
'buildcontrol:dist', // push dist
'buildcontrol:pages' // push site
]);
//------
// Task for updating the cached npm packages used by the Travis build (which are controlled by test-infra/npm-shrinkwrap.json).
// This task should be run and the updated file should be committed whenever Bootstrap's dependencies change.
grunt.registerTask('update-shrinkwrap', ['exec:npmUpdate', '_update-shrinkwrap']);
grunt.registerTask('_update-shrinkwrap', function () {
var done = this.async();
npmShrinkwrap({dev: true, dirname: __dirname}, function (err) {
if (err) {
grunt.fail.warn(err);
}
var dest = 'grunt/npm-shrinkwrap.json';
fs.renameSync('npm-shrinkwrap.json', dest);
grunt.log.writeln('File ' + dest.cyan + ' updated.');
done();
});
});
//grunt.registerTask('debug', function () {
// console.log('');
//});
};

View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2015-2016, Federico Zivolo
Copyright (c) 2015-2016, Federico Zivolo and contributors - https://github.com/FezVrasta/bootstrap-material-design
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -23,10 +23,8 @@ SOFTWARE.
## Acknowledgements:
### Bootstrap
Some original Bootstrap tooling code and documentation http://getbootstrap.com
Copyright (c) 2011-2016 Twitter, Inc
- Some original Bootstrap code and documentation http://getbootstrap.com
`Copyright (c) 2011-2015 Twitter, Inc`
### MDL
Some original MDL code http://www.getmdl.io/
Copyright 2015 Google Inc. All Rights Reserved.
- Some original MDL code http://www.getmdl.io/
`Copyright 2015 Google Inc. All Rights Reserved.`

View File

@ -47,20 +47,22 @@ url: "http://rosskevin.github.io"
#
cdn:
# # See https://www.srihash.org for info on how to generate the hashes
css: https://cdn.rawgit.com/fezvrasta/bootstrap-material-design/v4-dist/css/bootstrap-material-design.css
css: https://cdn.rawgit.com/FezVrasta/bootstrap-material-design/dist/dist/bootstrap-material-design.min.css
# css_hash: "sha384-XXXXXXXX"
js: https://cdn.rawgit.com/fezvrasta/bootstrap-material-design/v4-dist/js/bootstrap-material-design
js: https://cdn.rawgit.com/fezvrasta/bootstrap-material-design/dist/dist/bootstrap-material-design
# js_hash: "sha384-XXXXXXXX"
# fonts
font_roboto: http://fonts.googleapis.com/css?family=Roboto:300,400,500,700
font_roboto: https://fonts.googleapis.com/css?family=Roboto:300,400,500,700
font_icons: https://fonts.googleapis.com/icon?family=Material+Icons
# VERSION is substituted in variables.rb and these are made available as site.data.cdn.*
jquery: https://ajax.googleapis.com/ajax/libs/jquery/VERSION/jquery
jquery: https://code.jquery.com/jquery-VERSION
bootstrap: https://cdn.rawgit.com/twbs/bootstrap/VERSION/dist/js/bootstrap
tether: https://cdn.rawgit.com/HubSpot/tether/vVERSION/dist/js/tether
'ie10-viewport-bug-workaround': https://maxcdn.bootstrapcdn.com/js/ie10-viewport-bug-workaround.js
#twitter:

View File

@ -3,17 +3,16 @@
<script src="{{ site.data.cdn.jquery }}.min.js"></script>
<script src="{{ site.data.cdn.tether }}.min.js"></script>
<script src="{{ site.data.cdn.bootstrap }}.min.js"></script>
<script src="{{ site.baseurl }}/dist/js/bootstrap-material-design.iife.min.js"></script>
<script src="{{ site.baseurl }}/dist/bootstrap-material-design.iife.min.js"></script>
{% else %}
<script src="{{ site.data.cdn.jquery }}.js"></script>
<script src="{{ site.data.cdn.tether }}.js"></script>
<script src="{{ site.data.cdn.bootstrap }}.js"></script>
<script src="{{ site.baseurl }}/dist/js/bootstrap-material-design.iife.js"></script>
<script src="{{ site.baseurl }}/dist/bootstrap-material-design.iife.js"></script>
{% endif %}
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="{{ site.baseurl }}/assets/js/ie10-viewport-bug-workaround.js"></script>
<script src="{{ site.baseurl }}/assets/js/ie-emulation-modes-warning.js"></script>
<script src="{{ site.data.cdn['ie10-viewport-bug-workaround'] }}"></script>
<script>
$(function() {

View File

@ -17,21 +17,21 @@
</footer>
<script src="{{ site.baseurl }}/dist/js/docs-vendor.min.js"></script>
<script src="{{ site.baseurl }}/dist/docs-vendor.min.js"></script>
{% if site.data.minified %}
<script src="{{ site.data.cdn.jquery }}.min.js"></script>
<script src="{{ site.data.cdn.tether }}.min.js"></script>
<script src="{{ site.data.cdn.bootstrap }}.min.js"></script>
<script src="{{ site.baseurl }}/dist/js/docs.iife.min.js"></script>
<script src="{{ site.baseurl }}/dist/docs.iife.min.js"></script>
{% else %}
<script src="{{ site.data.cdn.jquery }}.js"></script>
<script src="{{ site.data.cdn.tether }}.js"></script>
<script src="{{ site.data.cdn.bootstrap }}.js"></script>
<script src="{{ site.baseurl }}/dist/js/docs.iife.js"></script>
<script src="{{ site.baseurl }}/dist/docs.iife.js"></script>
{% endif %}
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="{{ site.baseurl }}/assets/js/ie10-viewport-bug-workaround.js"></script>
<script src="{{ site.data.cdn['ie10-viewport-bug-workaround'] }}"></script>
<!-- Docs-only warning about emulation mode - do not use in your page -->
<script src="{{ site.baseurl }}/assets/js/ie-emulation-modes-warning.js"></script>
{% if page.layout == "docs" %}

View File

@ -6,7 +6,7 @@
<!-- Material Design for Bootstrap generic -->
{% if site.data.minified %}
<link href="{{ site.baseurl }}/dist/css/bootstrap-material-design.min.css" rel="stylesheet">
<link href="{{ site.baseurl }}/dist/bootstrap-material-design.min.css" rel="stylesheet">
{% else %}
<link href="{{ site.baseurl }}/dist/css/bootstrap-material-design.css" rel="stylesheet">
<link href="{{ site.baseurl }}/dist/bootstrap-material-design.css" rel="stylesheet">
{% endif %}

View File

@ -6,9 +6,9 @@
<!-- Material Design for Bootstrap customization for Documentation (consider Documentation the application) -->
{% if site.data.minified %}
<link href="{{ site.baseurl }}/dist/css/docs.min.css" rel="stylesheet">
<link href="{{ site.baseurl }}/dist/docs.min.css" rel="stylesheet">
{% else %}
<link href="{{ site.baseurl }}/dist/css/docs.css" rel="stylesheet">
<link href="{{ site.baseurl }}/dist/docs.css" rel="stylesheet">
{% endif %}

View File

@ -1,6 +1,6 @@
import Style from './style'
import Clipboard from 'clipboard'
import anchors from 'anchor'
import anchors from 'anchor-js'
// import all the mdb code
import '../../../../js/src/index' // eslint-disable-line no-unused-vars

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
// scss-lint:disable ImportantRule

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
.anchorjs-link {
color: inherit;

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
//
// Bootstrap "B" Booticon

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
//
// Brand guidelines

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
// Wall of Browser Bugs
//

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
// Buttons
//

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
//
// Callouts

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
// clipboard.js
//

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
// scss-lint:disable QualifyingElement

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
// scss-lint:disable IdSelector, NestingDepth, SelectorDepth

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
//
// Examples

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
.bd-featured-sites {
margin-right: -1px;

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
.bd-featurette {
padding-top: 3rem;

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
//
// Footer

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
// scss-lint:disable ImportantRule

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
//
// Main navbar

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
// scss-lint:disable ImportantRule

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
// scss-lint:disable ImportantRule

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
//
// Side navigation

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
// scss-lint:disable IdSelector

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
.hll { background-color: #ffc; }
.c { color: #999; }

View File

@ -1,4 +1,4 @@
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
.bd-team {
margin-bottom: 1.5rem;

View File

@ -1,7 +1,7 @@
.btn-clipboard {
//color: #818a91;
border-radius: $border-radius;
text-transform: uppercase;
border-radius: $border-radius;
&:hover {
color: $gray; // #fff;

View File

@ -1,8 +1,8 @@
.bd-example[data-example-id*="drawer-"] {
min-height: 235px;
padding-top: 0;
padding-right: 0;
padding-left: 0;
min-height: 235px;
}
.bd-example[data-example-id*="drawer-1"] {

View File

@ -1,8 +1,8 @@
.mdb-toc-item-reference {
padding: .25rem .75rem;
margin-top: 1rem;
//margin-bottom: 1rem;
padding: .25rem .75rem;
}
.bd-search {

View File

@ -4,7 +4,7 @@ title: Alerts
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages.
## Contents

View File

@ -4,7 +4,7 @@ title: Breadcrumb
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Indicate the current page's location within a navigational hierarchy. Separators are automatically added in CSS through [`::before`](https://developer.mozilla.org/en-US/docs/Web/CSS/::before) and [`content`](https://developer.mozilla.org/en-US/docs/Web/CSS/content).
{% example html %}

View File

@ -4,7 +4,7 @@ title: Button dropdown
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Use any button to trigger a dropdown menu by placing it within a `.btn-group` and providing the proper dropdown menu markup.
{% callout danger %}

View File

@ -4,7 +4,7 @@ title: Button group
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Group a series of buttons together on a single line with the button group. Add on optional JavaScript radio and checkbox style behavior with [our buttons plugin]({{ site.baseurl }}/components/buttons/#button-plugin).
## Contents

View File

@ -5,7 +5,7 @@ group: components
redirect_from: "/components/"
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -16,6 +16,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Use Bootstrap's custom button styles for actions in forms, dialogs, and more. Includes support for a handful of contextual variations, sizes, states, and more.
## Contents

View File

@ -4,7 +4,7 @@ title: Cards
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
A **card** is a flexible and extensible content container. It includes options for headers and footers, a wide variety of content, contextual background colors, and powerful display options.
If you're familiar with Bootstrap 3, cards replace our old panels, wells, and thumbnails. Similar functionality to those components is available as modifier classes for cards.

View File

@ -4,7 +4,7 @@ title: Carousel
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
A slideshow component for cycling through elements—images or slides of text—like a carousel. In browsers where the [Page Visibility API](http://www.w3.org/TR/page-visibility/) is supported, the carousel will avoid sliding when the webpage is not visible to the user (such as when the browser tab is inactive, the browser window is minimized, etc.). **Nested carousels are not supported.**
## Contents

View File

@ -4,7 +4,7 @@ title: Collapse
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
The Bootstrap collapse plugin allows you to toggle content on your pages with a bit of JavaScript and some classes. Flexible plugin that utilizes a handful of classes (from the **required [transitions plugin]({{ site.baseurl }}/components/transitions/)**) for easy toggle behavior.
## Contents

View File

@ -4,7 +4,7 @@ title: Dropdowns
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Dropdowns are toggleable, contextual overlays for displaying lists of links and more. They're made interactive with the included Bootstrap dropdown JavaScript plugin. They're toggled by clicking, not by hovering; this is [an intentional design decision.](http://markdotto.com/2012/02/27/bootstrap-explained-dropdowns/)
## Contents

View File

@ -4,7 +4,7 @@ title: Forms
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Bootstrap provides several form control styles, layout options, and custom components for creating a wide variety of forms.
## Contents

View File

@ -4,7 +4,7 @@ title: Input group
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Easily extend form controls by adding text, buttons, or button groups on either side of textual `<input>`s.
## Contents

View File

@ -4,7 +4,7 @@ title: Jumbotron
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
A lightweight, flexible component that can optionally extend the entire viewport to showcase key marketing messages on your site.
## Example

View File

@ -4,7 +4,7 @@ title: List group
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
List groups are a flexible and powerful component for displaying not only simple lists of elements, but complex ones with custom content.
## Contents

View File

@ -4,7 +4,7 @@ title: Modal
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.
## Contents

View File

@ -4,7 +4,7 @@ title: Navbar
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
The navbar is a simple wrapper for positioning branding, navigation, and other elements into a concise navigation header. It's easily extensible and, with the help of our collapse plugin, it can easily integrate offscreen content.
## Contents

View File

@ -4,7 +4,7 @@ title: Navs
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Navigation available in Bootstrap share general markup and styles, from the base `.nav` class to the active and disabled states. Swap modifier classes to switch between each style.
## Contents

View File

@ -4,7 +4,7 @@ title: Pagination
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Provide pagination links for your site or app with the multi-page pagination component.
## Contents

View File

@ -4,7 +4,7 @@ title: Popovers
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Add small overlay content, like those found in iOS, to any element for housing secondary information.
## Contents

View File

@ -4,7 +4,7 @@ title: Progress
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Stylize [the HTML5 `<progress>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress) with a few extra classes and some crafty browser-specific CSS. Be sure to read up on the browser support.
## Contents

View File

@ -4,7 +4,7 @@ title: Scrollspy
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
## Contents
* Will be replaced with the ToC, excluding the "Contents" header

View File

@ -4,7 +4,7 @@ title: Tags
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Small and adaptive tag for adding context to just about any content.
## Example

View File

@ -4,7 +4,7 @@ title: Tooltips
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Inspired by the excellent Tipsy jQuery plugin written by Jason Frame. Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.
## Contents

View File

@ -4,7 +4,7 @@ title: Utility classes
group: components
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Bootstrap includes dozens of utilities—classes with a single purpose. They're designed to reduce the frequency of highly repetitive declarations in your CSS while allowing for quick and easy development.
## Contents

View File

@ -4,7 +4,7 @@ title: Code
group: content
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Styles for inline code snippets and longer, multiline blocks of code.
## Contents

View File

@ -4,7 +4,7 @@ title: Figures
group: content
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Anytime you need to display a piece of content—like an image—with an optional caption, consider using a `<figure>`.
Use the included `.figure` , `.figure-img` and `.figure-caption` classes to provide some baseline styles for the HTML5 `<figure>` and `<figcaption>` elements. Images in figures have no explicit size, so be sure to add the `.img-fluid` class to your `<img>` to make it responsive.

View File

@ -4,7 +4,7 @@ title: Images
group: content
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Opt your images into responsive behavior (so they never become larger than their parent elements) and add lightweight styles to them—all via classes.
## Contents

View File

@ -5,7 +5,7 @@ group: content
redirect_from: "/content/"
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -16,6 +16,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Part of Bootstrap's job is to provide an elegant, consistent, and simple baseline to build upon. We use Reboot, a collection of element-specific CSS changes in a single file, to kickstart that.
Reboot builds upon Normalize, providing many HTML elements with somewhat opinionated styles using only element selectors. Additional styling is done only with classes. For example, we reboot some `<table>` styles for a simpler baseline and later provide `.table`, `.table-bordered`, and more.

View File

@ -4,7 +4,7 @@ title: Tables
group: content
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Due to the widespread use of tables across third-party widgets like calendars and date pickers, we've designed our tables to be **opt-in**. Just add the base class `.table` to any `<table>`.
## Contents

View File

@ -4,7 +4,7 @@ title: Typography
group: content
---
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
{% callout info %}
**Bootstrap Reference Documentation**
@ -15,6 +15,7 @@ See the <a href="/material-design/buttons">Material Design</a> section for more
Bootstrap includes simple and easily customized typography for headings, body text, lists, and more. For even more control, check out the [textual utility classes]({{ site.baseurl }}/components/utilities/).
## Contents

View File

@ -4,42 +4,36 @@ title: Build tools
group: getting-started
---
Material Design for Bootstrap uses [Grunt](http://gruntjs.com) for its CSS and JavaScript build system and Jekyll for the written documentation. Our Gruntfile includes convenient methods for working with the framework, including compiling code, running tests, and more.
Material Design for Bootstrap uses [Gulp v4](http://gulpjs.com) for its CSS and JavaScript build system and Jekyll for the written documentation. Our gulpfile includes convenient methods for working with the framework, including compiling code, running tests, and more.
## Tooling setup
To use our Gruntfile and run our documentation locally, you'll need a copy of Material Design for Bootstrap's source files, Node, and Grunt. Follow these steps and you should be ready to rock:
To use our gulpfile and run our documentation locally, you'll need a copy of Material Design for Bootstrap's source files, Node, and Gulp v4. Follow these steps and you should be ready to rock:
1. [Download and install Node](https://nodejs.org/download), which we use to manage our dependencies.
2. Install the Grunt command line tools, `grunt-cli`, with `npm install -g grunt-cli`.
2. Install the Gulp command line tools, `gulp-cli`, with `npm install -g gulpjs/gulp-cli#4.0`.
3. Navigate to the root `/bootstrap-material-design` directory and run `npm install` to install our local dependencies listed in [package.json](https://github.com/FezVrasta/bootstrap-material-design/blob/master/package.json).
4. [Install RVM][install-rvm]
4. [Install RVM](http://rvm.io/rvm/install)
5. Install ruby. `cd bootstrap-material-design` and if installation is needed, it will give an install command such as `To install do: 'rvm install ruby-2.x.x'`
6. Install [Bundler][gembundler] with `gem install bundler`
6. Install Bundler with `gem install bundler`
7. Finally run `bundle install`. This will install all Ruby dependencies, such as Jekyll and plugins.
- **Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems.
When completed, you'll be able to run the various Grunt commands provided from the command line.
When completed, you'll be able to run the various Gulp commands provided from the command line to view them run `gulp --tasks`
[install-rvm]: https://rvm.io/rvm/install#1-download-and-run-the-rvm-installation-script
[gembundler]: http://bundler.io/
## Using Gulp
## Using Grunt
Our Gruntfile includes the following commands and tasks:
Our gulpfile includes the many tasks you can view with `gulp --tasks`, here are the important ones:
| Task | Description |
| --- | --- |
| `grunt` | Run `grunt` to run tests locally and compile the CSS and JavaScript into `/dist`. **Uses [Sass](http://sass-lang.com/), [Autoprefixer][autoprefixer], and [UglifyJS](http://lisperator.net/uglifyjs/).** |
| `grunt dist` | `grunt dist` creates the `/dist` directory with compiled files. **Uses [Sass](http://sass-lang.com/), [Autoprefixer][autoprefixer], and [UglifyJS](http://lisperator.net/uglifyjs/).** |
| `grunt test` | Runs [scss-lint](https://github.com/brigade/scss-lint), [ESLint](http://eslint.org/) and [QUnit](http://qunitjs.com/) tests headlessly in [PhantomJS](http://phantomjs.org/) (used for CI). |
| `grunt docs` | Builds and tests CSS, JavaScript, and other assets which are used when running the documentation locally via `jekyll serve`. |
| `grunt watch` | This is a convenience method for watching just Sass files and automatically building them whenever you save. |
| `gulp publish` | Run everything, publish dist, npm, and gh-pages |
| `gulp` | `gulp` runs the `default` task that builds all core files to the `dist` directory |
| `gulp docs:default` | creates all the `docs/dist` files needed to support the documentation |
## Autoprefixer
Material Design for Bootstrap uses [Autoprefixer][autoprefixer] (included in our Gruntfile and build process) to automatically add vendor prefixes to some CSS properties at build time. Doing so saves us time and code by allowing us to write key parts of our CSS a single time while eliminating the need for vendor mixins like those found in v3.
Material Design for Bootstrap uses [Autoprefixer][autoprefixer] (included in our gulpfile and build process) to automatically add vendor prefixes to some CSS properties at build time. Doing so saves us time and code by allowing us to write key parts of our CSS a single time while eliminating the need for vendor mixins like those found in v3.
## Local documentation
@ -49,7 +43,7 @@ markdown-based files, templates, and more. Here's how to get it started:
1. Run through the [tooling setup](#tooling-setup) above to install Jekyll (the site builder) and other Ruby dependencies with `bundle install`.
2. From the root `/bootstrap-material-design` directory, run `bundle exec jekyll serve` in the command line.
3. Open <http://localhost:9001> in your browser, and voilà.
3. Open <http://localhost:9000> in your browser, and voilà.
Learn more about using Jekyll by reading its [documentation](http://jekyllrb.com/docs/home/).
@ -57,41 +51,24 @@ Learn more about using Jekyll by reading its [documentation](http://jekyllrb.com
The development and testing with the documentation has been connected so we not only can utilize Material Design examples,
but all of the original Bootstrap documentation examples as well. The most productive environment so far is to have
Bootstrap checked out in parallel to this project, running three (3) different terminal commands simultaneously:
Bootstrap checked out in parallel to this project, running two (2) different terminal commands simultaneously:
1. _Terminal 1_: Bootstrap documentation for reference
1. _Terminal 1_: Initial build and watch
1. Performs an initial dependency setup/build
`bundle install && npm install && grunt dist`
`bundle install && npm install && gulp default && gulp docs:default`
1. Start serving the documentation on <http://localhost:9000>
1. Watch both the core and docs sources for changes and build to the docs site
`jekyll serve`
`grunt docs:default:watch`
1. _Terminal 2_: Initial build and watch
1. _Terminal 2_: Start serving documentation on <http://localhost:9000> with `jekyll serve`
1. Performs an initial dependency setup/build
`bundle install && npm install && grunt dist`
1. Watch both the core and docs sources for changes
`grunt watch`
1. _Terminal 3_: Start serving documentation on <http://localhost:9001> with `jekyll serve`
Now go forth and develop, the `watch` task will keep tabs on source files and docs files, meanwhile the `jekyll serve` command
will generate new documentation pages with the changes. Simply refresh your browser to see the changes.
Now go forth and develop, the `docs:default:watch` task will keep tabs on source files and docs files, meanwhile the `jekyll serve` command will generate new documentation pages with the changes. Simply refresh your browser to see the changes.
(TODO: someone please investigate adding autoreload to jekyll development cycle)
## Troubleshooting
Should you encounter problems with installing dependencies or running Grunt commands, uninstall all previous dependency versions (global and local). Then, rerun `npm install`.
[ruby-sass]: https://github.com/sass/sass
[grunt-contrib-sass]: https://github.com/gruntjs/grunt-contrib-sass
[libsass]: https://github.com/sass/libsass
[grunt-sass]: https://github.com/sindresorhus/grunt-sass
[autoprefixer]: https://github.com/postcss/autoprefixer
Should you encounter problems with installing dependencies or running Gulp commands, uninstall all previous dependency versions (global and local). Then, rerun `rm -Rf node_modules && npm install`.

View File

@ -32,13 +32,14 @@ Copy-paste the font and stylesheet `<link>` into your `<head>` before all other
<link rel="stylesheet" href="{{ site.cdn.css }}">
{% endhighlight %}
Add jQuery, Bootstrap, and our Javascript plugins near the end of your pages, right before the closing `</body>` tag. Be sure to place jQuery first as our code depends on it.
Add jQuery, Tether, and our Javascript near the end of your pages, right before the closing `</body>` tag. Be sure to place jQuery first as our code depends on it.
{% highlight html %}
<script src="{{ site.data.cdn.jquery }}.min.js"></script>
<script src="{{ site.data.cdn.tether }}.min.js"></script>
<script src="{{ site.data.cdn.bootstrap }}.min.js"></script>
<script src="{{ site.cdn.js }}.iife.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="{{ site.data.cdn['ie10-viewport-bug-workaround'] }}"></script>
<script>
$('body').bootstrapMaterialDesign()
</script>
@ -75,11 +76,12 @@ Put it all together and your pages should look like this:
<body>
<h1>Hello, world!</h1>
<!-- jQuery first, optional tether for tooltips, then Bootstrap and Material Design for Bootstrap JS. -->
<!-- jQuery first, optional tether for tooltips, then Material Design for Bootstrap JS. -->
<script src="{{ site.data.cdn.jquery }}.min.js"></script>
<script src="{{ site.data.cdn.tether }}.min.js"></script>
<script src="{{ site.data.cdn.bootstrap }}.min.js"></script>
<script src="{{ site.cdn.js }}.iife.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="{{ site.data.cdn['ie10-viewport-bug-workaround'] }}"></script>
<script>
$('body').bootstrapMaterialDesign()
</script>

View File

@ -4,7 +4,7 @@ title: Release process
group: getting-started
---
Material Design for Bootstrap has a well defined release process that is automated by [Grunt](http://gruntjs.com). See the [Build Tools](../build-tools) section for setup.
Material Design for Bootstrap has a well defined release process that is automated by [Gulp](http://gulpjs.com). See the [Build Tools](../build-tools) section for setup.
## Creating a release
@ -13,36 +13,14 @@ Material Design for Bootstrap has a well defined release process that is automat
Use the following task template:
~~~~~~~~
- [] update `package.json` version
- [] `grunt prep-release`
- [] commit
- [] travis success
- [] tag for bower e.g. `v4.0.0`
- [] push to npm
- [] push to meteor
- [] `grunt publish`
- [] run `gulp publish` it will bump the version, build core, docs, gh-pages, publish them all (with a tag) and push to npm
- [] `meteor publish`
- [] close any milestone
- [] create release and reference milestone issues</code>
- [] create release from tag and reference milestone issues
~~~~~~~~
### Build the release
1. Update the version in `package.json`, it's version is used in the documentation
1. Build the distribution `grunt prep-release`
1. Commit
1. Ensure travis succeeds
### Bower
Tag for bower - a valid tag starts with a `v` such as `v4.0.0`
### NPM
`npm publish`
### Meteor
TODO: push to meteor?
### Github tasks
1. Push documentation with `grunt publish`
1. Close any related open milestone
1. Create a release and reference the milestone

145
gulp-docs.js Normal file
View File

@ -0,0 +1,145 @@
import {Preset, Clean, Copy, Jekyll, CssNano, Sass, RollupEs, RollupUmd, RollupIife, ScssLint, EsLint, Aggregate, Uglify, parallel, series} from 'gulp-pipeline'
const referenceDocNotice =
`$1\n
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs\n
{% callout info %}\n**Bootstrap Reference Documentation**
This is a part of the reference documentation from <a href="http://getbootstrap.com">Bootstrap</a>.
It is included here to demonstrate rendering with Material Design for Bootstrap default styling.
See the <a href="/material-design/buttons">Material Design</a> section for more elements and customization options.
{% endcallout %}
\n\n$2`
const copyProcessor = (content, srcpath) => { // https://regex101.com/r/cZ7aO8/2
return content
.replace(/(---[\s\S]+?---)([\s\S]+)/mg, referenceDocNotice) // insert docs reference
.replace(/Fancy display heading/, 'Fancy heading') // remove sample text 'display' as this is a particular MD style and is confusing
}
const preset = Preset.baseline({
javascripts: {
source: {options: {cwd: 'docs/assets/js/src'}},
watch: {options: {cwd: 'docs/assets/js/src'}},
test: {options: {cwd: 'docs/assets/js/tests'}},
dest: 'docs/dist'
},
stylesheets: {
source: {options: {cwd: 'docs/assets/scss'}},
watch: {options: {cwd: 'docs/assets/scss'}},
dest: 'docs/dist'
},
images: {
dest: 'docs/dist'
},
postProcessor: {
source: {options: {cwd: 'docs/dist'}},
watch: {options: {cwd: 'docs/dist'}},
dest: 'docs/dist'
}
})
const prefix = {task: {prefix: 'docs:'}}
export default function (gulp, options) {
const js = new Aggregate(gulp, 'js',
series(gulp,
new EsLint(gulp, preset, prefix),
parallel(gulp,
new RollupIife(gulp, preset, prefix, options.rollupConfig, {
options: {
dest: 'docs.iife.js',
moduleName: 'docs'
}
}),
new Uglify(gulp, preset, prefix, {
task: {name: 'vendor:uglify'},
source: {options: {cwd: 'docs/assets/js/vendor'}},
concat: {dest: 'docs-vendor.min.js'}
})
),
new Uglify(gulp, preset, prefix, {
task: {name: 'iife:uglify'},
source: { glob: '*.iife.js' }
})
),
prefix)
const css = new Aggregate(gulp, 'css',
series(gulp,
new ScssLint(gulp, preset, prefix, {
source: {glob: ['**/*.scss', '!docs.scss']},
watch: {glob: ['**/*.scss', '!docs.scss']}
}),
new Sass(gulp, preset, prefix),
new CssNano(gulp, preset, prefix)
),
prefix)
const defaultRecipes = new Aggregate(gulp, 'default',
series(gulp,
new Clean(gulp, preset, prefix),
parallel(gulp,
css,
js
)
),
prefix)
// docs copy
new Aggregate(gulp, 'copy:bs-docs',
parallel(gulp,
new Copy(gulp, preset, prefix, {
task: false, //{name: 'copy:bs-docs-content'},
source: {
options: {cwd: '../bootstrap/docs/content'},
glob: ['**/*']
},
dest: 'docs/content/',
process: copyProcessor
}),
new Copy(gulp, preset, prefix, {
task: false, //{name: 'copy:bs-docs-components'},
source: {
options: {cwd: '../bootstrap/docs/components'},
glob: ['**/*']
},
dest: 'docs/components/',
process: copyProcessor
}),
new Copy(gulp, preset, prefix, {
task: false, //{name: 'copy:bs-docs-scss'},
source: {
options: {cwd: '../bootstrap/docs/assets/scss'},
glob: ['**/*', '!docs.scss'] // keep variable customizations
},
dest: 'docs/assets/scss/',
process: (content, srcpath) => {
return content.replace(/([\s\S]+)/mg, '// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs\n\n$1');
}
}),
new Copy(gulp, preset, prefix, {
task: false, //{name: 'copy:bs-docs-plugins'},
source: {
options: {cwd: '../bootstrap/docs/_plugins'},
glob: ['**/*', '!bridge.rb']
},
dest: 'docs/_plugins/'
}),
new Copy(gulp, preset, prefix, {
task: false, //{name: 'copy:bs-docs-js-vendor'},
source: {
options: {cwd: '../bootstrap/docs/assets/js/vendor'},
glob: [
'**/*',
'!tether.min.js',
'!jquery.min.js'
]
},
dest: 'docs/assets/js/vendor/'
}, prefix)
),
prefix)
return defaultRecipes
}

159
gulpfile.babel.js Normal file
View File

@ -0,0 +1,159 @@
import {Preset, Clean, Copy, Jekyll, CssNano, Prepublish, PublishBuild, PublishGhPages, Sass, RollupEs, RollupUmd, RollupIife, ScssLint, EsLint, Aggregate, Uglify, series, parallel} from 'gulp-pipeline'
import gulp from 'gulp'
import findup from 'findup-sync'
import pkg from './package.json'
import moment from 'moment'
import gulpDocs from './gulp-docs'
const node_modules = findup('node_modules')
// we have a lot of aggregates, which add listeners
gulp.setMaxListeners(20)
const preset = Preset.baseline({
javascripts: {
source: {options: {cwd: 'js/src'}},
watch: {options: {cwd: 'js/src'}},
test: {options: {cwd: 'js/tests'}}
},
stylesheets: {
source: {options: {cwd: 'scss'}},
watch: {options: {cwd: 'scss'}}
},
images: {
source: {options: {cwd: 'images'}},
watch: {options: {cwd: 'images'}}
},
postProcessor: {
dest: 'dist' //'dist/digest'
}
})
// When converting non-modular dependencies into usable ones using rollup-plugin-commonjs, if they don't have properly read exports add them here.
let namedExports = {}
//namedExports[`${node_modules}/corejs-typeahead/dist/bloodhound.js`] = ['Bloodhound']
//namedExports[`${node_modules}/anchor-js/anchor.js`] = ['AnchorJS']
const rollupConfig = {
options: {
external: [
'anchor-js',
'clipboard'
],
globals: {
'anchor-js': 'anchors',
clipboard: 'Clipboard'
},
banner: `/*!
* Bootstrap Material Design v${pkg.version} (${pkg.homepage})
* Copyright 2014-${moment().format("YYYY")} ${pkg.author}
* Licensed under MIT (https://github.com/FezVrasta/bootstrap-material-design/blob/master/LICENSE)
*/`
},
commonjs: {
options: {
namedExports: namedExports,
}
}
}
const copyJsToDocs = new Copy(gulp, preset, {
task: {name: 'dist:js->docs'},
source: {
options: {cwd: 'dist'},
glob: ['*.iife*.js']
},
dest: 'docs/dist/'
})
const copyCssToDocs = new Copy(gulp, preset, {
task: {name: 'dist:css->docs'},
source: {
options: {cwd: 'dist'},
glob: ['*.css']
},
dest: 'docs/dist/'
})
const js = new Aggregate(gulp, 'js',
series(gulp,
new EsLint(gulp, preset),
parallel(gulp,
new RollupEs(gulp, preset, rollupConfig, {options: {dest: 'bootstrap-material-design.es.js'}}),
new RollupUmd(gulp, preset, rollupConfig, {
options: {
dest: 'bootstrap-material-design.umd.js',
moduleName: 'bootstrapMaterialDesign'
}
}),
new RollupIife(gulp, preset, rollupConfig, {
options: {
dest: 'bootstrap-material-design.iife.js',
moduleName: 'bootstrapMaterialDesign'
}
})
),
new Uglify(gulp, preset, {
task: {name: 'iife:uglify'},
source: { glob: '*.iife.js' }
}),
copyJsToDocs
)
)
const css = new Aggregate(gulp, 'css',
series(gulp,
new ScssLint(gulp, preset),
new Sass(gulp, preset),
new CssNano(gulp, preset),
copyCssToDocs
)
)
const defaultRecipes = new Aggregate(gulp, 'default', series(gulp,
new Clean(gulp, preset),
parallel(gulp,
css,
js
)
))
// load all docs tasks
let docsDefaultRecipes = gulpDocs(gulp, {rollupConfig: rollupConfig})
// publish
new Aggregate(gulp, 'publish',
series(gulp,
new Prepublish(gulp, preset), // asserts committed
defaultRecipes,
docsDefaultRecipes,
// ^^^docs:default cleans docs/dist, so we need to re-copy dist to docs in this scenario
parallel(gulp, copyCssToDocs, copyJsToDocs),
new Jekyll(gulp, preset, {options: {raw: 'baseurl: "/bootstrap-material-design"'}}),
new PublishBuild(gulp, preset, {
npm: {
bump: false,
publish: false
}
}),
new PublishGhPages(gulp, preset, {
debug: true,
options: {
remote: {
repo: 'git@github.com:rosskevin/bootstrap-material-design.git' // FIXME: temporary, remove this option when we are deploying to our home repo
}
}
})
)
)

View File

@ -8,7 +8,8 @@
*/
/* eslint-disable no-unused-vars */
import '../../node_modules/babel-polyfill/dist/polyfill'
import 'babel-polyfill/dist/polyfill'
import 'bootstrap'
// invalidComponentMatches is currently disabled due to https://github.com/rollup/rollup/issues/428#issuecomment-170066452
import Checkbox from './checkbox'

View File

@ -1,7 +1,7 @@
{
"name": "bootstrap-material-design",
"description": "Material Design for Bootstrap 4",
"version": "4.0.0-alpha",
"version": "4.0.1",
"keywords": [
"material",
"design",
@ -38,41 +38,15 @@
"tether": "^1.2.0"
},
"devDependencies": {
"autoprefixer": "^6.3.3",
"estraverse-fb": ">=1.3.1",
"babel-core": "^6.7.2",
"babel-eslint": "^5.0.0",
"babel-polyfill": "^6.6",
"babel-preset-es2015-rollup": "^1.1.1",
"btoa": "~1.1.2",
"glob": "~7.0.0",
"grunt": "~0.4.5",
"grunt-build-control": "~0.6.3",
"grunt-contrib-clean": "~1.0.0",
"grunt-contrib-compress": "~1.0.0",
"grunt-contrib-connect": "~0.11.2",
"grunt-contrib-copy": "~0.8.2",
"grunt-contrib-cssmin": "~0.14.0",
"grunt-contrib-qunit": "~1.0.1",
"grunt-contrib-uglify": "~0.11.1",
"grunt-contrib-watch": "~0.6.1",
"grunt-eslint": "^18.0.0",
"grunt-exec": "~0.4.6",
"grunt-html": "~6.0.0",
"grunt-jekyll": "~0.4.4",
"grunt-postcss": "^0.7.2",
"grunt-sass": "^1.1.0",
"grunt-saucelabs": "~8.6.2",
"grunt-scss-lint": "^0.3.8",
"grunt-stamp": "^0.1.0",
"is-travis": "^1.0.0",
"load-grunt-tasks": "~3.4.1",
"markdown-it": "^6.0.0",
"mq4-hover-shim": "^0.3.0",
"node-extend": "^0.2.0",
"npm-shrinkwrap": "^200.1.0",
"rollup": "^0.25",
"rollup-plugin-babel": "^2.4",
"rollup-plugin-multi-entry": "^1.1",
"time-grunt": "^1.3.0"
"babel-preset-es2015": "^6.6.0",
"extend": "^3.0.0",
"gulp": "github:gulpjs/gulp#4.0",
"gulp-pipeline": ">=4.0.10",
"moment": "^2.11.2"
},
"engines": {
"node": ">=0.10.1"

View File

@ -1,304 +0,0 @@
{
"always-semicolon": true,
"block-indent": 2,
"color-case": "lower",
"color-shorthand": true,
"element-case": "lower",
"eof-newline": true,
"leading-zero": false,
"remove-empty-rulesets": true,
"space-after-colon": 1,
"space-after-combinator": 1,
"space-before-selector-delimiter": 0,
"space-between-declarations": "\n",
"space-after-opening-brace": "\n",
"space-before-closing-brace": "\n",
"space-before-colon": 0,
"space-before-combinator": 1,
"space-before-opening-brace": 1,
"strip-spaces": true,
"unitless-zero": true,
"vendor-prefix-align": true,
"sort-order": [
[
"position",
"top",
"right",
"bottom",
"left",
"z-index",
"display",
"float",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"-webkit-box-sizing",
"-moz-box-sizing",
"box-sizing",
"-webkit-appearance",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"overflow",
"overflow-x",
"overflow-y",
"-webkit-overflow-scrolling",
"-ms-overflow-x",
"-ms-overflow-y",
"-ms-overflow-style",
"clip",
"clear",
"font",
"font-family",
"font-size",
"font-style",
"font-weight",
"font-variant",
"font-size-adjust",
"font-stretch",
"font-effect",
"font-emphasize",
"font-emphasize-position",
"font-emphasize-style",
"font-smooth",
"-webkit-hyphens",
"-moz-hyphens",
"hyphens",
"line-height",
"color",
"text-align",
"-webkit-text-align-last",
"-moz-text-align-last",
"-ms-text-align-last",
"text-align-last",
"text-emphasis",
"text-emphasis-color",
"text-emphasis-style",
"text-emphasis-position",
"text-decoration",
"text-indent",
"text-justify",
"text-outline",
"-ms-text-overflow",
"text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"text-shadow",
"text-transform",
"text-wrap",
"-webkit-text-size-adjust",
"-ms-text-size-adjust",
"letter-spacing",
"-ms-word-break",
"word-break",
"word-spacing",
"-ms-word-wrap",
"word-wrap",
"-moz-tab-size",
"-o-tab-size",
"tab-size",
"white-space",
"vertical-align",
"list-style",
"list-style-position",
"list-style-type",
"list-style-image",
"pointer-events",
"-ms-touch-action",
"touch-action",
"cursor",
"visibility",
"zoom",
"flex-direction",
"flex-order",
"flex-pack",
"flex-align",
"table-layout",
"empty-cells",
"caption-side",
"border-spacing",
"border-collapse",
"content",
"quotes",
"counter-reset",
"counter-increment",
"resize",
"-webkit-user-select",
"-moz-user-select",
"-ms-user-select",
"-o-user-select",
"user-select",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"background",
"background-color",
"background-image",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient",
"filter:progid:DXImageTransform.Microsoft.gradient",
"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
"filter",
"background-repeat",
"background-attachment",
"background-position",
"background-position-x",
"background-position-y",
"-webkit-background-clip",
"-moz-background-clip",
"background-clip",
"background-origin",
"-webkit-background-size",
"-moz-background-size",
"-o-background-size",
"background-size",
"border",
"border-color",
"border-style",
"border-width",
"border-top",
"border-top-color",
"border-top-style",
"border-top-width",
"border-right",
"border-right-color",
"border-right-style",
"border-right-width",
"border-bottom",
"border-bottom-color",
"border-bottom-style",
"border-bottom-width",
"border-left",
"border-left-color",
"border-left-style",
"border-left-width",
"border-radius",
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"-webkit-border-image",
"-moz-border-image",
"-o-border-image",
"border-image",
"-webkit-border-image-source",
"-moz-border-image-source",
"-o-border-image-source",
"border-image-source",
"-webkit-border-image-slice",
"-moz-border-image-slice",
"-o-border-image-slice",
"border-image-slice",
"-webkit-border-image-width",
"-moz-border-image-width",
"-o-border-image-width",
"border-image-width",
"-webkit-border-image-outset",
"-moz-border-image-outset",
"-o-border-image-outset",
"border-image-outset",
"-webkit-border-image-repeat",
"-moz-border-image-repeat",
"-o-border-image-repeat",
"border-image-repeat",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"-webkit-box-shadow",
"-moz-box-shadow",
"box-shadow",
"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha",
"opacity",
"-ms-interpolation-mode",
"-webkit-transition",
"-moz-transition",
"-ms-transition",
"-o-transition",
"transition",
"-webkit-transition-delay",
"-moz-transition-delay",
"-ms-transition-delay",
"-o-transition-delay",
"transition-delay",
"-webkit-transition-timing-function",
"-moz-transition-timing-function",
"-ms-transition-timing-function",
"-o-transition-timing-function",
"transition-timing-function",
"-webkit-transition-duration",
"-moz-transition-duration",
"-ms-transition-duration",
"-o-transition-duration",
"transition-duration",
"-webkit-transition-property",
"-moz-transition-property",
"-ms-transition-property",
"-o-transition-property",
"transition-property",
"-webkit-transform",
"-moz-transform",
"-ms-transform",
"-o-transform",
"transform",
"-webkit-transform-origin",
"-moz-transform-origin",
"-ms-transform-origin",
"-o-transform-origin",
"transform-origin",
"-webkit-animation",
"-moz-animation",
"-ms-animation",
"-o-animation",
"animation",
"-webkit-animation-name",
"-moz-animation-name",
"-ms-animation-name",
"-o-animation-name",
"animation-name",
"-webkit-animation-duration",
"-moz-animation-duration",
"-ms-animation-duration",
"-o-animation-duration",
"animation-duration",
"-webkit-animation-play-state",
"-moz-animation-play-state",
"-ms-animation-play-state",
"-o-animation-play-state",
"animation-play-state",
"-webkit-animation-timing-function",
"-moz-animation-timing-function",
"-ms-animation-timing-function",
"-o-animation-timing-function",
"animation-timing-function",
"-webkit-animation-delay",
"-moz-animation-delay",
"-ms-animation-delay",
"-o-animation-delay",
"animation-delay",
"-webkit-animation-iteration-count",
"-moz-animation-iteration-count",
"-ms-animation-iteration-count",
"-o-animation-iteration-count",
"animation-iteration-count",
"-webkit-animation-direction",
"-moz-animation-direction",
"-ms-animation-direction",
"-o-animation-direction",
"animation-direction"
]
]
}

View File

@ -187,7 +187,7 @@
// Overlay - left/right responsive overlay classes and marker class
@mixin mdb-drawer-x-overlay-down($breakpoint) {
// e.g. &, &-sm, &-md, &-lg
$name: mdb-drawer-breakpoint-name($breakpoint, '-down');
$name: mdb-drawer-breakpoint-name($breakpoint, "-down");
&.mdb-drawer-overlay {
#{unquote($name)} { // mdb-drawer-overlay, mdb-drawer-overlay-sm, mdb-drawer-overlay-md, mdb-drawer-overlay-lg
@ -199,11 +199,11 @@
// Must double up on the .mdb-drawer-overlay class to increase specificity otherwise the
// responsive mdb-drawer-in-* media queries above win (and overlay is ignored)
&.mdb-drawer-overlay {
@include mdb-drawer-x-overlay()
@include mdb-drawer-x-overlay();
}
} @else {
@include media-breakpoint-down($breakpoint) { // overlay responsive class
@include mdb-drawer-x-overlay()
@include mdb-drawer-x-overlay();
}
}
}