diff --git a/.babelrc b/.babelrc deleted file mode 100644 index eb52c30ac1..0000000000 --- a/.babelrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "presets": [ - [ - "es2015", - { - "loose": true, - "modules": false - } - ] - ], - "plugins": [ - "transform-es2015-modules-strip" - ] -} diff --git a/.babelrc.js b/.babelrc.js new file mode 100644 index 0000000000..ab2b8606ef --- /dev/null +++ b/.babelrc.js @@ -0,0 +1,16 @@ +module.exports = { + presets: [ + [ + 'env', + { + loose: true, + modules: false, + exclude: ['transform-es2015-typeof-symbol'] + } + ] + ], + plugins: [ + process.env.ROLLUP && 'external-helpers', + process.env.PLUGINS && 'transform-es2015-modules-strip' + ].filter(Boolean) +}; diff --git a/.gitattributes b/.gitattributes index 5788b12289..21b6fd140e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4,10 +4,10 @@ *.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 +*.txt text eol=lf *.yml text eol=lf # Don't diff or textually merge source maps *.map binary diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 6fc088d6bd..0aaa1bb949 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -42,7 +42,7 @@ Our bug tracker utilizes several labels to help organize and identify issues. He - `docs` - Issues for improving or updating our documentation. - `examples` - Issues involving the example templates included in our docs. - `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`). -- `grunt` - Issues with our build system, which is used to run all our tests, concatenate and compile source files, and more. +- `build` - Issues with our build system, 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. - `meta` - Issues with the project itself or our GitHub repository. @@ -57,7 +57,7 @@ Good bug reports are extremely helpful, so thanks! Guidelines for bug reports: -0. **Validate and lint your code** — [validate your HTML](https://html5.validator.nu) +0. **Validate and lint your code** — [validate your HTML](https://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. @@ -151,7 +151,7 @@ documentation source files and is managed separately by the Bootstrap Core 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, +1. [Fork](https://help.github.com/articles/fork-a-repo/) the project, clone your fork, and configure the remotes: ```bash @@ -180,7 +180,7 @@ included in the project: 4. Commit your changes in logical chunks. 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) + [interactive rebase](https://help.github.com/articles/about-git-rebase/) feature to tidy up your commits before making them public. 5. Locally merge (or rebase) the upstream development branch into your topic branch: @@ -195,7 +195,7 @@ included in the project: git push origin ``` -7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) +7. [Open a Pull Request](https://help.github.com/articles/about-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 @@ -211,7 +211,7 @@ includes code changes) and under the terms of the * Push the revised version to your pull request's branch and post a comment on the pull request saying that you've fixed the problem(s). One of the Bootstrap Core Team members will then come along and reopen your pull request. * Or you can just open a new pull request for your revised version. -[@twbs-savage](https://github.com/twbs-savage) is a Bootstrap bot that automatically runs cross-browser tests (via [Sauce](https://saucelabs.com) and Travis CI) on JavaScript pull requests. Savage will leave a comment on pull requests stating whether cross-browser JS tests passed or failed, with a link to the full Travis build details. If your pull request fails, check the Travis log to see which browser + OS combinations failed. Each browser test in the Travis log includes a link to a Sauce page with details about the test. On those details pages, you can watch a screencast of the test run to see exactly which unit tests failed. +[@twbs-savage](https://github.com/twbs-savage) is a Bootstrap bot that automatically runs cross-browser tests (via [Sauce](https://saucelabs.com/) and Travis CI) on JavaScript pull requests. Savage will leave a comment on pull requests stating whether cross-browser JS tests passed or failed, with a link to the full Travis build details. If your pull request fails, check the Travis log to see which browser + OS combinations failed. Each browser test in the Travis log includes a link to a Sauce page with details about the test. On those details pages, you can watch a screencast of the test run to see exactly which unit tests failed. ## Code guidelines diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index d2a406f9c9..d9fc88e2b8 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,7 +1,7 @@ Before opening an issue: - [Search for duplicate or closed issues](https://github.com/twbs/bootstrap/issues?utf8=%E2%9C%93&q=is%3Aissue) -- [Validate](https://validator.w3.org/nu/) and [lint](https://github.com/twbs/bootlint#in-the-browser) any HTML to avoid common problems +- [Validate](https://html5.validator.nu/) and [lint](https://github.com/twbs/bootlint#in-the-browser) any HTML to avoid common problems - Prepare a [reduced test case](https://css-tricks.com/reduced-test-cases/) for any bugs - Read the [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md) @@ -14,7 +14,7 @@ When reporting a bug, include: - Operating system and version (Windows, Mac OS X, Android, iOS, Win10 Mobile) - Browser and version (Chrome, Firefox, Safari, IE, MS Edge, Opera 15+, Android Browser) -- Reduced test cases and potential fixes using [JS Bin](https://jsbin.com) +- Reduced test cases and potential fixes using [JS Bin](https://jsbin.com/) When suggesting a feature, include: diff --git a/.gitignore b/.gitignore index 1e00d3dd4b..2ea8867b2d 100644 --- a/.gitignore +++ b/.gitignore @@ -38,15 +38,9 @@ Thumbs.db .komodotools *.komodoproject -# SCSS-Lint -scss-lint-report.xml - -# grunt-contrib-sass cache -.sass-cache - -# Jekyll metadata +# Jekyll metadata and extra config file for `github` script docs/.jekyll-metadata +twbsconfig.yml # Folders to ignore -bower_components node_modules diff --git a/.hound.yml b/.hound.yml index 7449ea3f95..d47b1677dd 100644 --- a/.hound.yml +++ b/.hound.yml @@ -1,7 +1,10 @@ fail_on_violations: true +stylelint: + config_file: build/.stylelintrc + scss: - config_file: .scss-lint.yml + enabled: false jshint: enabled: false diff --git a/.scss-lint.yml b/.scss-lint.yml deleted file mode 100644 index eabc8a358c..0000000000 --- a/.scss-lint.yml +++ /dev/null @@ -1,537 +0,0 @@ -# Default application configuration that all configurations inherit from. -scss_files: - - "scss/**/*.scss" - - "docs/assets/scss/**/*.scss" - -plugin_directories: ['.scss-linters'] - -# List of gem names to load custom linters from (make sure they are already -# installed) -plugin_gems: [] - -# Default severity of all linters. -severity: warning - -linters: - BangFormat: - enabled: true - space_before_bang: true - space_after_bang: false - - BemDepth: - enabled: false - max_elements: 1 - - BorderZero: - enabled: true - convention: zero # or `none` - - ChainedClasses: - enabled: false - - ColorKeyword: - enabled: true - - ColorVariable: - enabled: false - - Comment: - enabled: true - exclude: - - scss/bootstrap.scss - style: silent - - DebugStatement: - enabled: true - - DeclarationOrder: - enabled: false - - DisableLinterReason: - enabled: false - - DuplicateProperty: - enabled: true - - ElsePlacement: - enabled: true - style: same_line # or 'new_line' - - EmptyLineBetweenBlocks: - enabled: false - ignore_single_line_blocks: true - - EmptyRule: - enabled: true - - ExtendDirective: - enabled: false - - FinalNewline: - enabled: true - present: true - - HexLength: - enabled: true - style: short # or 'long' - - HexNotation: - enabled: true - style: lowercase # or 'uppercase' - - HexValidation: - enabled: true - - IdSelector: - enabled: true - - ImportantRule: - enabled: false - - ImportPath: - enabled: true - leading_underscore: false - filename_extension: false - - Indentation: - enabled: true - allow_non_nested_indentation: false - character: space # or 'tab' - width: 2 - - LeadingZero: - enabled: true - style: exclude_zero # or 'include_zero' - - MergeableSelector: - enabled: false - force_nesting: true - - NameFormat: - enabled: true - allow_leading_underscore: true - convention: hyphenated_lowercase # or 'camel_case', or 'snake_case', or a regex pattern - - NestingDepth: - enabled: true - max_depth: 5 - ignore_parent_selectors: false - - PlaceholderInExtend: - enabled: false - - PropertyCount: - enabled: false - include_nested: false - max_properties: 10 - - PropertySortOrder: - enabled: true - ignore_unspecified: false - min_properties: 2 - separate_groups: false - order: - - position - - top - - right - - bottom - - left - - z-index - - -webkit-box-sizing - - -moz-box-sizing - - box-sizing - - display - - flex - - flex-align - - flex-basis - - flex-direction - - flex-wrap - - flex-flow - - flex-grow - - flex-order - - flex-pack - - align-items - - align-self - - justify-content - - order - - float - - width - - min-width - - max-width - - height - - min-height - - max-height - - padding - - padding-top - - padding-right - - padding-bottom - - padding-left - - margin - - margin-top - - margin-right - - margin-bottom - - margin-left - - overflow - - overflow-x - - overflow-y - - -webkit-overflow-scrolling - - -ms-overflow-x - - -ms-overflow-y - - -ms-overflow-style - - clip - - clear - - font - - font-family - - font-size - - font-style - - font-weight - - font-variant - - font-size-adjust - - font-stretch - - font-effect - - font-emphasize - - font-emphasize-position - - font-emphasize-style - - font-smooth - - -webkit-hyphens - - -moz-hyphens - - hyphens - - line-height - - color - - text-align - - -webkit-text-align-last - - -moz-text-align-last - - -ms-text-align-last - - text-align-last - - text-emphasis - - text-emphasis-color - - text-emphasis-style - - text-emphasis-position - - text-decoration - - text-indent - - text-justify - - text-outline - - -ms-text-overflow - - text-overflow - - text-overflow-ellipsis - - text-overflow-mode - - text-shadow - - text-transform - - text-wrap - - -webkit-text-size-adjust - - -ms-text-size-adjust - - letter-spacing - - -ms-word-break - - word-break - - word-spacing - - -ms-word-wrap - - word-wrap - - overflow-wrap - - -moz-tab-size - - -o-tab-size - - tab-size - - white-space - - vertical-align - - list-style - - list-style-position - - list-style-type - - list-style-image - - pointer-events - - -ms-touch-action - - touch-action - - cursor - - visibility - - zoom - - table-layout - - empty-cells - - caption-side - - border-spacing - - border-collapse - - content - - quotes - - counter-reset - - counter-increment - - resize - - -webkit-user-select - - -moz-user-select - - -ms-user-select - - -o-user-select - - user-select - - nav-index - - nav-up - - nav-right - - nav-down - - nav-left - - background - - background-color - - background-image - - -ms-filter:\\'progid:DXImageTransform.Microsoft.gradient - - filter:progid:DXImageTransform.Microsoft.gradient - - filter:progid:DXImageTransform.Microsoft.AlphaImageLoader - - filter - - background-repeat - - background-attachment - - background-position - - background-position-x - - background-position-y - - -webkit-background-clip - - -moz-background-clip - - background-clip - - background-origin - - -webkit-background-size - - -moz-background-size - - -o-background-size - - background-size - - border - - border-color - - border-style - - border-width - - border-top - - border-top-color - - border-top-style - - border-top-width - - border-right - - border-right-color - - border-right-style - - border-right-width - - border-bottom - - border-bottom-color - - border-bottom-style - - border-bottom-width - - border-left - - border-left-color - - border-left-style - - border-left-width - - border-radius - - border-top-left-radius - - border-top-right-radius - - border-bottom-right-radius - - border-bottom-left-radius - - -webkit-border-image - - -moz-border-image - - -o-border-image - - border-image - - -webkit-border-image-source - - -moz-border-image-source - - -o-border-image-source - - border-image-source - - -webkit-border-image-slice - - -moz-border-image-slice - - -o-border-image-slice - - border-image-slice - - -webkit-border-image-width - - -moz-border-image-width - - -o-border-image-width - - border-image-width - - -webkit-border-image-outset - - -moz-border-image-outset - - -o-border-image-outset - - border-image-outset - - -webkit-border-image-repeat - - -moz-border-image-repeat - - -o-border-image-repeat - - border-image-repeat - - outline - - outline-width - - outline-style - - outline-color - - outline-offset - - -webkit-box-shadow - - -moz-box-shadow - - box-shadow - - filter:progid:DXImageTransform.Microsoft.Alpha(Opacity - - -ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha - - opacity - - -ms-interpolation-mode - - -webkit-transition - - -moz-transition - - -ms-transition - - -o-transition - - transition - - -webkit-transition-delay - - -moz-transition-delay - - -ms-transition-delay - - -o-transition-delay - - transition-delay - - -webkit-transition-timing-function - - -moz-transition-timing-function - - -ms-transition-timing-function - - -o-transition-timing-function - - transition-timing-function - - -webkit-transition-duration - - -moz-transition-duration - - -ms-transition-duration - - -o-transition-duration - - transition-duration - - -webkit-transition-property - - -moz-transition-property - - -ms-transition-property - - -o-transition-property - - transition-property - - -webkit-transform - - -moz-transform - - -ms-transform - - -o-transform - - transform - - -webkit-transform-origin - - -moz-transform-origin - - -ms-transform-origin - - -o-transform-origin - - transform-origin - - -webkit-animation - - -moz-animation - - -ms-animation - - -o-animation - - animation - - -webkit-animation-name - - -moz-animation-name - - -ms-animation-name - - -o-animation-name - - animation-name - - -webkit-animation-duration - - -moz-animation-duration - - -ms-animation-duration - - -o-animation-duration - - animation-duration - - -webkit-animation-play-state - - -moz-animation-play-state - - -ms-animation-play-state - - -o-animation-play-state - - animation-play-state - - -webkit-animation-timing-function - - -moz-animation-timing-function - - -ms-animation-timing-function - - -o-animation-timing-function - - animation-timing-function - - -webkit-animation-delay - - -moz-animation-delay - - -ms-animation-delay - - -o-animation-delay - - animation-delay - - -webkit-animation-iteration-count - - -moz-animation-iteration-count - - -ms-animation-iteration-count - - -o-animation-iteration-count - - animation-iteration-count - - -webkit-animation-direction - - -moz-animation-direction - - -ms-animation-direction - - -o-animation-direction - - - PropertySpelling: - enabled: true - extra_properties: [] - disabled_properties: [] - - PropertyUnits: - enabled: true - global: [ - 'ch', 'em', 'ex', 'rem', # Font-relative lengths - 'cm', 'in', 'mm', 'pc', 'pt', 'px', 'q', # Absolute lengths - 'vh', 'vw', 'vmin', 'vmax', # Viewport-percentage lengths - 'deg', 'grad', 'rad', 'turn', # Angle - 'ms', 's', # Duration - 'Hz', 'kHz', # Frequency - 'dpi', 'dpcm', 'dppx', # Resolution - '%'] # Other - properties: {} - - PseudoElement: - enabled: true - - QualifyingElement: - enabled: true - allow_element_with_attribute: false - allow_element_with_class: false - allow_element_with_id: false - - SelectorDepth: - enabled: true - max_depth: 4 - - SelectorFormat: - enabled: false - convention: hyphenated_lowercase # or 'strict_BEM', or 'hyphenated_BEM', or 'snake_case', or 'camel_case', or a regex pattern - - Shorthand: - enabled: true - allowed_shorthands: [1, 2, 3, 4] - - SingleLinePerProperty: - enabled: false - allow_single_line_rule_sets: true - - SingleLinePerSelector: - enabled: false - - SpaceAfterComma: - enabled: false - style: one_space # or 'no_space', or 'at_least_one_space' - - SpaceAfterPropertyColon: - enabled: true - style: at_least_one_space # or 'no_space', or 'at_least_one_space', or 'aligned' - - SpaceAfterPropertyName: - enabled: true - - SpaceAfterVariableName: - enabled: true - - SpaceAroundOperator: - enabled: true - style: one_space # or 'at_least_one_space', or 'no_space' - - SpaceBeforeBrace: - enabled: true - style: space # or 'new_line' - allow_single_line_padding: true - - SpaceBetweenParens: - enabled: true - spaces: 0 - - StringQuotes: - enabled: true - style: double_quotes # or double_quotes - - TrailingSemicolon: - enabled: true - - TrailingWhitespace: - enabled: true - - TrailingZero: - enabled: false - - TransitionAll: - enabled: false - - UnnecessaryMantissa: - enabled: true - - UnnecessaryParentReference: - enabled: true - - UrlFormat: - enabled: true - - UrlQuotes: - enabled: true - - VariableForProperty: - enabled: false - properties: [] - - VendorPrefix: - enabled: true - identifier_list: base - additional_identifiers: [] - excluded_identifiers: [] - - ZeroUnit: - enabled: true - - Compass::*: - enabled: false diff --git a/.travis.yml b/.travis.yml index 8be9f03dde..57c810b0a8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,31 +4,28 @@ language: node_js git: depth: 3 node_js: - - "4" + - "6" - "8" before_install: - if [[ `npm -v` != 5* ]]; then npm install -g npm@5; fi - - "export TRAVIS_COMMIT_MSG=\"`git log --format=%B --no-merges -n 1`\"" - - echo "$TRAVIS_COMMIT_MSG" | grep '\[skip browser\]'; export TWBS_DO_BROWSER=$?; true install: - bundle install --deployment --jobs=3 --retry=3 - npm install -script: - - npm test - - if [ "$TWBS_TEST" = browser -a "$SAUCE_ACCESS_KEY" ]; then npm run js-test-cloud; fi after_success: - if [ "$TRAVIS_REPO_SLUG" = twbs-savage/bootstrap ]; then npm run docs-upload-preview; fi +stages: + - test + - name: browser + if: type = push +jobs: + include: + - stage: browser + node_js: 8 + script: if ! git log --format=%B --no-merges -n 1 | grep '\[skip browser\]'; then npm test && npm run js-test-cloud; fi cache: directories: - node_modules - vendor/bundle -env: - - TWBS_TEST=core - - TWBS_TEST=browser -matrix: - exclude: - - node_js: "4" - env: TWBS_TEST=browser notifications: slack: heybb:iz4wwosL0N0EdaX1gvgkU0NH webhooks: diff --git a/Gemfile b/Gemfile index e32e222391..2c0ac91d55 100644 --- a/Gemfile +++ b/Gemfile @@ -1,9 +1,8 @@ source 'https://rubygems.org' group :development, :test do - gem 'jekyll', '~> 3.4.5' + gem 'jekyll', '~> 3.6.0' gem 'jekyll-redirect-from', '~> 0.12.1' gem 'jekyll-sitemap', '~> 1.1.1' - gem 'jekyll-toc', '~> 0.3.0.pre1' - gem 'scss_lint', '~> 0.54.0' + gem 'jekyll-toc', '~> 0.3.0' end diff --git a/Gemfile.lock b/Gemfile.lock index 118a3e83eb..99c54cc877 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,22 +1,22 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.5.1) - public_suffix (~> 2.0, >= 2.0.2) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) colorator (1.1.0) ffi (1.9.18) ffi (1.9.18-x64-mingw32) forwardable-extended (2.6.0) - jekyll (3.4.5) + jekyll (3.6.0) addressable (~> 2.4) colorator (~> 1.0) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 1.1) - kramdown (~> 1.3) - liquid (~> 3.0) + kramdown (~> 1.14) + liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) - rouge (~> 1.7) + rouge (>= 1.7, < 3) safe_yaml (~> 1.0) jekyll-redirect-from (0.12.1) jekyll (~> 3.3) @@ -24,45 +24,44 @@ GEM sass (~> 3.4) jekyll-sitemap (1.1.1) jekyll (~> 3.3) - jekyll-toc (0.3.0.pre1) + jekyll-toc (0.3.0) nokogiri (~> 1.6) jekyll-watch (1.5.0) listen (~> 3.0, < 3.1) - kramdown (1.14.0) - liquid (3.0.6) + kramdown (1.15.0) + liquid (4.0.0) listen (3.0.8) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) mercenary (0.3.6) - mini_portile2 (2.2.0) - nokogiri (1.8.0) - mini_portile2 (~> 2.2.0) - nokogiri (1.8.0-x64-mingw32) - mini_portile2 (~> 2.2.0) + mini_portile2 (2.3.0) + nokogiri (1.8.1) + mini_portile2 (~> 2.3.0) + nokogiri (1.8.1-x64-mingw32) + mini_portile2 (~> 2.3.0) pathutil (0.14.0) forwardable-extended (~> 2.6) - public_suffix (2.0.5) - rake (12.0.0) + public_suffix (3.0.0) rb-fsevent (0.10.2) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) - rouge (1.11.1) + rouge (2.2.1) safe_yaml (1.0.4) - sass (3.4.25) - scss_lint (0.54.0) - rake (>= 0.9, < 13) - sass (~> 3.4.20) + sass (3.5.1) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) PLATFORMS ruby x64-mingw32 DEPENDENCIES - jekyll (~> 3.4.5) + jekyll (~> 3.6.0) jekyll-redirect-from (~> 0.12.1) jekyll-sitemap (~> 1.1.1) - jekyll-toc (~> 0.3.0.pre1) - scss_lint (~> 0.54.0) + jekyll-toc (~> 0.3.0) BUNDLED WITH - 1.15.1 + 1.15.4 diff --git a/Gruntfile.js b/Gruntfile.js deleted file mode 100644 index 351802b94f..0000000000 --- a/Gruntfile.js +++ /dev/null @@ -1,29 +0,0 @@ -/*! - * Bootstrap's Gruntfile - * https://getbootstrap.com - * Copyright 2013-2017 The Bootstrap Authors - * Copyright 2013-2017 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -module.exports = function (grunt) { - 'use strict' - - // Project configuration. - grunt.initConfig({ - 'saucelabs-qunit': { - all: { - options: { - build: process.env.TRAVIS_JOB_ID, - concurrency: 10, - maxRetries: 3, - maxPollRetries: 4, - urls: ['http://localhost:3000/js/tests/index.html?hidepassed'], - browsers: grunt.file.readYAML('build/sauce_browsers.yml') - } - } - } - }) - - grunt.loadNpmTasks('grunt-saucelabs') -} diff --git a/README.md b/README.md index cc471deaa6..b9104e7e80 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

- - + +

Bootstrap

@@ -8,14 +8,14 @@

Sleek, intuitive, and powerful front-end framework for faster and easier web development.
- Explore Bootstrap docs » + Explore Bootstrap docs »

- Bootstrap Themes + Bootstrap Themes · - Job Board + Job Board · - Blog + Blog

@@ -38,23 +38,22 @@ Several quick start options are available: -- [Download the latest release.](https://github.com/twbs/bootstrap/archive/v4.0.0-alpha.6.zip) +- [Download the latest release.](https://github.com/twbs/bootstrap/archive/v4.0.0-beta.zip) - Clone the repo: `git clone https://github.com/twbs/bootstrap.git` -- Install with [npm](https://www.npmjs.com): `npm install bootstrap@4.0.0-alpha.6` -- Install with [yarn](https://github.com/yarnpkg/yarn): `yarn add bootstrap@4.0.0-alpha.6` -- Install with [Composer](https://getcomposer.org): `composer require twbs/bootstrap:4.0.0-alpha.6` -- Install with [Bower](https://bower.io): `bower install bootstrap#v4.0.0-alpha.6` -- Install with [NuGet](https://www.nuget.org): CSS: `Install-Package bootstrap -Pre` Sass: `Install-Package bootstrap.sass -Pre` (`-Pre` is only required until Bootstrap v4 has a stable release). +- Install with [npm](https://www.npmjs.com/): `npm install bootstrap@4.0.0-beta` +- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@4.0.0-beta` +- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:4.0.0-beta` +- Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap -Pre` Sass: `Install-Package bootstrap.sass -Pre` (`-Pre` is only required until Bootstrap v4 has a stable release). Read the [Getting started page](https://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more. ## Status -[![Slack](https://bootstrap-slack.herokuapp.com/badge.svg)](https://bootstrap-slack.herokuapp.com) -[![Bower](https://img.shields.io/bower/v/bootstrap.svg)](https://bower.io/search/?q=bootstrap) +[![Slack](https://bootstrap-slack.herokuapp.com/badge.svg)](https://bootstrap-slack.herokuapp.com/) [![npm version](https://img.shields.io/npm/v/bootstrap.svg)](https://www.npmjs.com/package/bootstrap) [![Gem version](https://img.shields.io/gem/v/bootstrap.svg)](https://rubygems.org/gems/bootstrap) [![Build Status](https://img.shields.io/travis/twbs/bootstrap/v4-dev.svg)](https://travis-ci.org/twbs/bootstrap) +[![peerDependencies Status](https://david-dm.org/twbs/bootstrap/peer-status.svg)](https://david-dm.org/twbs/bootstrap?type=peer) [![devDependency Status](https://img.shields.io/david/dev/twbs/bootstrap.svg)](https://david-dm.org/twbs/bootstrap?type=dev) [![Meteor Atmosphere](https://img.shields.io/badge/meteor-twbs%3Abootstrap-blue.svg)](https://atmospherejs.com/twbs/bootstrap) [![Packagist Prerelease](https://img.shields.io/packagist/vpre/twbs/bootstrap.svg)](https://packagist.org/packages/twbs/bootstrap) @@ -95,15 +94,17 @@ Documentation search is powered by [Algolia's DocSearch](https://community.algol ### Running documentation locally 1. Run through the [tooling setup](https://github.com/twbs/bootstrap/blob/v4-dev/docs/4.0/getting-started/build-tools.md#tooling-setup) to install Jekyll (the site builder) and other Ruby dependencies with `bundle install`. -2. Run `npm run test` (or a specific NPM script) to rebuild distributed CSS and JavaScript files, as well as our docs assets. -3. From the root `/bootstrap` directory, run `bundle exec jekyll serve` in the command line. -4. Open in your browser, and voilà. +2. Run `npm install` to install Node.js dependencies. +3. Run `npm run test` (or a specific NPM script) to rebuild distributed CSS and JavaScript files, as well as our docs assets. +4. From the root `/bootstrap` directory, run `npm run docs-serve` in the command line. +5. Open in your browser, and voilà. Learn more about using Jekyll by reading its [documentation](https://jekyllrb.com/docs/home/). ### Documentation for previous releases -Documentation for v2.3.2 has been made available for the time being at while folks transition to Bootstrap 3. +- For v2.3.2: +- For v3.3.x: [Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download. @@ -124,8 +125,8 @@ Editor preferences are available in the [editor config](https://github.com/twbs/ Get updates on Bootstrap's development and chat with the project maintainers and community members. - Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap). -- Read and subscribe to [The Official Bootstrap Blog](https://blog.getbootstrap.com). -- Join [the official Slack room](https://bootstrap-slack.herokuapp.com). +- Read and subscribe to [The Official Bootstrap Blog](https://blog.getbootstrap.com/). +- Join [the official Slack room](https://bootstrap-slack.herokuapp.com/). - Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##bootstrap` channel. - Implementation help may be found at Stack Overflow (tagged [`bootstrap-4`](https://stackoverflow.com/questions/tagged/bootstrap-4)). - Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability. @@ -136,7 +137,7 @@ Get updates on Bootstrap's development and chat with the project maintainers and For transparency into our release cycle and in striving to maintain backward compatibility, Bootstrap 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/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. Release announcement posts on [the official Bootstrap blog](https://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release. +See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. Release announcement posts on [the official Bootstrap blog](https://blog.getbootstrap.com/) contain summaries of the most noteworthy changes made in each release. ## Creators diff --git a/_config.yml b/_config.yml index 9d20eb108a..b056a7b052 100644 --- a/_config.yml +++ b/_config.yml @@ -1,57 +1,74 @@ # Dependencies -markdown: kramdown -highlighter: rouge +markdown: kramdown +highlighter: rouge kramdown: - auto_ids: true + auto_ids: true # Permalinks -permalink: pretty +permalink: pretty # Server -source: . -destination: ./_gh_pages -port: 9001 -baseurl: "" -url: https://getbootstrap.com -encoding: UTF-8 -exclude: [.git, .github, assets/scss/, build, js, node_modules, nuget, scss, vendor, bower.json, composer.json, Gemfile, Gemfile.lock, Gruntfile.js, package.js, package.json, package-lock.json, sache.json] +source: "." +destination: ./_gh_pages +port: 9001 +baseurl: "" +url: "https://getbootstrap.com" +encoding: UTF-8 +exclude: + - .git/ + - .github/ + - assets/scss/ + - build/ + - js/ + - node_modules/ + - nuget/ + - scss/ + - vendor/ + - bower.json + - composer.json + - Gemfile + - Gemfile.lock + - package.js + - package.json + - package-lock.json + - sache.json + - twbsconfig.yml -gems: +plugins: - jekyll-redirect-from - jekyll-sitemap - jekyll-toc # Social -title: Bootstrap -description: The most popular HTML, CSS, and JS library in the world. -twitter: getbootstrap -authors: Mark Otto, Jacob Thornton, and Bootstrap contributors -social_logo_path: /assets/brand/bootstrap-social-logo.png -social_image_path: /assets/brand/bootstrap-social.png +title: Bootstrap +description: "The most popular HTML, CSS, and JS library in the world." +twitter: getbootstrap +authors: "Mark Otto, Jacob Thornton, and Bootstrap contributors" +social_image_path: /assets/brand/bootstrap-social.png +social_logo_path: /assets/brand/bootstrap-social-logo.png -# Custom vars -current_version: 4.0.0-alpha.6 -docs_version: 4.0 -repo: https://github.com/twbs/bootstrap -slack: https://bootstrap-slack.herokuapp.com +# Custom variables +current_version: 4.0.0-beta +docs_version: 4.0 +repo: "https://github.com/twbs/bootstrap" +slack: "https://bootstrap-slack.herokuapp.com" +blog: "https://blog.getbootstrap.com" +expo: "https://expo.getbootstrap.com" +jobs: "https://jobs.getbootstrap.com" +themes: "https://themes.getbootstrap.com" download: - source: https://github.com/twbs/bootstrap/archive/v4.0.0-alpha.6.zip - dist: https://github.com/twbs/bootstrap/releases/download/v4.0.0-alpha.6/bootstrap-4.0.0-alpha.6-dist.zip - -blog: https://blog.getbootstrap.com -expo: https://expo.getbootstrap.com -themes: https://themes.getbootstrap.com -jobs: https://jobs.getbootstrap.com + source: "https://github.com/twbs/bootstrap/archive/v4.0.0-beta.zip" + dist: "https://github.com/twbs/bootstrap/releases/download/v4.0.0-beta/bootstrap-4.0.0-beta-dist.zip" cdn: # See https://www.srihash.org for info on how to generate the hashes - css: https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css - css_hash: "sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" - js: https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js - js_hash: "sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" - jquery: https://code.jquery.com/jquery-3.2.1.slim.min.js - jquery_hash: "sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" - popper: https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js - popper_hash: "sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" + css: "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" + css_hash: "sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" + js: "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" + js_hash: "sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" + jquery: "https://code.jquery.com/jquery-3.2.1.slim.min.js" + jquery_hash: "sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" + popper: "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" + popper_hash: "sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" diff --git a/_data/browser-bugs.yml b/_data/browser-bugs.yml index d3f133354b..9756758ddd 100644 --- a/_data/browser-bugs.yml +++ b/_data/browser-bugs.yml @@ -204,7 +204,7 @@ summary: > `table-cell` borders not overlapping despite `margin-right: -1px` upstream_bug: > - Chromium#568691 + Chromium#749848 origin: > Bootstrap#17438, Bootstrap#14237 diff --git a/_data/browser-features.yml b/_data/browser-features.yml index f19a460e66..acdc532b26 100644 --- a/_data/browser-features.yml +++ b/_data/browser-features.yml @@ -52,7 +52,7 @@ browser: > Edge summary: > - Implement the [`of ` clause](http://caniuse.com/#feat=css-nth-child-of) of the `:nth-child()` pseudo-class + Implement the [`of ` clause](https://caniuse.com/#feat=css-nth-child-of) of the `:nth-child()` pseudo-class upstream_bug: > UserVoice#15944476 origin: > @@ -62,7 +62,7 @@ browser: > Firefox summary: > - Implement the [`of ` clause](http://caniuse.com/#feat=css-nth-child-of) of the `:nth-child()` pseudo-class + Implement the [`of ` clause](https://caniuse.com/#feat=css-nth-child-of) of the `:nth-child()` pseudo-class upstream_bug: > Mozilla#854148 origin: > @@ -102,7 +102,7 @@ browser: > Chrome summary: > - Implement the [`of ` clause](http://caniuse.com/#feat=css-nth-child-of) of the `:nth-child()` pseudo-class + Implement the [`of ` clause](https://caniuse.com/#feat=css-nth-child-of) of the `:nth-child()` pseudo-class upstream_bug: > Chromium#304163 origin: > diff --git a/_data/core-team.yml b/_data/core-team.yml index 7528bdc11b..644320b645 100644 --- a/_data/core-team.yml +++ b/_data/core-team.yml @@ -37,3 +37,8 @@ - name: Johann-S user: johann-s gravatar: d90d49733a4fe1aa461e45cb4a4fd9e3 + + +- name: Andres Galante + user: andresgalante + gravatar: 03dc4f2e26e476958c952505c8d8f563 diff --git a/_data/nav.yml b/_data/nav.yml index 1ce74e7823..96eeba2b5d 100644 --- a/_data/nav.yml +++ b/_data/nav.yml @@ -5,7 +5,7 @@ - title: Contents - title: Browsers & devices - title: JavaScript - - title: Options + - title: Theming - title: Build tools # - title: Best practices # TODO: Write this content - title: Webpack @@ -75,12 +75,12 @@ # - title: Approach - title: Icons -# - title: About -# pages: -# - title: History -# - title: Team -# - title: Brand -# - title: License -# - title: Translations - - title: Migration + +- title: About + pages: + - title: History + - title: Team + - title: Brand + - title: License + - title: Translations diff --git a/_data/showcase.yml b/_data/showcase.yml index 435286f39b..2643e1ed0e 100644 --- a/_data/showcase.yml +++ b/_data/showcase.yml @@ -9,7 +9,7 @@ img: vogue - name: Riot Design - url: http://riotdesign.eu/en/ + url: https://riot.design/en/ expo_url: https://expo.getbootstrap.com/2014/03/13/riot-design/ img: riot diff --git a/_data/translations.yml b/_data/translations.yml index 1594865b0b..3681ddf560 100644 --- a/_data/translations.yml +++ b/_data/translations.yml @@ -1,3 +1,8 @@ +- name: 中文(繁體) + code: zh-tw + description: Bootstrap 4 繁體中文手冊 + url: http://bootstrap.hexschool.com/ + - name: Chinese code: zh description: Bootstrap 4 中文文档教程 diff --git a/_includes/ads.html b/_includes/ads.html index 662b62971a..10df1344d7 100644 --- a/_includes/ads.html +++ b/_includes/ads.html @@ -1 +1 @@ - + diff --git a/_includes/callout-danger-async-methods.md b/_includes/callout-danger-async-methods.md index 809643e1dc..89d2e2cabb 100644 --- a/_includes/callout-danger-async-methods.md +++ b/_includes/callout-danger-async-methods.md @@ -1,7 +1,7 @@ {% callout danger %} #### Asynchronous methods and transitions -All API methods are **asynchronous** and start a **transition**. They returns to the caller as soon as the transition is started but **before it ends**. In addition, a method call on a **transitioning component will be ignored**. +All API methods are **asynchronous** and start a **transition**. They return to the caller as soon as the transition is started but **before it ends**. In addition, a method call on a **transitioning component will be ignored**. -[See our Javascript documentation for more informations.]({{ site.baseurl }}/getting-started/javascript/) +[See our JavaScript documentation for more information.]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/) {% endcallout %} diff --git a/_includes/callout-warning-color-assistive-technologies.md b/_includes/callout-warning-color-assistive-technologies.md index b92a1c3418..0b929e16d2 100644 --- a/_includes/callout-warning-color-assistive-technologies.md +++ b/_includes/callout-warning-color-assistive-technologies.md @@ -2,4 +2,4 @@ #### Conveying meaning to assistive technologies Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. Ensure that information denoted by the color is either obvious from the content itself (e.g. the visible text), or is included through alternative means, such as additional text hidden with the `.sr-only` class. -{% endcallout %} \ No newline at end of file +{% endcallout %} diff --git a/_includes/docs-navbar.html b/_includes/docs-navbar.html index 8d62d4585b..76435bab78 100644 --- a/_includes/docs-navbar.html +++ b/_includes/docs-navbar.html @@ -36,8 +36,8 @@ diff --git a/_includes/docs-sidebar.html b/_includes/docs-sidebar.html index 71ea14f7d8..d23e033b66 100644 --- a/_includes/docs-sidebar.html +++ b/_includes/docs-sidebar.html @@ -1,37 +1,37 @@ diff --git a/_includes/favicons.html b/_includes/favicons.html new file mode 100644 index 0000000000..97dab4ba8f --- /dev/null +++ b/_includes/favicons.html @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/_includes/footer.html b/_includes/footer.html index 968d429544..c41c835788 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -1,10 +1,10 @@