Revert "dist from commit ec8a289
on branch v4-dev"
This reverts commit 162fd8e9b8
.
18
.editorconfig
Normal file
|
@ -0,0 +1,18 @@
|
|||
# editorconfig.org
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.py]
|
||||
indent_size = 4
|
16
.gitattributes
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Enforce Unix newlines
|
||||
*.css text eol=lf
|
||||
*.html text eol=lf
|
||||
*.js text eol=lf
|
||||
*.json text eol=lf
|
||||
*.md text eol=lf
|
||||
*.py text eol=lf
|
||||
*.rb text eol=lf
|
||||
*.scss text eol=lf
|
||||
*.svg text eol=lf
|
||||
*.yml text eol=lf
|
||||
# Don't diff or textually merge source maps
|
||||
*.map binary
|
||||
|
||||
bootstrap-material-design.css linguist-vendored=false
|
||||
bootstrap-material-design.js linguist-vendored=false
|
64
.gitignore
vendored
Normal file
|
@ -0,0 +1,64 @@
|
|||
|
||||
# Ignore docs dist files
|
||||
docs/dist/**/*
|
||||
docs/assets/css/*
|
||||
docs/assets/js/dist/*
|
||||
docs/assets/js/docs.*
|
||||
js/dist/**/*
|
||||
|
||||
# Ignore docs files
|
||||
_gh_pages
|
||||
_site
|
||||
|
||||
# Ignore ruby files
|
||||
.ruby-version
|
||||
.bundle
|
||||
vendor/cache
|
||||
vendor/bundle
|
||||
|
||||
# Numerous always-ignore extensions
|
||||
*.diff
|
||||
*.err
|
||||
*.log
|
||||
*.orig
|
||||
*.rej
|
||||
*.swo
|
||||
*.swp
|
||||
*.vi
|
||||
*.zip
|
||||
*~
|
||||
|
||||
# OS or Editor folders
|
||||
._*
|
||||
.cache
|
||||
.DS_Store
|
||||
.idea
|
||||
.project
|
||||
.settings
|
||||
.tmproj
|
||||
*.esproj
|
||||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
nbproject
|
||||
Thumbs.db
|
||||
|
||||
# Komodo
|
||||
.komodotools
|
||||
*.komodoproject
|
||||
|
||||
# grunt-html-validation
|
||||
validation-report.json
|
||||
validation-status.json
|
||||
|
||||
# SCSS-Lint
|
||||
scss-lint-report.xml
|
||||
|
||||
# grunt-contrib-sass cache
|
||||
.sass-cache
|
||||
|
||||
# Jekyll metadata
|
||||
docs/.jekyll-metadata
|
||||
|
||||
# Folders to ignore
|
||||
bower_components
|
||||
node_modules
|
6
.hound.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
javascript:
|
||||
enabled: false
|
||||
scss:
|
||||
config_file: scss/.scss-lint.yml
|
||||
enabled: true
|
||||
ignore_file: scss/_normalize.scss
|
18
.npmignore
Normal file
|
@ -0,0 +1,18 @@
|
|||
demo\
|
||||
fonts\
|
||||
meteor\
|
||||
scripts\
|
||||
test\
|
||||
|
||||
.editorconfig
|
||||
.gitignore
|
||||
.jshintrc
|
||||
.npmignore
|
||||
.travis.yml
|
||||
.versions
|
||||
bootstrap-elements.html
|
||||
bower.json
|
||||
CONTRIBUTING.md
|
||||
Gruntfile.js
|
||||
index.html
|
||||
package.js
|
1
.ruby-gemset
Normal file
|
@ -0,0 +1 @@
|
|||
bootstrap-material-design
|
1
.ruby-version
Normal file
|
@ -0,0 +1 @@
|
|||
2.2.2
|
51
.travis.yml
Normal file
|
@ -0,0 +1,51 @@
|
|||
# remove this later
|
||||
branches:
|
||||
except:
|
||||
- v4-dev
|
||||
|
||||
sudo: false # use the container infrastructure
|
||||
language: node_js
|
||||
git:
|
||||
depth: 10
|
||||
node_js:
|
||||
- "4"
|
||||
- "5"
|
||||
before_install:
|
||||
# Remove ./node_modules/.bin from PATH so node-which doesn't replace Unix which and cause RVM to barf. See https://github.com/travis-ci/travis-ci/issues/5092
|
||||
- export PATH=$(python -c 'from sys import argv;from collections import OrderedDict as od;print(":".join(od((p,None) for p in argv[1].split(":") if p.startswith("/")).keys()))' "$PATH")
|
||||
|
||||
- rvm install 2.2.2
|
||||
- rvm use 2.2.2 --fuzzy
|
||||
- export GEMDIR=$(rvm gemdir)
|
||||
- npm install -g npm@3
|
||||
- "export TRAVIS_COMMIT_MSG=\"$(git log --format=%B --no-merges -n 1)\""
|
||||
- echo "$TRAVIS_COMMIT_MSG" | grep '\[skip validator\]'; export MDB_DO_VALIDATOR=$?; true
|
||||
- echo "$TRAVIS_COMMIT_MSG" | grep '\[skip sauce\]'; export MDB_DO_SAUCE=$?; true
|
||||
# - if [ "$TRAVIS_REPO_SLUG" = twbs-savage/bootstrap ]; then export MDB_DO_VALIDATOR=0; fi
|
||||
|
||||
install:
|
||||
- bundle install --deployment --jobs=3
|
||||
- cp grunt/npm-shrinkwrap.json ./
|
||||
- npm install -g grunt-cli
|
||||
- npm install -g bower
|
||||
- bower install
|
||||
|
||||
addons:
|
||||
sauce_connect:
|
||||
username: "bmaterialdesign"
|
||||
access_key:
|
||||
secure: "eFSRVOJsJFi8Yhh0pCQpuJELDk0/B6s5tfvR3hi8oWXmW7FjNvRMgesoBKXbEW2HBhjJFMpt+1Rf49pweqgtZQ9vfz0GD47OjwJCTzip2Wv+EANLTJESdI5E0kw7STxrjL3Y12MBQQFHUYh9mhLdpAobNIppsIB5CG4pjtFSiG0="
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- MDB_TEST=core
|
||||
- MDB_TEST=validate-html
|
||||
- MDB_TEST=sauce-js-unit
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
exclude:
|
||||
- node_js: "4"
|
||||
env: MDB_TEST=validate-html
|
||||
- node_js: "4"
|
||||
env: MDB_TEST=sauce-js-unit
|
212
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,212 @@
|
|||
## **TLDR;** Create a test case using [this CodePen template](http://codepen.io/rosskevin/pen/eJMMVB) when submitting an issue.
|
||||
|
||||
# Contributing
|
||||
|
||||
Looking to contribute something to bootsrap-material-design? **Here's how you can help.**
|
||||
|
||||
Please take a moment to review this document in order to make the contribution
|
||||
process easy and effective for everyone involved.
|
||||
|
||||
Following these guidelines helps to communicate that you **respect the time of
|
||||
the developers** managing and developing this open source project. In return,
|
||||
they should reciprocate that respect in addressing your issue or assessing
|
||||
patches and features.
|
||||
|
||||
|
||||
## Using the issue tracker
|
||||
|
||||
The [issue tracker](https://github.com/FezVrasta/bootstrap-material-design/issues) is
|
||||
the preferred channel for [bug reports](#bug-reports), [features requests](#feature-requests)
|
||||
and [submitting pull requests](#pull-requests), but please respect the following
|
||||
restrictions:
|
||||
|
||||
* Please **do not** use the issue tracker for personal support requests. [Stack
|
||||
Overflow `bootstrap-material-design`](https://stackoverflow.com/questions/tagged/bootstrap-material-design) tag) is the best place to get help.
|
||||
|
||||
* Please **do not** derail or troll issues. Keep the discussion on topic and
|
||||
respect the opinions of others.
|
||||
|
||||
* Please **do not** open issues or pull requests regarding the code in dependencies such as:
|
||||
[`Bootstrap`](https://github.com/twbs/bootstrap) (open them in their respective repositories).
|
||||
|
||||
* Please **do not** open issues without clearly stating the problem and desired result. [See the bug reports section](#bug-reports) for more information on creating effective issues.
|
||||
|
||||
* Please **close your own issue** once it is resolved.
|
||||
|
||||
|
||||
## Issues and labels
|
||||
|
||||
Our bug tracker utilizes several labels to help organize and identify issues. Here's what they represent and how we use them:
|
||||
|
||||
- `spec compliance` - Issues that are not conforming to the [Material Design Specification](https://www.google.com/design/spec/material-design/introduction.html).
|
||||
- `bootstrap compliance` - Issues that are implemented in Bootstrap, but have no Material Design implementation
|
||||
- `bug confirmed` - Issues that have been confirmed with a reduced test case and identify a bug in Bootstrap.
|
||||
- `docs & examples` - Issues for improving or updating our documentation or examples.
|
||||
- `feature` - Issues asking for a new feature to be added, or an existing one to be extended or modified. New features require a minor version bump (e.g., `v3.0.0` to `v3.1.0`).
|
||||
- `enhancement` - Issues for improving existing features
|
||||
- `grunt` - Issues with our included JavaScript-based Gruntfile, which is used to run all our tests, concatenate and compile source files, and more.
|
||||
- `help wanted` - Issues we need or would love help from the community to resolve.
|
||||
- `js` - Issues stemming from our compiled or source JavaScript files.
|
||||
|
||||
For a complete look at our labels, see the [project labels page](https://github.com/FezVrasta/bootstrap-material-design/labels).
|
||||
|
||||
|
||||
## Bug reports
|
||||
|
||||
A bug is a _demonstrable problem_ that is caused by the code in the repository.
|
||||
Good bug reports are extremely helpful, so thanks!
|
||||
|
||||
Guidelines for bug reports:
|
||||
|
||||
0. **Validate and lint your code** — [validate your HTML](http://html5.validator.nu)
|
||||
and [lint your HTML](https://github.com/twbs/bootlint) to ensure your
|
||||
problem isn't caused by a simple error in your own code.
|
||||
|
||||
1. **Use the GitHub issue search** — check if the issue has already been
|
||||
reported.
|
||||
|
||||
2. **Check if the issue has been fixed** — try to reproduce it using the
|
||||
latest `master` or development branch in the repository.
|
||||
|
||||
3. **Isolate the problem** — ideally create a [reduced test
|
||||
case](https://css-tricks.com/reduced-test-cases/) and a live example.
|
||||
[This CodePen](http://codepen.io/rosskevin/pen/eJMMVB) is a starter template.
|
||||
|
||||
|
||||
A good bug report shouldn't leave others needing to chase you up for more
|
||||
information. Please try to be as detailed as possible in your report. What is
|
||||
your environment? What steps will reproduce the issue? What browser(s) and OS
|
||||
experience the problem? Do other browsers show the bug differently? What
|
||||
would you expect to be the outcome? All these details will help people to fix
|
||||
any potential bugs.
|
||||
|
||||
Example:
|
||||
|
||||
> Short and descriptive example bug report title
|
||||
>
|
||||
> A summary of the issue and the browser/OS environment in which it occurs. If
|
||||
> suitable, include the steps required to reproduce the bug.
|
||||
>
|
||||
> 1. This is the first step
|
||||
> 2. This is the second step
|
||||
> 3. Further steps, etc.
|
||||
>
|
||||
> `<url>` - a link to the reduced test case (via the [CodePen template](http://codepen.io/rosskevin/pen/eJMMVB))
|
||||
>
|
||||
> Any other information you want to share that is relevant to the issue being
|
||||
> reported. This might include the lines of code that you have identified as
|
||||
> causing the bug, and potential solutions (and your opinions on their
|
||||
> merits).
|
||||
|
||||
|
||||
## Feature requests
|
||||
|
||||
Feature requests are welcome. But take a moment to find out whether your idea
|
||||
fits with the scope and aims of the project and the [Google Material Design specification itself](http://www.google.com/design/spec/material-design/introduction.html). It's up to *you* to make a strong
|
||||
case to convince the project's developers of the merits of this feature. Please
|
||||
provide as much detail and context as possible.
|
||||
|
||||
|
||||
## Pull requests
|
||||
|
||||
Good pull requests—patches, improvements, new features—are a fantastic
|
||||
help. They should remain focused in scope and avoid containing unrelated
|
||||
commits.
|
||||
|
||||
**Please ask first** before embarking on any significant pull request (e.g.
|
||||
implementing features, refactoring code, porting to a different language),
|
||||
otherwise you risk spending a lot of time working on something that the
|
||||
project's developers might not want to merge into the project.
|
||||
|
||||
Please adhere to the [coding guidelines](#code-guidelines) used throughout the
|
||||
project (indentation, accurate comments, etc.) and any other requirements
|
||||
(such as test coverage).
|
||||
|
||||
**In general, do not edit `dist` or `sass` files
|
||||
directly!** Those files are automatically generated. You should edit the
|
||||
source files in [`/less/`](https://github.com/FezVrasta/bootstrap-material-design/tree/master/less)
|
||||
and/or [`/scripts/`](https://github.com/FezVrasta/bootstrap-material-design/tree/master/scripts) instead.
|
||||
|
||||
Similarly, when contributing to Bootstrap's documentation, you should edit the
|
||||
documentation source files in
|
||||
[the `/bootstrap/docs/` directory of the `master` branch](https://github.com/FezVrasta/bootstrap-material-design/tree/master/docs).
|
||||
**Do not edit the `gh-pages` branch.** That branch is generated from the
|
||||
documentation source files and is managed separately by the bootstrap-material-design Team.
|
||||
|
||||
Adhering to the following process is the best way to get your work
|
||||
included in the project:
|
||||
|
||||
1. [Fork](https://help.github.com/fork-a-repo/) the project, clone your fork,
|
||||
and configure the remotes:
|
||||
|
||||
```bash
|
||||
# Clone your fork of the repo into the current directory
|
||||
git clone https://github.com/<your-username>/bootstrap-material-design.git
|
||||
# Navigate to the newly cloned directory
|
||||
cd bootstrap
|
||||
# Assign the original repo to a remote called "upstream"
|
||||
git remote add upstream https://github.com/FezVrasta/bootstrap-material-design.git
|
||||
```
|
||||
|
||||
2. If you cloned a while ago, get the latest changes from upstream:
|
||||
|
||||
```bash
|
||||
git checkout master
|
||||
git pull upstream master
|
||||
```
|
||||
|
||||
3. Create a new topic branch (off the main project development branch) to
|
||||
contain your feature, change, or fix:
|
||||
|
||||
```bash
|
||||
git checkout -b <topic-branch-name>
|
||||
```
|
||||
|
||||
4. Commit your changes in logical chunks with messages written in english. Please adhere to these [git commit
|
||||
message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
|
||||
or your code is unlikely be merged into the main project. Use Git's
|
||||
[interactive rebase](https://help.github.com/articles/interactive-rebase)
|
||||
feature to tidy up your commits before making them public.
|
||||
|
||||
5. Locally merge (or rebase) the upstream development branch into your topic branch:
|
||||
|
||||
```bash
|
||||
git pull [--rebase] upstream master
|
||||
```
|
||||
|
||||
6. Push your topic branch up to your fork:
|
||||
|
||||
```bash
|
||||
git push origin <topic-branch-name>
|
||||
```
|
||||
|
||||
7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
|
||||
with a clear title and description against the `master` branch.
|
||||
|
||||
**IMPORTANT**: By submitting a patch, you agree to allow the project owners to
|
||||
license your work under the terms of the [MIT License](LICENSE) (if it
|
||||
includes code changes) and under the terms of the
|
||||
[Creative Commons Attribution 3.0 Unported License](docs/LICENSE)
|
||||
(if it includes documentation changes).
|
||||
|
||||
|
||||
## Code guidelines
|
||||
|
||||
### HTML
|
||||
|
||||
[Adhere to the Code Guide.](http://codeguide.co/#html)
|
||||
|
||||
- Use tags and elements appropriate for an HTML5 doctype (e.g., self-closing tags).
|
||||
- Use CDNs and HTTPS for third-party JS when possible. We don't use protocol-relative URLs in this case because they break when viewing the page locally via `file://`.
|
||||
- Use [WAI-ARIA](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA) attributes in documentation examples to promote accessibility.
|
||||
|
||||
### Coding styles
|
||||
|
||||
Before committing ensure your changes follow our coding standards by running `grunt dist docs`. This will run the various code style
|
||||
check tools and provid feedback.
|
||||
|
||||
|
||||
## License
|
||||
|
||||
By contributing your code, you agree to license your contribution under the [MIT License](LICENSE).
|
||||
By contributing to the documentation, you agree to license your contribution under the [Creative Commons Attribution 3.0 Unported License](docs/LICENSE).
|
9
Gemfile
Normal file
|
@ -0,0 +1,9 @@
|
|||
source 'https://rubygems.org'
|
||||
|
||||
group :development, :test do
|
||||
gem 'jekyll', '~> 3.0.1'
|
||||
gem 'jekyll-redirect-from', '~> 0.9.0'
|
||||
gem 'jekyll-seo-tag', '~> 0.1.3'
|
||||
gem 'jekyll-sitemap', '~> 0.9.0'
|
||||
gem 'scss_lint', '~> 0.43'
|
||||
end
|
49
Gemfile.lock
Normal file
|
@ -0,0 +1,49 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
colorator (0.1)
|
||||
ffi (1.9.10)
|
||||
jekyll (3.0.2)
|
||||
colorator (~> 0.1)
|
||||
jekyll-sass-converter (~> 1.0)
|
||||
jekyll-watch (~> 1.1)
|
||||
kramdown (~> 1.3)
|
||||
liquid (~> 3.0)
|
||||
mercenary (~> 0.3.3)
|
||||
rouge (~> 1.7)
|
||||
safe_yaml (~> 1.0)
|
||||
jekyll-redirect-from (0.9.1)
|
||||
jekyll (>= 2.0)
|
||||
jekyll-sass-converter (1.4.0)
|
||||
sass (~> 3.4)
|
||||
jekyll-seo-tag (0.1.4)
|
||||
jekyll (>= 2.0)
|
||||
jekyll-sitemap (0.9.0)
|
||||
jekyll-watch (1.3.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (1.9.0)
|
||||
liquid (3.0.6)
|
||||
listen (3.0.5)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9)
|
||||
mercenary (0.3.5)
|
||||
rake (10.5.0)
|
||||
rb-fsevent (0.9.7)
|
||||
rb-inotify (0.9.5)
|
||||
ffi (>= 0.5.0)
|
||||
rouge (1.10.1)
|
||||
safe_yaml (1.0.4)
|
||||
sass (3.4.21)
|
||||
scss_lint (0.44.0)
|
||||
rake (~> 10.0)
|
||||
sass (~> 3.4.15)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll (~> 3.0.1)
|
||||
jekyll-redirect-from (~> 0.9.0)
|
||||
jekyll-seo-tag (~> 0.1.3)
|
||||
jekyll-sitemap (~> 0.9.0)
|
||||
scss_lint (~> 0.43)
|
661
Gruntfile.js
Normal file
|
@ -0,0 +1,661 @@
|
|||
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.es6.min.js': 'dist/js/bootstrap-material-design.es6.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'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
csscomb: {
|
||||
options: {
|
||||
config: 'scss/.csscomb.json'
|
||||
},
|
||||
dist: {
|
||||
expand: true,
|
||||
cwd: 'dist/css/',
|
||||
src: ['*.css', '!*.min.css'],
|
||||
dest: 'dist/css/'
|
||||
},
|
||||
examples: {
|
||||
expand: true,
|
||||
cwd: 'docs/examples/',
|
||||
src: '**/*.css',
|
||||
dest: 'docs/examples/'
|
||||
},
|
||||
docs: {
|
||||
src: 'docs/dist/css/docs.css',
|
||||
dest: 'docs/dist/css/docs.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.es2015.config.js'
|
||||
}
|
||||
},
|
||||
|
||||
buildcontrol: {
|
||||
options: {
|
||||
remote: 'git@github.com:FezVrasta/bootstrap-material-design.git',
|
||||
commit: true,
|
||||
push: true
|
||||
},
|
||||
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-dev', // FIXME: this needs to be master branch eventually!
|
||||
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',
|
||||
'csscomb:dist',
|
||||
'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',
|
||||
'csscomb:docs',
|
||||
'csscomb: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', [
|
||||
'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('');
|
||||
//});
|
||||
};
|
32
LICENSE.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015-2016, Federico Zivolo
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
## Acknowledgements:
|
||||
|
||||
### Bootstrap
|
||||
Some original Bootstrap tooling code and documentation http://getbootstrap.com
|
||||
Copyright (c) 2011-2016 Twitter, Inc
|
||||
|
||||
### MDL
|
||||
Some original MDL code http://www.getmdl.io/
|
||||
Copyright 2015 Google Inc. All Rights Reserved.
|
58
README.md
Normal file
|
@ -0,0 +1,58 @@
|
|||
# bootstrap-material-design
|
||||
|
||||
## **WARNING:** These docs relate to the next major release and integration with bootstrap V4.
|
||||
|
||||
[![build status](https://travis-ci.org/FezVrasta/bootstrap-material-design.svg?branch=master)](https://travis-ci.org/FezVrasta/bootstrap-material-design)
|
||||
[![gratipay](https://img.shields.io/gratipay/FezVrasta.svg)](https://gratipay.com/FezVrasta)
|
||||
[![Bower version](https://badge.fury.io/bo/bootstrap-material-design.svg)](https://github.com/FezVrasta/bootstrap-material-design)
|
||||
|
||||
|
||||
Bootstrap Material Design is the best way to use [Material Design guidelines by Google](http://www.google.com/design/spec/material-design/introduction.html)
|
||||
in your Bootstrap 4 based application. Since this is a fully customizable version of Bootstrap,
|
||||
just include Bootstrap Material Design CSS instead of Bootstrap CSS, and include the JavaScript at
|
||||
the end of your document (just before the `</body>` tag), and everything will be converted to Material Design.
|
||||
|
||||
## Documentation
|
||||
|
||||
NOTE: this is a temporary site location that will be published in at http://fezvrasta.github.io/bootstrap-material-design in the future.
|
||||
|
||||
- [Migration](http://rosskevin.github.io/bootstrap-material-design/migration/)
|
||||
- [Getting Started](http://rosskevin.github.io/bootstrap-material-design/getting-started/introduction/)
|
||||
- [Material Design components](http://rosskevin.github.io/bootstrap-material-design/material-design/list-group/)
|
||||
- [Bootstrap default rendering reference documentation](http://rosskevin.github.io/bootstrap-material-design/components/buttons/)
|
||||
|
||||
|
||||
## Support
|
||||
|
||||
If you like this project you may support it by donating via Gittip, starring this repository or reporting issues.
|
||||
All issues filed should be reduced to a [CodePen](http://codepen.io/rosskevin/pen/eJMMVB) test case where possible.
|
||||
|
||||
[![gittip](docs/assets/img/gittip-button.jpg)](https://www.gratipay.com/FezVrasta/)
|
||||
[![issues](docs/assets/img/issues-button.jpg)](https://github.com/FezVrasta/bootstrap-material-design/issues)
|
||||
|
||||
|
||||
## Contributing
|
||||
|
||||
### During V4 major development
|
||||
If you want to get involved, please do so by submitting pull requests. Before undertaking any major PR effort, please check the [milestone](https://github.com/FezVrasta/bootstrap-material-design/milestones/V4) for an existing issue. If there isn't one, please file a new issue and `cc: @rosskevin` so we can discuss and assign the work so effort is not duplicated. Thank you!
|
||||
|
||||
Please prefix any issue or pull request title with `V4`.
|
||||
|
||||
### Standard guidelines
|
||||
Please read through our [contributing guidelines](CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development.
|
||||
|
||||
Moreover, if your pull request contains JavaScript patches or features, you must include relevant unit tests. All HTML and CSS should conform to the [Code Guide](http://codeguide.co/), maintained by [Mark Otto](https://github.com/mdo), one of Bootstrap's founders.
|
||||
|
||||
Editor preferences are available in the [editor config](https://github.com/FezVrasta/bootstrap-material-design/blob/master/.editorconfig) for easy use in common text editors. Read more and download plugins at <http://editorconfig.org>.
|
||||
|
||||
## Versioning
|
||||
|
||||
For transparency into our release cycle and in striving to maintain backward compatibility, this project is maintained under
|
||||
[the Semantic Versioning guidelines](http://semver.org/). Sometimes we screw up, but we'll adhere to those rules whenever possible.
|
||||
|
||||
See [the Releases section of our GitHub project](https://github.com/fezvrasta/bootstrap-material-design/releases) for changelogs
|
||||
of each release version.
|
||||
|
||||
|
||||
## License
|
||||
[MIT License](LICENSE.md)
|
72
_config.yml
Normal file
|
@ -0,0 +1,72 @@
|
|||
include:
|
||||
- .nojekyll
|
||||
|
||||
|
||||
sass:
|
||||
sass_dir: sass
|
||||
|
||||
# Dependencies
|
||||
markdown: kramdown
|
||||
highlighter: rouge
|
||||
|
||||
kramdown:
|
||||
auto_ids: true
|
||||
|
||||
# Permalinks
|
||||
permalink: pretty
|
||||
|
||||
# Server
|
||||
source: docs
|
||||
destination: _gh_pages
|
||||
host: 0.0.0.0
|
||||
port: 9000
|
||||
|
||||
|
||||
|
||||
|
||||
encoding: UTF-8
|
||||
exclude: [assets/scss/]
|
||||
|
||||
gems:
|
||||
- jekyll-redirect-from
|
||||
- jekyll-seo-tag
|
||||
- jekyll-sitemap
|
||||
|
||||
# Site vars
|
||||
#url: "http://fezvrasta.github.io"
|
||||
repo: https://github.com/fezvrasta/bootstrap-material-design
|
||||
#baseurl: "/bootstrap-material-design"
|
||||
url: "http://rosskevin.github.io"
|
||||
|
||||
# other variables generated in
|
||||
|
||||
#blog: http://blog.getbootstrap.com
|
||||
#expo: http://expo.getbootstrap.com
|
||||
#themes: http://themes.getbootstrap.com
|
||||
|
||||
#
|
||||
cdn:
|
||||
# # See https://www.srihash.org for info on how to generate the hashes
|
||||
css: https://cdn.rawgit.com/fezvrasta/bootstrap-material-design/v4-dev/dist/css/bootstrap-material-design.css
|
||||
# css_hash: "sha384-XXXXXXXX"
|
||||
js: https://cdn.rawgit.com/fezvrasta/bootstrap-material-design/v4-dev/dist/js/bootstrap-material-design
|
||||
# js_hash: "sha384-XXXXXXXX"
|
||||
|
||||
# fonts
|
||||
font_roboto: http://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
|
||||
bootstrap: https://cdn.rawgit.com/twbs/bootstrap/VERSION/dist/js/bootstrap
|
||||
tether: https://cdn.rawgit.com/HubSpot/tether/vVERSION/dist/js/tether
|
||||
|
||||
|
||||
|
||||
#twitter:
|
||||
# username: getbootstrap
|
||||
#
|
||||
#social:
|
||||
# type: organization
|
||||
# name: twbs
|
||||
# links: ["https://www.facebook.com/getbootstrap/", "https://twitter.com/getbootstrap"]
|
42
bower.json
Normal file
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"name": "bootstrap-material-design",
|
||||
"description": "Bootstrap Material Design for Bootstrap 4",
|
||||
"keywords": [
|
||||
"material",
|
||||
"design",
|
||||
"bootstrap",
|
||||
"css",
|
||||
"js",
|
||||
"sass",
|
||||
"mobile-first",
|
||||
"responsive",
|
||||
"front-end",
|
||||
"framework",
|
||||
"web"
|
||||
],
|
||||
"homepage": "http://fezvrasta.github.io/bootstrap-material-design",
|
||||
"license": "MIT",
|
||||
"moduleType": "globals",
|
||||
"main": [
|
||||
"scss/bootstrap-material-design.scss",
|
||||
"dist/js/bootstrap-material-design.js"
|
||||
],
|
||||
"ignore": [
|
||||
"/.*",
|
||||
"_config.yml",
|
||||
"CNAME",
|
||||
"composer.json",
|
||||
"CONTRIBUTING.md",
|
||||
"docs",
|
||||
"js/tests",
|
||||
"test-infra"
|
||||
],
|
||||
"dependencies": {
|
||||
"bootstrap": "git@github.com:rosskevin/bootstrap.git#v4-tmp-flex-master",
|
||||
"tether": "^1.1"
|
||||
},
|
||||
"old-dependencies": {
|
||||
"bootstrap": "v4-dev",
|
||||
"tether": "^1.1"
|
||||
}
|
||||
}
|
2
css/bootstrap-material-design.min.css
vendored
319
docs/LICENSE
Normal file
|
@ -0,0 +1,319 @@
|
|||
Creative Commons Legal Code
|
||||
|
||||
Attribution 3.0 Unported
|
||||
|
||||
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
|
||||
LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
|
||||
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
|
||||
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
|
||||
REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
|
||||
DAMAGES RESULTING FROM ITS USE.
|
||||
|
||||
License
|
||||
|
||||
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
|
||||
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
|
||||
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
|
||||
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
|
||||
|
||||
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
|
||||
TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
|
||||
BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
|
||||
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
|
||||
CONDITIONS.
|
||||
|
||||
1. Definitions
|
||||
|
||||
a. "Adaptation" means a work based upon the Work, or upon the Work and
|
||||
other pre-existing works, such as a translation, adaptation,
|
||||
derivative work, arrangement of music or other alterations of a
|
||||
literary or artistic work, or phonogram or performance and includes
|
||||
cinematographic adaptations or any other form in which the Work may be
|
||||
recast, transformed, or adapted including in any form recognizably
|
||||
derived from the original, except that a work that constitutes a
|
||||
Collection will not be considered an Adaptation for the purpose of
|
||||
this License. For the avoidance of doubt, where the Work is a musical
|
||||
work, performance or phonogram, the synchronization of the Work in
|
||||
timed-relation with a moving image ("synching") will be considered an
|
||||
Adaptation for the purpose of this License.
|
||||
b. "Collection" means a collection of literary or artistic works, such as
|
||||
encyclopedias and anthologies, or performances, phonograms or
|
||||
broadcasts, or other works or subject matter other than works listed
|
||||
in Section 1(f) below, which, by reason of the selection and
|
||||
arrangement of their contents, constitute intellectual creations, in
|
||||
which the Work is included in its entirety in unmodified form along
|
||||
with one or more other contributions, each constituting separate and
|
||||
independent works in themselves, which together are assembled into a
|
||||
collective whole. A work that constitutes a Collection will not be
|
||||
considered an Adaptation (as defined above) for the purposes of this
|
||||
License.
|
||||
c. "Distribute" means to make available to the public the original and
|
||||
copies of the Work or Adaptation, as appropriate, through sale or
|
||||
other transfer of ownership.
|
||||
d. "Licensor" means the individual, individuals, entity or entities that
|
||||
offer(s) the Work under the terms of this License.
|
||||
e. "Original Author" means, in the case of a literary or artistic work,
|
||||
the individual, individuals, entity or entities who created the Work
|
||||
or if no individual or entity can be identified, the publisher; and in
|
||||
addition (i) in the case of a performance the actors, singers,
|
||||
musicians, dancers, and other persons who act, sing, deliver, declaim,
|
||||
play in, interpret or otherwise perform literary or artistic works or
|
||||
expressions of folklore; (ii) in the case of a phonogram the producer
|
||||
being the person or legal entity who first fixes the sounds of a
|
||||
performance or other sounds; and, (iii) in the case of broadcasts, the
|
||||
organization that transmits the broadcast.
|
||||
f. "Work" means the literary and/or artistic work offered under the terms
|
||||
of this License including without limitation any production in the
|
||||
literary, scientific and artistic domain, whatever may be the mode or
|
||||
form of its expression including digital form, such as a book,
|
||||
pamphlet and other writing; a lecture, address, sermon or other work
|
||||
of the same nature; a dramatic or dramatico-musical work; a
|
||||
choreographic work or entertainment in dumb show; a musical
|
||||
composition with or without words; a cinematographic work to which are
|
||||
assimilated works expressed by a process analogous to cinematography;
|
||||
a work of drawing, painting, architecture, sculpture, engraving or
|
||||
lithography; a photographic work to which are assimilated works
|
||||
expressed by a process analogous to photography; a work of applied
|
||||
art; an illustration, map, plan, sketch or three-dimensional work
|
||||
relative to geography, topography, architecture or science; a
|
||||
performance; a broadcast; a phonogram; a compilation of data to the
|
||||
extent it is protected as a copyrightable work; or a work performed by
|
||||
a variety or circus performer to the extent it is not otherwise
|
||||
considered a literary or artistic work.
|
||||
g. "You" means an individual or entity exercising rights under this
|
||||
License who has not previously violated the terms of this License with
|
||||
respect to the Work, or who has received express permission from the
|
||||
Licensor to exercise rights under this License despite a previous
|
||||
violation.
|
||||
h. "Publicly Perform" means to perform public recitations of the Work and
|
||||
to communicate to the public those public recitations, by any means or
|
||||
process, including by wire or wireless means or public digital
|
||||
performances; to make available to the public Works in such a way that
|
||||
members of the public may access these Works from a place and at a
|
||||
place individually chosen by them; to perform the Work to the public
|
||||
by any means or process and the communication to the public of the
|
||||
performances of the Work, including by public digital performance; to
|
||||
broadcast and rebroadcast the Work by any means including signs,
|
||||
sounds or images.
|
||||
i. "Reproduce" means to make copies of the Work by any means including
|
||||
without limitation by sound or visual recordings and the right of
|
||||
fixation and reproducing fixations of the Work, including storage of a
|
||||
protected performance or phonogram in digital form or other electronic
|
||||
medium.
|
||||
|
||||
2. Fair Dealing Rights. Nothing in this License is intended to reduce,
|
||||
limit, or restrict any uses free from copyright or rights arising from
|
||||
limitations or exceptions that are provided for in connection with the
|
||||
copyright protection under copyright law or other applicable laws.
|
||||
|
||||
3. License Grant. Subject to the terms and conditions of this License,
|
||||
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
|
||||
perpetual (for the duration of the applicable copyright) license to
|
||||
exercise the rights in the Work as stated below:
|
||||
|
||||
a. to Reproduce the Work, to incorporate the Work into one or more
|
||||
Collections, and to Reproduce the Work as incorporated in the
|
||||
Collections;
|
||||
b. to create and Reproduce Adaptations provided that any such Adaptation,
|
||||
including any translation in any medium, takes reasonable steps to
|
||||
clearly label, demarcate or otherwise identify that changes were made
|
||||
to the original Work. For example, a translation could be marked "The
|
||||
original work was translated from English to Spanish," or a
|
||||
modification could indicate "The original work has been modified.";
|
||||
c. to Distribute and Publicly Perform the Work including as incorporated
|
||||
in Collections; and,
|
||||
d. to Distribute and Publicly Perform Adaptations.
|
||||
e. For the avoidance of doubt:
|
||||
|
||||
i. Non-waivable Compulsory License Schemes. In those jurisdictions in
|
||||
which the right to collect royalties through any statutory or
|
||||
compulsory licensing scheme cannot be waived, the Licensor
|
||||
reserves the exclusive right to collect such royalties for any
|
||||
exercise by You of the rights granted under this License;
|
||||
ii. Waivable Compulsory License Schemes. In those jurisdictions in
|
||||
which the right to collect royalties through any statutory or
|
||||
compulsory licensing scheme can be waived, the Licensor waives the
|
||||
exclusive right to collect such royalties for any exercise by You
|
||||
of the rights granted under this License; and,
|
||||
iii. Voluntary License Schemes. The Licensor waives the right to
|
||||
collect royalties, whether individually or, in the event that the
|
||||
Licensor is a member of a collecting society that administers
|
||||
voluntary licensing schemes, via that society, from any exercise
|
||||
by You of the rights granted under this License.
|
||||
|
||||
The above rights may be exercised in all media and formats whether now
|
||||
known or hereafter devised. The above rights include the right to make
|
||||
such modifications as are technically necessary to exercise the rights in
|
||||
other media and formats. Subject to Section 8(f), all rights not expressly
|
||||
granted by Licensor are hereby reserved.
|
||||
|
||||
4. Restrictions. The license granted in Section 3 above is expressly made
|
||||
subject to and limited by the following restrictions:
|
||||
|
||||
a. You may Distribute or Publicly Perform the Work only under the terms
|
||||
of this License. You must include a copy of, or the Uniform Resource
|
||||
Identifier (URI) for, this License with every copy of the Work You
|
||||
Distribute or Publicly Perform. You may not offer or impose any terms
|
||||
on the Work that restrict the terms of this License or the ability of
|
||||
the recipient of the Work to exercise the rights granted to that
|
||||
recipient under the terms of the License. You may not sublicense the
|
||||
Work. You must keep intact all notices that refer to this License and
|
||||
to the disclaimer of warranties with every copy of the Work You
|
||||
Distribute or Publicly Perform. When You Distribute or Publicly
|
||||
Perform the Work, You may not impose any effective technological
|
||||
measures on the Work that restrict the ability of a recipient of the
|
||||
Work from You to exercise the rights granted to that recipient under
|
||||
the terms of the License. This Section 4(a) applies to the Work as
|
||||
incorporated in a Collection, but this does not require the Collection
|
||||
apart from the Work itself to be made subject to the terms of this
|
||||
License. If You create a Collection, upon notice from any Licensor You
|
||||
must, to the extent practicable, remove from the Collection any credit
|
||||
as required by Section 4(b), as requested. If You create an
|
||||
Adaptation, upon notice from any Licensor You must, to the extent
|
||||
practicable, remove from the Adaptation any credit as required by
|
||||
Section 4(b), as requested.
|
||||
b. If You Distribute, or Publicly Perform the Work or any Adaptations or
|
||||
Collections, You must, unless a request has been made pursuant to
|
||||
Section 4(a), keep intact all copyright notices for the Work and
|
||||
provide, reasonable to the medium or means You are utilizing: (i) the
|
||||
name of the Original Author (or pseudonym, if applicable) if supplied,
|
||||
and/or if the Original Author and/or Licensor designate another party
|
||||
or parties (e.g., a sponsor institute, publishing entity, journal) for
|
||||
attribution ("Attribution Parties") in Licensor's copyright notice,
|
||||
terms of service or by other reasonable means, the name of such party
|
||||
or parties; (ii) the title of the Work if supplied; (iii) to the
|
||||
extent reasonably practicable, the URI, if any, that Licensor
|
||||
specifies to be associated with the Work, unless such URI does not
|
||||
refer to the copyright notice or licensing information for the Work;
|
||||
and (iv) , consistent with Section 3(b), in the case of an Adaptation,
|
||||
a credit identifying the use of the Work in the Adaptation (e.g.,
|
||||
"French translation of the Work by Original Author," or "Screenplay
|
||||
based on original Work by Original Author"). The credit required by
|
||||
this Section 4 (b) may be implemented in any reasonable manner;
|
||||
provided, however, that in the case of a Adaptation or Collection, at
|
||||
a minimum such credit will appear, if a credit for all contributing
|
||||
authors of the Adaptation or Collection appears, then as part of these
|
||||
credits and in a manner at least as prominent as the credits for the
|
||||
other contributing authors. For the avoidance of doubt, You may only
|
||||
use the credit required by this Section for the purpose of attribution
|
||||
in the manner set out above and, by exercising Your rights under this
|
||||
License, You may not implicitly or explicitly assert or imply any
|
||||
connection with, sponsorship or endorsement by the Original Author,
|
||||
Licensor and/or Attribution Parties, as appropriate, of You or Your
|
||||
use of the Work, without the separate, express prior written
|
||||
permission of the Original Author, Licensor and/or Attribution
|
||||
Parties.
|
||||
c. Except as otherwise agreed in writing by the Licensor or as may be
|
||||
otherwise permitted by applicable law, if You Reproduce, Distribute or
|
||||
Publicly Perform the Work either by itself or as part of any
|
||||
Adaptations or Collections, You must not distort, mutilate, modify or
|
||||
take other derogatory action in relation to the Work which would be
|
||||
prejudicial to the Original Author's honor or reputation. Licensor
|
||||
agrees that in those jurisdictions (e.g. Japan), in which any exercise
|
||||
of the right granted in Section 3(b) of this License (the right to
|
||||
make Adaptations) would be deemed to be a distortion, mutilation,
|
||||
modification or other derogatory action prejudicial to the Original
|
||||
Author's honor and reputation, the Licensor will waive or not assert,
|
||||
as appropriate, this Section, to the fullest extent permitted by the
|
||||
applicable national law, to enable You to reasonably exercise Your
|
||||
right under Section 3(b) of this License (right to make Adaptations)
|
||||
but not otherwise.
|
||||
|
||||
5. Representations, Warranties and Disclaimer
|
||||
|
||||
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
|
||||
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
|
||||
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
|
||||
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
|
||||
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
|
||||
WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
|
||||
OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
|
||||
|
||||
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
|
||||
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
|
||||
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
|
||||
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
|
||||
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
7. Termination
|
||||
|
||||
a. This License and the rights granted hereunder will terminate
|
||||
automatically upon any breach by You of the terms of this License.
|
||||
Individuals or entities who have received Adaptations or Collections
|
||||
from You under this License, however, will not have their licenses
|
||||
terminated provided such individuals or entities remain in full
|
||||
compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
|
||||
survive any termination of this License.
|
||||
b. Subject to the above terms and conditions, the license granted here is
|
||||
perpetual (for the duration of the applicable copyright in the Work).
|
||||
Notwithstanding the above, Licensor reserves the right to release the
|
||||
Work under different license terms or to stop distributing the Work at
|
||||
any time; provided, however that any such election will not serve to
|
||||
withdraw this License (or any other license that has been, or is
|
||||
required to be, granted under the terms of this License), and this
|
||||
License will continue in full force and effect unless terminated as
|
||||
stated above.
|
||||
|
||||
8. Miscellaneous
|
||||
|
||||
a. Each time You Distribute or Publicly Perform the Work or a Collection,
|
||||
the Licensor offers to the recipient a license to the Work on the same
|
||||
terms and conditions as the license granted to You under this License.
|
||||
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
|
||||
offers to the recipient a license to the original Work on the same
|
||||
terms and conditions as the license granted to You under this License.
|
||||
c. If any provision of this License is invalid or unenforceable under
|
||||
applicable law, it shall not affect the validity or enforceability of
|
||||
the remainder of the terms of this License, and without further action
|
||||
by the parties to this agreement, such provision shall be reformed to
|
||||
the minimum extent necessary to make such provision valid and
|
||||
enforceable.
|
||||
d. No term or provision of this License shall be deemed waived and no
|
||||
breach consented to unless such waiver or consent shall be in writing
|
||||
and signed by the party to be charged with such waiver or consent.
|
||||
e. This License constitutes the entire agreement between the parties with
|
||||
respect to the Work licensed here. There are no understandings,
|
||||
agreements or representations with respect to the Work not specified
|
||||
here. Licensor shall not be bound by any additional provisions that
|
||||
may appear in any communication from You. This License may not be
|
||||
modified without the mutual written agreement of the Licensor and You.
|
||||
f. The rights granted under, and the subject matter referenced, in this
|
||||
License were drafted utilizing the terminology of the Berne Convention
|
||||
for the Protection of Literary and Artistic Works (as amended on
|
||||
September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
|
||||
Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
|
||||
and the Universal Copyright Convention (as revised on July 24, 1971).
|
||||
These rights and subject matter take effect in the relevant
|
||||
jurisdiction in which the License terms are sought to be enforced
|
||||
according to the corresponding provisions of the implementation of
|
||||
those treaty provisions in the applicable national law. If the
|
||||
standard suite of rights granted under applicable copyright law
|
||||
includes additional rights not granted under this License, such
|
||||
additional rights are deemed to be included in the License; this
|
||||
License is not intended to restrict the license of any rights under
|
||||
applicable law.
|
||||
|
||||
|
||||
Creative Commons Notice
|
||||
|
||||
Creative Commons is not a party to this License, and makes no warranty
|
||||
whatsoever in connection with the Work. Creative Commons will not be
|
||||
liable to You or any party on any legal theory for any damages
|
||||
whatsoever, including without limitation any general, special,
|
||||
incidental or consequential damages arising in connection to this
|
||||
license. Notwithstanding the foregoing two (2) sentences, if Creative
|
||||
Commons has expressly identified itself as the Licensor hereunder, it
|
||||
shall have all rights and obligations of Licensor.
|
||||
|
||||
Except for the limited purpose of indicating to the public that the
|
||||
Work is licensed under the CCPL, Creative Commons does not authorize
|
||||
the use by either party of the trademark "Creative Commons" or any
|
||||
related trademark or logo of Creative Commons without the prior
|
||||
written consent of Creative Commons. Any permitted use will be in
|
||||
compliance with Creative Commons' then-current trademark usage
|
||||
guidelines, as may be published on its website or otherwise made
|
||||
available upon request from time to time. For the avoidance of doubt,
|
||||
this trademark restriction does not form part of this License.
|
||||
|
||||
Creative Commons may be contacted at http://creativecommons.org/.
|
281
docs/_data/browser-bugs.yml
Normal file
|
@ -0,0 +1,281 @@
|
|||
-
|
||||
browser: >
|
||||
Internet Explorer 11 & Microsoft Edge
|
||||
summary: >
|
||||
Hovered element still remains in `:hover` state after scrolling away.
|
||||
upstream_bug: >
|
||||
IE#926665
|
||||
origin: >
|
||||
Bootstrap#14211
|
||||
|
||||
-
|
||||
browser: >
|
||||
Internet Explorer 11 & Microsoft Edge
|
||||
summary: >
|
||||
When hovering over a `<select>` menu item, the cursor for the element underneath the menu is displayed.
|
||||
upstream_bug: >
|
||||
IE#963961
|
||||
origin: >
|
||||
Bootstrap#14528
|
||||
|
||||
-
|
||||
browser: >
|
||||
Internet Explorer 11 & Microsoft Edge
|
||||
summary: >
|
||||
CSS `border-radius` sometimes causes lines of bleed-through of the `background-color` of the parent element.
|
||||
upstream_bug: >
|
||||
IE#1463734
|
||||
origin: >
|
||||
Bootstrap#16671
|
||||
|
||||
-
|
||||
browser: >
|
||||
Firefox
|
||||
summary: >
|
||||
`.table-bordered` with an empty `<tbody>` is missing borders.
|
||||
upstream_bug: >
|
||||
Mozilla#1023761
|
||||
origin: >
|
||||
Bootstrap#13453
|
||||
|
||||
-
|
||||
browser: >
|
||||
Firefox
|
||||
summary: >
|
||||
`max-width: 100%;` doesn't work inside tables.
|
||||
upstream_bug: >
|
||||
Mozilla#975632
|
||||
origin: >
|
||||
Bootstrap#10690
|
||||
|
||||
-
|
||||
browser: >
|
||||
Firefox
|
||||
summary: >
|
||||
Button elements with `width: 100%` become cropped in long tables.
|
||||
upstream_bug: >
|
||||
Mozilla#1060131
|
||||
origin: >
|
||||
Bootstrap#14320
|
||||
|
||||
-
|
||||
browser: >
|
||||
Firefox
|
||||
summary: >
|
||||
If the disabled state of a form control is changed via JavaScript, the normal state doesn't return after refreshing the page.
|
||||
upstream_bug: >
|
||||
Mozilla#654072
|
||||
origin: >
|
||||
Bootstrap#793
|
||||
|
||||
-
|
||||
browser: >
|
||||
Chrome (OS X)
|
||||
summary: >
|
||||
Clicking above `<input type="number">` increment button flashes the decrement button.
|
||||
upstream_bug: >
|
||||
Chromium#419108
|
||||
origin: >
|
||||
Offshoot of Bootstrap#8350 & Chromium#337668
|
||||
|
||||
-
|
||||
browser: >
|
||||
Chrome (OS X)
|
||||
summary: >
|
||||
Caps Lock indicator not shown in `<input type="password">` with `display: block`
|
||||
upstream_bug: >
|
||||
Chromium#460200
|
||||
origin: >
|
||||
Bootstrap#15832
|
||||
|
||||
-
|
||||
browser: >
|
||||
Chrome
|
||||
summary: >
|
||||
Focus ring of image map within a modal is displayed in the wrong location.
|
||||
upstream_bug: >
|
||||
Chromium#475128
|
||||
origin: >
|
||||
Bootstrap#16180
|
||||
|
||||
-
|
||||
browser: >
|
||||
Chrome
|
||||
summary: >
|
||||
Incorrect viewport size used for media queries when printing.
|
||||
upstream_bug: >
|
||||
Chromium#273306
|
||||
origin: >
|
||||
Bootstrap#12078
|
||||
|
||||
-
|
||||
browser: >
|
||||
Chrome
|
||||
summary: >
|
||||
CSS infinite linear animation with alpha transparency leaks memory.
|
||||
upstream_bug: >
|
||||
Chromium#429375
|
||||
origin: >
|
||||
Bootstrap#14409
|
||||
|
||||
-
|
||||
browser: >
|
||||
Chrome
|
||||
summary: >
|
||||
`:focus` `outline` style causes cursor to not be displayed when toggling a `readonly` `<input>` to read-write.
|
||||
upstream_bug: >
|
||||
Chromium#465274
|
||||
origin: >
|
||||
Bootstrap#16022
|
||||
|
||||
-
|
||||
browser: >
|
||||
Chrome
|
||||
summary: >
|
||||
`width: 1%` on nested table cell causes its table to hog horizontal space.
|
||||
upstream_bug: >
|
||||
Chromium#427994
|
||||
origin: >
|
||||
Bootstrap#16372
|
||||
|
||||
-
|
||||
browser: >
|
||||
Chrome
|
||||
summary: >
|
||||
`table-cell` borders not overlapping despite `margin-right: -1px`
|
||||
upstream_bug: >
|
||||
Chromium#534750
|
||||
origin: >
|
||||
Bootstrap#17438, Bootstrap#14237
|
||||
|
||||
-
|
||||
browser: >
|
||||
Chrome (Windows & Linux)
|
||||
summary: >
|
||||
Animation glitch when returning to inactive tab after animations occurred while tab was hidden.
|
||||
upstream_bug: >
|
||||
Chromium#449180
|
||||
origin: >
|
||||
Bootstrap#15298
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari
|
||||
summary: >
|
||||
`width: 1%` on nested table cell causes its table to hog horizontal space.
|
||||
upstream_bug: >
|
||||
WebKit#144696, Safari#20839572
|
||||
origin: >
|
||||
Bootstrap#16372
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari
|
||||
summary: >
|
||||
Incorrect placement of `position: fixed` element when it's a child of a `position: relative; left: X%;` element.
|
||||
upstream_bug: >
|
||||
WebKit#147284, Safari#21993128
|
||||
origin: >
|
||||
Bootstrap#16814
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari (OS X)
|
||||
summary: >
|
||||
Scrollbar clipped in `select[multiple]` with padding.
|
||||
upstream_bug: >
|
||||
WebKit#128489, Safari#19208483
|
||||
origin: >
|
||||
Bootstrap#12536
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari (OS X)
|
||||
summary: >
|
||||
Weird button behavior with some `<input type="number">` elements.
|
||||
upstream_bug: >
|
||||
WebKit#137269, Safari#18834768
|
||||
origin: >
|
||||
Bootstrap#8350,
|
||||
Normalize#283,
|
||||
Chromium#337668
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari (OS X)
|
||||
summary: >
|
||||
Small font size when printing webpage with fixed-width `.container`.
|
||||
upstream_bug: >
|
||||
WebKit#138192, Safari#19435018
|
||||
origin: >
|
||||
Bootstrap#14868
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari (OS X)
|
||||
summary: >
|
||||
Focus ring of image map within a modal is displayed in the wrong location.
|
||||
upstream_bug: >
|
||||
WebKit#143527, Safari#21908735
|
||||
origin: >
|
||||
Bootstrap#16180
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari (iPad)
|
||||
summary: >
|
||||
`<select>` menu on iPad causes shifting of hit-testing areas
|
||||
upstream_bug: >
|
||||
WebKit#150079, Safari#23082521
|
||||
origin: >
|
||||
Bootstrap#14975
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari (iOS)
|
||||
summary: >
|
||||
`transform: translate3d(0,0,0);` rendering bug.
|
||||
upstream_bug: >
|
||||
WebKit#138162, Safari#18804973
|
||||
origin: >
|
||||
Bootstrap#14603
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari (iOS)
|
||||
summary: >
|
||||
Text input's cursor doesn't move while scrolling the page.
|
||||
upstream_bug: >
|
||||
WebKit#138201, Safari#18819624
|
||||
origin: >
|
||||
Bootstrap#14708
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari (iOS)
|
||||
summary: >
|
||||
Can't move cursor to start of text after entering long string of text into `<input type="text">`
|
||||
upstream_bug: >
|
||||
WebKit#148061, Safari#22299624
|
||||
origin: >
|
||||
Bootstrap#16988
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari (iOS)
|
||||
summary: >
|
||||
`display: block` causes text of temporal `<input>`s to become vertically misaligned
|
||||
upstream_bug: >
|
||||
WebKit#139848, Safari#19434878
|
||||
origin: >
|
||||
Bootstrap#11266, Bootstrap#13098
|
||||
|
||||
-
|
||||
browser: >
|
||||
Safari (iOS 9+)
|
||||
summary: >
|
||||
Sometimes excessive automatic zoom is applied after opening a modal, and the user isn't allowed to zoom out
|
||||
upstream_bug: >
|
||||
WebKit#150715
|
||||
origin: >
|
||||
WebKit#138201
|
7
docs/_data/core-team.yml
Normal file
|
@ -0,0 +1,7 @@
|
|||
- name: Federico Zivolo
|
||||
user: FezVrasta
|
||||
gravatar:
|
||||
|
||||
- name: Kevin Ross
|
||||
user: rosskevin
|
||||
gravatar: 5d6a051e6dabb03bc775eb9265fad4bd
|
81
docs/_data/nav.yml
Normal file
|
@ -0,0 +1,81 @@
|
|||
- title: Getting started
|
||||
pages:
|
||||
- title: Introduction
|
||||
- title: Download
|
||||
- title: Browsers & devices
|
||||
- title: Customization
|
||||
- title: Best practices
|
||||
- title: Build tools
|
||||
- title: Release process
|
||||
|
||||
- title: Material Design
|
||||
pages:
|
||||
- title: Test
|
||||
- title: List groups
|
||||
- title: Menus
|
||||
- title: Navs
|
||||
- title: Buttons
|
||||
- title: Forms
|
||||
- title: Labels
|
||||
- title: Selections
|
||||
- title: Collapse inline
|
||||
- title: Drawers
|
||||
|
||||
- title: About
|
||||
pages:
|
||||
- title: History
|
||||
- title: Team
|
||||
- title: Credits
|
||||
- title: License
|
||||
|
||||
# change nav-docs.html if you change this name to insert "Bootstrap Reference Documentation"
|
||||
- title: Migration
|
||||
|
||||
#- title: Layout
|
||||
# pages:
|
||||
# - title: Overview
|
||||
# - title: Grid
|
||||
# - title: Media object
|
||||
# - title: Responsive utilities
|
||||
|
||||
- title: Content
|
||||
pages:
|
||||
- title: Typography
|
||||
- title: Code
|
||||
- title: Images
|
||||
- title: Tables
|
||||
- title: Figures
|
||||
|
||||
|
||||
- title: Components
|
||||
pages:
|
||||
- title: Buttons
|
||||
- title: Button group
|
||||
- title: Button dropdown
|
||||
- title: Forms
|
||||
- title: Input group
|
||||
- title: Dropdowns
|
||||
- title: Jumbotron
|
||||
- title: Label
|
||||
- title: Alerts
|
||||
- title: Card
|
||||
- title: Navs
|
||||
- title: Navbar
|
||||
- title: Breadcrumb
|
||||
- title: Pagination
|
||||
- title: Progress
|
||||
- title: List group
|
||||
- title: Modal
|
||||
- title: Scrollspy
|
||||
- title: Tooltips
|
||||
- title: Popovers
|
||||
- title: Collapse
|
||||
- title: Carousel
|
||||
- title: Utilities
|
||||
|
||||
# - title: Extend
|
||||
# pages:
|
||||
# - title: Approach
|
||||
# - title: Icon fonts
|
||||
|
||||
|
19
docs/_data/showcase.yml
Normal file
|
@ -0,0 +1,19 @@
|
|||
- name: Lyft
|
||||
url: https://www.lyft.com
|
||||
expo_url: http://expo.getbootstrap.com/2014/10/29/lyft/
|
||||
img: lyft
|
||||
|
||||
- name: Vogue
|
||||
url: http://www.vogue.com
|
||||
expo_url: http://expo.getbootstrap.com/2014/09/30/vogue/
|
||||
img: vogue
|
||||
|
||||
- name: Riot Design
|
||||
url: http://riotdesign.eu/en/
|
||||
expo_url: http://expo.getbootstrap.com/2014/03/13/riot-design/
|
||||
img: riot
|
||||
|
||||
- name: Newsweek
|
||||
url: http://www.newsweek.com/
|
||||
expo_url: http://expo.getbootstrap.com/2014/02/12/newsweek/
|
||||
img: newsweek
|
9
docs/_data/translations.yml
Normal file
|
@ -0,0 +1,9 @@
|
|||
- name: Chinese
|
||||
code: zh
|
||||
description: Bootstrap 中文文档
|
||||
url: http://v4.bootcss.com/
|
||||
|
||||
- name: Chinese
|
||||
code: zh
|
||||
description: Bootstrap 4 中文文档教程
|
||||
url: http://boot4.com/
|
8
docs/_includes/ads.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
<!-- I don't know the proper id for the carbon ads
|
||||
<div id="carbonads-container">
|
||||
<div class="carbonad">
|
||||
<div id="azcarbon"></div>
|
||||
<script>var z = document.createElement("script"); z.async = true; z.src = "http://engine.carbonads.com/z/32341/azcarbon_2_1_0_HORIZ"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(z, s);</script>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
27
docs/_includes/footer-example.html
Normal file
|
@ -0,0 +1,27 @@
|
|||
|
||||
{% 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/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>
|
||||
{% 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>
|
||||
$(function() {
|
||||
$('body').bootstrapMaterialDesign()
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
{% if page.js %}
|
||||
<script src="{{ page.js }}"></script>
|
||||
{% endif %}
|
59
docs/_includes/footer.html
Normal file
|
@ -0,0 +1,59 @@
|
|||
<footer class="bd-footer text-muted" role="contentinfo">
|
||||
<div class="container">
|
||||
<ul class="bd-footer-links">
|
||||
<li><a href="{{ site.repo }}">GitHub</a></li>
|
||||
<li><a href="{{ site.baseurl }}/examples/">Examples</a></li>
|
||||
<li><a href="{{ site.baseurl }}/about/history/">About</a></li>
|
||||
</ul>
|
||||
<p>
|
||||
Designed and built
|
||||
by Federico Zivolo <span class="text-muted">(<a href="https://github.com/FezVrasta" target="_blank">@FezVrasta</a>)</span>
|
||||
and Kevin Ross <span class="text-muted">(<a href="https://github.com/rosskevin" target="_blank">@rosskevin</a>)</span>.
|
||||
Maintained by our core team with the help of <a href="https://github.com/FezVrasta/bootstrap-material-design/graphs/contributors">our contributors</a>.
|
||||
</p>
|
||||
<p>Code licensed <a rel="license" href="https://github.com/FezVrasta/bootstrap-material-design/blob/master/LICENSE" target="_blank">MIT</a>, docs <a rel="license" href="https://creativecommons.org/licenses/by/3.0/" target="_blank">CC BY 3.0</a>.</p>
|
||||
<p>Material Design for Bootstrap v{{ site.data.version }} is a customization of <a href="http://getbootstrap.com" target="_other">Bootstrap</a> v{{ site.data.bootstrap_version }} documentation and source.</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
<script src="{{ site.baseurl }}/dist/js/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>
|
||||
{% 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>
|
||||
{% 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>
|
||||
|
||||
{% if page.layout == "docs" %}
|
||||
<!--already in docs-vendor.js -->
|
||||
<!--<script src="{{ site.baseurl }}/assets/js/vendor/jekyll-search.min.js"></script>-->
|
||||
|
||||
<script>
|
||||
SimpleJekyllSearch.init({
|
||||
searchInput: document.getElementById('search-input'),
|
||||
resultsContainer: document.getElementById('search-results'),
|
||||
searchResultTemplate: '<a class="dropdown-item" href="{url}">{title}</a>',
|
||||
noResultsText: '<div class="dropdown-item no-results">Sorry, there are no results for that search.</div>',
|
||||
json: '{{ site.baseurl }}/search.json'
|
||||
})
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
<script>
|
||||
Holder.addTheme('gray', {
|
||||
background: '#777',
|
||||
foreground: 'rgba(255,255,255,.75)',
|
||||
font: 'Roboto',
|
||||
fontweight: 'normal'
|
||||
})
|
||||
</script>
|
12
docs/_includes/header-example.html
Normal file
|
@ -0,0 +1,12 @@
|
|||
{% include meta.html %}
|
||||
|
||||
<!-- Material Design fonts -->
|
||||
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:300,400,500,700">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
||||
|
||||
<!-- Material Design for Bootstrap generic -->
|
||||
{% if site.data.minified %}
|
||||
<link href="{{ site.baseurl }}/dist/css/bootstrap-material-design.min.css" rel="stylesheet">
|
||||
{% else %}
|
||||
<link href="{{ site.baseurl }}/dist/css/bootstrap-material-design.css" rel="stylesheet">
|
||||
{% endif %}
|
30
docs/_includes/header.html
Normal file
|
@ -0,0 +1,30 @@
|
|||
{% include meta.html %}
|
||||
|
||||
<!-- Material Design fonts -->
|
||||
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:300,400,500,700">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
||||
|
||||
<!-- 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">
|
||||
{% else %}
|
||||
<link href="{{ site.baseurl }}/dist/css/docs.css" rel="stylesheet">
|
||||
{% endif %}
|
||||
|
||||
|
||||
<!-- Favicons -->
|
||||
<link rel="apple-touch-icon" href="{{ site.baseurl }}/apple-touch-icon.png">
|
||||
<link rel="icon" href="{{ site.baseurl }}/favicon.ico">
|
||||
|
||||
{% seo %}
|
||||
|
||||
<!--
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
ga('create', 'UA-146052-10', 'getbootstrap.com');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
-->
|
14
docs/_includes/meta.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="description" content="Material Design for Bootstrap">
|
||||
<meta name="keywords" content="Material Design for Bootstrap, Sass">
|
||||
<meta name="author" content="Federico Zivolo, Kevin Ross, and Bootstrap Material Design contributors">
|
||||
|
||||
<title>
|
||||
{% if page.layout == "home" %}
|
||||
{{ page.title }}
|
||||
{% else %}
|
||||
{{ page.title }} · Bootstrap Material Design
|
||||
{% endif %}
|
||||
</title>
|
64
docs/_includes/nav-docs.html
Normal file
|
@ -0,0 +1,64 @@
|
|||
<form class="bd-search hidden-sm-down">
|
||||
<input type="text" class="form-control" id="search-input" placeholder="Search..." autocomplete="off">
|
||||
<div class="dropdown-menu bd-search-results" id="search-results"></div>
|
||||
</form>
|
||||
|
||||
<nav class="bd-links" id="docsNavbarContent">
|
||||
{% for group in site.data.nav %}
|
||||
{% assign link = group.pages | first %}
|
||||
{% assign slug = group.title | downcase | replace: ' ', '-' || page.title | downcase | replace: ' ', '-' %}
|
||||
{% assign active = nil %}
|
||||
|
||||
{% if page.url contains slug %}
|
||||
{% assign active = 'active' %}
|
||||
{% endif %}
|
||||
|
||||
<div class="bd-toc-item {{ active }}">
|
||||
{% if slug == "examples" %}
|
||||
<a class="bd-toc-link" href="{{ site.baseurl }}/{{ group.title | downcase | replace: ' ', '-' }}/">
|
||||
{% else %}
|
||||
<a class="bd-toc-link" href="{{ site.baseurl }}/{{ group.title | downcase | replace: ' ', '-' }}/{{ link.title | downcase | replace: ' ', '-' || page.title | downcase | replace: ' ', '-' }}">
|
||||
{% endif %}
|
||||
{{ group.title }}
|
||||
</a>
|
||||
|
||||
<ul class="nav bd-sidenav">
|
||||
{% for doc in group.pages %}
|
||||
{% assign slug = doc.title | downcase | replace: ' ', '-' | replace:'-&-','-' %}
|
||||
{% assign active = nil %}
|
||||
|
||||
{% if page.url contains slug %}
|
||||
{% assign active = 'active bd-sidenav-active' %}
|
||||
{% endif %}
|
||||
|
||||
<li class="{{ active }}">
|
||||
<a href="{{ site.baseurl }}/{{ group.title | downcase | replace: ' ', '-' }}/{{ doc.title | downcase | replace: ' ', '-' | replace:'-&-','-' }}">
|
||||
{{ doc.title }}
|
||||
</a>
|
||||
|
||||
{% comment %}
|
||||
{% unless doc.sections == nil %}
|
||||
<ul class="nav">
|
||||
{% for section in doc.sections %}
|
||||
<li>
|
||||
<a href="#{{ section.title | downcase | replace: ' ', '-' }}">
|
||||
{{ section.title }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endunless %}
|
||||
{% endcomment %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{% if group.title == "Migration" %}
|
||||
<div class="bd-toc-item mdb-toc-item-reference">
|
||||
<div>Bootstrap Reference Documentation</div>
|
||||
<hr>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</nav>
|
61
docs/_includes/nav-home.html
Normal file
|
@ -0,0 +1,61 @@
|
|||
<header class="navbar navbar-light navbar-static-top bd-navbar" role="banner">
|
||||
{% comment %}
|
||||
<nav class="nav navbar-nav pull-xs-right">
|
||||
<div class="nav-item dropdown">
|
||||
<a class="nav-item nav-link dropdown-toggle" href="#" id="bd-versions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
v{{ site.data.version }}
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="bd-versions">
|
||||
<a class="dropdown-item" href="#">v4.0.0-alpha</a>
|
||||
<a class="dropdown-item" href="#">v3.3.5</a>
|
||||
<a class="dropdown-item" href="#">v3.3.4</a>
|
||||
<a class="dropdown-item" href="#">v3.3.2</a>
|
||||
<a class="dropdown-item" href="#">v3.3.1</a>
|
||||
<a class="dropdown-item" href="#">v3.3.0</a>
|
||||
<a class="dropdown-item" href="#">v3.2.0</a>
|
||||
<a class="dropdown-item" href="#">v3.1.1</a>
|
||||
<a class="dropdown-item" href="#">v3.1.0</a>
|
||||
<a class="dropdown-item" href="#">v3.0.3</a>
|
||||
<a class="dropdown-item" href="#">v3.0.2</a>
|
||||
<a class="dropdown-item" href="#">v3.0.1</a>
|
||||
<a class="dropdown-item" href="#">v3.0.0</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
{% endcomment %}
|
||||
|
||||
<nav>
|
||||
<div class="clearfix">
|
||||
<button class="navbar-toggler pull-xs-right hidden-sm-up" type="button" data-toggle="collapse" data-target="#bd-main-nav" aria-controls="bd-main-nav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
☰
|
||||
</button>
|
||||
<a class="navbar-brand hidden-sm-up" href="{{ site.baseurl }}/">
|
||||
Material Design for Bootstrap
|
||||
</a>
|
||||
</div>
|
||||
<div class="collapse navbar-toggleable-xs" id="bd-main-nav">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="nav-item active">
|
||||
<a class="nav-item nav-link {% if page.layout == "home" %}active{% endif %}" href="{{ site.baseurl }}/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Material Design for Bootstrap');">Material Design for Bootstrap</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-item nav-link {% if page.layout == "docs" %}active{% endif %}" href="{{ site.baseurl }}/getting-started/introduction/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Docs');">Documentation</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-item nav-link {% if page.title == "Examples" %}active{% endif %}" href="{{ site.baseurl }}/examples/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Examples');">Examples</a>
|
||||
</li>
|
||||
<!--
|
||||
<li class="nav-item">
|
||||
<a class="nav-item nav-link" href="{{ site.themes }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Themes');">Themes</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-item nav-link" href="{{ site.expo }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Expo');">Expo</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-item nav-link" href="{{ site.blog }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Blog');">Blog</a>
|
||||
</li>
|
||||
-->
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
46
docs/_includes/page-headers.html
Normal file
|
@ -0,0 +1,46 @@
|
|||
{% if page.group == "getting-started" %}
|
||||
<h1>Getting started</h1>
|
||||
<p class="lead">
|
||||
An overview of Material Design for Bootstrap, including how to download and use it, some basic templates and examples, and more.
|
||||
</p>
|
||||
{% elsif page.group == "layout" %}
|
||||
<h1>Layout</h1>
|
||||
<p class="lead">
|
||||
Options for structuring your pages with Material Design for Bootstrap, including global styles and more.
|
||||
</p>
|
||||
{% elsif page.group == "content" %}
|
||||
<h1>Content</h1>
|
||||
<p class="lead">
|
||||
Styles for displaying content with some of the most commonly used HTML elements, including typography, tables, and more.
|
||||
</p>
|
||||
{% elsif page.group == "material-design" %}
|
||||
<h1>Material Design</h1>
|
||||
<p class="lead">
|
||||
A quick reference display for Material Design for Bootstrap components with additional options.
|
||||
</p>
|
||||
{% elsif page.group == "components" %}
|
||||
<h1>Components</h1>
|
||||
<p class="lead">
|
||||
Over a dozen reusable components built to provide buttons, dropdowns, input groups, navigation, alerts, and much more.
|
||||
</p>
|
||||
{% elsif page.group == "javascript" %}
|
||||
<h1>JavaScript plugins</h1>
|
||||
<p class="lead">
|
||||
Bring Material Design for Bootstrap's components to life with jQuery plugins. Easily include them all, or one by one.
|
||||
</p>
|
||||
{% elsif page.group == "about" %}
|
||||
<h1>About</h1>
|
||||
<p class="lead">
|
||||
Learn about the project's history and meet the maintaining team.
|
||||
</p>
|
||||
{% elsif page.group == "migration" %}
|
||||
<h1>Migration</h1>
|
||||
<p class="lead">
|
||||
Guidance on how to upgrade from Material Design for Bootstrap v3.x to v4.x with emphasis on major changes, what's new, and what's been removed.
|
||||
</p>
|
||||
{% elsif page.group == "browser-bugs" %}
|
||||
<h1>Wall of browser bugs</h1>
|
||||
<p class="lead">
|
||||
A list of the browser bugs that Material Design for Bootstrap is currently grappling with.
|
||||
</p>
|
||||
{% endif %}
|
21
docs/_layouts/default.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% include header.html %}
|
||||
</head>
|
||||
<body class="bd-docs" data-spy="scroll" data-target=".bd-sidenav-active">
|
||||
<a id="skippy" class="sr-only sr-only-focusable" href="#content">
|
||||
<div class="container">
|
||||
<span class="skiplink-text">Skip to main content</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
{% include nav-home.html %}
|
||||
|
||||
<div id="content">
|
||||
{{ content }}
|
||||
</div>
|
||||
|
||||
{% include footer.html %}
|
||||
</body>
|
||||
</html>
|
36
docs/_layouts/docs.html
Normal file
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% include header.html %}
|
||||
</head>
|
||||
<body class="bd-docs" data-spy="scroll" data-target=".bd-sidenav-active">
|
||||
<a id="skippy" class="sr-only sr-only-focusable" href="#content">
|
||||
<div class="container">
|
||||
<span class="skiplink-text">Skip to main content</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
{% include nav-home.html %}
|
||||
|
||||
<div class="bd-pageheader">
|
||||
<div class="container">
|
||||
{% include page-headers.html %}
|
||||
{% include ads.html %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-3 col-md-push-9 bd-sidebar">
|
||||
{% include nav-docs.html %}
|
||||
</div>
|
||||
<div class="col-md-9 col-md-pull-3 bd-content">
|
||||
<h1 class="bd-title" id="content">{{ page.title }}</h1>
|
||||
{{ content }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include footer.html %}
|
||||
</body>
|
||||
</html>
|
11
docs/_layouts/example.html
Normal file
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% include header-example.html %}
|
||||
</head>
|
||||
<body>
|
||||
{{ content }}
|
||||
|
||||
{% include footer-example.html %}
|
||||
</body>
|
||||
</html>
|
19
docs/_layouts/home.html
Normal file
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% include header.html %}
|
||||
</head>
|
||||
<body class="bd-home">
|
||||
<a id="skippy" class="sr-only sr-only-focusable" href="#content">
|
||||
<div class="container">
|
||||
<span class="skiplink-text">Skip to main content</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
{% include nav-home.html %}
|
||||
|
||||
{{ content }}
|
||||
|
||||
{% include footer.html %}
|
||||
</body>
|
||||
</html>
|
17
docs/_layouts/simple.html
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
<div class="bd-pageheader text-xs-center text-sm-left">
|
||||
<div class="container">
|
||||
<h1>{{ page.title }}</h1>
|
||||
<p class="lead">
|
||||
Quickly get a project started with any of our examples ranging from using parts of the framework to custom components and layouts.
|
||||
</p>
|
||||
{% include ads.html %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container bd-content">
|
||||
{{ content }}
|
||||
</div>
|
25
docs/_plugins/bugify.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
module Jekyll
|
||||
module BugFilter
|
||||
def bugify(input)
|
||||
upstream_map = {
|
||||
"Bootstrap" => "https://github.com/twbs/bootstrap/issues/",
|
||||
"IE" => ["https://connect.microsoft.com/IE/feedback/details/", "IE bug"],
|
||||
"Mozilla" => ["https://bugzilla.mozilla.org/show_bug.cgi?id=", "Mozilla bug"],
|
||||
"Chromium" => ["https://code.google.com/p/chromium/issues/detail?id=", "Chromium issue"],
|
||||
"WebKit" => ["https://bugs.webkit.org/show_bug.cgi?id=", "WebKit bug"],
|
||||
"Safari" => ["https://openradar.appspot.com/", "Apple Safari Radar"],
|
||||
"Normalize" => ["https://github.com/necolas/normalize.css/issues/", "Normalize"]
|
||||
}
|
||||
|
||||
upstream_map.each do |key, data|
|
||||
url = data.is_a?(Array) ? data[0] : data
|
||||
label = data.is_a?(Array) ? "#{data[1]} " : ""
|
||||
input = input.gsub(/#{key}#(\d+)/, "<a href=\"#{url}\\1\">#{label}#\\1</a>")
|
||||
end
|
||||
|
||||
return input
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Liquid::Template.register_filter(Jekyll::BugFilter)
|
28
docs/_plugins/callout.rb
Normal file
|
@ -0,0 +1,28 @@
|
|||
# Source: https://stackoverflow.com/questions/19169849/how-to-get-markdown-processed-content-in-jekyll-tag-plugin
|
||||
|
||||
module Jekyll
|
||||
module Tags
|
||||
class CalloutTag < Liquid::Block
|
||||
|
||||
def initialize(tag_name, type, tokens)
|
||||
super
|
||||
type.strip!
|
||||
if %w(info danger warning).include?(type)
|
||||
@type = type
|
||||
else
|
||||
puts "#{type} callout not supported. Defaulting to info"
|
||||
@type = "info"
|
||||
end
|
||||
end
|
||||
|
||||
def render(context)
|
||||
site = context.registers[:site]
|
||||
converter = site.find_converter_instance(::Jekyll::Converters::Markdown)
|
||||
output = converter.convert(super(context))
|
||||
"<div class=\"bd-callout bd-callout-#{@type}\">#{output}</div>"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Liquid::Template.register_tag('callout', Jekyll::Tags::CalloutTag)
|
85
docs/_plugins/highlight_alt.rb
Normal file
|
@ -0,0 +1,85 @@
|
|||
module Jekyll
|
||||
module Tags
|
||||
class ExampleBlock < Liquid::Block
|
||||
include Liquid::StandardFilters
|
||||
|
||||
# The regular expression syntax checker. Start with the language specifier.
|
||||
# Follow that by zero or more space separated options that take one of three
|
||||
# forms: name, name=value, or name="<quoted list>"
|
||||
#
|
||||
# <quoted list> is a space-separated list of numbers
|
||||
SYNTAX = /^([a-zA-Z0-9.+#-]+)((\s+\w+(=((\w|[0-9_-])+|"([0-9]+\s)*[0-9]+"))?)*)$/
|
||||
|
||||
def initialize(tag_name, markup, tokens)
|
||||
super
|
||||
if markup.strip =~ SYNTAX
|
||||
@lang = $1.downcase
|
||||
@options = {}
|
||||
if defined?($2) && $2 != ''
|
||||
# Split along 3 possible forms -- key="<quoted list>", key=value, or key
|
||||
$2.scan(/(?:\w+(?:=(?:(?:\w|[0-9_-])+|"[^"]*")?)?)/) do |opt|
|
||||
key, value = opt.split('=')
|
||||
# If a quoted list, convert to array
|
||||
if value && value.include?("\"")
|
||||
value.gsub!(/"/, "")
|
||||
value = value.split
|
||||
end
|
||||
@options[key.to_sym] = value || true
|
||||
end
|
||||
end
|
||||
@options[:linenos] = "inline" if @options.key?(:linenos) and @options[:linenos] == true
|
||||
else
|
||||
raise SyntaxError.new <<-eos
|
||||
Syntax Error in tag 'highlight' while parsing the following markup:
|
||||
|
||||
#{markup}
|
||||
|
||||
Valid syntax: highlight <lang> [linenos]
|
||||
eos
|
||||
end
|
||||
end
|
||||
|
||||
def render(context)
|
||||
prefix = context["highlighter_prefix"] || ""
|
||||
suffix = context["highlighter_suffix"] || ""
|
||||
code = super.to_s.strip
|
||||
|
||||
output = case context.registers[:site].highlighter
|
||||
|
||||
when 'rouge'
|
||||
render_rouge(code)
|
||||
end
|
||||
|
||||
rendered_output = example(code) + add_code_tag(output)
|
||||
prefix + rendered_output + suffix
|
||||
end
|
||||
|
||||
def example(output)
|
||||
"<div class=\"bd-example\" data-example-id=\"#{@options[:id]}\">\n#{output}\n</div>"
|
||||
end
|
||||
|
||||
def remove_holderjs(code)
|
||||
code = code.gsub(/data-src="holder.js.+?"/, 'src="..."')
|
||||
end
|
||||
|
||||
def render_rouge(code)
|
||||
require 'rouge'
|
||||
formatter = Rouge::Formatters::HTML.new(line_numbers: @options[:linenos], wrap: false)
|
||||
lexer = Rouge::Lexer.find_fancy(@lang, code) || Rouge::Lexers::PlainText
|
||||
code = remove_holderjs(code)
|
||||
code = formatter.format(lexer.lex(code))
|
||||
"<div class=\"highlight\"><pre>#{code}</pre></div>"
|
||||
end
|
||||
|
||||
def add_code_tag(code)
|
||||
# Add nested <code> tags to code blocks
|
||||
code = code.sub(/<pre>\n*/,'<pre><code class="language-' + @lang.to_s.gsub("+", "-") + '" data-lang="' + @lang.to_s + '">')
|
||||
code = code.sub(/\n*<\/pre>/,"</code></pre>")
|
||||
code.strip
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Liquid::Template.register_tag('example', Jekyll::Tags::ExampleBlock)
|
20
docs/_plugins/markdown-block.rb
Normal file
|
@ -0,0 +1,20 @@
|
|||
module Jekyll
|
||||
class MarkdownBlock < Liquid::Block
|
||||
alias_method :render_block, :render
|
||||
|
||||
def initialize(tag_name, markup, tokens)
|
||||
super
|
||||
end
|
||||
|
||||
# Uses the default Jekyll markdown parser to
|
||||
# parse the contents of this block
|
||||
#
|
||||
def render(context)
|
||||
site = context.registers[:site]
|
||||
converter = site.find_converter_instance(::Jekyll::Converters::Markdown)
|
||||
converter.convert(render_block(context))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Liquid::Template.register_tag('markdown', Jekyll::MarkdownBlock)
|
94
docs/_plugins/variables.rb
Normal file
|
@ -0,0 +1,94 @@
|
|||
require 'json'
|
||||
require 'yaml'
|
||||
|
||||
module Variables
|
||||
class Generator < Jekyll::Generator
|
||||
safe true
|
||||
|
||||
def generate(site)
|
||||
|
||||
# indicate to use min or development assets
|
||||
baseurl = site.config['baseurl']
|
||||
minified = true
|
||||
if baseurl.eql? ''
|
||||
minified = false
|
||||
end
|
||||
|
||||
# minified = true # debug minified
|
||||
site.data['minified'] = minified
|
||||
|
||||
metadata_files = {
|
||||
'package' => '../package.json',
|
||||
'npm_bootstrap' => '../node_modules/bootstrap/package.json',
|
||||
'npm_jquery' => '../node_modules/jquery/package.json',
|
||||
'npm_tether' => '../node_modules/tether/package.json'
|
||||
}
|
||||
|
||||
metadata_files.each do |metadata, path|
|
||||
contents = JSON.parse(File.read(File.join(site.source, path)))
|
||||
site.data[metadata] = contents
|
||||
end
|
||||
|
||||
# validate and provide some quick access to common variables
|
||||
name = site.data['package']['name']
|
||||
assert_not_nil :name, name
|
||||
|
||||
version = site.data['package']['version']
|
||||
assert_not_nil :version, version
|
||||
|
||||
bootstrap_version = site.data['npm_bootstrap']['version']
|
||||
assert_not_nil :bootstrap_version, bootstrap_version
|
||||
|
||||
if (bootstrap_version.include?('rosskevin') || bootstrap_version.include?('alpha'))
|
||||
# // not this
|
||||
# https://cdn.rawgit.com/twbs/bootstrap/4.0.0-alpha.2/dist/js/bootstrap.js
|
||||
|
||||
# // this
|
||||
# https://cdn.rawgit.com/twbs/bootstrap/v4-dev/dist/js/bootstrap.js
|
||||
|
||||
bootstrap_version = 'v4-dev' # hack since we are using a rosskevin flex branch
|
||||
end
|
||||
|
||||
tether_version = site.data['npm_tether']['version']
|
||||
assert_not_nil :tether_version, tether_version
|
||||
|
||||
jquery_version = site.data['npm_jquery']['version']
|
||||
assert_not_nil :jquery_version, jquery_version
|
||||
|
||||
site.data['name'] = name
|
||||
site.data['version'] = version
|
||||
site.data['bootstrap_version'] = bootstrap_version
|
||||
site.data['tether_version'] = tether_version
|
||||
site.data['jquery_version'] = jquery_version
|
||||
|
||||
# fabricate the archive and release links based on the site.repo and version
|
||||
repo = site.config['repo']
|
||||
site.data['download'] = {
|
||||
'source' => "#{repo}/archive/v#{version}.zip",
|
||||
'dist' => "#{repo}/releases/download/v#{version}/#{name}-#{version}-dist.zip"
|
||||
}
|
||||
|
||||
site.data['cdn'] = {
|
||||
'jquery' => site.config['cdn']['jquery'].gsub(/VERSION/, jquery_version),
|
||||
'bootstrap' => site.config['cdn']['bootstrap'].gsub(/VERSION/, bootstrap_version),
|
||||
'tether' => site.config['cdn']['tether'].gsub(/VERSION/, tether_version)
|
||||
}
|
||||
|
||||
#
|
||||
# puts "\n---------------------"
|
||||
# puts "site.config: #{site.config.to_yaml}"
|
||||
# puts "baseurl: #{baseurl}"
|
||||
# puts "minified: #{site.data['minified']}"
|
||||
|
||||
# puts "site: #{site.to_yaml}"
|
||||
# puts site.data[:package]['version']
|
||||
# puts site.data.to_yaml
|
||||
# puts repo
|
||||
# puts version
|
||||
end
|
||||
|
||||
def assert_not_nil(name, value)
|
||||
raise "Expected #{name} to be not nil." if value.nil?
|
||||
end
|
||||
end
|
||||
end
|
17
docs/about/credits.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
layout: docs
|
||||
title: Credits
|
||||
group: about
|
||||
---
|
||||
|
||||
<blockquote class="blockquote">
|
||||
<p class="m-b-0">If I have seen further, it is by standing on the shoulders of giants.</p>
|
||||
<footer class="blockquote-footer">Sir Isaac Newton</footer>
|
||||
</blockquote>
|
||||
|
||||
|
||||
This project has drawn significant inspiration or outright code (attributed in the LICENSE.md) from other open source projects. We take this opportunity to thank these other communities, companies and individual developers for their hard work, because we would not be here without them:
|
||||
|
||||
- [Bootstrap](http://getbootstrap.com) - thank you for not only for the Bootstrap code itself, but the project setup and documentation sources as well.
|
||||
- [Google Material Design Specification](https://www.google.com/design/spec/material-design/introduction.html) - thank you for the effort to put forth a deeply researched, functional, and beautiful design standard.
|
||||
- [Material Design Lite](http://www.getmdl.io/) - thank you for your effort, we have drawn inspiration for certain components and examples directly from your codebase.
|
9
docs/about/history.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
layout: docs
|
||||
title: History
|
||||
group: about
|
||||
redirect_from: "/about/"
|
||||
---
|
||||
|
||||
Originally created by Federico Zivolo [@FezVrasta](https://github.com/FezVrasta) in late 2014, Material Design for Bootstrap has become
|
||||
the most popular Material Design implementation for Bootstrap in the world.
|
32
docs/about/license.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
layout: docs
|
||||
title: License FAQs
|
||||
group: about
|
||||
---
|
||||
|
||||
Material Design for Bootstrap is released under the MIT license and is copyright {{ site.time | date: "%Y" }} Federico Zivolo.
|
||||
Boiled down to smaller chunks, it can be described with the following conditions.
|
||||
|
||||
#### It requires you to:
|
||||
|
||||
* Keep the license and copyright notice included in Material Design for Bootstrap's files when you use them in your works
|
||||
|
||||
#### It permits you to:
|
||||
|
||||
- Freely download and use Material Design for Bootstrap, in whole or in part, for personal, private, company internal, or commercial purposes
|
||||
- Use Material Design for Bootstrap in packages or distributions that you create
|
||||
- Modify the source code
|
||||
- Grant a sublicense to modify and distribute Material Design for Bootstrap to third parties not included in the license
|
||||
|
||||
#### It forbids you to:
|
||||
|
||||
- Hold the authors and license owners liable for damages as Material Design for Bootstrap is provided without warranty
|
||||
- Hold the creators or copyright holders of Material Design for Bootstrap liable
|
||||
- Redistribute any piece of Material Design for Bootstrap without proper attribution
|
||||
|
||||
#### It does not require you to:
|
||||
|
||||
- Include the source of Material Design for Bootstrap itself, or of any modifications you may have made to it, in any redistribution you may assemble that includes it
|
||||
- Submit changes that you make to Material Design for Bootstrap back to the Material Design for Bootstrap project (though such feedback is encouraged)
|
||||
|
||||
The full Material Design for Bootstrap license is located [in the project repository]({{ site.repo }}/blob/master/LICENSE.md) for more information.
|
22
docs/about/team.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
layout: docs
|
||||
title: Team
|
||||
group: about
|
||||
---
|
||||
|
||||
Material Design for Bootstrap is maintained by a small group of invaluable core contributors,
|
||||
with the support and involvement of our community.
|
||||
|
||||
<div class="list-group bd-team">
|
||||
{% for member in site.data.core-team %}
|
||||
<div class="list-group-item">
|
||||
<iframe class="github-btn" src="https://ghbtns.com/github-btn.html?user={{ member.user }}&type=follow"></iframe>
|
||||
<a class="team-member" href="https://github.com/{{ member.user }}">
|
||||
<img src="https://secure.gravatar.com/avatar/{{ member.gravatar }}" alt="@{{ member.user }}" width="32" height="32">
|
||||
<strong>{{ member.name }}</strong> <small>@{{ member.user }}</small>
|
||||
</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
Get involved with Bootstrap development by [opening an issue](https://github.com/FezVrasta/bootstrap-material-design/issues/new) or submitting a pull request. Read our [contributing guidelines](https://github.com/FezVrasta/bootstrap-material-design/blob/master/CONTRIBUTING.md) for information on how we develop.
|
BIN
docs/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
docs/assets/img/bs-themes.png
Normal file
After Width: | Height: | Size: 176 KiB |
BIN
docs/assets/img/components.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
docs/assets/img/devices.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
docs/assets/img/expo-lyft.jpg
Normal file
After Width: | Height: | Size: 156 KiB |
BIN
docs/assets/img/expo-newsweek.jpg
Normal file
After Width: | Height: | Size: 197 KiB |
BIN
docs/assets/img/expo-riot.jpg
Normal file
After Width: | Height: | Size: 158 KiB |
BIN
docs/assets/img/expo-vogue.jpg
Normal file
After Width: | Height: | Size: 194 KiB |
BIN
docs/assets/img/gittip-button.jpg
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
docs/assets/img/issues-button.jpg
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
docs/assets/img/sass.png
Normal file
After Width: | Height: | Size: 11 KiB |
51
docs/assets/js/ie-emulation-modes-warning.js
Normal file
|
@ -0,0 +1,51 @@
|
|||
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
|
||||
// IT'S JUST JUNK FOR OUR DOCS!
|
||||
// ++++++++++++++++++++++++++++++++++++++++++
|
||||
/*!
|
||||
* Copyright 2014-2015 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
|
||||
* details, see https://creativecommons.org/licenses/by/3.0/.
|
||||
*/
|
||||
// Intended to prevent false-positive bug reports about Bootstrap not working properly in old versions of IE due to folks testing using IE's unreliable emulation modes.
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
function emulatedIEMajorVersion() {
|
||||
var groups = /MSIE ([0-9.]+)/.exec(window.navigator.userAgent)
|
||||
if (groups === null) {
|
||||
return null
|
||||
}
|
||||
var ieVersionNum = parseInt(groups[1], 10)
|
||||
var ieMajorVersion = Math.floor(ieVersionNum)
|
||||
return ieMajorVersion
|
||||
}
|
||||
|
||||
function actualNonEmulatedIEMajorVersion() {
|
||||
// Detects the actual version of IE in use, even if it's in an older-IE emulation mode.
|
||||
// IE JavaScript conditional compilation docs: https://msdn.microsoft.com/library/121hztk3%28v=vs.94%29.aspx
|
||||
// @cc_on docs: https://msdn.microsoft.com/library/8ka90k2e%28v=vs.94%29.aspx
|
||||
var jscriptVersion = new Function('/*@cc_on return @_jscript_version; @*/')()
|
||||
if (jscriptVersion === undefined) {
|
||||
return 11 // IE11+ not in emulation mode
|
||||
}
|
||||
if (jscriptVersion < 9) {
|
||||
return 8 // IE8 (or lower; haven't tested on IE<8)
|
||||
}
|
||||
return jscriptVersion // IE9 or IE10 in any mode, or IE11 in non-IE11 mode
|
||||
}
|
||||
|
||||
var ua = window.navigator.userAgent
|
||||
if (ua.indexOf('Opera') > -1 || ua.indexOf('Presto') > -1) {
|
||||
return // Opera, which might pretend to be IE
|
||||
}
|
||||
var emulated = emulatedIEMajorVersion()
|
||||
if (emulated === null) {
|
||||
return // Not IE
|
||||
}
|
||||
var nonEmulated = actualNonEmulatedIEMajorVersion()
|
||||
|
||||
if (emulated !== nonEmulated) {
|
||||
window.alert('WARNING: You appear to be using IE' + nonEmulated + ' in IE' + emulated + ' emulation mode.\nIE emulation modes can behave significantly differently from ACTUAL older versions of IE.\nPLEASE DON\'T FILE BOOTSTRAP BUGS based on testing in IE emulation modes!')
|
||||
}
|
||||
})();
|
23
docs/assets/js/ie10-viewport-bug-workaround.js
Normal file
|
@ -0,0 +1,23 @@
|
|||
/*!
|
||||
* IE10 viewport hack for Surface/desktop Windows 8 bug
|
||||
* Copyright 2014-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
// See the Getting Started docs for more information:
|
||||
// http://getbootstrap.com/getting-started/#support-ie10-width
|
||||
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
|
||||
var msViewportStyle = document.createElement('style')
|
||||
msViewportStyle.appendChild(
|
||||
document.createTextNode(
|
||||
'@-ms-viewport{width:auto!important}'
|
||||
)
|
||||
)
|
||||
document.head.appendChild(msViewportStyle)
|
||||
}
|
||||
|
||||
})();
|
132
docs/assets/js/src/index.js
Normal file
|
@ -0,0 +1,132 @@
|
|||
import Style from './style'
|
||||
import Clipboard from 'clipboard'
|
||||
import anchors from 'anchor'
|
||||
|
||||
// import all the mdb code
|
||||
import '../../../../js/src/index' // eslint-disable-line no-unused-vars
|
||||
|
||||
class Application {
|
||||
|
||||
constructor() {
|
||||
}
|
||||
|
||||
initializeDemos() {
|
||||
// Tooltip and popover demos
|
||||
$('.tooltip-demo').tooltip({
|
||||
selector: '[data-toggle="tooltip"]',
|
||||
container: 'body'
|
||||
})
|
||||
|
||||
$('[data-toggle="popover"]').popover()
|
||||
|
||||
// Demos within modals
|
||||
$('.tooltip-test').tooltip()
|
||||
$('.popover-test').popover()
|
||||
|
||||
// Indeterminate checkbox example
|
||||
$('.bd-example-indeterminate [type="checkbox"]').prop('indeterminate', true)
|
||||
|
||||
// Disable empty links in docs examples
|
||||
$('.bd-example [href="#"]').click((e) => {
|
||||
e.preventDefault()
|
||||
})
|
||||
|
||||
// Insert copy to clipboard button before .highlight
|
||||
$('.highlight').each(function () {
|
||||
let btnHtml = '<div class="bd-clipboard"><span class="btn-clipboard" title="Copy to clipboard">Copy</span></div>'
|
||||
$(this).before(btnHtml)
|
||||
$('.btn-clipboard').tooltip()
|
||||
})
|
||||
|
||||
let clipboard = new Clipboard('.btn-clipboard', {
|
||||
target: (trigger) => {
|
||||
return trigger.parentNode.nextElementSibling
|
||||
}
|
||||
})
|
||||
|
||||
clipboard.on('success', (e) => {
|
||||
$(e.trigger)
|
||||
.attr('title', 'Copied!')
|
||||
.tooltip('_fixTitle')
|
||||
.tooltip('show')
|
||||
.attr('title', 'Copy to clipboard')
|
||||
.tooltip('_fixTitle')
|
||||
|
||||
e.clearSelection()
|
||||
})
|
||||
|
||||
clipboard.on('error', (e) => {
|
||||
let fallbackMsg = /Mac/i.test(navigator.userAgent) ? 'Press \u2318 to copy' : 'Press Ctrl-C to copy'
|
||||
|
||||
$(e.trigger)
|
||||
.attr('title', fallbackMsg)
|
||||
.tooltip('_fixTitle')
|
||||
.tooltip('show')
|
||||
.attr('title', 'Copy to clipboard')
|
||||
.tooltip('_fixTitle')
|
||||
})
|
||||
|
||||
anchors.options.placement = 'left' // eslint-disable-line no-console
|
||||
anchors.add('.bd-content > h1, .bd-content > h2, .bd-content > h3, .bd-content > h4, .bd-content > h5')
|
||||
}
|
||||
|
||||
// Add dynamic display of font properties to the existing documentation
|
||||
displayTypographyProperties() {
|
||||
// headings
|
||||
Style.displayFontSizeWeightColor($('.bd-example-type td > *:not(.type-info)'), ($element, $text) => {
|
||||
let $target = $element.closest('tr').find('td.type-info')
|
||||
$target.text('')
|
||||
$target.append($text)
|
||||
}, false, true)
|
||||
|
||||
|
||||
// display headings
|
||||
Style.displayFontSizeWeightColor($('h2#display-headings').next().next().find('h1'), ($element, $text) => {
|
||||
let $tr = $element.closest('tr')
|
||||
let $td = $(`<td class="type-info">`)
|
||||
$tr.append($td)
|
||||
$td.append($text)
|
||||
|
||||
}, false, true)
|
||||
|
||||
// lead headings
|
||||
Style.displayFontSizeWeightColor($('h2#lead').next().next().find('p'), ($element, $text) => {
|
||||
$element.append($text)
|
||||
|
||||
}, false, true)
|
||||
|
||||
// inline text elements
|
||||
Style.displayFontSizeWeightColor($(`p:contains(Styling for common inline HTML5 elements.)`).next().find('p > *'), ($element, $text) => {
|
||||
|
||||
let $p = $element.parent()
|
||||
let $parent = $p.parent()
|
||||
$p.detach()
|
||||
|
||||
// create a row with two columns to display the text properties
|
||||
let $row = $(`<div class='row'></div>`)
|
||||
$parent.append($row)
|
||||
|
||||
let $col = $(`<div class='col-sm-8'></div>`)
|
||||
$col.append($p)
|
||||
$row.append($col)
|
||||
|
||||
$col = $(`<div class='col-sm-4'></div>`)
|
||||
$col.append($text)
|
||||
$row.append($col)
|
||||
}, false, true)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$(() => {
|
||||
let app = new Application()
|
||||
app.displayTypographyProperties()
|
||||
$('.btn-clipboard').mdbRipples()
|
||||
|
||||
// FIXME: file inputs seems to be in flux, delete the offending one for now.
|
||||
$('#exampleInputFile').closest('.form-group').detach()
|
||||
|
||||
$('body').bootstrapMaterialDesign()
|
||||
|
||||
app.initializeDemos()
|
||||
})
|
70
docs/assets/js/src/style.js
Normal file
|
@ -0,0 +1,70 @@
|
|||
/**
|
||||
* Dynamically display style properties i.e. font
|
||||
*/
|
||||
const Style = (($) => {
|
||||
|
||||
/**
|
||||
* ------------------------------------------------------------------------
|
||||
* Constants
|
||||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
// const Default = {
|
||||
// template: ``
|
||||
// }
|
||||
|
||||
/**
|
||||
* ------------------------------------------------------------------------
|
||||
* Class Definition
|
||||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
class Style {
|
||||
|
||||
constructor() {
|
||||
|
||||
}
|
||||
|
||||
static rgbToHex(rgba) {
|
||||
rgba = rgba.match(/\d+/g)
|
||||
let hex = `#${String(`0${Number(rgba[0]).toString(16)}`).slice(-2)}${String(`0${Number(rgba[1]).toString(16)}`).slice(-2)}${String(`0${Number(rgba[2]).toString(16)}`).slice(-2)}`
|
||||
return hex
|
||||
}
|
||||
|
||||
// Function to display font properties dynamically discovered
|
||||
static displayFontSizeWeightColor($elements, writeFn, bg = false, wrapWithCode = false) {
|
||||
return $elements.each((index, element) => {
|
||||
let $element = $(element)
|
||||
|
||||
let rgbaBgColor = $element.css('background-color')
|
||||
// let hexBgColor = Style.rgbToHex(rgbaBgColor)
|
||||
|
||||
let rgbaColor = $element.css('color')
|
||||
// let hexColor = Style.rgbToHex(rgbaColor)
|
||||
|
||||
let text = ''
|
||||
|
||||
if (wrapWithCode) {
|
||||
text += `<code style='font-size: 10px; font-weight: 500; letter-spacing: normal'>`
|
||||
}
|
||||
|
||||
// text += `${$element.css('font-size')} ${$element.css('font-weight')} ${hexColor}`
|
||||
text += `<span>${$element.css('font-size')} ${$element.css('font-weight')} <span style='white-space: nowrap'>${rgbaColor}</span></span>`
|
||||
if (bg) {
|
||||
// text += ` bg: ${hexBgColor} `
|
||||
text += ` bg: ${rgbaBgColor} `
|
||||
}
|
||||
|
||||
if (wrapWithCode) {
|
||||
text += `</code>`
|
||||
}
|
||||
|
||||
writeFn($element, $(text))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return Style
|
||||
|
||||
})(jQuery)
|
||||
|
||||
export default Style
|
6
docs/assets/js/vendor/anchor.min.js
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
/*!
|
||||
* AnchorJS - v2.0.0 - 2015-10-31
|
||||
* https://github.com/bryanbraun/anchorjs
|
||||
* Copyright (c) 2015 Bryan Braun; Licensed MIT
|
||||
*/
|
||||
function AnchorJS(A){"use strict";function t(A){o.options.icon=o.options.hasOwnProperty("icon")?A.icon:"",o.options.visible=o.options.hasOwnProperty("visible")?A.visible:"hover",o.options.placement=o.options.hasOwnProperty("placement")?A.placement:"right",o.options.class=o.options.hasOwnProperty("class")?A.class:"",o.options.truncate=o.options.hasOwnProperty("truncate")?Math.floor(A.truncate):64}function e(){if(null===document.head.querySelector("style.anchorjs")){var A,t=document.createElement("style"),e=" .anchorjs-link { opacity: 0; text-decoration: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }",o=" *:hover > .anchorjs-link, .anchorjs-link:focus { opacity: 1; }",n=' @font-face { font-family: "anchorjs-icons"; font-style: normal; font-weight: normal; src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBTUAAAC8AAAAYGNtYXAWi9QdAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zgq29TcAAAF4AAABNGhlYWQEZM3pAAACrAAAADZoaGVhBhUDxgAAAuQAAAAkaG10eASAADEAAAMIAAAAFGxvY2EAKACuAAADHAAAAAxtYXhwAAgAVwAAAygAAAAgbmFtZQ5yJ3cAAANIAAAB2nBvc3QAAwAAAAAFJAAAACAAAwJAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpywPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6cv//f//AAAAAAAg6cv//f//AAH/4xY5AAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAACADEARAJTAsAAKwBUAAABIiYnJjQ/AT4BMzIWFxYUDwEGIicmND8BNjQnLgEjIgYPAQYUFxYUBw4BIwciJicmND8BNjIXFhQPAQYUFx4BMzI2PwE2NCcmNDc2MhcWFA8BDgEjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAEAAAABAACiToc1Xw889QALBAAAAAAA0XnFFgAAAADRecUWAAAAAAJTAsAAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAAAAAlMAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAACAAAAAoAAMQAAAAAACgAUAB4AmgABAAAABQBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIABwCfAAEAAAAAAAMADgBLAAEAAAAAAAQADgC0AAEAAAAAAAUACwAqAAEAAAAAAAYADgB1AAEAAAAAAAoAGgDeAAMAAQQJAAEAHAAOAAMAAQQJAAIADgCmAAMAAQQJAAMAHABZAAMAAQQJAAQAHADCAAMAAQQJAAUAFgA1AAMAAQQJAAYAHACDAAMAAQQJAAoANAD4YW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQByYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format("truetype"); }',i=" [data-anchorjs-icon]::after { content: attr(data-anchorjs-icon); }";t.className="anchorjs",t.appendChild(document.createTextNode("")),A=document.head.querySelector('[rel="stylesheet"], style'),void 0===A?document.head.appendChild(t):document.head.insertBefore(t,A),t.sheet.insertRule(e,t.sheet.cssRules.length),t.sheet.insertRule(o,t.sheet.cssRules.length),t.sheet.insertRule(i,t.sheet.cssRules.length),t.sheet.insertRule(n,t.sheet.cssRules.length)}}var o=this;this.options=A||{},t(A),this.add=function(A){var o,n,i,s,a,r,l,c,h,g,B,u;if(t(this.options),A){if("string"!=typeof A)throw new Error("The selector provided to AnchorJS was invalid.")}else A="h1, h2, h3, h4, h5, h6";if(o=document.querySelectorAll(A),0===o.length)return!1;for(e(),n=document.querySelectorAll("[id]"),i=[].map.call(n,function(A){return A.id}),a=0;a<o.length;a++){if(o[a].hasAttribute("id"))s=o[a].getAttribute("id");else{r=o[a].textContent,l=this.urlify(r),g=l,h=0;do void 0!==c&&(g=l+"-"+h),c=i.indexOf(g),h+=1;while(-1!==c);c=void 0,i.push(g),o[a].setAttribute("id",g),s=g}B=s.replace(/-/g," "),u=document.createElement("a"),u.className="anchorjs-link "+this.options.class,u.href="#"+s,u.setAttribute("aria-label","Anchor link for: "+B),u.setAttribute("data-anchorjs-icon",this.options.icon),"always"===this.options.visible&&(u.style.opacity="1"),""===this.options.icon&&(u.style.fontFamily="anchorjs-icons",u.style.fontStyle="normal",u.style.fontVariant="normal",u.style.fontWeight="normal",u.style.lineHeight=1,"left"===this.options.placement&&(u.style.lineHeight="inherit")),"left"===this.options.placement?(u.style.position="absolute",u.style.marginLeft="-1em",u.style.paddingRight="0.5em",o[a].insertBefore(u,o[a].firstChild)):(u.style.paddingLeft="0.375em",o[a].appendChild(u))}return this},this.remove=function(A){for(var t,e=document.querySelectorAll(A),o=0;o<e.length;o++)t=e[o].querySelector(".anchorjs-link"),t&&e[o].removeChild(t);return this},this.urlify=function(A){var e,o=/[& +$,:;=?@"#{}|^~[`%!'\]\.\/\(\)\*\\]/g;return t(this.options),e=A.replace(/\'/gi,"").replace(o,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()}}var anchors=new AnchorJS;
|
7
docs/assets/js/vendor/clipboard.min.js
vendored
Normal file
12
docs/assets/js/vendor/holder.min.js
vendored
Normal file
1
docs/assets/js/vendor/jekyll-search.js
vendored
Normal file
1
docs/assets/js/vendor/jekyll-search.min.js
vendored
Normal file
6
docs/assets/scss/.READONLY-MOSTLY.txt
Normal file
|
@ -0,0 +1,6 @@
|
|||
DO NOT edit files in this folder EXCEPT docs.scss.
|
||||
|
||||
These files are copied using
|
||||
grunt docs-copy-bootstrap-docs
|
||||
|
||||
This is done to keep samples in sync with the upstream bs4.
|
66
docs/assets/scss/_ads.scss
Normal file
|
@ -0,0 +1,66 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
//
|
||||
// Carbon ads
|
||||
//
|
||||
|
||||
.carbonad {
|
||||
width: auto !important;
|
||||
height: auto !important;
|
||||
padding: 1.25rem !important;
|
||||
margin: 2rem ($grid-gutter-width * -1) -2rem !important;
|
||||
overflow: hidden; // clearfix
|
||||
font-family: inherit !important;
|
||||
font-size: .8rem !important;
|
||||
line-height: 1rem !important;
|
||||
color: $bd-purple-light !important;
|
||||
text-align: left;
|
||||
background: darken($bd-purple, 10%) !important;
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
.carbonad-img {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.carbonad-text,
|
||||
.carbonad-tag {
|
||||
display: block !important;
|
||||
float: none !important;
|
||||
width: auto !important;
|
||||
height: auto !important;
|
||||
margin-left: 145px !important;
|
||||
font-family: inherit !important;
|
||||
}
|
||||
|
||||
.carbonad-text {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
.carbonad-tag {
|
||||
color: inherit !important;
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
.carbonad-text a,
|
||||
.carbonad-tag a {
|
||||
color: $bd-purple-light !important;
|
||||
|
||||
&:hover {
|
||||
color: #fff !important;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
.carbonad {
|
||||
width: 330px !important;
|
||||
padding: 1rem !important;
|
||||
margin-right: auto !important;
|
||||
margin-left: auto !important;
|
||||
border-radius: .25rem;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
|
||||
}
|
22
docs/assets/scss/_anchor.scss
Normal file
|
@ -0,0 +1,22 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
.anchorjs-link {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.anchorjs-link {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
*:hover > .anchorjs-link {
|
||||
opacity: .75;
|
||||
transition: color .16s linear;
|
||||
}
|
||||
|
||||
*:hover > .anchorjs-link:hover,
|
||||
.anchorjs-link:focus {
|
||||
text-decoration: none;
|
||||
opacity: 1;
|
||||
}
|
27
docs/assets/scss/_booticon.scss
Normal file
|
@ -0,0 +1,27 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
//
|
||||
// Bootstrap "B" Booticon
|
||||
//
|
||||
|
||||
.bd-booticon {
|
||||
display: block;
|
||||
width: 9rem;
|
||||
height: 9rem;
|
||||
font-size: 6.5rem;
|
||||
line-height: 9rem;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
cursor: default;
|
||||
background-color: $bd-purple;
|
||||
border-radius: 15%;
|
||||
|
||||
&.inverse {
|
||||
color: $bd-purple;
|
||||
background-color: #fff;
|
||||
}
|
||||
&.outline {
|
||||
background-color: transparent;
|
||||
border: 1px solid $bd-purple-light;
|
||||
}
|
||||
}
|
110
docs/assets/scss/_brand.scss
Normal file
|
@ -0,0 +1,110 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
//
|
||||
// Brand guidelines
|
||||
//
|
||||
|
||||
// Logo series wrapper
|
||||
.bd-brand-logos {
|
||||
display: table;
|
||||
width: 100%;
|
||||
margin-bottom: 1rem;
|
||||
overflow: hidden;
|
||||
color: #563d7c;
|
||||
background-color: #f9f9f9;
|
||||
border-radius: .25rem;
|
||||
}
|
||||
|
||||
// Individual items
|
||||
.bd-brand-item {
|
||||
padding: 4rem 0;
|
||||
text-align: center;
|
||||
}
|
||||
.bd-brand-item + .bd-brand-item {
|
||||
border-top: 1px solid #fff;
|
||||
}
|
||||
.bd-brand-logos .inverse {
|
||||
color: #fff;
|
||||
background-color: #563d7c;
|
||||
}
|
||||
|
||||
// Heading content within
|
||||
.bd-brand-item h1,
|
||||
.bd-brand-item h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.bd-brand-item .bd-booticon {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
// Make the icons stand out on what is/isn't okay
|
||||
// .bd-brand-item .glyphicon {
|
||||
// width: 30px;
|
||||
// height: 30px;
|
||||
// margin: 10px auto -10px;
|
||||
// line-height: 30px;
|
||||
// color: #fff;
|
||||
// border-radius: 50%;
|
||||
// }
|
||||
// .bd-brand-item .glyphicon-ok {
|
||||
// background-color: #5cb85c;
|
||||
// }
|
||||
// .bd-brand-item .glyphicon-remove {
|
||||
// background-color: #d9534f;
|
||||
// }
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.bd-brand-item {
|
||||
display: table-cell;
|
||||
width: 1%;
|
||||
}
|
||||
.bd-brand-item + .bd-brand-item {
|
||||
border-top: 0;
|
||||
border-left: 1px solid #fff;
|
||||
}
|
||||
.bd-brand-item h1 {
|
||||
font-size: 4rem;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Color swatches
|
||||
//
|
||||
|
||||
.color-swatches {
|
||||
margin: 0 -5px;
|
||||
overflow: hidden; // clearfix
|
||||
}
|
||||
|
||||
.color-swatch {
|
||||
float: left;
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
margin-right: .25rem;
|
||||
margin-left: .25rem;
|
||||
border-radius: .25rem;
|
||||
|
||||
@media (min-width: 768px) {
|
||||
width: 6rem;
|
||||
height: 6rem;
|
||||
}
|
||||
}
|
||||
|
||||
// Docs colors
|
||||
.color-swatches {
|
||||
.bd-purple {
|
||||
background-color: $bd-purple;
|
||||
}
|
||||
.bd-purple-light {
|
||||
background-color: $bd-purple-light;
|
||||
}
|
||||
.bd-purple-lighter {
|
||||
background-color: #e5e1ea;
|
||||
}
|
||||
.bd-gray {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
}
|
14
docs/assets/scss/_browser-bugs.scss
Normal file
|
@ -0,0 +1,14 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
// Wall of Browser Bugs
|
||||
//
|
||||
// Better display for the responsive table on the Wall of Browser Bugs.
|
||||
|
||||
.bd-browser-bugs {
|
||||
td p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
th:first-child {
|
||||
width: 18%;
|
||||
}
|
||||
}
|
19
docs/assets/scss/_buttons.scss
Normal file
|
@ -0,0 +1,19 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
// Buttons
|
||||
//
|
||||
// Custom buttons for the docs.
|
||||
|
||||
.btn-bs {
|
||||
font-weight: 500;
|
||||
color: $bd-purple-bright;
|
||||
border-color: $bd-purple-bright;
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
color: #fff;
|
||||
background-color: $bd-purple-bright;
|
||||
border-color: $bd-purple-bright;
|
||||
}
|
||||
}
|
38
docs/assets/scss/_callouts.scss
Normal file
|
@ -0,0 +1,38 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
//
|
||||
// Callouts
|
||||
//
|
||||
|
||||
.bd-callout {
|
||||
padding: 1.25rem;
|
||||
margin-top: 1.25rem;
|
||||
margin-bottom: 1.25rem;
|
||||
border: 1px solid #eee;
|
||||
border-left-width: .25rem;
|
||||
border-radius: .25rem;
|
||||
}
|
||||
.bd-callout h4 {
|
||||
margin-top: 0;
|
||||
margin-bottom: .25rem;
|
||||
}
|
||||
.bd-callout p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.bd-callout code {
|
||||
border-radius: .25rem;
|
||||
}
|
||||
|
||||
.bd-callout + .bd-callout {
|
||||
margin-top: -.25rem;
|
||||
}
|
||||
|
||||
// Variations
|
||||
@mixin bs-callout-variant($color) {
|
||||
border-left-color: $color;
|
||||
|
||||
h4 { color: $color; }
|
||||
}
|
||||
.bd-callout-info { @include bs-callout-variant($bd-info); }
|
||||
.bd-callout-warning { @include bs-callout-variant($bd-warning); }
|
||||
.bd-callout-danger { @include bs-callout-variant($bd-danger); }
|
40
docs/assets/scss/_clipboard-js.scss
Normal file
|
@ -0,0 +1,40 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
// clipboard.js
|
||||
//
|
||||
// Flash-based `Copy` buttons for code snippets.
|
||||
|
||||
.bd-clipboard {
|
||||
position: relative;
|
||||
display: none;
|
||||
float: right;
|
||||
|
||||
+ .highlight {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-clipboard {
|
||||
position: absolute;
|
||||
top: .5rem;
|
||||
right: .5rem;
|
||||
z-index: 10;
|
||||
display: block;
|
||||
padding: .25rem .5rem;
|
||||
font-size: 75%;
|
||||
color: #818a91;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
border-radius: .25rem;
|
||||
|
||||
&:hover {
|
||||
color: #fff;
|
||||
background-color: #027de7;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.bd-clipboard {
|
||||
display: block;
|
||||
}
|
||||
}
|
333
docs/assets/scss/_component-examples.scss
Normal file
|
@ -0,0 +1,333 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
//
|
||||
// Grid examples
|
||||
//
|
||||
|
||||
.bd-example-row {
|
||||
.row {
|
||||
margin-bottom: 1rem;
|
||||
|
||||
> [class^="col-"] {
|
||||
padding-top: .75rem;
|
||||
padding-bottom: .75rem;
|
||||
background-color: rgba(86,61,124,.15);
|
||||
border: 1px solid rgba(86,61,124,.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Container illustrations
|
||||
//
|
||||
|
||||
.bd-example-container {
|
||||
min-width: 16rem;
|
||||
max-width: 25rem;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.bd-example-container-header {
|
||||
height: 3rem;
|
||||
margin-bottom: .5rem;
|
||||
background-color: lighten($brand-primary, 50%);
|
||||
border-radius: .25rem;
|
||||
}
|
||||
|
||||
.bd-example-container-sidebar {
|
||||
float: right;
|
||||
width: 4rem;
|
||||
height: 8rem;
|
||||
background-color: lighten($brand-warning, 25%);
|
||||
border-radius: .25rem;
|
||||
}
|
||||
|
||||
.bd-example-container-body {
|
||||
height: 8rem;
|
||||
margin-right: 4.5rem;
|
||||
background-color: lighten($bd-purple, 25%);
|
||||
border-radius: .25rem;
|
||||
}
|
||||
|
||||
.bd-example-container-fluid {
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Docs examples
|
||||
//
|
||||
|
||||
.bd-example {
|
||||
position: relative;
|
||||
padding: 1rem;
|
||||
margin: 1rem -1rem;
|
||||
border: solid #f7f7f9;
|
||||
border-width: .2rem 0 0;
|
||||
@include clearfix();
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
padding: 1.5rem;
|
||||
margin-right: 0;
|
||||
margin-bottom: 0;
|
||||
margin-left: 0;
|
||||
border-width: .2rem;
|
||||
}
|
||||
|
||||
+ .highlight,
|
||||
+ .clipboard + .highlight {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
+ p {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
// Undo width of container
|
||||
.container {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
> .form-control {
|
||||
+ .form-control {
|
||||
margin-top: .5rem;
|
||||
}
|
||||
}
|
||||
|
||||
// Card examples should be horizontal
|
||||
> .card {
|
||||
max-width: 20rem;
|
||||
}
|
||||
|
||||
> .nav + .nav,
|
||||
> .alert + .alert,
|
||||
> .navbar + .navbar,
|
||||
> .progress + .progress,
|
||||
> .progress + .btn {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
> .dropdown-menu:first-child {
|
||||
position: static;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.bd-example > .close {
|
||||
float: none;
|
||||
}
|
||||
|
||||
// Typography
|
||||
.bd-example-type .table .type-info {
|
||||
color: #999;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.bd-example-type .table td {
|
||||
padding: 1rem 0;
|
||||
border-color: #eee;
|
||||
}
|
||||
.bd-example-type .table tr:first-child td {
|
||||
border-top: 0;
|
||||
}
|
||||
.bd-example-type h1,
|
||||
.bd-example-type h2,
|
||||
.bd-example-type h3,
|
||||
.bd-example-type h4,
|
||||
.bd-example-type h5,
|
||||
.bd-example-type h6 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
// Contextual background colors
|
||||
.bd-example-bg-classes p {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
// Images
|
||||
.bd-example > img {
|
||||
+ img {
|
||||
margin-left: .5rem;
|
||||
}
|
||||
}
|
||||
|
||||
// Buttons
|
||||
.bd-example > .btn-group {
|
||||
margin-top: .25rem;
|
||||
margin-bottom: .25rem;
|
||||
}
|
||||
.bd-example > .btn-toolbar + .btn-toolbar {
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
// Forms
|
||||
.bd-example-control-sizing select,
|
||||
.bd-example-control-sizing input[type="text"] + input[type="text"] {
|
||||
margin-top: .5rem;
|
||||
}
|
||||
.bd-example-form .input-group {
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
.bd-example > textarea.form-control {
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
// List groups
|
||||
.bd-example > .list-group {
|
||||
max-width: 400px;
|
||||
}
|
||||
|
||||
// Navbars
|
||||
.bd-example {
|
||||
.navbar-fixed-top {
|
||||
position: static;
|
||||
margin: -1rem -1rem 1rem;
|
||||
}
|
||||
.navbar-fixed-bottom {
|
||||
position: static;
|
||||
margin: 1rem -1rem -1rem;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
.navbar-fixed-top {
|
||||
margin: -1.5rem -1.5rem 1rem;
|
||||
}
|
||||
.navbar-fixed-bottom {
|
||||
margin: 1rem -1.5rem -1.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Pagination
|
||||
.bd-example .pagination {
|
||||
margin-top: .5rem;
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
|
||||
// Example modals
|
||||
.bd-example-modal {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
.bd-example-modal .modal {
|
||||
position: relative;
|
||||
top: auto;
|
||||
right: auto;
|
||||
bottom: auto;
|
||||
left: auto;
|
||||
z-index: 1;
|
||||
display: block;
|
||||
}
|
||||
.bd-example-modal .modal-dialog {
|
||||
left: auto;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
// Example dropdowns
|
||||
.bd-example > .dropdown > .dropdown-toggle {
|
||||
float: left;
|
||||
}
|
||||
.bd-example > .dropdown > .dropdown-menu {
|
||||
position: static;
|
||||
display: block;
|
||||
margin-bottom: .25rem;
|
||||
clear: left;
|
||||
}
|
||||
|
||||
// Example tabbable tabs
|
||||
.bd-example-tabs .nav-tabs {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
// Tooltips
|
||||
.bd-example-tooltips {
|
||||
text-align: center;
|
||||
}
|
||||
.bd-example-tooltips > .btn {
|
||||
margin-top: .25rem;
|
||||
margin-bottom: .25rem;
|
||||
}
|
||||
|
||||
// Popovers
|
||||
.bd-example-popover-static {
|
||||
padding-bottom: 1.5rem;
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
.bd-example-popover-static .popover {
|
||||
position: relative;
|
||||
display: block;
|
||||
float: left;
|
||||
width: 260px;
|
||||
margin: 1.25rem;
|
||||
}
|
||||
|
||||
// Tooltips
|
||||
.tooltip-demo a {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.bd-example-tooltip-static .tooltip {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin: 10px 20px;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
// Scrollspy demo on fixed height div
|
||||
.scrollspy-example {
|
||||
position: relative;
|
||||
height: 200px;
|
||||
margin-top: .5rem;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
// Helpers
|
||||
.bd-example > {
|
||||
.center-block:not(img) {
|
||||
max-width: 200px;
|
||||
padding: .5rem;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.bg-primary,
|
||||
.bg-success,
|
||||
.bg-info,
|
||||
.bg-warning,
|
||||
.bg-danger,
|
||||
.bg-inverse {
|
||||
&:not(.navbar) {
|
||||
padding: .5rem;
|
||||
margin-top: .5rem;
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Code snippets
|
||||
//
|
||||
|
||||
.highlight {
|
||||
padding: 1rem;
|
||||
margin: 1rem (-$grid-gutter-width / 2);
|
||||
background-color: #f7f7f9;
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
padding: 1.5rem;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
.highlight pre {
|
||||
padding: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
.highlight pre code {
|
||||
font-size: inherit;
|
||||
color: $gray-dark; // Effectively the base text color
|
||||
}
|
89
docs/assets/scss/_content.scss
Normal file
|
@ -0,0 +1,89 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
// scss-lint:disable IdSelector
|
||||
|
||||
//
|
||||
// Automatically style Markdown-based tables like a Bootstrap `.table`.
|
||||
//
|
||||
|
||||
.bd-content {
|
||||
> table {
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
margin-bottom: $spacer;
|
||||
overflow-y: auto;
|
||||
|
||||
// Cells
|
||||
> thead,
|
||||
> tbody,
|
||||
> tfoot {
|
||||
> tr {
|
||||
> th,
|
||||
> td {
|
||||
padding: $table-cell-padding;
|
||||
line-height: $line-height;
|
||||
vertical-align: top;
|
||||
border: 1px solid $table-border-color;
|
||||
|
||||
> p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Prevent breaking of code (e.g., Grunt tasks list)
|
||||
td:first-child > code {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Docs sections
|
||||
//
|
||||
|
||||
.bd-content {
|
||||
> h2:not(:first-child) {
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
> h3 {
|
||||
margin-top: 1.5rem;
|
||||
}
|
||||
|
||||
> ul li,
|
||||
> ol li {
|
||||
margin-bottom: .25rem;
|
||||
}
|
||||
}
|
||||
|
||||
.bd-title {
|
||||
@include media-breakpoint-up(sm) {
|
||||
font-size: 3rem;
|
||||
|
||||
+ p {
|
||||
font-size: 1.25rem;
|
||||
font-weight: 300;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Markdown generated ToC
|
||||
//
|
||||
|
||||
#markdown-toc {
|
||||
// Hide the first child li because it's always going to be "Contents".
|
||||
> li:first-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 2rem;
|
||||
margin-top: .25rem;
|
||||
margin-bottom: .25rem;
|
||||
}
|
||||
}
|
26
docs/assets/scss/_examples.scss
Normal file
|
@ -0,0 +1,26 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
//
|
||||
// Examples
|
||||
//
|
||||
|
||||
.bd-examples .img-thumbnail {
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
.bd-examples h4 {
|
||||
margin-bottom: .25rem;
|
||||
}
|
||||
.bd-examples p {
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.bd-examples {
|
||||
margin-right: -.75rem;
|
||||
margin-left: -.75rem;
|
||||
}
|
||||
.bd-examples > [class^="col-"] {
|
||||
padding-right: .75rem;
|
||||
padding-left: .75rem;
|
||||
}
|
||||
}
|
23
docs/assets/scss/_featured-sites.scss
Normal file
|
@ -0,0 +1,23 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
.bd-featured-sites {
|
||||
margin-right: -1px;
|
||||
margin-left: -1px;
|
||||
}
|
||||
.bd-featured-sites .col-xs-6 {
|
||||
padding: 1px;
|
||||
}
|
||||
.bd-featured-sites .img-fluid {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.bd-featured-sites .col-sm-3:first-child img {
|
||||
border-top-left-radius: .25rem;
|
||||
border-bottom-left-radius: .25rem;
|
||||
}
|
||||
.bd-featured-sites .col-sm-3:last-child img {
|
||||
border-top-right-radius: .25rem;
|
||||
border-bottom-right-radius: .25rem;
|
||||
}
|
||||
}
|
99
docs/assets/scss/_featurettes.scss
Normal file
|
@ -0,0 +1,99 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
.bd-featurette {
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 3rem;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5;
|
||||
color: #555;
|
||||
text-align: center;
|
||||
background-color: #fff;
|
||||
border-top: 1px solid #eee;
|
||||
|
||||
.highlight {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.lead {
|
||||
margin-right: auto;
|
||||
margin-bottom: 2rem;
|
||||
margin-left: auto;
|
||||
font-size: 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
.col-sm-6:first-child {
|
||||
padding-right: ($grid-gutter-width * 1.5);
|
||||
};
|
||||
.col-sm-6:last-child {
|
||||
padding-left: ($grid-gutter-width * 1.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bd-featurette-title {
|
||||
margin-bottom: .5rem;
|
||||
font-size: 2rem;
|
||||
font-weight: normal;
|
||||
color: #333;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.half-rule {
|
||||
width: 6rem;
|
||||
margin: 2.5rem auto;
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
.bd-featurette h4 {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: .5rem;
|
||||
font-weight: normal;
|
||||
color: #333;
|
||||
}
|
||||
.bd-featurette-img {
|
||||
display: block;
|
||||
margin-bottom: 1.25rem;
|
||||
color: #333;
|
||||
}
|
||||
.bd-featurette-img:hover {
|
||||
color: $brand-primary;
|
||||
text-decoration: none;
|
||||
}
|
||||
.bd-featurette-img img {
|
||||
display: block;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
@media (min-width: 480px) {
|
||||
.bd-featurette .img-fluid {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.bd-featurette {
|
||||
padding-top: 6rem;
|
||||
padding-bottom: 6rem;
|
||||
}
|
||||
.bd-featurette-title {
|
||||
font-size: 2.5rem;
|
||||
|
||||
+ .lead {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
.bd-featurette .lead {
|
||||
max-width: 80%;
|
||||
}
|
||||
.bd-featurette .img-fluid {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
43
docs/assets/scss/_footer.scss
Normal file
|
@ -0,0 +1,43 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
//
|
||||
// Footer
|
||||
//
|
||||
|
||||
.bd-footer {
|
||||
padding: 4rem 0;
|
||||
margin-top: 4rem;
|
||||
font-size: 85%;
|
||||
text-align: center;
|
||||
background-color: #f7f7f7;
|
||||
|
||||
a {
|
||||
font-weight: 500;
|
||||
color: $gray;
|
||||
|
||||
&:hover {
|
||||
color: $link-color;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
.bd-footer-links {
|
||||
padding-left: 0;
|
||||
margin-bottom: 1rem;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
|
||||
+ li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
92
docs/assets/scss/_masthead.scss
Normal file
|
@ -0,0 +1,92 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
.bd-masthead {
|
||||
position: relative;
|
||||
padding: 3rem ($grid-gutter-width / 2) 2rem;
|
||||
color: $bd-purple-light;
|
||||
text-align: center;
|
||||
background-image: linear-gradient(135deg, darken($bd-purple, 20%), $bd-purple, lighten(saturate($bd-purple, 5%), 15%));
|
||||
|
||||
.bd-booticon {
|
||||
margin: 0 auto 2rem;
|
||||
color: $bd-purple-light;
|
||||
border-color: $bd-purple-light;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-weight: 300;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.lead {
|
||||
margin-right: auto;
|
||||
margin-bottom: 2rem;
|
||||
margin-left: auto;
|
||||
font-size: 1.25rem;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.version {
|
||||
margin-top: -1rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.btn {
|
||||
width: 100%;
|
||||
padding: 1rem 2rem;
|
||||
font-size: 1.25rem;
|
||||
font-weight: 500;
|
||||
color: $bd-yellow;
|
||||
border-color: $bd-yellow;
|
||||
|
||||
&:hover {
|
||||
color: $bd-graphite;
|
||||
background-color: $bd-yellow;
|
||||
border-color: $bd-yellow;
|
||||
}
|
||||
}
|
||||
|
||||
.carbonad {
|
||||
margin-bottom: -2rem !important;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
padding-top: 8rem;
|
||||
padding-bottom: 2rem;
|
||||
|
||||
.btn {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.carbonad {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
padding-bottom: 4rem;
|
||||
|
||||
.bd-header {
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 4rem;
|
||||
}
|
||||
|
||||
.lead {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.carbonad {
|
||||
margin-top: 3rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
.lead {
|
||||
width: 85%;
|
||||
font-size: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
40
docs/assets/scss/_nav.scss
Normal file
|
@ -0,0 +1,40 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
//
|
||||
// Main navbar
|
||||
//
|
||||
|
||||
.bd-navbar {
|
||||
font-size: 87.5%; // 14px
|
||||
|
||||
.navbar-nav {
|
||||
.nav-link {
|
||||
color: $bd-graphite-light;
|
||||
|
||||
&.active,
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: $gray-dark;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
&.active {
|
||||
color: darken($gray-dark, 25%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(sm) {
|
||||
.nav-link {
|
||||
float: none;
|
||||
|
||||
+ .nav-link {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
60
docs/assets/scss/_page-header.scss
Normal file
|
@ -0,0 +1,60 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
.bd-pageheader {
|
||||
padding: 2rem ($grid-gutter-width / 2);
|
||||
margin-bottom: 1.5rem;
|
||||
color: $bd-purple-light;
|
||||
text-align: center;
|
||||
background-color: $bd-purple;
|
||||
|
||||
.container {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3rem;
|
||||
font-weight: normal;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 0;
|
||||
font-size: 1.25rem;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
padding-top: 4rem;
|
||||
padding-bottom: 4rem;
|
||||
margin-bottom: 3rem;
|
||||
text-align: left;
|
||||
|
||||
.carbonad {
|
||||
margin: 2rem 0 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
h1 {
|
||||
font-size: 4rem;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
h1,
|
||||
p {
|
||||
margin-right: 380px;
|
||||
}
|
||||
|
||||
.carbonad {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: .75rem; // offset from the .container's padding
|
||||
margin: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
94
docs/assets/scss/_responsive-tests.scss
Normal file
|
@ -0,0 +1,94 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
//
|
||||
// Responsive tests
|
||||
//
|
||||
|
||||
// Responsive (scrollable) doc tables
|
||||
.table-responsive .highlight pre {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
// Utility classes table
|
||||
.bd-table th small,
|
||||
.responsive-utilities th small {
|
||||
display: block;
|
||||
font-weight: normal;
|
||||
color: #999;
|
||||
}
|
||||
.responsive-utilities tbody th {
|
||||
font-weight: normal;
|
||||
}
|
||||
.responsive-utilities td {
|
||||
text-align: center;
|
||||
}
|
||||
.responsive-utilities td.is-visible {
|
||||
color: #468847;
|
||||
background-color: #dff0d8 !important;
|
||||
}
|
||||
.responsive-utilities td.is-hidden {
|
||||
color: #ccc;
|
||||
background-color: #f9f9f9 !important;
|
||||
}
|
||||
|
||||
// Responsive tests
|
||||
.responsive-utilities-test {
|
||||
margin-top: .25rem;
|
||||
}
|
||||
.responsive-utilities-test .col-xs-6 {
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
.responsive-utilities-test span {
|
||||
display: block;
|
||||
padding: 1rem .5rem;
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
line-height: 1.1;
|
||||
text-align: center;
|
||||
border-radius: .25rem;
|
||||
}
|
||||
.visible-on,
|
||||
.hidden-on {
|
||||
.col-xs-6 {
|
||||
> .not-visible {
|
||||
color: #999;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
}
|
||||
}
|
||||
.visible-on,
|
||||
.hidden-on {
|
||||
.col-xs-6 {
|
||||
.visible {
|
||||
color: #468847;
|
||||
background-color: #dff0d8;
|
||||
border: 1px solid #d6e9c6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-only(xs) {
|
||||
.hidden-xs-only {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
@include media-breakpoint-only(sm) {
|
||||
.hidden-sm-only {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
@include media-breakpoint-only(md) {
|
||||
.hidden-md-only {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
@include media-breakpoint-only(lg) {
|
||||
.hidden-lg-only {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
@include media-breakpoint-only(xl) {
|
||||
.hidden-xl-only {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
109
docs/assets/scss/_sidebar.scss
Normal file
|
@ -0,0 +1,109 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
//
|
||||
// Side navigation
|
||||
//
|
||||
|
||||
.bd-sidebar {
|
||||
@include media-breakpoint-up(md) {
|
||||
padding-left: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.bd-search {
|
||||
position: relative;
|
||||
margin-bottom: 1.5rem;
|
||||
|
||||
.form-control {
|
||||
height: 2.45rem;
|
||||
padding-top: .4rem;
|
||||
padding-bottom: .4rem;
|
||||
background-color: #fafafa;
|
||||
|
||||
&:focus {
|
||||
background-color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bd-search-results {
|
||||
right: 0;
|
||||
display: block;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
font-size: .9rem;
|
||||
|
||||
&:empty {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.dropdown-item {
|
||||
padding-right: .75rem;
|
||||
padding-left: .75rem;
|
||||
|
||||
&:first-child { margin-top: .25rem; }
|
||||
&:last-child { margin-bottom: .25rem; }
|
||||
}
|
||||
|
||||
.no-results {
|
||||
padding: .75rem 1rem;
|
||||
color: #7a7a7a;
|
||||
text-align: center;
|
||||
white-space: normal; // Undo .dropdown-item defaults
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.bd-sidenav {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.bd-toc-link {
|
||||
display: block;
|
||||
padding: .25rem .75rem;
|
||||
color: $gray;
|
||||
}
|
||||
.bd-toc-link:hover,
|
||||
.bd-toc-link:focus {
|
||||
color: $brand-primary;
|
||||
text-decoration: none;
|
||||
}
|
||||
.active > .bd-toc-link {
|
||||
font-weight: 500;
|
||||
color: $gray-dark;
|
||||
}
|
||||
.active > .bd-sidenav {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.bd-toc-item.active {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.bd-toc-item:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.bd-toc-item:last-child {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
// All levels of nav
|
||||
.bd-sidebar .nav > li > a {
|
||||
display: block;
|
||||
padding: .25rem .75rem;
|
||||
font-size: 90%;
|
||||
color: #99979c;
|
||||
}
|
||||
.bd-sidebar .nav > li > a:hover,
|
||||
.bd-sidebar .nav > li > a:focus {
|
||||
color: $brand-primary;
|
||||
text-decoration: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
.bd-sidebar .nav > .active > a,
|
||||
.bd-sidebar .nav > .active:hover > a,
|
||||
.bd-sidebar .nav > .active:focus > a {
|
||||
font-weight: 500;
|
||||
color: $gray-dark;
|
||||
background-color: transparent;
|
||||
}
|
16
docs/assets/scss/_skiplink.scss
Normal file
|
@ -0,0 +1,16 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
// scss-lint:disable IdSelector
|
||||
|
||||
#skippy {
|
||||
display: block;
|
||||
padding: 1em;
|
||||
color: #fff;
|
||||
background-color: $bd-purple;
|
||||
outline: 0;
|
||||
|
||||
.skiplink-text {
|
||||
padding: .5em;
|
||||
outline: 1px dotted;
|
||||
}
|
||||
}
|
66
docs/assets/scss/_syntax.scss
Normal file
|
@ -0,0 +1,66 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
.hll { background-color: #ffc; }
|
||||
.c { color: #999; }
|
||||
.err { color: #a00; background-color: #faa; }
|
||||
.k { color: #069; }
|
||||
.o { color: #555; }
|
||||
.cm { color: #999; }
|
||||
.cp { color: #099; }
|
||||
.c1 { color: #999; }
|
||||
.cs { color: #999; }
|
||||
.gd { background-color: #fcc; border: 1px solid #c00; }
|
||||
.ge { font-style: italic; }
|
||||
.gr { color: #f00; }
|
||||
.gh { color: #030; }
|
||||
.gi { background-color: #cfc; border: 1px solid #0c0; }
|
||||
.go { color: #aaa; }
|
||||
.gp { color: #009; }
|
||||
.gu { color: #030; }
|
||||
.gt { color: #9c6; }
|
||||
.kc { color: #069; }
|
||||
.kd { color: #069; }
|
||||
.kn { color: #069; }
|
||||
.kp { color: #069; }
|
||||
.kr { color: #069; }
|
||||
.kt { color: #078; }
|
||||
.m { color: #f60; }
|
||||
.s { color: #d44950; }
|
||||
.na { color: #4f9fcf; }
|
||||
.nb { color: #366; }
|
||||
.nc { color: #0a8; }
|
||||
.no { color: #360; }
|
||||
.nd { color: #99f; }
|
||||
.ni { color: #999; }
|
||||
.ne { color: #c00; }
|
||||
.nf { color: #c0f; }
|
||||
.nl { color: #99f; }
|
||||
.nn { color: #0cf; }
|
||||
.nt { color: #2f6f9f; }
|
||||
.nv { color: #033; }
|
||||
.ow { color: #000; }
|
||||
.w { color: #bbb; }
|
||||
.mf { color: #f60; }
|
||||
.mh { color: #f60; }
|
||||
.mi { color: #f60; }
|
||||
.mo { color: #f60; }
|
||||
.sb { color: #c30; }
|
||||
.sc { color: #c30; }
|
||||
.sd { font-style: italic; color: #c30; }
|
||||
.s2 { color: #c30; }
|
||||
.se { color: #c30; }
|
||||
.sh { color: #c30; }
|
||||
.si { color: #a00; }
|
||||
.sx { color: #c30; }
|
||||
.sr { color: #3aa; }
|
||||
.s1 { color: #c30; }
|
||||
.ss { color: #fc3; }
|
||||
.bp { color: #366; }
|
||||
.vc { color: #033; }
|
||||
.vg { color: #033; }
|
||||
.vi { color: #033; }
|
||||
.il { color: #f60; }
|
||||
|
||||
.css .o,
|
||||
.css .o + .nt,
|
||||
.css .nt + .nt { color: #999; }
|
30
docs/assets/scss/_team.scss
Normal file
|
@ -0,0 +1,30 @@
|
|||
// DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by grunt docs-copy-bootstrap-docs
|
||||
|
||||
.bd-team {
|
||||
margin-bottom: 1.5rem;
|
||||
|
||||
.team-member {
|
||||
line-height: 2rem;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.team-member:hover {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.github-btn {
|
||||
float: right;
|
||||
width: 180px;
|
||||
height: 1.25rem;
|
||||
margin-top: .25rem;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
img {
|
||||
float: left;
|
||||
width: 2rem;
|
||||
margin-right: .5rem;
|
||||
border-radius: .25rem;
|
||||
}
|
||||
}
|
95
docs/assets/scss/docs.scss
Normal file
|
@ -0,0 +1,95 @@
|
|||
// This is the only customized file in this immediate directory, the rest are copied with:
|
||||
// grunt docs-copy-bootstrap-docs
|
||||
// (perhaps add customizations in subdirectories)
|
||||
|
||||
/*!
|
||||
* Bootstrap Docs (http://getbootstrap.com)
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
|
||||
* details, see https://creativecommons.org/licenses/by/3.0/.
|
||||
*/
|
||||
|
||||
// Dev notes
|
||||
//
|
||||
// Background information on nomenclature and architecture decisions here.
|
||||
//
|
||||
// - Bootstrap variables and mixins are included for easy reuse.
|
||||
// Doing so gives us access to the same core utilities provided by Bootstrap.
|
||||
// For example, consistent media queries through those mixins.
|
||||
//
|
||||
// - Bootstrap's **docs variables** are prefixed with `%bd-`.
|
||||
// These custom colors avoid collision with the components Bootstrap provides.
|
||||
//
|
||||
// - Classes are prefixed with `.bd-`.
|
||||
// These classes indicate custom-built or modified components for the design
|
||||
// and layout of the Bootstrap docs. They are not included in our builds.
|
||||
//
|
||||
// Happy Bootstrapping!
|
||||
|
||||
// Load Bootstrap variables and mixins
|
||||
//@import '../../../scss/includes/variables';
|
||||
//@import '../../../scss/includes/mixins';
|
||||
@import '../../../scss/variables/colors';
|
||||
|
||||
//http://www.materialpalette.com/indigo/light-blue
|
||||
$brand-primary: $indigo-500; // #3F51B5
|
||||
|
||||
/* Palette generated by Material Palette - materialpalette.com/indigo/light-blue */
|
||||
//$primary-color-dark: #303F9F $indigo-700
|
||||
//$primary-color: #3F51B5 $indigo-500
|
||||
//$primary-color-light: #C5CAE9 $indigo-100
|
||||
//$primary-color-text: #FFFFFF
|
||||
//$accent-color: #03A9F4 $light-blue-500
|
||||
//$primary-text-color: #212121 $grey-900
|
||||
//$secondary-text-color: #727272
|
||||
//$divider-color: #B6B6B6
|
||||
|
||||
// Import default variables
|
||||
@import '../../../scss/variables';
|
||||
|
||||
// Local docs variables or overrides
|
||||
$bd-purple: $brand-primary; // #563d7c;
|
||||
$bd-purple-bright: $light-blue-500; //lighten(saturate($bd-purple, 5%), 15%);
|
||||
$bd-purple-light: $indigo-100; // #C5CAE9; #cdbfe3;
|
||||
$bd-graphite: $indigo-700; // #303F9F; //#2a2730;
|
||||
$bd-graphite-light: lighten($bd-graphite, 40%);
|
||||
$bd-yellow: #ffe484;
|
||||
$bd-danger: $brand-danger; // #d9534f;
|
||||
$bd-warning: $brand-warning; // #f0ad4e;
|
||||
$bd-info: $brand-info; // #5bc0de;
|
||||
|
||||
// Import material design configured with the above variables
|
||||
@import '../../../scss/core';
|
||||
|
||||
// Load docs components
|
||||
@import 'booticon';
|
||||
@import 'nav';
|
||||
@import 'masthead';
|
||||
@import 'featurettes';
|
||||
@import 'featured-sites';
|
||||
@import 'ads';
|
||||
@import 'content';
|
||||
@import 'page-header';
|
||||
@import 'skiplink';
|
||||
@import 'sidebar';
|
||||
@import 'footer';
|
||||
@import 'component-examples';
|
||||
@import 'responsive-tests';
|
||||
@import 'buttons';
|
||||
@import 'callouts';
|
||||
@import 'examples';
|
||||
@import 'team';
|
||||
@import 'browser-bugs';
|
||||
@import 'brand';
|
||||
@import 'clipboard-js';
|
||||
|
||||
// Load docs dependencies
|
||||
@import 'syntax';
|
||||
@import 'anchor';
|
||||
|
||||
// MDB customizatinos
|
||||
@import 'mdb/booticon';
|
||||
@import 'mdb/component-examples';
|
||||
@import 'mdb/clipboard-js';
|
||||
@import 'mdb/sidebar';
|
||||
@import 'mdb/drawer';
|
8
docs/assets/scss/mdb/_booticon.scss
Normal file
|
@ -0,0 +1,8 @@
|
|||
//
|
||||
// "MDB" icon
|
||||
//
|
||||
|
||||
.bd-booticon {
|
||||
width: 16rem;
|
||||
border-radius: 1rem;
|
||||
}
|
10
docs/assets/scss/mdb/_clipboard-js.scss
Normal file
|
@ -0,0 +1,10 @@
|
|||
.btn-clipboard {
|
||||
//color: #818a91;
|
||||
border-radius: $border-radius;
|
||||
text-transform: uppercase;
|
||||
|
||||
&:hover {
|
||||
color: $gray; // #fff;
|
||||
background-color: $mdb-btn-focus-bg; // #027de7;
|
||||
}
|
||||
}
|
29
docs/assets/scss/mdb/_component-examples.scss
Normal file
|
@ -0,0 +1,29 @@
|
|||
//
|
||||
// Code snippets
|
||||
//
|
||||
|
||||
.highlight {
|
||||
background-color: $code-bg;
|
||||
}
|
||||
|
||||
// Helpers
|
||||
.bd-example > {
|
||||
//.center-block:not(img) {
|
||||
// max-width: 200px;
|
||||
// padding: .5rem;
|
||||
// background-color: #eee;
|
||||
//}
|
||||
|
||||
.bg-primary,
|
||||
.bg-success,
|
||||
.bg-info,
|
||||
.bg-warning,
|
||||
.bg-danger,
|
||||
.bg-inverse {
|
||||
&:not(.navbar) {
|
||||
padding: 0; //.5rem;
|
||||
//margin-top: 0; //.5rem;
|
||||
//margin-bottom: 0; //.5rem;
|
||||
}
|
||||
}
|
||||
}
|
10
docs/assets/scss/mdb/_drawer.scss
Normal file
|
@ -0,0 +1,10 @@
|
|||
.bd-example[data-example-id*="drawer-"] {
|
||||
padding-top: 0;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
min-height: 235px;
|
||||
}
|
||||
|
||||
.bd-example[data-example-id*="drawer-1"] {
|
||||
min-height: 350px; // make first example bigger
|
||||
}
|
8
docs/assets/scss/mdb/_sidebar.scss
Normal file
|
@ -0,0 +1,8 @@
|
|||
|
||||
.mdb-toc-item-reference {
|
||||
margin-top: 1rem;
|
||||
//margin-bottom: 1rem;
|
||||
padding: .25rem .75rem;
|
||||
}
|
||||
|
||||
|
38
docs/browser-bugs.md
Normal file
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
layout: docs
|
||||
title: Wall of browser bugs
|
||||
group: browser-bugs
|
||||
---
|
||||
|
||||
Bootstrap currently works around several outstanding browser bugs in major browsers to deliver the best cross-browser experience possible. Some bugs, like those listed below, cannot be solved by us.
|
||||
|
||||
We publicly list browser bugs that are impacting us here, in the hopes of expediting the process of fixing them. For information on Bootstrap's browser compatibility, [see our browser compatibility docs]({{ site.baseurl }}/getting-started/browsers-devices/#supported-browsers).
|
||||
|
||||
Also see [jQuery's browser bug workarounds](https://docs.google.com/document/d/1LPaPA30bLUB_publLIMF0RlhdnPx_ePXm7oW02iiT6o).
|
||||
|
||||
See also:
|
||||
* [Chromium issue 536263: [meta] Issues affecting Bootstrap](https://code.google.com/p/chromium/issues/detail?id=536263)
|
||||
* [jQuery's browser bug workarounds](https://docs.google.com/document/d/1LPaPA30bLUB_publLIMF0RlhdnPx_ePXm7oW02iiT6o)
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="bd-browser-bugs table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Browser(s)</th>
|
||||
<th>Summary of bug</th>
|
||||
<th>Upstream bug(s)</th>
|
||||
<th>Bootstrap issue(s)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for bug in site.data.browser-bugs %}
|
||||
<tr>
|
||||
<td>{{ bug.browser }}</td>
|
||||
<td>{{ bug.summary | markdownify | bugify }}</td>
|
||||
<td>{{ bug.upstream_bug | bugify }}</td>
|
||||
<td>{{ bug.origin | bugify }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|