├── bootstrap4-source ├── site │ ├── static │ │ ├── CNAME │ │ ├── favicon.ico │ │ ├── docs │ │ │ └── 4.3 │ │ │ │ └── assets │ │ │ │ ├── img │ │ │ │ ├── examples │ │ │ │ │ ├── album.png │ │ │ │ │ ├── blog.png │ │ │ │ │ ├── cover.png │ │ │ │ │ ├── grid.png │ │ │ │ │ ├── blog@2x.png │ │ │ │ │ ├── grid@2x.png │ │ │ │ │ ├── navbars.png │ │ │ │ │ ├── pricing.png │ │ │ │ │ ├── product.png │ │ │ │ │ ├── sign-in.png │ │ │ │ │ ├── album@2x.png │ │ │ │ │ ├── carousel.png │ │ │ │ │ ├── checkout.png │ │ │ │ │ ├── cover@2x.png │ │ │ │ │ ├── dashboard.png │ │ │ │ │ ├── jumbotron.png │ │ │ │ │ ├── navbars@2x.png │ │ │ │ │ ├── offcanvas.png │ │ │ │ │ ├── pricing@2x.png │ │ │ │ │ ├── product@2x.png │ │ │ │ │ ├── sign-in@2x.png │ │ │ │ │ ├── carousel@2x.png │ │ │ │ │ ├── checkout@2x.png │ │ │ │ │ ├── dashboard@2x.png │ │ │ │ │ ├── jumbotron@2x.png │ │ │ │ │ ├── navbar-fixed.png │ │ │ │ │ ├── offcanvas@2x.png │ │ │ │ │ ├── floating-labels.png │ │ │ │ │ ├── navbar-bottom.png │ │ │ │ │ ├── navbar-fixed@2x.png │ │ │ │ │ ├── navbar-static.png │ │ │ │ │ ├── sticky-footer.png │ │ │ │ │ ├── navbar-bottom@2x.png │ │ │ │ │ ├── navbar-static@2x.png │ │ │ │ │ ├── starter-template.png │ │ │ │ │ ├── sticky-footer@2x.png │ │ │ │ │ ├── floating-labels@2x.png │ │ │ │ │ ├── starter-template@2x.png │ │ │ │ │ ├── sticky-footer-navbar.png │ │ │ │ │ └── sticky-footer-navbar@2x.png │ │ │ │ ├── bootstrap-themes.png │ │ │ │ ├── favicons │ │ │ │ │ ├── favicon.ico │ │ │ │ │ ├── mstile-70x70.png │ │ │ │ │ ├── favicon-16x16.png │ │ │ │ │ ├── favicon-32x32.png │ │ │ │ │ ├── mstile-144x144.png │ │ │ │ │ ├── mstile-150x150.png │ │ │ │ │ ├── mstile-310x150.png │ │ │ │ │ ├── mstile-310x310.png │ │ │ │ │ ├── apple-touch-icon.png │ │ │ │ │ ├── android-chrome-192x192.png │ │ │ │ │ ├── android-chrome-512x512.png │ │ │ │ │ ├── browserconfig.xml │ │ │ │ │ ├── manifest.json │ │ │ │ │ └── safari-pinned-tab.svg │ │ │ │ └── bootstrap-themes@2x.png │ │ │ │ ├── brand │ │ │ │ ├── bootstrap-social.png │ │ │ │ ├── bootstrap-social-logo.png │ │ │ │ ├── bootstrap-solid.svg │ │ │ │ ├── bootstrap-punchout.svg │ │ │ │ └── bootstrap-outline.svg │ │ │ │ ├── scss │ │ │ │ ├── _browser-bugs.scss │ │ │ │ ├── _anchor.scss │ │ │ │ ├── _skippy.scss │ │ │ │ ├── _placeholder-img.scss │ │ │ │ ├── _colors.scss │ │ │ │ ├── _footer.scss │ │ │ │ ├── _clipboard-js.scss │ │ │ │ ├── _variables.scss │ │ │ │ ├── _ads.scss │ │ │ │ ├── _buttons.scss │ │ │ │ ├── _callouts.scss │ │ │ │ ├── _masthead.scss │ │ │ │ ├── _brand.scss │ │ │ │ ├── docs.scss │ │ │ │ └── _nav.scss │ │ │ │ └── js │ │ │ │ └── src │ │ │ │ └── search.js │ │ └── sw.js │ ├── layouts │ │ ├── shortcodes │ │ │ ├── partial.html │ │ │ ├── markdown.html │ │ │ ├── year.html │ │ │ ├── docsref.html │ │ │ ├── callout.html │ │ │ ├── list-versions.html │ │ │ ├── list-examples.html │ │ │ └── placeholder.html │ │ ├── partials │ │ │ ├── ads.html │ │ │ ├── skippy.html │ │ │ ├── callout-info-prefersreducedmotion.md │ │ │ ├── analytics.html │ │ │ ├── icons │ │ │ │ ├── menu.svg │ │ │ │ ├── import.svg │ │ │ │ ├── lightning.svg │ │ │ │ ├── download.svg │ │ │ │ ├── opencollective.svg │ │ │ │ ├── twitter.svg │ │ │ │ ├── bootstrap.svg │ │ │ │ ├── github.svg │ │ │ │ └── slack.svg │ │ │ ├── callout-danger-async-methods.md │ │ │ ├── callout-info-mediaqueries-breakpoints.md │ │ │ ├── callout-warning-color-assistive-technologies.md │ │ │ ├── stylesheet.html │ │ │ ├── getting-started │ │ │ │ └── components-requiring-javascript.html │ │ │ ├── favicons.html │ │ │ ├── header.html │ │ │ ├── footer.html │ │ │ ├── scripts.html │ │ │ ├── social.html │ │ │ ├── home │ │ │ │ └── masthead.html │ │ │ ├── docs-sidebar.html │ │ │ └── bugify.html │ │ ├── robots.txt │ │ ├── alias.html │ │ ├── _default │ │ │ ├── home.html │ │ │ ├── 404.html │ │ │ ├── redirect.html │ │ │ ├── single.html │ │ │ ├── docs.html │ │ │ └── examples.html │ │ └── sitemap.xml │ ├── content │ │ ├── docs │ │ │ ├── 4.3 │ │ │ │ ├── examples │ │ │ │ │ ├── starter-template │ │ │ │ │ │ ├── starter-template.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── navbar-static │ │ │ │ │ │ ├── navbar-top.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── navbars │ │ │ │ │ │ └── navbar.css │ │ │ │ │ ├── checkout │ │ │ │ │ │ ├── form-validation.css │ │ │ │ │ │ └── form-validation.js │ │ │ │ │ ├── navbar-fixed │ │ │ │ │ │ ├── navbar-top-fixed.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── grid │ │ │ │ │ │ └── grid.css │ │ │ │ │ ├── sticky-footer-navbar │ │ │ │ │ │ └── sticky-footer-navbar.css │ │ │ │ │ ├── offcanvas │ │ │ │ │ │ ├── offcanvas.js │ │ │ │ │ │ └── offcanvas.css │ │ │ │ │ ├── _index.md │ │ │ │ │ ├── sticky-footer │ │ │ │ │ │ ├── sticky-footer.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── pricing │ │ │ │ │ │ └── pricing.css │ │ │ │ │ ├── .stylelintrc │ │ │ │ │ ├── sign-in │ │ │ │ │ │ ├── signin.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dashboard │ │ │ │ │ │ └── dashboard.js │ │ │ │ │ ├── cover │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── cover.css │ │ │ │ │ ├── floating-labels │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── product │ │ │ │ │ │ └── product.css │ │ │ │ │ ├── navbar-bottom │ │ │ │ │ │ └── index.html │ │ │ │ │ └── carousel │ │ │ │ │ │ └── carousel.css │ │ │ │ ├── _index.html │ │ │ │ ├── components │ │ │ │ │ └── close-icon.md │ │ │ │ ├── utilities │ │ │ │ │ ├── position.md │ │ │ │ │ ├── shadows.md │ │ │ │ │ ├── visibility.md │ │ │ │ │ ├── overflow.md │ │ │ │ │ ├── vertical-align.md │ │ │ │ │ └── float.md │ │ │ │ ├── getting-started │ │ │ │ │ └── best-practices.md │ │ │ │ ├── about │ │ │ │ │ ├── translations.md │ │ │ │ │ ├── team.md │ │ │ │ │ └── license.md │ │ │ │ ├── helpers │ │ │ │ │ ├── text-truncation.md │ │ │ │ │ ├── screen-readers.md │ │ │ │ │ ├── clearfix.md │ │ │ │ │ └── position.md │ │ │ │ ├── extend │ │ │ │ │ └── icons.md │ │ │ │ ├── content │ │ │ │ │ ├── figures.md │ │ │ │ │ └── code.md │ │ │ │ └── layout │ │ │ │ │ └── utilities-for-layout.md │ │ │ ├── _index.html │ │ │ └── versions.md │ │ └── 404.md │ ├── data │ │ ├── theme-colors.yml │ │ ├── grays.yml │ │ ├── core-team.yml │ │ ├── colors.yml │ │ ├── translations.yml │ │ ├── breakpoints.yml │ │ └── docs-versions.yml │ └── .eslintrc.json ├── .stylelintignore ├── scss │ ├── helpers │ │ ├── _clearfix.scss │ │ ├── _text.scss │ │ ├── _screenreaders.scss │ │ ├── _background.scss │ │ ├── _position.scss │ │ ├── _stretched-link.scss │ │ └── _embed.scss │ ├── mixins │ │ ├── _clearfix.scss │ │ ├── _lists.scss │ │ ├── _text-truncate.scss │ │ ├── _resize.scss │ │ ├── _alert.scss │ │ ├── _background-variant.scss │ │ ├── _nav-divider.scss │ │ ├── _transition.scss │ │ ├── _text-emphasis.scss │ │ ├── _image.scss │ │ ├── _list-group.scss │ │ ├── _reset-text.scss │ │ ├── _pagination.scss │ │ ├── _box-shadow.scss │ │ ├── _deprecate.scss │ │ ├── _screen-reader.scss │ │ ├── _table-row.scss │ │ ├── _utilities.scss │ │ ├── _border-radius.scss │ │ ├── _caret.scss │ │ ├── _grid.scss │ │ └── _grid-framework.scss │ ├── utilities │ │ ├── _text.scss │ │ ├── _visibility.scss │ │ ├── _sizing.scss │ │ └── _api.scss │ ├── _helpers.scss │ ├── _transitions.scss │ ├── bootstrap-reboot.scss │ ├── _root.scss │ ├── _badge.scss │ ├── _close.scss │ ├── _mixins.scss │ ├── _toasts.scss │ ├── _code.scss │ ├── _grid.scss │ ├── _progress.scss │ ├── _spinners.scss │ ├── _images.scss │ ├── bootstrap.scss │ ├── _alert.scss │ ├── bootstrap4-email-css.scss │ ├── _breadcrumb.scss │ ├── bootstrap-grid.scss │ └── _pagination.scss ├── .eslintignore ├── build │ ├── .eslintrc.json │ ├── postcss.config.js │ ├── banner.js │ ├── rollup.config.js │ ├── svgo.yml │ ├── generate-sri.js │ └── ship.sh ├── .browserslistrc ├── .editorconfig ├── js │ ├── tests │ │ ├── integration │ │ │ ├── bundle.js │ │ │ └── rollup.bundle.js │ │ ├── unit │ │ │ ├── tests-polyfills.js │ │ │ ├── util │ │ │ │ └── sanitizer.js │ │ │ └── .eslintrc.json │ │ └── browsers.js │ ├── index.esm.js │ ├── index.umd.js │ └── src │ │ └── dom │ │ └── data.js ├── .stylelintrc ├── .babelrc.js ├── SECURITY.md ├── package.js ├── .travis.yml ├── composer.json ├── nuget │ ├── MyGet.ps1 │ ├── bootstrap.nuspec │ └── bootstrap.sass.nuspec ├── LICENSE └── .eslintrc.json ├── generate-bootstrap4-email-css.sh └── README.md /bootstrap4-source/site/static/CNAME: -------------------------------------------------------------------------------- 1 | getbootstrap.com 2 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/shortcodes/partial.html: -------------------------------------------------------------------------------- 1 | {{ partial (.Get 0) . }} 2 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/shortcodes/markdown.html: -------------------------------------------------------------------------------- 1 | {{- .Inner | markdownify -}} 2 | -------------------------------------------------------------------------------- /bootstrap4-source/.stylelintignore: -------------------------------------------------------------------------------- 1 | **/*.min.css 2 | **/dist/ 3 | **/vendor/ 4 | /_gh_pages/ 5 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/helpers/_clearfix.scss: -------------------------------------------------------------------------------- 1 | .clearfix { 2 | @include clearfix(); 3 | } 4 | -------------------------------------------------------------------------------- /bootstrap4-source/.eslintignore: -------------------------------------------------------------------------------- 1 | **/*.min.js 2 | **/dist/ 3 | **/vendor/ 4 | /_gh_pages/ 5 | /js/coverage/ 6 | /package.js 7 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/starter-template/starter-template.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 5rem; 3 | } 4 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/helpers/_text.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Text 3 | // 4 | 5 | .text-truncate { 6 | @include text-truncate; 7 | } 8 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/shortcodes/year.html: -------------------------------------------------------------------------------- 1 | {{- /* 2 | Output the current year 3 | */ -}} 4 | 5 | {{- now.Format "2006" -}} 6 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/shortcodes/docsref.html: -------------------------------------------------------------------------------- 1 | {{- relref . ((printf "docs/%s%s" $.Site.Params.docs_version (.Get 0)) | relURL) -}} 2 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/favicon.ico -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/navbar-static/navbar-top.css: -------------------------------------------------------------------------------- 1 | /* Show it's not fixed to the top */ 2 | body { 3 | min-height: 75rem; 4 | } 5 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_clearfix.scss: -------------------------------------------------------------------------------- 1 | @mixin clearfix() { 2 | &::after { 3 | display: block; 4 | clear: both; 5 | content: ""; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/navbars/navbar.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-bottom: 20px; 3 | } 4 | 5 | .navbar { 6 | margin-bottom: 20px; 7 | } 8 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/_index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: redirect 3 | sitemap_exclude: true 4 | redirect: "/docs/4.3/getting-started/introduction/" 5 | --- 6 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/helpers/_screenreaders.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Screenreaders 3 | // 4 | 5 | .sr-only, 6 | .sr-only-focusable:not(:focus) { 7 | @include sr-only(); 8 | } 9 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/_index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: redirect 3 | sitemap_exclude: true 4 | redirect: "/docs/4.3/getting-started/introduction/" 5 | --- 6 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/checkout/form-validation.css: -------------------------------------------------------------------------------- 1 | .container { 2 | max-width: 960px; 3 | } 4 | 5 | .lh-condensed { line-height: 1.25; } 6 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/ads.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/skippy.html: -------------------------------------------------------------------------------- 1 | 2 | Skip to main content 3 | 4 | -------------------------------------------------------------------------------- /generate-bootstrap4-email-css.sh: -------------------------------------------------------------------------------- 1 | sass ./bootstrap4-source/scss/bootstrap4-email-css.scss:./bootstrap4-email-css.min.css --style compressed --no-source-map && ls -al ./bootstrap*.css -------------------------------------------------------------------------------- /bootstrap4-source/scss/utilities/_text.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Text 3 | // 4 | 5 | @each $color, $value in $theme-colors { 6 | @include text-emphasis-variant(".text-#{$color}", $value); 7 | } 8 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/navbar-fixed/navbar-top-fixed.css: -------------------------------------------------------------------------------- 1 | /* Show it is fixed to the top */ 2 | body { 3 | min-height: 75rem; 4 | padding-top: 4.5rem; 5 | } 6 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/album.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/album.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/blog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/blog.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/cover.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/grid.png -------------------------------------------------------------------------------- /bootstrap4-source/scss/helpers/_background.scss: -------------------------------------------------------------------------------- 1 | @if $enable-gradients { 2 | @each $color, $value in $theme-colors { 3 | @include bg-gradient-variant(".bg-gradient-#{$color}", $value); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/bootstrap-themes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/bootstrap-themes.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/blog@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/blog@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/grid@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/grid@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbars.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/pricing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/pricing.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/product.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/product.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/sign-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/sign-in.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/favicons/favicon.ico -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/brand/bootstrap-social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/brand/bootstrap-social.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/bootstrap-themes@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/bootstrap-themes@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/album@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/album@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/carousel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/carousel.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/checkout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/checkout.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/cover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/cover@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/dashboard.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/jumbotron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/jumbotron.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbars@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbars@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/offcanvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/offcanvas.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/pricing@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/pricing@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/product@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/product@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/sign-in@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/sign-in@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/carousel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/carousel@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/checkout@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/checkout@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/dashboard@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/dashboard@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/jumbotron@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/jumbotron@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-fixed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-fixed.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/offcanvas@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/offcanvas@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/favicons/mstile-70x70.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/brand/bootstrap-social-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/brand/bootstrap-social-logo.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/floating-labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/floating-labels.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-bottom.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-fixed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-fixed@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-static.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/sticky-footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/sticky-footer.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/favicons/mstile-144x144.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/favicons/mstile-150x150.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/favicons/mstile-310x150.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/favicons/mstile-310x310.png -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/versions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Versions 3 | description: An appendix of hosted documentation for nearly every release of Bootstrap, from v1 through v4. 4 | --- 5 | 6 | {{< list-versions >}} 7 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-bottom@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-bottom@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-static@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/navbar-static@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/starter-template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/starter-template.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/sticky-footer@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/sticky-footer@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/floating-labels@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/floating-labels@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/starter-template@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/starter-template@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/sticky-footer-navbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/sticky-footer-navbar.png -------------------------------------------------------------------------------- /bootstrap4-source/build/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": false, 4 | "node": true 5 | }, 6 | "parserOptions": { 7 | "sourceType": "script" 8 | }, 9 | "extends": "../.eslintrc.json" 10 | } 11 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_lists.scss: -------------------------------------------------------------------------------- 1 | // Lists 2 | 3 | // Unstyled keeps list items block level, just removes default browser padding and list-style 4 | @mixin list-unstyled { 5 | padding-left: 0; 6 | list-style: none; 7 | } 8 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/favicons/android-chrome-192x192.png -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/favicons/android-chrome-512x512.png -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/grid/grid.css: -------------------------------------------------------------------------------- 1 | .themed-grid-col { 2 | padding-top: 15px; 3 | padding-bottom: 15px; 4 | background-color: rgba(86, 61, 124, .15); 5 | border: 1px solid rgba(86, 61, 124, .2); 6 | } 7 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/examples/sticky-footer-navbar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexStack/Bootstrap-Email-Css/master/bootstrap4-source/site/static/docs/4.3/assets/img/examples/sticky-footer-navbar@2x.png -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_text-truncate.scss: -------------------------------------------------------------------------------- 1 | // Text truncate 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-truncate() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_helpers.scss: -------------------------------------------------------------------------------- 1 | @import "helpers/background"; 2 | @import "helpers/clearfix"; 3 | @import "helpers/embed"; 4 | @import "helpers/position"; 5 | @import "helpers/screenreaders"; 6 | @import "helpers/stretched-link"; 7 | @import "helpers/text"; 8 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_resize.scss: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | @mixin resizable($direction) { 4 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 5 | resize: $direction; // Options: horizontal, vertical, both 6 | } 7 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_alert.scss: -------------------------------------------------------------------------------- 1 | @mixin alert-variant($background, $border, $color) { 2 | color: $color; 3 | @include gradient-bg($background); 4 | border-color: $border; 5 | 6 | .alert-link { 7 | color: darken($color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_browser-bugs.scss: -------------------------------------------------------------------------------- 1 | // Wall of Browser Bugs 2 | // 3 | // Better display for the responsive table on the Wall of Browser Bugs. 4 | 5 | .bd-browser-bugs { 6 | th:first-child { 7 | width: 18%; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/utilities/_visibility.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // 4 | // Visibility utilities 5 | // 6 | 7 | .visible { 8 | visibility: visible !important; 9 | } 10 | 11 | .invisible { 12 | visibility: hidden !important; 13 | } 14 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_background-variant.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @mixin bg-gradient-variant($parent, $color) { 4 | #{$parent} { 5 | background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/sticky-footer-navbar/sticky-footer-navbar.css: -------------------------------------------------------------------------------- 1 | /* Custom page CSS 2 | -------------------------------------------------- */ 3 | /* Not required for template or sticky footer method. */ 4 | 5 | main > .container { 6 | padding: 60px 15px 0; 7 | } 8 | -------------------------------------------------------------------------------- /bootstrap4-source/.browserslistrc: -------------------------------------------------------------------------------- 1 | # https://github.com/browserslist/browserslist#readme 2 | 3 | >= 1% 4 | last 1 major version 5 | not dead 6 | Chrome >= 60 7 | Firefox >= 60 8 | Edge >= 15.15063 9 | Explorer 11 10 | iOS >= 10 11 | Safari >= 10 12 | Android >= 6 13 | not ExplorerMobile <= 11 14 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/robots.txt: -------------------------------------------------------------------------------- 1 | # www.robotstxt.org 2 | 3 | {{ if (eq (getenv "HUGO_ENV") "production") -}} 4 | # Allow crawling of all content 5 | {{- end }} 6 | User-agent: * 7 | Disallow:{{ if (ne (getenv "HUGO_ENV") "production") }} /{{ end }} 8 | Sitemap: {{ .Site.BaseURL }}/sitemap.xml 9 | -------------------------------------------------------------------------------- /bootstrap4-source/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = 2 9 | indent_style = space 10 | insert_final_newline = true 11 | trim_trailing_whitespace = true 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /bootstrap4-source/js/tests/integration/bundle.js: -------------------------------------------------------------------------------- 1 | import 'popper.js' 2 | import { Tooltip } from '../../../dist/js/bootstrap.esm.js' 3 | 4 | window.addEventListener('load', () => { 5 | [...document.querySelectorAll('[data-toggle="tooltip"]')] 6 | .map(tooltipNode => new Tooltip(tooltipNode)) 7 | }) 8 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/offcanvas/offcanvas.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict' 3 | 4 | document.querySelector('[data-toggle="offcanvas"]').addEventListener('click', function () { 5 | document.querySelector('.offcanvas-collapse').classList.toggle('open') 6 | }) 7 | })() 8 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: single 3 | title: Examples 4 | description: Quickly get a project started with any of our examples ranging from using parts of the framework to custom components and layouts. 5 | aliases: "/examples/" 6 | --- 7 | 8 | {{< list-examples >}} 9 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/404.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "404 - File not found" 3 | layout: 404 4 | description: "" 5 | url: /404.html 6 | robots: noindex,follow 7 | sitemap_exclude: true 8 | --- 9 | 10 |
11 |

404

12 |

File not found

13 |
14 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/sticky-footer/sticky-footer.css: -------------------------------------------------------------------------------- 1 | /* Custom page CSS 2 | -------------------------------------------------- */ 3 | /* Not required for template or sticky footer method. */ 4 | 5 | .container { 6 | width: auto; 7 | max-width: 680px; 8 | padding: 0 15px; 9 | } 10 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_anchor.scss: -------------------------------------------------------------------------------- 1 | .anchorjs-link { 2 | font-weight: 400; 3 | color: rgba($link-color, .5); 4 | @include transition(color .15s ease-in-out, opacity .15s ease-in-out); 5 | 6 | &:hover { 7 | color: $link-color; 8 | text-decoration: none; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/callout-info-prefersreducedmotion.md: -------------------------------------------------------------------------------- 1 | The animation effect of this component is dependent on the `prefers-reduced-motion` media query. See the [reduced motion section of our accessibility documentation](/docs/{{ .Site.Params.docs_version }}/getting-started/accessibility/#reduced-motion). 2 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/shortcodes/callout.html: -------------------------------------------------------------------------------- 1 | {{- /* 2 | Usage: `callout "type"`, 3 | where type is one of info (default), danger, warning 4 | */ -}} 5 | 6 | {{- $css_class := .Get 0 | default "info" -}} 7 | 8 |
9 | {{ .Inner | markdownify }} 10 |
11 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_nav-divider.scss: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | @mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) { 6 | height: 0; 7 | margin: $margin-y 0; 8 | overflow: hidden; 9 | border-top: 1px solid $color; 10 | } 11 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/analytics.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #563d7c 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /bootstrap4-source/build/postcss.config.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = ctx => ({ 4 | map: ctx.file.dirname.includes('examples') ? 5 | false : 6 | { 7 | inline: false, 8 | annotation: true, 9 | sourcesContent: true 10 | }, 11 | plugins: { 12 | autoprefixer: { 13 | cascade: false 14 | } 15 | } 16 | }) 17 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_skippy.scss: -------------------------------------------------------------------------------- 1 | .skippy { 2 | display: block; 3 | padding: 1em; 4 | color: $white; 5 | text-align: center; 6 | background-color: $bd-purple; 7 | outline: 0; 8 | 9 | &:hover { 10 | color: $white; 11 | } 12 | } 13 | 14 | .skippy-text { 15 | padding: .5em; 16 | outline: 1px dotted; 17 | } 18 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/pricing/pricing.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-size: 14px; 3 | } 4 | @media (min-width: 768px) { 5 | html { 6 | font-size: 16px; 7 | } 8 | } 9 | 10 | .container { 11 | max-width: 960px; 12 | } 13 | 14 | .pricing-header { 15 | max-width: 700px; 16 | } 17 | 18 | .card-deck .card { 19 | min-width: 220px; 20 | } 21 | -------------------------------------------------------------------------------- /bootstrap4-source/site/data/theme-colors.yml: -------------------------------------------------------------------------------- 1 | - name: primary 2 | hex: "#007bff" 3 | - name: secondary 4 | hex: "#868e96" 5 | - name: success 6 | hex: "#28a745" 7 | - name: danger 8 | hex: "#dc3545" 9 | - name: warning 10 | hex: "#ffc107" 11 | - name: info 12 | hex: "#17a2b8" 13 | - name: light 14 | hex: "#f8f9fa" 15 | - name: dark 16 | hex: "#343a40" 17 | -------------------------------------------------------------------------------- /bootstrap4-source/site/data/grays.yml: -------------------------------------------------------------------------------- 1 | - name: 100 2 | hex: "#f8f9fa" 3 | - name: 200 4 | hex: "#e9ecef" 5 | - name: 300 6 | hex: "#dee2e6" 7 | - name: 400 8 | hex: "#ced4da" 9 | - name: 500 10 | hex: "#adb5bd" 11 | - name: 600 12 | hex: "#868e96" 13 | - name: 700 14 | hex: "#495057" 15 | - name: 800 16 | hex: "#343a40" 17 | - name: 900 18 | hex: "#212529" 19 | -------------------------------------------------------------------------------- /bootstrap4-source/.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "stylelint-config-twbs-bootstrap/scss" 4 | ], 5 | "rules": { 6 | "property-blacklist": [ 7 | "border-radius", 8 | "border-top-left-radius", 9 | "border-top-right-radius", 10 | "border-bottom-right-radius", 11 | "border-bottom-left-radius", 12 | "transition" 13 | ] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_transitions.scss: -------------------------------------------------------------------------------- 1 | .fade { 2 | @include transition($transition-fade); 3 | 4 | &:not(.show) { 5 | opacity: 0; 6 | } 7 | } 8 | 9 | .collapse { 10 | &:not(.show) { 11 | display: none; 12 | } 13 | } 14 | 15 | .collapsing { 16 | position: relative; 17 | height: 0; 18 | overflow: hidden; 19 | @include transition($transition-collapse); 20 | } 21 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_placeholder-img.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Placeholder svg used in the docs. 3 | // 4 | 5 | // Remember to update `site/_layouts/examples.html` too if this changes! 6 | 7 | .bd-placeholder-img { 8 | @include font-size(1.125rem); 9 | text-anchor: middle; 10 | user-select: none; 11 | } 12 | 13 | .bd-placeholder-img-lg { 14 | @include font-size(3.5rem); 15 | } 16 | -------------------------------------------------------------------------------- /bootstrap4-source/.babelrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | [ 4 | '@babel/env', 5 | { 6 | loose: true, 7 | modules: false, 8 | exclude: ['transform-typeof-symbol'] 9 | } 10 | ] 11 | ], 12 | plugins: [ 13 | '@babel/plugin-proposal-object-rest-spread' 14 | ], 15 | env: { 16 | test: { 17 | plugins: [ 'istanbul' ] 18 | } 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/utilities/_sizing.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | .mw-100 { max-width: 100% !important; } 4 | .mh-100 { max-height: 100% !important; } 5 | 6 | // Viewport additional helpers 7 | 8 | .min-vw-100 { min-width: 100vw !important; } 9 | .min-vh-100 { min-height: 100vh !important; } 10 | 11 | .vw-100 { width: 100vw !important; } 12 | .vh-100 { height: 100vh !important; } 13 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/icons/menu.svg: -------------------------------------------------------------------------------- 1 | {{ with .title }}{{ . }}{{ else }}Menu{{ end }} -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/alias.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{ .Permalink }} 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/icons/import.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/_default/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ partial "header" . }} 5 | 6 | 7 | {{ partial "skippy" . }} 8 | 9 | {{ partial "docs-navbar" . }} 10 | 11 | {{ partial "home/masthead" . }} 12 | {{ partial "home/masthead-followup" . }} 13 | 14 | {{ .Content }} 15 | 16 | {{ partial "footer" . }} 17 | {{ partial "scripts" . }} 18 | 19 | 20 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/icons/lightning.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bootstrap4-source/js/tests/integration/rollup.bundle.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | 3 | const resolve = require('rollup-plugin-node-resolve') 4 | const babel = require('rollup-plugin-babel') 5 | 6 | module.exports = { 7 | input: 'js/tests/integration/bundle.js', 8 | output: { 9 | file: 'js/coverage/bundle.js', 10 | format: 'iife' 11 | }, 12 | plugins: [ 13 | resolve(), 14 | babel({ 15 | exclude: 'node_modules/**' 16 | }) 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/callout-danger-async-methods.md: -------------------------------------------------------------------------------- 1 | #### Asynchronous methods and transitions 2 | 3 | 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**. 4 | 5 | [See our JavaScript documentation for more information](/docs/{{ .Site.Params.docs_version }}/getting-started/javascript/). 6 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_transition.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable property-blacklist 2 | @mixin transition($transition...) { 3 | @if $enable-transitions { 4 | @if length($transition) == 0 { 5 | transition: $transition-base; 6 | } @else { 7 | transition: $transition; 8 | } 9 | } 10 | 11 | @if $enable-prefers-reduced-motion-media-query { 12 | @media (prefers-reduced-motion: reduce) { 13 | transition: none; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /bootstrap4-source/build/banner.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const pkg = require('../package.json') 4 | const year = new Date().getFullYear() 5 | 6 | function getBanner(pluginFilename) { 7 | return `/*! 8 | * Bootstrap${pluginFilename ? ` ${pluginFilename}` : ''} v${pkg.version} (${pkg.homepage}) 9 | * Copyright 2011-${year} ${pkg.author} 10 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 11 | */` 12 | } 13 | 14 | module.exports = getBanner 15 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_text-emphasis.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Typography 4 | 5 | @mixin text-emphasis-variant($parent, $color) { 6 | #{$parent} { 7 | color: $color !important; 8 | } 9 | @if $emphasized-link-hover-darken-percentage != 0 { 10 | a#{$parent} { 11 | &:hover, 12 | &:focus { 13 | color: darken($color, $emphasized-link-hover-darken-percentage) !important; 14 | } 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/components/close-icon.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Close icon 4 | description: Use a generic close icon for dismissing content like modals and alerts. 5 | group: components 6 | --- 7 | 8 | **Be sure to include text for screen readers**, as we've done with `aria-label`. 9 | 10 | {{< example >}} 11 | 14 | {{< /example >}} 15 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/_default/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ partial "header" . }} 5 | 6 | 7 | {{ partial "skippy" . }} 8 | 9 | {{ partial "docs-navbar" . }} 10 | 11 |
12 | {{ .Content }} 13 |
14 | 15 | {{ partial "footer" . }} 16 | {{ partial "scripts" . }} 17 | 18 | 19 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/callout-info-mediaqueries-breakpoints.md: -------------------------------------------------------------------------------- 1 | Note that since browsers do not currently support [range context queries](https://www.w3.org/TR/mediaqueries-4/#range-context), we work around the limitations of [`min-` and `max-` prefixes](https://www.w3.org/TR/mediaqueries-4/#mq-min-max) and viewports with fractional widths (which can occur under certain conditions on high-dpi devices, for instance) by using values with higher precision for these comparisons. 2 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/callout-warning-color-assistive-technologies.md: -------------------------------------------------------------------------------- 1 | ##### Conveying meaning to assistive technologies 2 | 3 | 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. 4 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/bootstrap-reboot.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | 9 | @import "functions"; 10 | @import "variables"; 11 | @import "mixins"; 12 | @import "reboot"; 13 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_image.scss: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | 10 | @mixin img-fluid { 11 | // Part 1: Set a maximum relative to the parent 12 | max-width: 100%; 13 | // Part 2: Override the height to auto, otherwise images will be stretched 14 | // when setting a width and height attribute on the img element. 15 | height: auto; 16 | } 17 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/icons/download.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bootstrap4-source/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Reporting Security Issues 2 | 3 | The Bootstrap team and community take security issues in Bootstrap seriously. We appreciate your efforts to responsibly disclose your findings, and will make every effort to acknowledge your contributions. 4 | 5 | To report a security issue, email [security@getbootstrap.com](mailto:security@getbootstrap.com) and include the word "SECURITY" in the subject line. 6 | 7 | We'll endeavor to respond quickly, and will keep you updated throughout the process. 8 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/_default/redirect.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{ .Page.Params.redirect | absURL }} 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "stylelint-config-twbs-bootstrap/css" 4 | ], 5 | "rules": { 6 | "at-rule-no-vendor-prefix": null, 7 | "comment-empty-line-before": null, 8 | "media-feature-name-no-vendor-prefix": null, 9 | "property-blacklist": null, 10 | "property-no-vendor-prefix": null, 11 | "selector-no-qualifying-type": null, 12 | "selector-no-vendor-prefix": null, 13 | "value-no-vendor-prefix": null 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bootstrap4-source/site/data/core-team.yml: -------------------------------------------------------------------------------- 1 | - name: Mark Otto 2 | user: mdo 3 | 4 | - name: Jacob Thornton 5 | user: fat 6 | 7 | - name: Chris Rebert 8 | user: cvrebert 9 | 10 | - name: XhmikosR 11 | user: xhmikosr 12 | 13 | - name: Patrick H. Lauke 14 | user: patrickhlauke 15 | 16 | - name: Gleb Mazovetskiy 17 | user: glebm 18 | 19 | - name: Johann-S 20 | user: johann-s 21 | 22 | - name: Andres Galante 23 | user: andresgalante 24 | 25 | - name: Martijn Cuppens 26 | user: martijncuppens 27 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/helpers/_position.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Shorthand 4 | 5 | .fixed-top { 6 | position: fixed; 7 | top: 0; 8 | right: 0; 9 | left: 0; 10 | z-index: $zindex-fixed; 11 | } 12 | 13 | .fixed-bottom { 14 | position: fixed; 15 | right: 0; 16 | bottom: 0; 17 | left: 0; 18 | z-index: $zindex-fixed; 19 | } 20 | 21 | .sticky-top { 22 | @supports (position: sticky) { 23 | position: sticky; 24 | top: 0; 25 | z-index: $zindex-sticky; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /bootstrap4-source/site/data/colors.yml: -------------------------------------------------------------------------------- 1 | - name: blue 2 | hex: "#007bff" 3 | - name: indigo 4 | hex: "#6610f2" 5 | - name: purple 6 | hex: "#6f42c1" 7 | - name: pink 8 | hex: "#e83e8c" 9 | - name: red 10 | hex: "#dc3545" 11 | - name: orange 12 | hex: "#fd7e14" 13 | - name: yellow 14 | hex: "#ffc107" 15 | - name: green 16 | hex: "#28a745" 17 | - name: teal 18 | hex: "#20c997" 19 | - name: cyan 20 | hex: "#17a2b8" 21 | - name: white 22 | hex: "#fff" 23 | - name: gray 24 | hex: "#868e96" 25 | - name: gray-dark 26 | hex: "#343a40" 27 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/helpers/_stretched-link.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Stretched link 3 | // 4 | 5 | .stretched-link { 6 | &::after { 7 | position: absolute; 8 | top: 0; 9 | right: 0; 10 | bottom: 0; 11 | left: 0; 12 | z-index: 1; 13 | // Just in case `pointer-events: none` is set on a parent 14 | pointer-events: auto; 15 | content: ""; 16 | // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color 17 | background-color: rgba(0, 0, 0, 0); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /bootstrap4-source/package.js: -------------------------------------------------------------------------------- 1 | // package metadata file for Meteor.js 2 | 3 | Package.describe({ 4 | name: 'twbs:bootstrap', // https://atmospherejs.com/twbs/bootstrap 5 | summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.', 6 | version: '4.3.1', 7 | git: 'https://github.com/twbs/bootstrap.git' 8 | }); 9 | 10 | Package.onUse(function (api) { 11 | api.versionsFrom('METEOR@1.0'); 12 | api.addFiles([ 13 | 'dist/css/bootstrap.css', 14 | 'dist/js/bootstrap.js' 15 | ], 'client'); 16 | }); 17 | -------------------------------------------------------------------------------- /bootstrap4-source/site/data/translations.yml: -------------------------------------------------------------------------------- 1 | - name: 中文(繁體) 2 | code: zh-tw 3 | description: Bootstrap 4 繁體中文手冊 4 | url: https://bootstrap.hexschool.com/ 5 | 6 | - name: Chinese 7 | code: zh 8 | description: Bootstrap 4 · 全球最流行的 HTML、CSS 和 JS 工具库。 9 | url: https://code.z01.com/v4/ 10 | 11 | - name: Brazilian Portuguese 12 | code: pt-BR 13 | description: Bootstrap 4 Português do Brasil 14 | url: https://getbootstrap.com.br/v4/ 15 | 16 | - name: Japanese 17 | code: ja 18 | description: Bootstrap 4 日本語リファレンス 19 | url: https://getbootstrap.jp/ 20 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_list-group.scss: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | @mixin list-group-item-variant($state, $background, $color) { 4 | .list-group-item-#{$state} { 5 | color: $color; 6 | background-color: $background; 7 | 8 | &.list-group-item-action { 9 | &:hover, 10 | &:focus { 11 | color: $color; 12 | background-color: darken($background, 5%); 13 | } 14 | 15 | &.active { 16 | color: $white; 17 | background-color: $color; 18 | border-color: $color; 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_colors.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Docs color palette classes 3 | // 4 | 5 | @each $color, $value in $colors { 6 | .swatch-#{$color} { 7 | color: color-yiq($value); 8 | background-color: #{$value}; 9 | } 10 | } 11 | 12 | @each $color, $value in $theme-colors { 13 | .swatch-#{$color} { 14 | color: color-yiq($value); 15 | background-color: #{$value}; 16 | } 17 | } 18 | 19 | @each $color, $value in $grays { 20 | .swatch-#{$color} { 21 | color: color-yiq($value); 22 | background-color: #{$value}; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /bootstrap4-source/site/data/breakpoints.yml: -------------------------------------------------------------------------------- 1 | - breakpoint: xs 2 | abbr: "" 3 | name: Extra small 4 | min-width: 0px 5 | container: "" 6 | 7 | - breakpoint: sm 8 | abbr: -sm 9 | name: Small 10 | min-width: 576px 11 | container: 540px 12 | 13 | - breakpoint: md 14 | abbr: -md 15 | name: Medium 16 | min-width: 768px 17 | container: 720px 18 | 19 | - breakpoint: lg 20 | abbr: -lg 21 | name: Large 22 | min-width: 992px 23 | container: 960px 24 | 25 | - breakpoint: xl 26 | abbr: -xl 27 | name: Extra large 28 | min-width: 1200px 29 | container: 1140px 30 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_reset-text.scss: -------------------------------------------------------------------------------- 1 | @mixin reset-text { 2 | font-family: $font-family-base; 3 | // We deliberately do NOT reset font-size or word-wrap. 4 | font-style: normal; 5 | font-weight: $font-weight-normal; 6 | line-height: $line-height-base; 7 | text-align: left; // Fallback for where `start` is not supported 8 | text-align: start; 9 | text-decoration: none; 10 | text-shadow: none; 11 | text-transform: none; 12 | letter-spacing: normal; 13 | word-break: normal; 14 | word-spacing: normal; 15 | white-space: normal; 16 | line-break: auto; 17 | } 18 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_pagination.scss: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | @mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) { 4 | .page-link { 5 | padding: $padding-y $padding-x; 6 | @include font-size($font-size); 7 | line-height: $line-height; 8 | } 9 | 10 | .page-item { 11 | &:first-child { 12 | .page-link { 13 | @include border-left-radius($border-radius); 14 | } 15 | } 16 | &:last-child { 17 | .page-link { 18 | @include border-right-radius($border-radius); 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/icons/opencollective.svg: -------------------------------------------------------------------------------- 1 | {{ with .title }}{{ . }}{{ else }}Open Collective{{ end }} -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Bootstrap", 3 | "short_name": "Bootstrap", 4 | "icons": [ 5 | { 6 | "src": "/docs/4.3/assets/img/favicons/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "/docs/4.3/assets/img/favicons/android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "start_url": "/?utm_source=a2hs", 17 | "theme_color": "#563d7c", 18 | "background_color": "#563d7c", 19 | "display": "standalone" 20 | } 21 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/utilities/position.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Position 4 | description: Use these shorthand utilities for quickly configuring the position of an element. 5 | group: utilities 6 | toc: true 7 | --- 8 | 9 | ## Common values 10 | 11 | Quick positioning classes are available, though they are not responsive. 12 | 13 | {{< highlight html >}} 14 |
...
15 |
...
16 |
...
17 |
...
18 |
...
19 | {{< /highlight >}} 20 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_box-shadow.scss: -------------------------------------------------------------------------------- 1 | @mixin box-shadow($shadow...) { 2 | @if $enable-shadows { 3 | $result: (); 4 | 5 | @if (length($shadow) == 1) { 6 | // We can pass `@include box-shadow(none);` 7 | $result: $shadow; 8 | } @else { 9 | // Filter to avoid invalid properties for example `box-shadow: none, 1px 1px black;` 10 | @for $i from 1 through length($shadow) { 11 | @if nth($shadow, $i) != "none" { 12 | $result: append($result, nth($shadow, $i), "comma"); 13 | } 14 | } 15 | } 16 | @if (length($result) > 0) { 17 | box-shadow: $result; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /bootstrap4-source/.travis.yml: -------------------------------------------------------------------------------- 1 | addons: 2 | chrome: stable 3 | language: node_js 4 | git: 5 | depth: 3 6 | node_js: 7 | - "8" 8 | - "10" 9 | - "12" 10 | before_script: 11 | - google-chrome-stable --product-version 12 | script: 13 | - npm test || travis_terminate 1 14 | - if [[ "$TRAVIS_NODE_VERSION" = "10" ]]; then npm run linkinator; fi 15 | - if [[ "$TRAVIS_NODE_VERSION" = "10" && "$TRAVIS_EVENT_TYPE" = "push" && ! `git log --format=%B --no-merges -n 1 | grep '\[skip browser\]'` ]]; then npm run js-test-cloud; fi 16 | after_success: 17 | - if [[ "$TRAVIS_NODE_VERSION" = "10" ]]; then npm run coveralls; fi 18 | cache: npm 19 | notifications: 20 | email: false 21 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_root.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | // Custom variable values only support SassScript inside `#{}`. 3 | @each $color, $value in $colors { 4 | --#{$color}: #{$value}; 5 | } 6 | 7 | @each $color, $value in $theme-colors { 8 | --#{$color}: #{$value}; 9 | } 10 | 11 | @each $bp, $value in $grid-breakpoints { 12 | --breakpoint-#{$bp}: #{$value}; 13 | } 14 | 15 | // Use `inspect` for lists so that quoted items keep the quotes. 16 | // See https://github.com/sass/sass/issues/2383#issuecomment-336349172 17 | --font-family-sans-serif: #{inspect($font-family-sans-serif)}; 18 | --font-family-monospace: #{inspect($font-family-monospace)}; 19 | } 20 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_deprecate.scss: -------------------------------------------------------------------------------- 1 | // Deprecate mixin 2 | // 3 | // This mixin can be used to deprecate mixins or functions. 4 | // `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to 5 | // some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap) 6 | @mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) { 7 | @if ($enable-deprecation-messages != false and $ignore-warning != true) { 8 | @warn "#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}."; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/helpers/_embed.scss: -------------------------------------------------------------------------------- 1 | // Credit: Nicolas Gallagher and SUIT CSS. 2 | 3 | .embed-responsive { 4 | position: relative; 5 | width: 100%; 6 | 7 | &::before { 8 | display: block; 9 | content: ""; 10 | } 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | width: 100%; 21 | height: 100%; 22 | border: 0; 23 | } 24 | } 25 | 26 | @each $key, $ratio in $embed-responsive-aspect-ratios { 27 | .embed-responsive-#{$key} { 28 | &::before { 29 | padding-top: percentage(map-get($ratio, y) / map-get($ratio, x)); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/sitemap.xml: -------------------------------------------------------------------------------- 1 | {{ printf "" | safeHTML }} 2 | 3 | {{- range .Data.Pages -}}{{ if ne .Params.sitemap_exclude true }} 4 | 5 | {{ .Permalink }}{{ if not .Lastmod.IsZero }} 6 | {{ safeHTML (.Lastmod.Format "2006-01-02T15:04:05-07:00") }}{{ end }}{{ with .Sitemap.ChangeFreq }} 7 | {{ . }}{{ end }}{{ if ge .Sitemap.Priority 0.0 }} 8 | {{ .Sitemap.Priority }}{{ end }} 9 | {{ end }}{{ end }} 10 | 11 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_footer.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Footer 3 | // 4 | 5 | .bd-footer { 6 | @include font-size(.875rem); 7 | text-align: center; 8 | background-color: #f7f7f7; 9 | 10 | a { 11 | font-weight: 600; 12 | color: $gray-700; 13 | 14 | &:hover, 15 | &:focus { 16 | color: $link-color; 17 | } 18 | } 19 | 20 | p { 21 | margin-bottom: 0; 22 | } 23 | 24 | @include media-breakpoint-up(sm) { 25 | text-align: left; 26 | } 27 | } 28 | 29 | .bd-footer-links { 30 | padding-left: 0; 31 | margin-bottom: 1rem; 32 | 33 | li { 34 | display: inline-block; 35 | 36 | + li { 37 | margin-left: 1rem; 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_badge.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | // 3 | // Requires one of the contextual, color modifier classes for `color` and 4 | // `background-color`. 5 | 6 | .badge { 7 | display: inline-block; 8 | padding: $badge-padding-y $badge-padding-x; 9 | @include font-size($badge-font-size); 10 | font-weight: $badge-font-weight; 11 | line-height: 1; 12 | color: $badge-color; 13 | text-align: center; 14 | white-space: nowrap; 15 | vertical-align: baseline; 16 | @include border-radius($badge-border-radius); 17 | 18 | // Empty badges collapse automatically 19 | &:empty { 20 | display: none; 21 | } 22 | } 23 | 24 | // Quick fix for badges in buttons 25 | .btn .badge { 26 | position: relative; 27 | top: -1px; 28 | } 29 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/getting-started/best-practices.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Best practices 4 | description: Learn about some of the best practices we've gathered from years of working on and using Bootstrap. 5 | group: getting-started 6 | --- 7 | 8 | We've designed and developed Bootstrap to work in a number of environments. Here are some of the best practices we've gathered from years of working on and using it ourselves. 9 | 10 | {{< callout info >}} 11 | **Heads up!** This copy is a work in progress. 12 | {{< /callout >}} 13 | 14 | ### General outline 15 | 16 | - Working with CSS 17 | - Working with Sass files 18 | - Building new CSS components 19 | - Working with flexbox 20 | - Ask in [Slack](https://bootstrap-slack.herokuapp.com/) 21 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/about/translations.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Translations 4 | description: Links to community-translated Bootstrap documentation sites. 5 | group: about 6 | --- 7 | 8 | Community members have translated Bootstrap's documentation into various languages. None are officially supported and they may not always be up to date. 9 | 10 | {{< translations.inline >}} 11 | 16 | {{< /translations.inline >}} 17 | 18 | **We don't help organize or host translations, we just link to them.** 19 | 20 | Finished a new or better translation? Open a pull request to add it to our list. 21 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_clipboard-js.scss: -------------------------------------------------------------------------------- 1 | // clipboard.js 2 | // 3 | // JS-based `Copy` buttons for code snippets. 4 | 5 | .bd-clipboard { 6 | position: relative; 7 | display: none; 8 | float: right; 9 | 10 | + .highlight { 11 | margin-top: 0; 12 | } 13 | 14 | @include media-breakpoint-up(md) { 15 | display: block; 16 | } 17 | } 18 | 19 | .btn-clipboard { 20 | position: absolute; 21 | top: .5rem; 22 | right: .5rem; 23 | z-index: 10; 24 | display: block; 25 | padding: .25rem .5rem; 26 | @include font-size(75%); 27 | color: #818a91; 28 | background-color: transparent; 29 | border: 0; 30 | @include border-radius; 31 | 32 | &:hover { 33 | color: $white; 34 | background-color: #027de7; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | // Local docs variables 2 | $bd-purple: #563d7c !default; 3 | $bd-purple-bright: lighten(saturate($bd-purple, 5%), 15%) !default; 4 | $bd-purple-light: lighten(saturate($bd-purple, 5%), 45%) !default; 5 | $bd-dark: #2a2730 !default; 6 | $bd-download: #ffe484 !default; 7 | $bd-info: #5bc0de !default; 8 | $bd-warning: #f0ad4e !default; 9 | $bd-danger: #d9534f !default; 10 | 11 | // Enable responsive font sizes for font sizes defined in the docs 12 | // The weird if test is made as a workaround to prevent a false fusv error. 13 | // 14 | // stylelint-disable-next-line scss/dollar-variable-default 15 | $enable-responsive-font-sizes: if($enable-responsive-font-sizes, true, true); 16 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/helpers/text-truncation.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Text truncation 4 | description: Truncate long strings of text with an ellipsis. 5 | group: helpers 6 | toc: true 7 | --- 8 | 9 | ## Text truncation 10 | 11 | For longer content, you can add a `.text-truncate` class to truncate the text with an ellipsis. **Requires `display: inline-block` or `display: block`.** 12 | 13 | {{< example >}} 14 | 15 |
16 |
17 | Praeterea iter est quasdam res quas ex communi. 18 |
19 |
20 | 21 | 22 | 23 | Praeterea iter est quasdam res quas ex communi. 24 | 25 | {{< /example >}} 26 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/brand/bootstrap-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | Bootstrap 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/helpers/screen-readers.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Screen readers 4 | description: Use screen reader utilities to hide elements on all devices except screen readers. 5 | group: helpers 6 | --- 7 | 8 | Hide an element to all devices **except screen readers** with `.sr-only`. Use `.sr-only-focusable` to show the element only when it's focused (e.g. by a keyboard-only user). Can also be used as mixins. 9 | 10 | {{< example >}} 11 |

Title for screen readers

12 | Skip to main content 13 | {{< /example >}} 14 | 15 | {{< highlight scss >}} 16 | // Usage as a mixin 17 | 18 | .sr-only-title { 19 | @include sr-only; 20 | } 21 | 22 | .skip-navigation { 23 | @include sr-only-focusable; 24 | } 25 | {{< /highlight >}} 26 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/checkout/form-validation.js: -------------------------------------------------------------------------------- 1 | // Example starter JavaScript for disabling form submissions if there are invalid fields 2 | (function () { 3 | 'use strict' 4 | 5 | window.addEventListener('load', function () { 6 | // Fetch all the forms we want to apply custom Bootstrap validation styles to 7 | var forms = document.getElementsByClassName('needs-validation') 8 | 9 | // Loop over them and prevent submission 10 | Array.prototype.filter.call(forms, function (form) { 11 | form.addEventListener('submit', function (event) { 12 | if (form.checkValidity() === false) { 13 | event.preventDefault() 14 | event.stopPropagation() 15 | } 16 | 17 | form.classList.add('was-validated') 18 | }, false) 19 | }) 20 | }, false) 21 | })() 22 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/brand/bootstrap-punchout.svg: -------------------------------------------------------------------------------- 1 | 2 | Bootstrap 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_ads.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important, selector-max-id 2 | 3 | // 4 | // Carbon ads 5 | // 6 | 7 | #carbonads { 8 | position: static; 9 | display: block; 10 | max-width: 400px; 11 | padding: 15px 15px 15px 160px; 12 | margin: 2rem 0; 13 | overflow: hidden; 14 | @include font-size(.8125rem); 15 | line-height: 1.4; 16 | text-align: left; 17 | background-color: rgba(0, 0, 0, .05); 18 | 19 | a { 20 | color: #333; 21 | text-decoration: none; 22 | } 23 | 24 | @include media-breakpoint-up(sm) { 25 | max-width: 330px; 26 | @include border-radius(4px); 27 | } 28 | } 29 | 30 | .carbon-img { 31 | float: left; 32 | margin-left: -145px; 33 | } 34 | 35 | .carbon-poweredby { 36 | display: block; 37 | color: #777 !important; 38 | } 39 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_buttons.scss: -------------------------------------------------------------------------------- 1 | // Buttons 2 | // 3 | // Custom buttons for the docs. 4 | 5 | .btn-bd-primary { 6 | font-weight: 600; 7 | color: $bd-purple-bright; 8 | border-color: $bd-purple-bright; 9 | 10 | &:hover, 11 | &:active { 12 | color: $white; 13 | background-color: $bd-purple-bright; 14 | border-color: $bd-purple-bright; 15 | } 16 | 17 | &:focus { 18 | box-shadow: 0 0 0 3px rgba($bd-purple-bright, .25); 19 | } 20 | } 21 | 22 | .btn-bd-download { 23 | font-weight: 600; 24 | color: $bd-download; 25 | border-color: $bd-download; 26 | 27 | &:hover, 28 | &:active { 29 | color: $bd-dark; 30 | background-color: $bd-download; 31 | border-color: $bd-download; 32 | } 33 | 34 | &:focus { 35 | box-shadow: 0 0 0 3px rgba($bd-download, .25); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/utilities/shadows.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Shadows 4 | description: Add or remove shadows to elements with box-shadow utilities. 5 | group: utilities 6 | --- 7 | 8 | ## Examples 9 | 10 | While shadows on components are disabled by default in Bootstrap and can be enabled via `$enable-shadows`, you can also quickly add or remove a shadow with our `box-shadow` utility classes. Includes support for `.shadow-none` and three default sizes (which have associated variables to match). 11 | 12 | {{< example >}} 13 |
No shadow
14 |
Small shadow
15 |
Regular shadow
16 |
Larger shadow
17 | {{< /example >}} 18 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/icons/twitter.svg: -------------------------------------------------------------------------------- 1 | {{ with .title }}{{ . }}{{ else }}Twitter{{ end }} -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/sticky-footer/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: examples 3 | title: Sticky Footer Template 4 | extra_css: 5 | - "sticky-footer.css" 6 | html_class: "h-100" 7 | body_class: "d-flex flex-column h-100" 8 | include_js: false 9 | --- 10 | 11 | 12 |
13 |
14 |

Sticky footer

15 |

Pin a footer to the bottom of the viewport in desktop browsers with this custom HTML and CSS.

16 |

Use }}">the sticky footer with a fixed navbar if need be, too.

17 |
18 |
19 | 20 | 25 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/icons/bootstrap.svg: -------------------------------------------------------------------------------- 1 | {{ with .title }}{{ . }}{{ else }}Bootstrap{{ end }} -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/stylesheet.html: -------------------------------------------------------------------------------- 1 | {{- "" | safeHTML }} 2 | {{ if eq (getenv "HUGO_ENV") "production" -}} 3 | 4 | {{- else -}} 5 | 6 | {{- end }} 7 | 8 | {{ if (or (eq .Page.Layout "docs") (ne .Page.Layout "examples")) -}} 9 | {{- "" | safeHTML }} 10 | {{ if eq .Page.Layout "docs" -}} 11 | 12 | {{- end -}} 13 | {{- if (ne .Page.Layout "examples") }} 14 | 15 | {{- end -}} 16 | {{- end }} 17 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_callouts.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Callouts 3 | // 4 | 5 | .bd-callout { 6 | padding: 1.25rem; 7 | margin-top: 1.25rem; 8 | margin-bottom: 1.25rem; 9 | border: 1px solid #eee; 10 | border-left-width: .25rem; 11 | @include border-radius; 12 | 13 | h4 { 14 | margin-top: 0; 15 | margin-bottom: .25rem; 16 | } 17 | 18 | p:last-child { 19 | margin-bottom: 0; 20 | } 21 | 22 | code { 23 | @include border-radius; 24 | } 25 | 26 | + .bd-callout { 27 | margin-top: -.25rem; 28 | } 29 | } 30 | 31 | // Variations 32 | @mixin bs-callout-variant($color) { 33 | border-left-color: $color; 34 | 35 | h4 { color: $color; } 36 | } 37 | 38 | .bd-callout-info { @include bs-callout-variant($bd-info); } 39 | .bd-callout-warning { @include bs-callout-variant($bd-warning); } 40 | .bd-callout-danger { @include bs-callout-variant($bd-danger); } 41 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/utilities/visibility.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Visibility 4 | description: Control the visibility, without modifying the display, of elements with visibility utilities. 5 | group: utilities 6 | --- 7 | 8 | Set the `visibility` of elements with our visibility utilities. These utility classes do not modify the `display` value at all and do not affect layout – `.invisible` elements still take up space in the page. Content will be hidden both visually and for assistive technology/screen reader users. 9 | 10 | Apply `.visible` or `.invisible` as needed. 11 | 12 | {{< highlight html >}} 13 |
...
14 | 15 | {{< /highlight >}} 16 | 17 | {{< highlight scss >}} 18 | // Class 19 | .visible { 20 | visibility: visible !important; 21 | } 22 | .invisible { 23 | visibility: hidden !important; 24 | } 25 | {{< /highlight >}} 26 | -------------------------------------------------------------------------------- /bootstrap4-source/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "twbs/bootstrap", 3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 4 | "keywords": [ 5 | "css", 6 | "js", 7 | "sass", 8 | "mobile-first", 9 | "responsive", 10 | "front-end", 11 | "framework", 12 | "web" 13 | ], 14 | "homepage": "https://getbootstrap.com/", 15 | "authors": [ 16 | { 17 | "name": "Mark Otto", 18 | "email": "markdotto@gmail.com" 19 | }, 20 | { 21 | "name": "Jacob Thornton", 22 | "email": "jacobthornton@gmail.com" 23 | } 24 | ], 25 | "support": { 26 | "issues": "https://github.com/twbs/bootstrap/issues" 27 | }, 28 | "license": "MIT", 29 | "extra": { 30 | "branch-alias": { 31 | "dev-master": "3.3.x-dev" 32 | } 33 | }, 34 | "replace": { 35 | "twitter/bootstrap": "self.version" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /bootstrap4-source/js/index.esm.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * Bootstrap (v4.3.1): index.esm.js 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | import Alert from './src/alert' 9 | import Button from './src/button' 10 | import Carousel from './src/carousel' 11 | import Collapse from './src/collapse' 12 | import Dropdown from './src/dropdown' 13 | import Modal from './src/modal' 14 | import Popover from './src/popover' 15 | import ScrollSpy from './src/scrollspy' 16 | import Tab from './src/tab' 17 | import Toast from './src/toast' 18 | import Tooltip from './src/tooltip' 19 | 20 | export { 21 | Alert, 22 | Button, 23 | Carousel, 24 | Collapse, 25 | Dropdown, 26 | Modal, 27 | Popover, 28 | ScrollSpy, 29 | Tab, 30 | Toast, 31 | Tooltip 32 | } 33 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Only display content to screen readers 4 | // 5 | // See: https://a11yproject.com/posts/how-to-hide-content/ 6 | // See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/ 7 | 8 | @mixin sr-only { 9 | position: absolute !important; 10 | width: 1px !important; 11 | height: 1px !important; 12 | padding: 0 !important; 13 | margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686 14 | overflow: hidden !important; 15 | clip: rect(0, 0, 0, 0) !important; 16 | white-space: nowrap !important; 17 | border: 0 !important; 18 | } 19 | 20 | // Use to only display content when it's focused. 21 | // 22 | // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 23 | 24 | @mixin sr-only-focusable { 25 | &:not(:focus) { 26 | @include sr-only(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /bootstrap4-source/js/index.umd.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * Bootstrap (v4.3.1): index.umd.js 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | import Alert from './src/alert' 9 | import Button from './src/button' 10 | import Carousel from './src/carousel' 11 | import Collapse from './src/collapse' 12 | import Dropdown from './src/dropdown' 13 | import Modal from './src/modal' 14 | import Popover from './src/popover' 15 | import ScrollSpy from './src/scrollspy' 16 | import Tab from './src/tab' 17 | import Toast from './src/toast' 18 | import Tooltip from './src/tooltip' 19 | 20 | export default { 21 | Alert, 22 | Button, 23 | Carousel, 24 | Collapse, 25 | Dropdown, 26 | Modal, 27 | Popover, 28 | ScrollSpy, 29 | Tab, 30 | Toast, 31 | Tooltip 32 | } 33 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/getting-started/components-requiring-javascript.html: -------------------------------------------------------------------------------- 1 |
2 | Show components requiring JavaScript 3 | 14 |
15 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/sign-in/signin.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | height: 100%; 4 | } 5 | 6 | body { 7 | display: flex; 8 | align-items: center; 9 | padding-top: 40px; 10 | padding-bottom: 40px; 11 | background-color: #f5f5f5; 12 | } 13 | 14 | .form-signin { 15 | width: 100%; 16 | max-width: 330px; 17 | padding: 15px; 18 | margin: auto; 19 | } 20 | .form-signin .checkbox { 21 | font-weight: 400; 22 | } 23 | .form-signin .form-control { 24 | position: relative; 25 | box-sizing: border-box; 26 | height: auto; 27 | padding: 10px; 28 | font-size: 16px; 29 | } 30 | .form-signin .form-control:focus { 31 | z-index: 2; 32 | } 33 | .form-signin input[type="email"] { 34 | margin-bottom: -1px; 35 | border-bottom-right-radius: 0; 36 | border-bottom-left-radius: 0; 37 | } 38 | .form-signin input[type="password"] { 39 | margin-bottom: 10px; 40 | border-top-left-radius: 0; 41 | border-top-right-radius: 0; 42 | } 43 | -------------------------------------------------------------------------------- /bootstrap4-source/site/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parserOptions": { 4 | "sourceType": "script" 5 | }, 6 | "extends": [ 7 | "plugin:unicorn/recommended", 8 | "xo", 9 | "xo/browser" 10 | ], 11 | "rules": { 12 | "capitalized-comments": "off", 13 | "indent": [ 14 | "error", 15 | 2, 16 | { 17 | "MemberExpression": "off", 18 | "SwitchCase": 1 19 | } 20 | ], 21 | "multiline-ternary": [ 22 | "error", 23 | "always-multiline" 24 | ], 25 | "no-new": "off", 26 | "object-curly-spacing": [ 27 | "error", 28 | "always" 29 | ], 30 | "semi": [ 31 | "error", 32 | "never" 33 | ], 34 | "strict": "error", 35 | "unicorn/no-for-loop": "off", 36 | "unicorn/prefer-includes": "off", 37 | "unicorn/prefer-node-append": "off", 38 | "unicorn/prefer-query-selector": "off", 39 | "unicorn/prevent-abbreviations": "off" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/sw.js: -------------------------------------------------------------------------------- 1 | // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT 2 | // IT'S ALL JUST JUNK FOR OUR DOCS! 3 | // ++++++++++++++++++++++++++++++++++++++++++ 4 | 5 | /* eslint-disable max-nested-callbacks */ 6 | 7 | (function () { 8 | 'use strict' 9 | 10 | if ('serviceWorker' in navigator) { 11 | window.addEventListener('load', function () { 12 | navigator.serviceWorker.getRegistrations().then(function (registrations) { 13 | for (var registration of registrations) { 14 | registration.unregister() 15 | .then(function () { 16 | return self.clients.matchAll() 17 | }) 18 | .then(function (clients) { 19 | clients.forEach(function (client) { 20 | if (client.url && 'navigate' in client) { 21 | client.navigate(client.url) 22 | } 23 | }) 24 | }) 25 | } 26 | }) 27 | }) 28 | } 29 | })() 30 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/favicons.html: -------------------------------------------------------------------------------- 1 | {{ "" | safeHTML }} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_table-row.scss: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | @mixin table-row-variant($state, $background, $border: null) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table-#{$state} { 7 | &, 8 | > th, 9 | > td { 10 | background-color: $background; 11 | } 12 | 13 | @if $border != null { 14 | th, 15 | td, 16 | thead th, 17 | tbody + tbody { 18 | border-color: $border; 19 | } 20 | } 21 | } 22 | 23 | // Hover states for `.table-hover` 24 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 25 | .table-hover { 26 | $hover-background: darken($background, 5%); 27 | 28 | .table-#{$state} { 29 | &:hover { 30 | background-color: $hover-background; 31 | 32 | > td, 33 | > th { 34 | background-color: $hover-background; 35 | } 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/brand/bootstrap-outline.svg: -------------------------------------------------------------------------------- 1 | 2 | Bootstrap 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | {{ if .IsHome }}{{ .Site.Title | markdownify }} · {{ .Site.Params.description | markdownify }}{{ else }}{{ .Title | markdownify }} · {{ .Site.Title | markdownify }}{{ end }} 11 | 12 | 13 | 14 | {{ with .Params.robots -}} 15 | 16 | {{- end }} 17 | 18 | {{ partial "stylesheet" . }} 19 | {{ partial "favicons" . }} 20 | {{ partial "social" . }} 21 | {{ partial "analytics" . }} 22 | -------------------------------------------------------------------------------- /bootstrap4-source/js/tests/unit/tests-polyfills.js: -------------------------------------------------------------------------------- 1 | // Polyfills for our unit tests 2 | (function () { 3 | 'use strict' 4 | 5 | // Event constructor shim 6 | if (!window.Event || typeof window.Event !== 'function') { 7 | var origEvent = window.Event 8 | window.Event = function (inType, params) { 9 | params = params || {} 10 | var e = document.createEvent('Event') 11 | e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable)) 12 | return e 13 | } 14 | 15 | window.Event.prototype = origEvent.prototype 16 | } 17 | 18 | if (typeof window.CustomEvent !== 'function') { 19 | window.CustomEvent = function (event, params) { 20 | params = params || { bubbles: false, cancelable: false, detail: null } 21 | var evt = document.createEvent('CustomEvent') 22 | evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail) 23 | return evt 24 | } 25 | 26 | CustomEvent.prototype = window.Event.prototype 27 | } 28 | })() 29 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/shortcodes/list-versions.html: -------------------------------------------------------------------------------- 1 |
2 | {{- range $release := (index $.Site.Data "docs-versions") }} 3 |
4 |

{{ $release.group }}

5 |

{{ $release.description }}

6 | {{- $versions := sort $release.versions "v" "desc" -}} 7 | {{- range $i, $version := $versions }} 8 | {{- $len := len $versions -}} 9 | {{ if (eq $i 0) }}{{ end }} 17 | {{ end -}} 18 |
19 | {{ end -}} 20 |
21 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ partial "header" . }} 5 | 6 | 7 | {{ partial "skippy" . }} 8 | 9 | {{ partial "docs-navbar" . }} 10 | 11 |
12 |
13 |

{{ .Title | markdownify }}

14 |

{{ .Page.Params.Description | markdownify }}

15 | {{ if eq .Title "Examples" }} 16 | Download source code 17 | {{ end }} 18 |
19 | {{ partial "ads" . }} 20 |
21 | 22 |
23 | {{ .Content }} 24 |
25 | 26 | {{ partial "footer" . }} 27 | {{ partial "scripts" . }} 28 | 29 | 30 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/footer.html: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/sign-in/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: examples 3 | title: Signin Template 4 | extra_css: 5 | - "signin.css" 6 | body_class: "text-center" 7 | include_js: false 8 | --- 9 | 10 |
11 | 12 |

Please sign in

13 | 14 | 15 | 16 | 17 |
18 | 21 |
22 | 23 |

© 2017-{{< year >}}

24 |
25 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/_default/docs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ partial "header" . }} 5 | 6 | 7 | {{ partial "skippy" . }} 8 | 9 | {{ partial "docs-navbar" . }} 10 | 11 |
12 |
13 |
14 | {{ partial "docs-sidebar" . }} 15 |
16 | 17 | {{ if (eq .Page.Params.toc true) }} 18 | 21 | {{ end }} 22 | 23 |
24 |

{{ .Title | markdownify }}

25 |

{{ .Page.Params.Description | markdownify }}

26 | {{ partial "ads" . }} 27 | {{ .Content }} 28 |
29 |
30 |
31 | 32 | {{ partial "scripts" . }} 33 | 34 | 35 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/icons/github.svg: -------------------------------------------------------------------------------- 1 | {{ with .title }}{{ . }}{{ else }}GitHub{{ end }} -------------------------------------------------------------------------------- /bootstrap4-source/nuget/MyGet.ps1: -------------------------------------------------------------------------------- 1 | # set env vars usually set by MyGet (enable for local testing) 2 | #$env:SourcesPath = '..' 3 | #$env:NuGet = "./nuget.exe" # https://dist.nuget.org/win-x86-commandline/latest/nuget.exe 4 | 5 | $nuget = $env:NuGet 6 | 7 | Copy-Item $env:SourcesPath\LICENSE $env:SourcesPath\LICENSE.txt # has to be .txt extension, don't check in 8 | 9 | # parse the version number out of package.json 10 | $bsversionParts = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version.split('-', 2) # split the version on the '-' 11 | $bsversion = $bsversionParts[0] 12 | 13 | if ($bsversionParts.Length -gt 1) { 14 | $bsversion += '-' + $bsversionParts[1].replace('.', '').replace('-', '_') # strip out invalid chars from the PreRelease part 15 | } 16 | 17 | # create packages 18 | & $nuget pack "$env:SourcesPath\nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion 19 | & $nuget pack "$env:SourcesPath\nuget\bootstrap.sass.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion 20 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_close.scss: -------------------------------------------------------------------------------- 1 | .close { 2 | @include font-size($close-font-size); 3 | font-weight: $close-font-weight; 4 | line-height: 1; 5 | color: $close-color; 6 | text-shadow: $close-text-shadow; 7 | opacity: .5; 8 | 9 | // Override 's hover style 10 | &:hover { 11 | color: $close-color; 12 | text-decoration: none; 13 | } 14 | 15 | &:not(:disabled):not(.disabled) { 16 | &:hover, 17 | &:focus { 18 | opacity: .75; 19 | } 20 | } 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 27 | 28 | // stylelint-disable-next-line selector-no-qualifying-type 29 | button.close { 30 | padding: 0; 31 | background-color: transparent; 32 | border: 0; 33 | appearance: none; 34 | } 35 | 36 | // Future-proof disabling of clicks on `` elements 37 | 38 | // stylelint-disable-next-line selector-no-qualifying-type 39 | a.close.disabled { 40 | pointer-events: none; 41 | } 42 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/about/team.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Team 4 | description: An overview of the founding team and core contributors to Bootstrap. 5 | group: about 6 | --- 7 | 8 | Bootstrap is maintained by the founding team and a small group of invaluable core contributors, with the massive support and involvement of our community. 9 | 10 | {{< team.inline >}} 11 |
12 | {{- range (index $.Site.Data "core-team") }} 13 | 14 | @{{ .user }} 15 | 16 | {{ .name }} @{{ .user }} 17 | 18 | 19 | {{ end -}} 20 |
21 | {{< /team.inline >}} 22 | 23 | Get involved with Bootstrap development by [opening an issue]({{< param repo >}}/issues/new) or submitting a pull request. Read our [contributing guidelines]({{< param repo >}}/blob/v{{< param current_version >}}/.github/CONTRIBUTING.md) for information on how we develop. 24 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Toggles 2 | // 3 | // Used in conjunction with global variables to enable certain theme features. 4 | 5 | // Vendor 6 | @import "vendor/rfs"; 7 | 8 | // Deprecate 9 | @import "mixins/deprecate"; 10 | 11 | // Helpers 12 | @import "mixins/breakpoints"; 13 | @import "mixins/image"; 14 | @import "mixins/resize"; 15 | @import "mixins/screen-reader"; 16 | @import "mixins/reset-text"; 17 | @import "mixins/text-emphasis"; 18 | @import "mixins/text-truncate"; 19 | 20 | // Utilities 21 | @import "mixins/utilities"; 22 | 23 | // Components 24 | @import "mixins/alert"; 25 | @import "mixins/buttons"; 26 | @import "mixins/caret"; 27 | @import "mixins/pagination"; 28 | @import "mixins/lists"; 29 | @import "mixins/list-group"; 30 | @import "mixins/nav-divider"; 31 | @import "mixins/forms"; 32 | @import "mixins/table-row"; 33 | 34 | // Skins 35 | @import "mixins/background-variant"; 36 | @import "mixins/border-radius"; 37 | @import "mixins/box-shadow"; 38 | @import "mixins/gradients"; 39 | @import "mixins/transition"; 40 | 41 | // Layout 42 | @import "mixins/clearfix"; 43 | @import "mixins/grid-framework"; 44 | @import "mixins/grid"; 45 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_masthead.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | .bd-masthead { 4 | position: relative; 5 | padding: 3rem ($grid-gutter-width / 2); 6 | // background-image: linear-gradient(45deg, #fafafa, #f5f5f5); 7 | 8 | h1 { 9 | @include font-size(4rem); 10 | line-height: 1; 11 | } 12 | 13 | .btn { 14 | padding: .8rem 2rem; 15 | font-weight: 600; 16 | @include font-size(1.25rem); 17 | } 18 | 19 | .carbonad { 20 | margin-top: 0 !important; 21 | margin-bottom: -3rem !important; 22 | } 23 | 24 | @include media-breakpoint-up(sm) { 25 | padding-top: 5rem; 26 | padding-bottom: 5rem; 27 | 28 | .carbonad { 29 | margin-bottom: 0 !important; 30 | } 31 | } 32 | 33 | @include media-breakpoint-up(md) { 34 | .carbonad { 35 | margin-top: 3rem !important; 36 | } 37 | } 38 | } 39 | 40 | .half-rule { 41 | width: 6rem; 42 | margin: 2.5rem 0; 43 | } 44 | 45 | .masthead-followup { 46 | .bd-clipboard { display: none; } 47 | 48 | .highlight { 49 | padding: .5rem 0; 50 | background-color: transparent; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/utilities/_api.scss: -------------------------------------------------------------------------------- 1 | // Loop over each breakpoint 2 | @each $breakpoint in map-keys($grid-breakpoints) { 3 | 4 | // Generate media query if needed 5 | @include media-breakpoint-up($breakpoint) { 6 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 7 | 8 | // Loop over each utility property 9 | @each $key, $utility in $utilities { 10 | // The utility can be disabled with `false`, thus check if the utility is a map first 11 | // Only proceed if responsive media queries are enabled or if it's the base media query 12 | @if type-of($utility) == "map" and (map-get($utility, responsive) or $infix == "") { 13 | @include generate-utility($utility, $infix); 14 | } 15 | } 16 | } 17 | } 18 | 19 | 20 | // Print utilities 21 | @media print { 22 | @each $key, $utility in $utilities { 23 | // The utility can be disabled with `false`, thus check if the utility is a map first 24 | // Then check if the utility needs print styles 25 | @if type-of($utility) == "map" and map-get($utility, print) == true { 26 | @include generate-utility($utility, "-print"); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/utilities/overflow.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Overflow 4 | description: Use these shorthand utilities for quickly configuring how content overflows an element. 5 | group: utilities 6 | --- 7 | 8 | Barebones `overflow` functionality is provided for two values by default, and they are not responsive. 9 | 10 |
11 |
12 | This is an example of using .overflow-auto on an element with set width and height dimensions. By design, this content will vertically scroll. 13 |
14 |
15 | This is an example of using .overflow-hidden on an element with set width and height dimensions. 16 |
17 |
18 | 19 | {{< highlight html >}} 20 |
...
21 |
...
22 | {{< /highlight >}} 23 | 24 | Using Sass variables, you may customize the overflow utilities by changing the `$overflows` variable in `_variables.scss`. 25 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_toasts.scss: -------------------------------------------------------------------------------- 1 | .toast { 2 | max-width: $toast-max-width; 3 | overflow: hidden; // cheap rounded corners on nested items 4 | @include font-size($toast-font-size); 5 | color: $toast-color; 6 | background-color: $toast-background-color; 7 | background-clip: padding-box; 8 | border: $toast-border-width solid $toast-border-color; 9 | box-shadow: $toast-box-shadow; 10 | backdrop-filter: blur(10px); 11 | opacity: 0; 12 | @include border-radius($toast-border-radius); 13 | 14 | &:not(:last-child) { 15 | margin-bottom: $toast-padding-x; 16 | } 17 | 18 | &.showing { 19 | opacity: 1; 20 | } 21 | 22 | &.show { 23 | display: block; 24 | opacity: 1; 25 | } 26 | 27 | &.hide { 28 | display: none; 29 | } 30 | } 31 | 32 | .toast-header { 33 | display: flex; 34 | align-items: center; 35 | padding: $toast-padding-y $toast-padding-x; 36 | color: $toast-header-color; 37 | background-color: $toast-header-background-color; 38 | background-clip: padding-box; 39 | border-bottom: $toast-border-width solid $toast-header-border-color; 40 | } 41 | 42 | .toast-body { 43 | padding: $toast-padding-x; // apply to both vertical and horizontal 44 | } 45 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/helpers/clearfix.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Clearfix 4 | description: Quickly and easily clear floated content within a container by adding a clearfix utility. 5 | group: helpers 6 | aliases: "/docs/4.3/helpers/" 7 | --- 8 | 9 | Easily clear `float`s by adding `.clearfix` **to the parent element**. Can also be used as a mixin. 10 | 11 | {{< highlight html >}} 12 |
...
13 | {{< /highlight >}} 14 | 15 | {{< highlight scss >}} 16 | // Mixin itself 17 | @mixin clearfix() { 18 | &::after { 19 | display: block; 20 | content: ""; 21 | clear: both; 22 | } 23 | } 24 | 25 | // Usage as a mixin 26 | .element { 27 | @include clearfix; 28 | } 29 | {{< /highlight >}} 30 | 31 | The following example shows how the clearfix can be used. Without the clearfix the wrapping div would not span around the buttons which would cause a broken layout. 32 | 33 | {{< example >}} 34 |
35 | 36 | 37 |
38 | {{< /example >}} 39 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/scripts.html: -------------------------------------------------------------------------------- 1 | {{ if eq (getenv "HUGO_ENV") "production" -}} 2 | 3 | {{ else -}} 4 | 5 | {{- end }} 6 | 7 | {{ if eq .Page.Layout "docs" -}} 8 | 9 | {{- end }} 10 | 11 | {{- if eq (getenv "HUGO_ENV") "production" -}} 12 | 13 | {{- else -}} 14 | 15 | 16 | 17 | 18 | 19 | {{- end -}} 20 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/shortcodes/list-examples.html: -------------------------------------------------------------------------------- 1 | {{ range $entry := $.Site.Data.examples -}} 2 |

{{ $entry.category }}

3 |

{{ $entry.description }}

4 | 5 | {{ range $i, $example := $entry.examples -}} 6 | {{- $len := len $entry.examples -}} 7 | {{ if (eq $i 0) }}
{{ end }} 8 |
9 | 10 | {{ $example.name }} screenshot 13 |
{{ $example.name }}
14 |
15 |

{{ $example.description }}

16 |
17 | {{ if (eq (add $i 1) $len) }}
{{ end }} 18 | {{ end -}} 19 | {{ end -}} 20 | -------------------------------------------------------------------------------- /bootstrap4-source/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2019 Twitter, Inc. 4 | Copyright (c) 2011-2019 The Bootstrap Authors 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /bootstrap4-source/site/data/docs-versions.yml: -------------------------------------------------------------------------------- 1 | - group: v1.x 2 | baseurl: "https://getbootstrap.com" 3 | description: "Every minor and patch release from v1 is listed below." 4 | versions: 5 | - v: "1.0.0" 6 | - v: "1.1.0" 7 | - v: "1.1.1" 8 | - v: "1.2.0" 9 | - v: "1.3.0" 10 | - v: "1.4.0" 11 | 12 | - group: v2.x 13 | baseurl: "https://getbootstrap.com" 14 | description: "Every minor and patch release from v2 is listed below." 15 | versions: 16 | - v: "2.0.0" 17 | - v: "2.0.1" 18 | - v: "2.0.2" 19 | - v: "2.0.3" 20 | - v: "2.0.4" 21 | - v: "2.1.0" 22 | - v: "2.1.1" 23 | - v: "2.2.0" 24 | - v: "2.2.1" 25 | - v: "2.2.2" 26 | - v: "2.3.0" 27 | - v: "2.3.1" 28 | - v: "2.3.2" 29 | 30 | - group: v3.x 31 | baseurl: "https://getbootstrap.com/docs" 32 | description: "Our previous major release and its minor versions. Last update was v3.4.1." 33 | versions: 34 | - v: "3.3" 35 | - v: "3.4" 36 | 37 | - group: v4.x 38 | baseurl: "https://getbootstrap.com/docs" 39 | description: "Current major release with two minor releases. Last update was v4.3.1." 40 | versions: 41 | - v: "4.0" 42 | - v: "4.1" 43 | - v: "4.2" 44 | - v: "4.3" 45 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_code.scss: -------------------------------------------------------------------------------- 1 | // Inline code 2 | code { 3 | @include font-size($code-font-size); 4 | color: $code-color; 5 | word-break: break-word; 6 | 7 | // Streamline the style when inside anchors to avoid broken underline and more 8 | a > & { 9 | color: inherit; 10 | } 11 | } 12 | 13 | // User input typically entered via keyboard 14 | kbd { 15 | padding: $kbd-padding-y $kbd-padding-x; 16 | @include font-size($kbd-font-size); 17 | color: $kbd-color; 18 | background-color: $kbd-bg; 19 | @include border-radius($border-radius-sm); 20 | @include box-shadow($kbd-box-shadow); 21 | 22 | kbd { 23 | padding: 0; 24 | @include font-size(100%); 25 | font-weight: $nested-kbd-font-weight; 26 | @include box-shadow(none); 27 | } 28 | } 29 | 30 | // Blocks of code 31 | pre { 32 | display: block; 33 | @include font-size($code-font-size); 34 | color: $pre-color; 35 | 36 | // Account for some code outputs that place code tags in pre tags 37 | code { 38 | @include font-size(inherit); 39 | color: inherit; 40 | word-break: normal; 41 | } 42 | } 43 | 44 | // Enable scrollable blocks of code 45 | .pre-scrollable { 46 | max-height: $pre-scrollable-max-height; 47 | overflow-y: scroll; 48 | } 49 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/dashboard/dashboard.js: -------------------------------------------------------------------------------- 1 | /* globals Chart:false, feather:false */ 2 | 3 | (function () { 4 | 'use strict' 5 | 6 | feather.replace() 7 | 8 | // Graphs 9 | var ctx = document.getElementById('myChart') 10 | // eslint-disable-next-line no-unused-vars 11 | var myChart = new Chart(ctx, { 12 | type: 'line', 13 | data: { 14 | labels: [ 15 | 'Sunday', 16 | 'Monday', 17 | 'Tuesday', 18 | 'Wednesday', 19 | 'Thursday', 20 | 'Friday', 21 | 'Saturday' 22 | ], 23 | datasets: [{ 24 | data: [ 25 | 15339, 26 | 21345, 27 | 18483, 28 | 24003, 29 | 23489, 30 | 24092, 31 | 12034 32 | ], 33 | lineTension: 0, 34 | backgroundColor: 'transparent', 35 | borderColor: '#007bff', 36 | borderWidth: 4, 37 | pointBackgroundColor: '#007bff' 38 | }] 39 | }, 40 | options: { 41 | scales: { 42 | yAxes: [{ 43 | ticks: { 44 | beginAtZero: false 45 | } 46 | }] 47 | }, 48 | legend: { 49 | display: false 50 | } 51 | } 52 | }) 53 | })() 54 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_grid.scss: -------------------------------------------------------------------------------- 1 | // Container widths 2 | // 3 | // Set the container width, and override it for fixed navbars in media queries. 4 | 5 | @if $enable-grid-classes { 6 | .container { 7 | @include make-container(); 8 | @include make-container-max-widths(); 9 | } 10 | } 11 | 12 | // Fluid container 13 | // 14 | // Utilizes the mixin meant for fixed width containers, but with 100% width for 15 | // fluid, full width layouts. 16 | 17 | @if $enable-grid-classes { 18 | .container-fluid { 19 | @include make-container(); 20 | } 21 | } 22 | 23 | // Row 24 | // 25 | // Rows contain and clear the floats of your columns. 26 | 27 | @if $enable-grid-classes { 28 | .row { 29 | @include make-row(); 30 | } 31 | 32 | // Remove the negative margin from default .row, then the horizontal padding 33 | // from all immediate children columns (to prevent runaway style inheritance). 34 | .no-gutters { 35 | margin-right: 0; 36 | margin-left: 0; 37 | 38 | > .col, 39 | > [class*="col-"] { 40 | padding-right: 0; 41 | padding-left: 0; 42 | } 43 | } 44 | } 45 | 46 | // Columns 47 | // 48 | // Common styles for small and large grid columns 49 | 50 | @if $enable-grid-classes { 51 | @include make-grid-columns(); 52 | } 53 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/extend/icons.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Icons 4 | description: Guidance and suggestions for using external icon libraries with Bootstrap. 5 | group: extend 6 | --- 7 | 8 | Bootstrap doesn't include an icon library by default, but we have a handful of recommendations for you to choose from. While most icon sets include multiple file formats, we prefer SVG implementations for their improved accessibility and vector support. 9 | 10 | ## Preferred 11 | 12 | We've tested and used these icon sets ourselves. 13 | 14 | - [Font Awesome](https://fontawesome.com/) 15 | - [Iconic](https://github.com/iconic/open-iconic) 16 | - [Octicons](https://octicons.github.com/) 17 | 18 | ## More options 19 | 20 | While we haven't tried these out, they do look promising and provide multiple formats—including SVG. 21 | 22 | - [Bytesize](https://github.com/danklammer/bytesize-icons) 23 | - [Google Material icons](https://material.io/tools/icons/) 24 | - [Ionicons](https://ionicons.com/) 25 | - [Feather](https://feathericons.com/) 26 | - [Dripicons](http://demo.amitjakhu.com/dripicons/) 27 | - [Ikons](http://ikons.piotrkwiatkowski.co.uk/) 28 | - [Glyph](https://glyph.smarticons.co/) 29 | - [Icons8](https://icons8.com/) 30 | - [icofont](https://icofont.com/) 31 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_utilities.scss: -------------------------------------------------------------------------------- 1 | // Utility generator 2 | // Used to generate utilities & print utilities 3 | @mixin generate-utility($utility, $infix) { 4 | $values: map-get($utility, values); 5 | 6 | // If the values are a list or string, convert it into a map 7 | @if type-of($values) == "string" or type-of(nth($values, 1)) != "list" { 8 | $values: zip($values, $values); 9 | } 10 | 11 | @each $key, $value in $values { 12 | $properties: map-get($utility, property); 13 | 14 | // Multiple properties are possible, for example with vertical or horizontal margins or paddings 15 | @if type-of($properties) == "string" { 16 | $properties: append((), $properties); 17 | } 18 | 19 | // Use custom class if present 20 | $property-class: map-get($utility, class); 21 | $property-class: if($property-class, $property-class, nth($properties, 1)); 22 | 23 | // Don't prefix if value key is null (eg. with shadow class) 24 | $property-class-modifier: if($key, "-" + $key, ""); 25 | 26 | .#{$property-class + $infix + $property-class-modifier} { 27 | @each $property in $properties { 28 | // stylelint-disable-next-line declaration-no-important 29 | #{$property}: $value !important; 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_progress.scss: -------------------------------------------------------------------------------- 1 | // Disable animation if transitions are disabled 2 | @if $enable-transitions { 3 | @keyframes progress-bar-stripes { 4 | 0% { background-position-x: $progress-height; } 5 | } 6 | } 7 | 8 | .progress { 9 | display: flex; 10 | height: $progress-height; 11 | overflow: hidden; // force rounded corners by cropping it 12 | @include font-size($progress-font-size); 13 | background-color: $progress-bg; 14 | @include border-radius($progress-border-radius); 15 | @include box-shadow($progress-box-shadow); 16 | } 17 | 18 | .progress-bar { 19 | display: flex; 20 | flex-direction: column; 21 | justify-content: center; 22 | color: $progress-bar-color; 23 | text-align: center; 24 | white-space: nowrap; 25 | background-color: $progress-bar-bg; 26 | @include transition($progress-bar-transition); 27 | } 28 | 29 | .progress-bar-striped { 30 | @include gradient-striped(); 31 | background-size: $progress-height $progress-height; 32 | } 33 | 34 | @if $enable-transitions { 35 | .progress-bar-animated { 36 | animation: progress-bar-stripes $progress-bar-animation-timing; 37 | 38 | @if $enable-prefers-reduced-motion-media-query { 39 | @media (prefers-reduced-motion: reduce) { 40 | animation: none; 41 | } 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/content/figures.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Figures 4 | description: Documentation and examples for displaying related images and text with the figure component in Bootstrap. 5 | group: content 6 | --- 7 | 8 | Anytime you need to display a piece of content—like an image with an optional caption, consider using a `
`. 9 | 10 | Use the included `.figure`, `.figure-img` and `.figure-caption` classes to provide some baseline styles for the HTML5 `
` and `
` elements. Images in figures have no explicit size, so be sure to add the `.img-fluid` class to your `` to make it responsive. 11 | 12 | {{< example >}} 13 |
14 | {{< placeholder width="400" height="300" class="figure-img img-fluid rounded" >}} 15 |
A caption for the above image.
16 |
17 | {{< /example >}} 18 | 19 | Aligning the figure's caption is easy with our [text utilities]({{< docsref "/utilities/text#text-alignment" >}}). 20 | 21 | {{< example >}} 22 |
23 | {{< placeholder width="400" height="300" class="figure-img img-fluid rounded" >}} 24 |
A caption for the above image.
25 |
26 | {{< /example >}} 27 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_spinners.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Rotating border 3 | // 4 | 5 | @keyframes spinner-border { 6 | to { transform: rotate(360deg); } 7 | } 8 | 9 | .spinner-border { 10 | display: inline-block; 11 | width: $spinner-width; 12 | height: $spinner-height; 13 | vertical-align: text-bottom; 14 | border: $spinner-border-width solid currentColor; 15 | border-right-color: transparent; 16 | // stylelint-disable-next-line property-blacklist 17 | border-radius: 50%; 18 | animation: spinner-border .75s linear infinite; 19 | } 20 | 21 | .spinner-border-sm { 22 | width: $spinner-width-sm; 23 | height: $spinner-height-sm; 24 | border-width: $spinner-border-width-sm; 25 | } 26 | 27 | // 28 | // Growing circle 29 | // 30 | 31 | @keyframes spinner-grow { 32 | 0% { 33 | transform: scale(0); 34 | } 35 | 50% { 36 | opacity: 1; 37 | } 38 | } 39 | 40 | .spinner-grow { 41 | display: inline-block; 42 | width: $spinner-width; 43 | height: $spinner-height; 44 | vertical-align: text-bottom; 45 | background-color: currentColor; 46 | // stylelint-disable-next-line property-blacklist 47 | border-radius: 50%; 48 | opacity: 0; 49 | animation: spinner-grow .75s linear infinite; 50 | } 51 | 52 | .spinner-grow-sm { 53 | width: $spinner-width-sm; 54 | height: $spinner-height-sm; 55 | } 56 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/cover/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: examples 3 | title: Cover Template 4 | extra_css: 5 | - "cover.css" 6 | body_class: "text-center" 7 | include_js: false 8 | --- 9 | 10 |
11 |
12 |
13 |

Cover

14 | 19 |
20 |
21 | 22 |
23 |

Cover your page.

24 |

Cover is a one-page template for building simple and beautiful home pages. Download, edit the text, and add your own fullscreen background photo to make it your own.

25 |

26 | Learn more 27 |

28 |
29 | 30 | 35 |
36 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/icons/slack.svg: -------------------------------------------------------------------------------- 1 | {{ with .title }}{{ . }}{{ else }}Slack{{ end }} -------------------------------------------------------------------------------- /bootstrap4-source/scss/_images.scss: -------------------------------------------------------------------------------- 1 | // Responsive images (ensure images don't scale beyond their parents) 2 | // 3 | // This is purposefully opt-in via an explicit class rather than being the default for all ``s. 4 | // We previously tried the "images are responsive by default" approach in Bootstrap v2, 5 | // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps) 6 | // which weren't expecting the images within themselves to be involuntarily resized. 7 | // See also https://github.com/twbs/bootstrap/issues/18178 8 | .img-fluid { 9 | @include img-fluid; 10 | } 11 | 12 | 13 | // Image thumbnails 14 | .img-thumbnail { 15 | padding: $thumbnail-padding; 16 | background-color: $thumbnail-bg; 17 | border: $thumbnail-border-width solid $thumbnail-border-color; 18 | @include border-radius($thumbnail-border-radius); 19 | @include box-shadow($thumbnail-box-shadow); 20 | 21 | // Keep them at most 100% wide 22 | @include img-fluid; 23 | } 24 | 25 | // 26 | // Figures 27 | // 28 | 29 | .figure { 30 | // Ensures the caption's text aligns with the image. 31 | display: inline-block; 32 | } 33 | 34 | .figure-img { 35 | margin-bottom: $spacer / 2; 36 | line-height: 1; 37 | } 38 | 39 | .figure-caption { 40 | @include font-size($figure-caption-font-size); 41 | color: $figure-caption-color; 42 | } 43 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/bootstrap.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v4.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | // Configuration 9 | 10 | @import "functions"; 11 | @import "variables"; 12 | @import "mixins"; 13 | @import "utilities"; 14 | 15 | 16 | // Layout & components 17 | 18 | @import "root"; 19 | @import "reboot"; 20 | @import "type"; 21 | @import "images"; 22 | @import "code"; 23 | @import "grid"; 24 | @import "tables"; 25 | @import "forms"; 26 | @import "buttons"; 27 | @import "transitions"; 28 | @import "dropdown"; 29 | @import "button-group"; 30 | @import "input-group"; 31 | @import "custom-forms"; 32 | @import "nav"; 33 | @import "navbar"; 34 | @import "card"; 35 | @import "breadcrumb"; 36 | @import "pagination"; 37 | @import "badge"; 38 | @import "alert"; 39 | @import "progress"; 40 | @import "list-group"; 41 | @import "close"; 42 | @import "toasts"; 43 | @import "modal"; 44 | @import "tooltip"; 45 | @import "popover"; 46 | @import "carousel"; 47 | @import "spinners"; 48 | 49 | 50 | // Helpers 51 | 52 | @import "helpers"; 53 | 54 | 55 | // Utilities 56 | 57 | @import "utilities/api"; 58 | @import "utilities/sizing"; 59 | @import "utilities/text"; 60 | @import "utilities/visibility"; 61 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/helpers/position.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Position 4 | description: Use these helpers for quickly configuring the position of an element. 5 | group: helpers 6 | toc: true 7 | --- 8 | 9 | ## Fixed top 10 | 11 | Position an element at the top of the viewport, from edge to edge. Be sure you understand the ramifications of fixed position in your project; you may need to add additional CSS. 12 | 13 | {{< highlight html >}} 14 |
...
15 | {{< /highlight >}} 16 | 17 | ## Fixed bottom 18 | 19 | Position an element at the bottom of the viewport, from edge to edge. Be sure you understand the ramifications of fixed position in your project; you may need to add additional CSS. 20 | 21 | {{< highlight html >}} 22 |
...
23 | {{< /highlight >}} 24 | 25 | ## Sticky top 26 | 27 | Position an element at the top of the viewport, from edge to edge, but only after you scroll past it. The `.sticky-top` utility uses CSS's `position: sticky`, which isn't fully supported in all browsers. 28 | 29 | **IE11 and IE10 will render `position: sticky` as `position: relative`.** As such, we wrap the styles in a `@supports` query, limiting the stickiness to only browsers that can render it properly. 30 | 31 | {{< highlight html >}} 32 |
...
33 | {{< /highlight >}} 34 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/img/favicons/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_alert.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .alert { 6 | position: relative; 7 | padding: $alert-padding-y $alert-padding-x; 8 | margin-bottom: $alert-margin-bottom; 9 | border: $alert-border-width solid transparent; 10 | @include border-radius($alert-border-radius); 11 | } 12 | 13 | // Headings for larger alerts 14 | .alert-heading { 15 | // Specified to prevent conflicts of changing $headings-color 16 | color: inherit; 17 | } 18 | 19 | // Provide class for links that match alerts 20 | .alert-link { 21 | font-weight: $alert-link-font-weight; 22 | } 23 | 24 | 25 | // Dismissible alerts 26 | // 27 | // Expand the right padding and account for the close button's positioning. 28 | 29 | .alert-dismissible { 30 | padding-right: $close-font-size + $alert-padding-x * 2; 31 | 32 | // Adjust close link position 33 | .close { 34 | position: absolute; 35 | top: 0; 36 | right: 0; 37 | padding: $alert-padding-y $alert-padding-x; 38 | color: inherit; 39 | } 40 | } 41 | 42 | 43 | // Alternate styles 44 | // 45 | // Generate contextual modifier classes for colorizing the alert. 46 | 47 | @each $color, $value in $theme-colors { 48 | .alert-#{$color} { 49 | @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/bootstrap4-email-css.scss: -------------------------------------------------------------------------------- 1 | // /*! 2 | // * Bootstrap v4.3.1 (https://getbootstrap.com/) 3 | // * Copyright 2011-2019 The Bootstrap Authors 4 | // * Copyright 2011-2019 Twitter, Inc. 5 | // * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | // */ 7 | 8 | // Configuration 9 | 10 | @import "functions"; 11 | @import "variables-email"; 12 | @import "mixins"; 13 | @import "utilities"; 14 | 15 | 16 | // Layout & components 17 | 18 | @import "root"; 19 | @import "reboot"; 20 | @import "type"; 21 | @import "images"; 22 | @import "code"; 23 | @import "grid"; 24 | // @import "tables"; 25 | // @import "forms"; 26 | @import "buttons"; 27 | @import "transitions"; 28 | // @import "dropdown"; 29 | @import "button-group"; 30 | // @import "input-group"; 31 | // @import "custom-forms"; 32 | // @import "nav"; 33 | // @import "navbar"; 34 | @import "card"; 35 | @import "breadcrumb"; 36 | // @import "pagination"; 37 | @import "badge"; 38 | @import "alert"; 39 | // @import "progress"; 40 | @import "list-group"; 41 | @import "close"; 42 | // @import "toasts"; 43 | // @import "modal"; 44 | // @import "tooltip"; 45 | // @import "popover"; 46 | // @import "carousel"; 47 | // @import "spinners"; 48 | 49 | 50 | // Helpers 51 | 52 | @import "helpers"; 53 | 54 | 55 | // Utilities 56 | 57 | @import "utilities/api"; 58 | @import "utilities/sizing"; 59 | @import "utilities/text"; 60 | @import "utilities/visibility"; 61 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/social.html: -------------------------------------------------------------------------------- 1 | {{ "" | safeHTML }} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | {{ "" | safeHTML }} 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /bootstrap4-source/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "babel-eslint", 4 | "extends": [ 5 | "plugin:import/errors", 6 | "plugin:import/warnings", 7 | "plugin:unicorn/recommended", 8 | "xo/esnext", 9 | "xo/browser" 10 | ], 11 | "rules": { 12 | "capitalized-comments": "off", 13 | "indent": [ 14 | "error", 15 | 2, 16 | { 17 | "MemberExpression": "off", 18 | "SwitchCase": 1 19 | } 20 | ], 21 | "max-params": [ 22 | "warn", 23 | 5 24 | ], 25 | "multiline-ternary": [ 26 | "error", 27 | "always-multiline" 28 | ], 29 | "new-cap": "off", 30 | "no-mixed-operators": "off", 31 | "object-curly-spacing": [ 32 | "error", 33 | "always" 34 | ], 35 | "prefer-destructuring": [ 36 | "error", 37 | { 38 | "object": true, 39 | "array": false 40 | } 41 | ], 42 | "semi": [ 43 | "error", 44 | "never" 45 | ], 46 | "unicorn/explicit-length-check": "off", 47 | "unicorn/import-index": "off", 48 | "unicorn/no-for-loop": "off", 49 | "unicorn/no-unused-properties": "error", 50 | "unicorn/prefer-includes": "off", 51 | "unicorn/prefer-node-append": "off", 52 | "unicorn/prefer-node-remove": "off", 53 | "unicorn/prefer-query-selector": "off", 54 | "unicorn/prefer-text-content": "off", 55 | "unicorn/prevent-abbreviations": "off" 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/floating-labels/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: examples 3 | title: Floating labels example 4 | extra_css: 5 | - "floating-labels.css" 6 | include_js: false 7 | --- 8 | 9 | 34 | -------------------------------------------------------------------------------- /bootstrap4-source/build/rollup.config.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const path = require('path') 4 | const babel = require('rollup-plugin-babel') 5 | const resolve = require('rollup-plugin-node-resolve') 6 | const banner = require('./banner.js') 7 | 8 | const BUNDLE = process.env.BUNDLE === 'true' 9 | const ESM = process.env.ESM === 'true' 10 | 11 | let fileDest = `bootstrap${ESM ? '.esm' : ''}` 12 | const external = ['popper.js'] 13 | const plugins = [ 14 | babel({ 15 | // Only transpile our source code 16 | exclude: 'node_modules/**', 17 | // Include only required helpers 18 | externalHelpersWhitelist: [ 19 | 'defineProperties', 20 | 'createClass', 21 | 'inheritsLoose', 22 | 'defineProperty', 23 | 'objectSpread' 24 | ] 25 | }) 26 | ] 27 | const globals = { 28 | 'popper.js': 'Popper' 29 | } 30 | 31 | if (BUNDLE) { 32 | fileDest += '.bundle' 33 | // Remove last entry in external array to bundle Popper 34 | external.pop() 35 | delete globals['popper.js'] 36 | plugins.push(resolve()) 37 | } 38 | 39 | const rollupConfig = { 40 | input: path.resolve(__dirname, `../js/index.${ESM ? 'esm' : 'umd'}.js`), 41 | output: { 42 | banner, 43 | file: path.resolve(__dirname, `../dist/js/${fileDest}.js`), 44 | format: ESM ? 'esm' : 'umd', 45 | globals 46 | }, 47 | external, 48 | plugins 49 | } 50 | 51 | if (!ESM) { 52 | rollupConfig.output.name = 'bootstrap' 53 | } 54 | 55 | module.exports = rollupConfig 56 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/product/product.css: -------------------------------------------------------------------------------- 1 | .container { 2 | max-width: 960px; 3 | } 4 | 5 | /* 6 | * Custom translucent site header 7 | */ 8 | 9 | .site-header { 10 | background-color: rgba(0, 0, 0, .85); 11 | -webkit-backdrop-filter: saturate(180%) blur(20px); 12 | backdrop-filter: saturate(180%) blur(20px); 13 | } 14 | .site-header a { 15 | color: #999; 16 | transition: ease-in-out color .15s; 17 | } 18 | .site-header a:hover { 19 | color: #fff; 20 | text-decoration: none; 21 | } 22 | 23 | /* 24 | * Dummy devices (replace them with your own or something else entirely!) 25 | */ 26 | 27 | .product-device { 28 | position: absolute; 29 | right: 10%; 30 | bottom: -30%; 31 | width: 300px; 32 | height: 540px; 33 | background-color: #333; 34 | border-radius: 21px; 35 | -webkit-transform: rotate(30deg); 36 | transform: rotate(30deg); 37 | } 38 | 39 | .product-device::before { 40 | position: absolute; 41 | top: 10%; 42 | right: 10px; 43 | bottom: 10%; 44 | left: 10px; 45 | content: ""; 46 | background-color: rgba(255, 255, 255, .1); 47 | border-radius: 5px; 48 | } 49 | 50 | .product-device-2 { 51 | top: -25%; 52 | right: auto; 53 | bottom: 0; 54 | left: 5%; 55 | background-color: #e5e5e5; 56 | } 57 | 58 | 59 | /* 60 | * Extra utilities 61 | */ 62 | 63 | .flex-equal > * { 64 | flex: 1; 65 | } 66 | @media (min-width: 768px) { 67 | .flex-md-equal > * { 68 | flex: 1; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | display: flex; 3 | flex-wrap: wrap; 4 | padding: $breadcrumb-padding-y $breadcrumb-padding-x; 5 | margin-bottom: $breadcrumb-margin-bottom; 6 | list-style: none; 7 | background-color: $breadcrumb-bg; 8 | @include border-radius($breadcrumb-border-radius); 9 | } 10 | 11 | .breadcrumb-item { 12 | // The separator between breadcrumbs (by default, a forward-slash: "/") 13 | + .breadcrumb-item { 14 | padding-left: $breadcrumb-item-padding-x; 15 | 16 | &::before { 17 | display: inline-block; // Suppress underlining of the separator in modern browsers 18 | padding-right: $breadcrumb-item-padding-x; 19 | color: $breadcrumb-divider-color; 20 | content: $breadcrumb-divider; 21 | } 22 | } 23 | 24 | // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built 25 | // without `
    `s. The `::before` pseudo-element generates an element 26 | // *within* the .breadcrumb-item and thereby inherits the `text-decoration`. 27 | // 28 | // To trick IE into suppressing the underline, we give the pseudo-element an 29 | // underline and then immediately remove it. 30 | + .breadcrumb-item:hover::before { 31 | text-decoration: underline; 32 | } 33 | // stylelint-disable-next-line no-duplicate-selectors 34 | + .breadcrumb-item:hover::before { 35 | text-decoration: none; 36 | } 37 | 38 | &.active { 39 | color: $breadcrumb-active-color; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/utilities/vertical-align.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Vertical alignment 4 | description: Easily change the vertical alignment of inline, inline-block, inline-table, and table cell elements. 5 | group: utilities 6 | --- 7 | 8 | Change the alignment of elements with the [`vertical-alignment`](https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align) utilities. Please note that vertical-align only affects inline, inline-block, inline-table, and table cell elements. 9 | 10 | Choose from `.align-baseline`, `.align-top`, `.align-middle`, `.align-bottom`, `.align-text-bottom`, and `.align-text-top` as needed. 11 | 12 | With inline elements: 13 | 14 | {{< example >}} 15 | baseline 16 | top 17 | middle 18 | bottom 19 | text-top 20 | text-bottom 21 | {{< /example >}} 22 | 23 | With table cells: 24 | 25 | {{< example >}} 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
    baselinetopmiddlebottomtext-toptext-bottom
    38 | {{< /example >}} 39 | -------------------------------------------------------------------------------- /bootstrap4-source/js/tests/unit/util/sanitizer.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 'use strict' 3 | 4 | QUnit.module('sanitizer', { 5 | afterEach: function () { 6 | $('#qunit-fixture').html('') 7 | } 8 | }) 9 | 10 | QUnit.test('should export a default white list', function (assert) { 11 | assert.expect(1) 12 | 13 | assert.ok(Sanitizer.DefaultWhitelist) 14 | }) 15 | 16 | QUnit.test('should sanitize template by removing tags with XSS', function (assert) { 17 | assert.expect(1) 18 | 19 | var template = [ 20 | '
    ', 21 | ' Click me', 22 | ' Some content', 23 | '
    ' 24 | ].join('') 25 | 26 | var result = Sanitizer.sanitizeHtml(template, Sanitizer.DefaultWhitelist, null) 27 | 28 | assert.strictEqual(result.indexOf('script'), -1) 29 | }) 30 | 31 | QUnit.test('should not use native api to sanitize if a custom function passed', function (assert) { 32 | assert.expect(2) 33 | 34 | var template = [ 35 | '
    ', 36 | ' Some content', 37 | '
    ' 38 | ].join('') 39 | 40 | function mySanitize(htmlUnsafe) { 41 | return htmlUnsafe 42 | } 43 | 44 | var spy = sinon.spy(DOMParser.prototype, 'parseFromString') 45 | var result = Sanitizer.sanitizeHtml(template, Sanitizer.DefaultWhitelist, mySanitize) 46 | 47 | assert.strictEqual(result, template) 48 | assert.strictEqual(spy.called, false) 49 | spy.restore() 50 | }) 51 | }) 52 | -------------------------------------------------------------------------------- /bootstrap4-source/js/tests/unit/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "env": { 4 | "jquery": true, 5 | "qunit": true 6 | }, 7 | "globals": { 8 | "bootstrap": false, 9 | "sinon": false, 10 | "Util": false, 11 | "Sanitizer": false, 12 | "Data": false, 13 | "Alert": false, 14 | "Button": false, 15 | "Carousel": false, 16 | "Simulator": false, 17 | "Toast": false, 18 | "EventHandler": false, 19 | "Manipulator": false, 20 | "SelectorEngine": false 21 | }, 22 | "parserOptions": { 23 | "ecmaVersion": 5, 24 | "sourceType": "script" 25 | }, 26 | "extends": [ 27 | "plugin:unicorn/recommended", 28 | "xo", 29 | "xo/browser" 30 | ], 31 | "rules": { 32 | "capitalized-comments": "off", 33 | "indent": [ 34 | "error", 35 | 2, 36 | { 37 | "MemberExpression": "off", 38 | "SwitchCase": 1 39 | } 40 | ], 41 | "multiline-ternary": [ 42 | "error", 43 | "always-multiline" 44 | ], 45 | "new-cap": "off", 46 | "object-curly-spacing": [ 47 | "error", 48 | "always" 49 | ], 50 | "semi": [ 51 | "error", 52 | "never" 53 | ], 54 | "strict": "error", 55 | "unicorn/no-unused-properties": "error", 56 | "unicorn/prefer-includes": "off", 57 | "unicorn/prefer-node-append": "off", 58 | "unicorn/prefer-node-remove": "off", 59 | "unicorn/prefer-query-selector": "off", 60 | "unicorn/prevent-abbreviations": "off" 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Why need bootstrap email css? 2 | - The original bootstrap.min.css is a little too big for inline email css 3 | - This short version of bootstrap email css is less than 60KB 4 | 5 | # How to use it in email template? 6 | ```html 7 | 8 | 9 | 10 | Bootstrap email css template example 11 | 14 | 15 | 16 |
    17 |
    18 |
    19 |
    20 | 21 |
    22 | {!! $email-content !!} 23 |
    24 | 25 |
    26 |
    27 |
    28 |
    29 | 30 | 31 | ``` 32 | 33 | # What can we use with this email version? 34 | - Most of the features are available, expect below: 35 | - Components of form, input, table, modal, dropdown, nav, navbar, carousel, tooltips ...(See bootstrap4-source/scss/bootstrap4-email-css.scss for details) 36 | - Grid breakpoints only kept xs and md, md can be use for the breakpoints of mobile version and desktop version. which means only col-*, col-md-* are available. (See bootstrap4-source/scss/_variables-email.scss for details) -------------------------------------------------------------------------------- /bootstrap4-source/build/svgo.yml: -------------------------------------------------------------------------------- 1 | # Usage: 2 | # install svgo globally: `npm i -g svgo` 3 | # svgo --config=build/svgo.yml --input=foo.svg 4 | 5 | # https://github.com/svg/svgo/blob/master/docs/how-it-works/en.md 6 | # replace default config 7 | 8 | multipass: true 9 | #full: true 10 | 11 | # https://github.com/svg/svgo/blob/master/lib/svgo/js2svg.js#L6 for more config options 12 | 13 | js2svg: 14 | pretty: true 15 | indent: 2 16 | 17 | plugins: 18 | - cleanupAttrs: true 19 | - cleanupEnableBackground: true 20 | - cleanupIDs: true 21 | - cleanupListOfValues: true 22 | - cleanupNumericValues: true 23 | - collapseGroups: true 24 | - convertColors: true 25 | - convertPathData: true 26 | - convertShapeToPath: true 27 | - convertStyleToAttrs: true 28 | - convertTransform: true 29 | - inlineStyles: true 30 | - mergePaths: true 31 | - minifyStyles: true 32 | - moveElemsAttrsToGroup: true 33 | - moveGroupAttrsToElems: true 34 | - removeComments: true 35 | - removeDesc: true 36 | - removeDoctype: true 37 | - removeEditorsNSData: true 38 | - removeEmptyAttrs: true 39 | - removeEmptyContainers: true 40 | - removeEmptyText: true 41 | - removeHiddenElems: true 42 | - removeMetadata: true 43 | - removeNonInheritableGroupAttrs: true 44 | - removeTitle: false 45 | - removeUnknownsAndDefaults: 46 | keepRoleAttr: true 47 | - removeUnusedNS: true 48 | - removeUselessDefs: true 49 | - removeUselessStrokeAndFill: true 50 | - removeViewBox: false 51 | - removeXMLNS: false 52 | - removeXMLProcInst: true 53 | - sortAttrs: true 54 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/bootstrap-grid.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grid v4.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | html { 9 | box-sizing: border-box; 10 | } 11 | 12 | *, 13 | *::before, 14 | *::after { 15 | box-sizing: inherit; 16 | } 17 | 18 | @import "functions"; 19 | @import "variables"; 20 | 21 | @import "mixins/breakpoints"; 22 | @import "mixins/grid-framework"; 23 | @import "mixins/grid"; 24 | @import "mixins/utilities"; 25 | 26 | @import "grid"; 27 | 28 | @import "utilities"; 29 | // Only use the utilities we need 30 | // stylelint-disable-next-line scss/dollar-variable-default 31 | $utilities: map-get-multiple( 32 | $utilities, 33 | ( 34 | "display", 35 | "order", 36 | "flex", 37 | "flex-direction", 38 | "flex-grow", 39 | "flex-shrink" 40 | "flex-wrap", 41 | "justify-content", 42 | "align-items", 43 | "align-content", 44 | "align-self", 45 | "margin", 46 | "margin-x", 47 | "margin-y", 48 | "margin-top", 49 | "margin-right", 50 | "margin-bottom", 51 | "margin-left", 52 | "negative-margin", 53 | "negative-margin-x", 54 | "negative-margin-y", 55 | "negative-margin-top", 56 | "negative-margin-right", 57 | "negative-margin-bottom", 58 | "negative-margin-left", 59 | "padding", 60 | "padding-x", 61 | "padding-y", 62 | "padding-top", 63 | "padding-right", 64 | "padding-bottom", 65 | "padding-left", 66 | ) 67 | ); 68 | 69 | @import "utilities/api"; 70 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_border-radius.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable property-blacklist 2 | // Single side border-radius 3 | 4 | @mixin border-radius($radius: $border-radius, $fallback-border-radius: false) { 5 | @if $enable-rounded { 6 | border-radius: $radius; 7 | } 8 | @else if $fallback-border-radius != false { 9 | border-radius: $fallback-border-radius; 10 | } 11 | } 12 | 13 | @mixin border-top-radius($radius) { 14 | @if $enable-rounded { 15 | border-top-left-radius: $radius; 16 | border-top-right-radius: $radius; 17 | } 18 | } 19 | 20 | @mixin border-right-radius($radius) { 21 | @if $enable-rounded { 22 | border-top-right-radius: $radius; 23 | border-bottom-right-radius: $radius; 24 | } 25 | } 26 | 27 | @mixin border-bottom-radius($radius) { 28 | @if $enable-rounded { 29 | border-bottom-right-radius: $radius; 30 | border-bottom-left-radius: $radius; 31 | } 32 | } 33 | 34 | @mixin border-left-radius($radius) { 35 | @if $enable-rounded { 36 | border-top-left-radius: $radius; 37 | border-bottom-left-radius: $radius; 38 | } 39 | } 40 | 41 | @mixin border-top-left-radius($radius) { 42 | @if $enable-rounded { 43 | border-top-left-radius: $radius; 44 | } 45 | } 46 | 47 | @mixin border-top-right-radius($radius) { 48 | @if $enable-rounded { 49 | border-top-right-radius: $radius; 50 | } 51 | } 52 | 53 | @mixin border-bottom-right-radius($radius) { 54 | @if $enable-rounded { 55 | border-bottom-right-radius: $radius; 56 | } 57 | } 58 | 59 | @mixin border-bottom-left-radius($radius) { 60 | @if $enable-rounded { 61 | border-bottom-left-radius: $radius; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/content/code.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Code 4 | description: Documentation and examples for displaying inline and multiline blocks of code with Bootstrap. 5 | group: content 6 | toc: true 7 | --- 8 | 9 | ## Inline code 10 | 11 | Wrap inline snippets of code with ``. Be sure to escape HTML angle brackets. 12 | 13 | {{< example >}} 14 | For example, <section> should be wrapped as inline. 15 | {{< /example >}} 16 | 17 | ## Code blocks 18 | 19 | Use `
    `s for multiple lines of code. Once again, be sure to escape any angle brackets in the code for proper rendering. You may optionally add the `.pre-scrollable` class, which will set a max-height of 340px and provide a y-axis scrollbar.
    20 | 
    21 | {{< example >}}
    22 | 
    <p>Sample text here...</p>
    23 | <p>And another line of sample text here...</p>
    24 | 
    25 | {{< /example >}} 26 | 27 | ## Variables 28 | 29 | For indicating variables use the `` tag. 30 | 31 | {{< example >}} 32 | y = mx + b 33 | {{< /example >}} 34 | 35 | ## User input 36 | 37 | Use the `` to indicate input that is typically entered via keyboard. 38 | 39 | {{< example >}} 40 | To switch directories, type cd followed by the name of the directory.
    41 | To edit settings, press ctrl + , 42 | {{< /example >}} 43 | 44 | ## Sample output 45 | 46 | For indicating sample output from a program use the `` tag. 47 | 48 | {{< example >}} 49 | This text is meant to be treated as sample output from a computer program. 50 | {{< /example >}} 51 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/shortcodes/placeholder.html: -------------------------------------------------------------------------------- 1 | {{- /* 2 | Usage: `placeholder args` 3 | 4 | args can be one of the following: 5 | title: Used in the SVG `title` tag, default "Placeholder" 6 | text: The text to show in the image - default: "width x height" 7 | class: default: "bd-placeholder-img" 8 | color: The text color (foreground) - default: "#dee2e6" 9 | background: The background color - default: "#868e96" 10 | width: default: 100% 11 | height: default: 180px 12 | */ -}} 13 | 14 | {{- $grays := $.Site.Data.grays -}} 15 | {{- $title := .Get "title" | default "Placeholder" -}} 16 | {{- $class := .Get "class" -}} 17 | {{- $color := .Get "color" | default (index $grays 2).hex -}} 18 | {{- $background := .Get "background" | default (index $grays 5).hex -}} 19 | {{- $width := .Get "width" | default "100%" -}} 20 | {{- $height := .Get "height" | default "180" -}} 21 | {{- $text := .Get "text" | default (printf "%sx%s" $width $height) -}} 22 | 23 | {{- $show_title := not (eq $title "false") -}} 24 | {{- $show_text := not (eq $text "false") -}} 25 | 26 | 27 | {{- if $show_title -}}{{ $title }}{{- end -}} 28 | 29 | {{- if $show_text -}}{{ $text }}{{- end -}} 30 | 31 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_caret.scss: -------------------------------------------------------------------------------- 1 | @mixin caret-down { 2 | border-top: $caret-width solid; 3 | border-right: $caret-width solid transparent; 4 | border-bottom: 0; 5 | border-left: $caret-width solid transparent; 6 | } 7 | 8 | @mixin caret-up { 9 | border-top: 0; 10 | border-right: $caret-width solid transparent; 11 | border-bottom: $caret-width solid; 12 | border-left: $caret-width solid transparent; 13 | } 14 | 15 | @mixin caret-right { 16 | border-top: $caret-width solid transparent; 17 | border-right: 0; 18 | border-bottom: $caret-width solid transparent; 19 | border-left: $caret-width solid; 20 | } 21 | 22 | @mixin caret-left { 23 | border-top: $caret-width solid transparent; 24 | border-right: $caret-width solid; 25 | border-bottom: $caret-width solid transparent; 26 | } 27 | 28 | @mixin caret($direction: down) { 29 | @if $enable-caret { 30 | &::after { 31 | display: inline-block; 32 | margin-left: $caret-spacing; 33 | vertical-align: $caret-vertical-align; 34 | content: ""; 35 | @if $direction == down { 36 | @include caret-down; 37 | } @else if $direction == up { 38 | @include caret-up; 39 | } @else if $direction == right { 40 | @include caret-right; 41 | } 42 | } 43 | 44 | @if $direction == left { 45 | &::after { 46 | display: none; 47 | } 48 | 49 | &::before { 50 | display: inline-block; 51 | margin-right: $caret-spacing; 52 | vertical-align: $caret-vertical-align; 53 | content: ""; 54 | @include caret-left; 55 | } 56 | } 57 | 58 | &:empty::after { 59 | margin-left: 0; 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/utilities/float.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Float 4 | description: Toggle floats on any element, across any breakpoint, using our responsive float utilities. 5 | group: utilities 6 | toc: true 7 | --- 8 | 9 | ## Overview 10 | 11 | These utility classes float an element to the left or right, or disable floating, based on the current viewport size using the [CSS `float` property](https://developer.mozilla.org/en-US/docs/Web/CSS/float). `!important` is included to avoid specificity issues. These use the same viewport breakpoints as our grid system. Please be aware float utilities have no affect on flex items. 12 | 13 | {{< example >}} 14 |
    Float left on all viewport sizes

    15 |
    Float right on all viewport sizes

    16 |
    Don't float on all viewport sizes
    17 | {{< /example >}} 18 | 19 | ## Responsive 20 | 21 | Responsive variations also exist for each `float` value. 22 | 23 | {{< example >}} 24 |
    Float left on viewports sized SM (small) or wider

    25 |
    Float left on viewports sized MD (medium) or wider

    26 |
    Float left on viewports sized LG (large) or wider

    27 |
    Float left on viewports sized XL (extra-large) or wider

    28 | {{< /example >}} 29 | 30 | Here are all the support classes: 31 | 32 | {{< markdown >}} 33 | {{< float.inline >}} 34 | {{- range $.Site.Data.breakpoints }} 35 | - `.float{{ .abbr }}-left` 36 | - `.float{{ .abbr }}-right` 37 | - `.float{{ .abbr }}-none` 38 | {{- end -}} 39 | {{< /float.inline >}} 40 | {{< /markdown >}} 41 | -------------------------------------------------------------------------------- /bootstrap4-source/nuget/bootstrap.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | bootstrap 5 | 4.3.1 6 | Bootstrap CSS 7 | The Bootstrap Authors, Twitter Inc. 8 | bootstrap 9 | The most popular front-end framework for developing responsive, mobile first projects on the web. 10 | https://blog.getbootstrap.com/ 11 | Bootstrap framework in CSS. Includes fonts and JavaScript 12 | en-us 13 | https://getbootstrap.com/ 14 | https://getbootstrap.com/docs/4.3/assets/img/favicons/apple-touch-icon.png 15 | LICENSE.txt 16 | Copyright 2017-2019 17 | false 18 | 19 | 20 | 21 | css mobile-first responsive front-end framework web 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_brand.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Brand guidelines 3 | // 4 | 5 | // Logo series wrapper 6 | .bd-brand-logos { 7 | display: table; 8 | width: 100%; 9 | margin-bottom: 1rem; 10 | overflow: hidden; 11 | color: $bd-purple; 12 | background-color: #f9f9f9; 13 | @include border-radius; 14 | 15 | .inverse { 16 | color: $white; 17 | background-color: $bd-purple; 18 | } 19 | } 20 | 21 | // Individual items 22 | .bd-brand-item { 23 | padding: 4rem 0; 24 | text-align: center; 25 | 26 | + .bd-brand-item { 27 | border-top: 1px solid $white; 28 | } 29 | 30 | // Heading content within 31 | h1, 32 | h3 { 33 | margin-top: 0; 34 | margin-bottom: 0; 35 | } 36 | 37 | @include media-breakpoint-up(md) { 38 | display: table-cell; 39 | width: 1%; 40 | 41 | + .bd-brand-item { 42 | border-top: 0; 43 | border-left: 1px solid $white; 44 | } 45 | 46 | h1 { 47 | @include font-size(4rem); 48 | } 49 | } 50 | } 51 | 52 | 53 | // 54 | // Color swatches 55 | // 56 | 57 | .color-swatches { 58 | margin: 0 -5px; 59 | overflow: hidden; // clearfix 60 | 61 | // Docs colors 62 | .bd-purple { 63 | background-color: $bd-purple; 64 | } 65 | .bd-purple-light { 66 | background-color: $bd-purple-light; 67 | } 68 | .bd-purple-lighter { 69 | background-color: #e5e1ea; 70 | } 71 | .bd-gray { 72 | background-color: #f9f9f9; 73 | } 74 | } 75 | 76 | .color-swatch { 77 | float: left; 78 | width: 4rem; 79 | height: 4rem; 80 | margin-right: .25rem; 81 | margin-left: .25rem; 82 | @include border-radius; 83 | 84 | @include media-breakpoint-up(md) { 85 | width: 6rem; 86 | height: 6rem; 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /bootstrap4-source/nuget/bootstrap.sass.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | bootstrap.sass 5 | 4.3.1 6 | Bootstrap Sass 7 | The Bootstrap Authors, Twitter Inc. 8 | bootstrap 9 | The most popular front-end framework for developing responsive, mobile first projects on the web. 10 | https://blog.getbootstrap.com/ 11 | Bootstrap framework in Sass. Includes fonts and JavaScript 12 | en-us 13 | https://getbootstrap.com/ 14 | https://getbootstrap.com/docs/4.3/assets/img/favicons/apple-touch-icon.png 15 | LICENSE.txt 16 | Copyright 2017-2019 17 | false 18 | 19 | 20 | 21 | css sass mobile-first responsive front-end framework web 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /bootstrap4-source/js/tests/browsers.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | /* eslint-disable camelcase */ 3 | 4 | const browsers = { 5 | safariMac: { 6 | base: 'BrowserStack', 7 | os: 'OS X', 8 | os_version: 'High Sierra', 9 | browser: 'Safari', 10 | browser_version: 'latest' 11 | }, 12 | chromeMac: { 13 | base: 'BrowserStack', 14 | os: 'OS X', 15 | os_version: 'High Sierra', 16 | browser: 'Chrome', 17 | browser_version: 'latest' 18 | }, 19 | firefoxMac: { 20 | base: 'BrowserStack', 21 | os: 'OS X', 22 | os_version: 'High Sierra', 23 | browser: 'Firefox', 24 | browser_version: 'latest' 25 | }, 26 | edgeWin10: { 27 | base: 'BrowserStack', 28 | os: 'Windows', 29 | os_version: '10', 30 | browser: 'Edge', 31 | browser_version: 'latest' 32 | }, 33 | ie11Win10: { 34 | base: 'BrowserStack', 35 | os: 'Windows', 36 | os_version: '10', 37 | browser: 'IE', 38 | browser_version: '11.0' 39 | }, 40 | chromeWin10: { 41 | base: 'BrowserStack', 42 | os: 'Windows', 43 | os_version: '10', 44 | browser: 'Chrome', 45 | browser_version: 'latest' 46 | }, 47 | firefoxWin10: { 48 | base: 'BrowserStack', 49 | os: 'Windows', 50 | os_version: '10', 51 | browser: 'Firefox', 52 | browser_version: 'latest' 53 | }, 54 | iphoneX: { 55 | base: 'BrowserStack', 56 | os: 'ios', 57 | os_version: '11.0', 58 | device: 'iPhone X', 59 | real_mobile: true 60 | }, 61 | pixel2: { 62 | base: 'BrowserStack', 63 | os: 'android', 64 | os_version: '8.0', 65 | device: 'Google Pixel 2', 66 | real_mobile: true 67 | } 68 | } 69 | 70 | const browsersKeys = Object.keys(browsers) 71 | 72 | module.exports = { 73 | browsers, 74 | browsersKeys 75 | } 76 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/navbar-fixed/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: examples 3 | title: Fixed top navbar example 4 | extra_css: 5 | - "navbar-top-fixed.css" 6 | --- 7 | 8 | 31 | 32 |
    33 |
    34 |

    Navbar example

    35 |

    This example is a quick exercise to illustrate how fixed to top navbar works. As you scroll, it will remain fixed to the top of your browser’s viewport.

    36 | }}" role="button">View navbar docs » 37 |
    38 |
    39 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_grid.scss: -------------------------------------------------------------------------------- 1 | /// Grid system 2 | // 3 | // Generate semantic grid columns with these mixins. 4 | 5 | @mixin make-container($padding-x: $container-padding-x) { 6 | width: 100%; 7 | padding-right: $padding-x; 8 | padding-left: $padding-x; 9 | margin-right: auto; 10 | margin-left: auto; 11 | } 12 | 13 | 14 | // For each breakpoint, define the maximum width of the container in a media query 15 | @mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) { 16 | @each $breakpoint, $container-max-width in $max-widths { 17 | @include media-breakpoint-up($breakpoint, $breakpoints) { 18 | max-width: $container-max-width; 19 | } 20 | } 21 | } 22 | 23 | @mixin make-row($gutter: $grid-gutter-width) { 24 | display: flex; 25 | flex-wrap: wrap; 26 | margin-right: -$gutter / 2; 27 | margin-left: -$gutter / 2; 28 | } 29 | 30 | @mixin make-col-ready($gutter: $grid-gutter-width) { 31 | position: relative; 32 | // Prevent columns from becoming too narrow when at smaller grid tiers by 33 | // always setting `width: 100%;`. This works because we use `flex` values 34 | // later on to override this initial width. 35 | width: 100%; 36 | padding-right: $gutter / 2; 37 | padding-left: $gutter / 2; 38 | } 39 | 40 | @mixin make-col($size, $columns: $grid-columns) { 41 | flex: 0 0 percentage($size / $columns); 42 | // Add a `max-width` to ensure content within each column does not blow out 43 | // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari 44 | // do not appear to require this. 45 | max-width: percentage($size / $columns); 46 | } 47 | 48 | @mixin make-col-offset($size, $columns: $grid-columns) { 49 | $num: $size / $columns; 50 | margin-left: if($num == 0, 0, percentage($num)); 51 | } 52 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/navbar-static/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: examples 3 | title: Top navbar example 4 | extra_css: 5 | - "navbar-top.css" 6 | --- 7 | 8 | 31 | 32 |
    33 |
    34 |

    Navbar example

    35 |

    This example is a quick exercise to illustrate how the top-aligned navbar works. As you scroll, this navbar remains in its original position and moves with the rest of the page.

    36 | }}" role="button">View navbar docs » 37 |
    38 |
    39 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/docs.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Docs (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under the Creative Commons Attribution 3.0 Unported License. 6 | * For details, see https://creativecommons.org/licenses/by/3.0/. 7 | */ 8 | 9 | // Dev notes 10 | // 11 | // Background information on nomenclature and architecture decisions here. 12 | // 13 | // - Bootstrap functions, variables, and mixins are included for easy reuse. 14 | // Doing so gives us access to the same core utilities provided by Bootstrap. 15 | // For example, consistent media queries through those mixins. 16 | // 17 | // - Bootstrap's **docs variables** are prefixed with `$bd-`. 18 | // These custom colors avoid collision with the components Bootstrap provides. 19 | // 20 | // - Classes are prefixed with `.bd-`. 21 | // These classes indicate custom-built or modified components for the design 22 | // and layout of the Bootstrap docs. They are not included in our builds. 23 | // 24 | // Happy Bootstrapping! 25 | 26 | // Load Bootstrap variables and mixins 27 | @import "../../../../../../scss/functions"; 28 | @import "../../../../../../scss/variables"; 29 | @import "../../../../../../scss/mixins"; 30 | 31 | // Load docs components 32 | @import "variables"; 33 | @import "nav"; 34 | @import "masthead"; 35 | @import "ads"; 36 | @import "content"; 37 | @import "skippy"; 38 | @import "sidebar"; 39 | @import "footer"; 40 | @import "component-examples"; 41 | @import "buttons"; 42 | @import "callouts"; 43 | @import "browser-bugs"; 44 | @import "brand"; 45 | @import "colors"; 46 | @import "clipboard-js"; 47 | @import "placeholder-img"; 48 | 49 | // Load docs dependencies 50 | @import "syntax"; 51 | @import "anchor"; 52 | @import "algolia"; 53 | -------------------------------------------------------------------------------- /bootstrap4-source/js/src/dom/data.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * Bootstrap (v4.3.1): dom/data.js 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | /** 9 | * ------------------------------------------------------------------------ 10 | * Constants 11 | * ------------------------------------------------------------------------ 12 | */ 13 | 14 | const mapData = (() => { 15 | const storeData = {} 16 | let id = 1 17 | return { 18 | set(element, key, data) { 19 | if (typeof element.key === 'undefined') { 20 | element.key = { 21 | key, 22 | id 23 | } 24 | id++ 25 | } 26 | 27 | storeData[element.key.id] = data 28 | }, 29 | get(element, key) { 30 | if (!element || typeof element.key === 'undefined') { 31 | return null 32 | } 33 | 34 | const keyProperties = element.key 35 | if (keyProperties.key === key) { 36 | return storeData[keyProperties.id] 37 | } 38 | 39 | return null 40 | }, 41 | delete(element, key) { 42 | if (typeof element.key === 'undefined') { 43 | return 44 | } 45 | 46 | const keyProperties = element.key 47 | if (keyProperties.key === key) { 48 | delete storeData[keyProperties.id] 49 | delete element.key 50 | } 51 | } 52 | } 53 | })() 54 | 55 | const Data = { 56 | setData(instance, key, data) { 57 | mapData.set(instance, key, data) 58 | }, 59 | getData(instance, key) { 60 | return mapData.get(instance, key) 61 | }, 62 | removeData(instance, key) { 63 | mapData.delete(instance, key) 64 | } 65 | } 66 | 67 | export default Data 68 | -------------------------------------------------------------------------------- /bootstrap4-source/build/generate-sri.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | /*! 4 | * Script to generate SRI hashes for use in our docs. 5 | * Remember to use the same vendor files as the CDN ones, 6 | * otherwise the hashes won't match! 7 | * 8 | * Copyright 2017-2019 The Bootstrap Authors 9 | * Copyright 2017-2019 Twitter, Inc. 10 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 11 | */ 12 | 13 | 'use strict' 14 | 15 | const crypto = require('crypto') 16 | const fs = require('fs') 17 | const path = require('path') 18 | const sh = require('shelljs') 19 | 20 | sh.config.fatal = true 21 | 22 | const configFile = path.join(__dirname, '../config.yml') 23 | 24 | // Array of objects which holds the files to generate SRI hashes for. 25 | // `file` is the path from the root folder 26 | // `configPropertyName` is the config.yml variable's name of the file 27 | const files = [ 28 | { 29 | file: 'dist/css/bootstrap.min.css', 30 | configPropertyName: 'css_hash' 31 | }, 32 | { 33 | file: 'dist/js/bootstrap.min.js', 34 | configPropertyName: 'js_hash' 35 | }, 36 | { 37 | file: 'dist/js/bootstrap.bundle.min.js', 38 | configPropertyName: 'js_bundle_hash' 39 | }, 40 | { 41 | file: 'node_modules/popper.js/dist/umd/popper.min.js', 42 | configPropertyName: 'popper_hash' 43 | } 44 | ] 45 | 46 | files.forEach(file => { 47 | fs.readFile(file.file, 'utf8', (err, data) => { 48 | if (err) { 49 | throw err 50 | } 51 | 52 | const algo = 'sha384' 53 | const hash = crypto.createHash(algo).update(data, 'utf8').digest('base64') 54 | const integrity = `${algo}-${hash}` 55 | 56 | console.log(`${file.configPropertyName}: ${integrity}`) 57 | 58 | sh.sed('-i', new RegExp(`(\\s${file.configPropertyName}:\\s+"|')(\\S+)("|')`), `$1${integrity}$3`, configFile) 59 | }) 60 | }) 61 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/js/src/search.js: -------------------------------------------------------------------------------- 1 | // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT 2 | // IT'S ALL JUST JUNK FOR OUR DOCS! 3 | // ++++++++++++++++++++++++++++++++++++++++++ 4 | 5 | (function () { 6 | 'use strict' 7 | 8 | if (!window.docsearch) { 9 | return 10 | } 11 | 12 | var inputElement = document.getElementById('search-input') 13 | var siteDocsVersion = inputElement.getAttribute('data-docs-version') 14 | 15 | function getOrigin() { 16 | var location = window.location 17 | var origin = location.origin 18 | 19 | if (!origin) { 20 | var port = location.port ? ':' + location.port : '' 21 | 22 | origin = location.protocol + '//' + location.hostname + port 23 | } 24 | 25 | return origin 26 | } 27 | 28 | window.docsearch({ 29 | apiKey: '5990ad008512000bba2cf951ccf0332f', 30 | indexName: 'bootstrap', 31 | inputSelector: '#search-input', 32 | algoliaOptions: { 33 | facetFilters: ['version:' + siteDocsVersion] 34 | }, 35 | transformData: function (hits) { 36 | return hits.map(function (hit) { 37 | var currentUrl = getOrigin() 38 | var liveUrl = 'https://getbootstrap.com' 39 | 40 | // When in production, return the result as is, 41 | // otherwise remove our url from it. 42 | // eslint-disable-next-line no-negated-condition 43 | hit.url = currentUrl.indexOf(liveUrl) !== -1 ? 44 | hit.url : 45 | hit.url.replace(liveUrl, '') 46 | 47 | // Prevent jumping to first header 48 | if (hit.anchor === 'content') { 49 | hit.url = hit.url.replace(/#content$/, '') 50 | hit.anchor = null 51 | } 52 | 53 | return hit 54 | }) 55 | }, 56 | // Set debug to `true` if you want to inspect the dropdown 57 | debug: false 58 | }) 59 | })() 60 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/about/license.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: License FAQs 4 | description: Commonly asked questions about Bootstrap's open source license. 5 | group: about 6 | --- 7 | 8 | Bootstrap is released under the MIT license and is copyright {{< year >}} Twitter. Boiled down to smaller chunks, it can be described with the following conditions. 9 | 10 | #### It requires you to: 11 | 12 | * Keep the license and copyright notice included in Bootstrap's CSS and JavaScript files when you use them in your works 13 | 14 | #### It permits you to: 15 | 16 | - Freely download and use Bootstrap, in whole or in part, for personal, private, company internal, or commercial purposes 17 | - Use Bootstrap in packages or distributions that you create 18 | - Modify the source code 19 | - Grant a sublicense to modify and distribute Bootstrap to third parties not included in the license 20 | 21 | #### It forbids you to: 22 | 23 | - Hold the authors and license owners liable for damages as Bootstrap is provided without warranty 24 | - Hold the creators or copyright holders of Bootstrap liable 25 | - Redistribute any piece of Bootstrap without proper attribution 26 | - Use any marks owned by Twitter in any way that might state or imply that Twitter endorses your distribution 27 | - Use any marks owned by Twitter in any way that might state or imply that you created the Twitter software in question 28 | 29 | #### It does not require you to: 30 | 31 | - Include the source of Bootstrap itself, or of any modifications you may have made to it, in any redistribution you may assemble that includes it 32 | - Submit changes that you make to Bootstrap back to the Bootstrap project (though such feedback is encouraged) 33 | 34 | The full Bootstrap license is located [in the project repository]({{< param repo >}}/blob/v{{< param current_version >}}/LICENSE) for more information. 35 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/navbar-bottom/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: examples 3 | title: Bottom navbar example 4 | --- 5 | 6 |
    7 |
    8 |

    Bottom Navbar example

    9 |

    This example is a quick exercise to illustrate how the bottom navbar works.

    10 | }}" role="button">View navbar docs » 11 |
    12 |
    13 | 40 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/home/masthead.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 |
    5 | {{ partial "icons/bootstrap-stack.svg" (dict "class" "img-fluid mb-3 mb-md-0" "width" "512" "height" "430") }} 6 |
    7 |
    8 |

    Bootstrap

    9 |

    10 | Build responsive, mobile-first projects on the web with the world’s most popular front-end component library. 11 |

    12 |

    13 | Bootstrap is an open source toolkit for developing with HTML, CSS, and JS. Quickly prototype your ideas or build your entire app with our Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful plugins built with VanillaJS. 14 |

    15 |
    16 |
    17 | Get started 18 |
    19 |
    20 | Download 21 |
    22 |
    23 |

    24 | Currently v{{ .Site.Params.current_version }} 25 |

    26 |
    27 |
    28 | {{ partial "ads.html" . }} 29 |
    30 |
    31 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/mixins/_grid-framework.scss: -------------------------------------------------------------------------------- 1 | // Framework grid generation 2 | // 3 | // Used only by Bootstrap to generate the correct number of grid classes given 4 | // any value of `$grid-columns`. 5 | 6 | @mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) { 7 | // Common properties for all breakpoints 8 | %grid-column { 9 | position: relative; 10 | width: 100%; 11 | padding-right: $gutter / 2; 12 | padding-left: $gutter / 2; 13 | } 14 | 15 | @each $breakpoint in map-keys($breakpoints) { 16 | $infix: breakpoint-infix($breakpoint, $breakpoints); 17 | 18 | // Allow columns to stretch full width below their breakpoints 19 | @for $i from 1 through $columns { 20 | .col#{$infix}-#{$i} { 21 | @extend %grid-column; 22 | } 23 | } 24 | .col#{$infix}, 25 | .col#{$infix}-auto { 26 | @extend %grid-column; 27 | } 28 | 29 | @include media-breakpoint-up($breakpoint, $breakpoints) { 30 | // Provide basic `.col-{bp}` classes for equal-width flexbox columns 31 | .col#{$infix} { 32 | flex-basis: 0; 33 | flex-grow: 1; 34 | max-width: 100%; 35 | } 36 | .col#{$infix}-auto { 37 | flex: 0 0 auto; 38 | width: auto; 39 | max-width: 100%; // Reset earlier grid tiers 40 | } 41 | 42 | @for $i from 1 through $columns { 43 | .col#{$infix}-#{$i} { 44 | @include make-col($i, $columns); 45 | } 46 | } 47 | 48 | // `$columns - 1` because offsetting by the width of an entire row isn't possible 49 | @for $i from 0 through ($columns - 1) { 50 | @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0 51 | .offset#{$infix}-#{$i} { 52 | @include make-col-offset($i, $columns); 53 | } 54 | } 55 | } 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/offcanvas/offcanvas.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | overflow-x: hidden; /* Prevent scroll on narrow devices */ 4 | } 5 | 6 | body { 7 | padding-top: 56px; 8 | } 9 | 10 | @media (max-width: 991.98px) { 11 | .offcanvas-collapse { 12 | position: fixed; 13 | top: 56px; /* Height of navbar */ 14 | bottom: 0; 15 | left: 100%; 16 | width: 100%; 17 | padding-right: 1rem; 18 | padding-left: 1rem; 19 | overflow-y: auto; 20 | visibility: hidden; 21 | background-color: #343a40; 22 | transition: visibility .3s ease-in-out, -webkit-transform .3s ease-in-out; 23 | transition: transform .3s ease-in-out, visibility .3s ease-in-out; 24 | transition: transform .3s ease-in-out, visibility .3s ease-in-out, -webkit-transform .3s ease-in-out; 25 | } 26 | .offcanvas-collapse.open { 27 | visibility: visible; 28 | -webkit-transform: translateX(-100%); 29 | transform: translateX(-100%); 30 | } 31 | } 32 | 33 | .nav-scroller { 34 | position: relative; 35 | z-index: 2; 36 | height: 2.75rem; 37 | overflow-y: hidden; 38 | } 39 | 40 | .nav-scroller .nav { 41 | display: flex; 42 | flex-wrap: nowrap; 43 | padding-bottom: 1rem; 44 | margin-top: -1px; 45 | overflow-x: auto; 46 | color: rgba(255, 255, 255, .75); 47 | text-align: center; 48 | white-space: nowrap; 49 | -webkit-overflow-scrolling: touch; 50 | } 51 | 52 | .nav-underline .nav-link { 53 | padding-top: .75rem; 54 | padding-bottom: .75rem; 55 | font-size: .875rem; 56 | color: #6c757d; 57 | } 58 | 59 | .nav-underline .nav-link:hover { 60 | color: #007bff; 61 | } 62 | 63 | .nav-underline .active { 64 | font-weight: 500; 65 | color: #343a40; 66 | } 67 | 68 | .text-white-50 { color: rgba(255, 255, 255, .5); } 69 | 70 | .bg-purple { background-color: #6f42c1; } 71 | 72 | .lh-100 { line-height: 1; } 73 | .lh-125 { line-height: 1.25; } 74 | .lh-150 { line-height: 1.5; } 75 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/cover/cover.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Globals 3 | */ 4 | 5 | /* Links */ 6 | a, 7 | a:focus, 8 | a:hover { 9 | color: #fff; 10 | } 11 | 12 | /* Custom default button */ 13 | .btn-secondary, 14 | .btn-secondary:hover, 15 | .btn-secondary:focus { 16 | color: #333; 17 | text-shadow: none; /* Prevent inheritance from `body` */ 18 | background-color: #fff; 19 | border: .05rem solid #fff; 20 | } 21 | 22 | 23 | /* 24 | * Base structure 25 | */ 26 | 27 | html, 28 | body { 29 | height: 100%; 30 | background-color: #333; 31 | } 32 | 33 | body { 34 | display: flex; 35 | color: #fff; 36 | text-shadow: 0 .05rem .1rem rgba(0, 0, 0, .5); 37 | box-shadow: inset 0 0 5rem rgba(0, 0, 0, .5); 38 | } 39 | 40 | .cover-container { 41 | max-width: 42em; 42 | } 43 | 44 | 45 | /* 46 | * Header 47 | */ 48 | .masthead { 49 | margin-bottom: 2rem; 50 | } 51 | 52 | .masthead-brand { 53 | margin-bottom: 0; 54 | } 55 | 56 | .nav-masthead .nav-link { 57 | padding: .25rem 0; 58 | font-weight: 700; 59 | color: rgba(255, 255, 255, .5); 60 | background-color: transparent; 61 | border-bottom: .25rem solid transparent; 62 | } 63 | 64 | .nav-masthead .nav-link:hover, 65 | .nav-masthead .nav-link:focus { 66 | border-bottom-color: rgba(255, 255, 255, .25); 67 | } 68 | 69 | .nav-masthead .nav-link + .nav-link { 70 | margin-left: 1rem; 71 | } 72 | 73 | .nav-masthead .active { 74 | color: #fff; 75 | border-bottom-color: #fff; 76 | } 77 | 78 | @media (min-width: 48em) { 79 | .masthead-brand { 80 | float: left; 81 | } 82 | .nav-masthead { 83 | float: right; 84 | } 85 | } 86 | 87 | 88 | /* 89 | * Cover 90 | */ 91 | .cover { 92 | padding: 0 1.5rem; 93 | } 94 | .cover .btn-lg { 95 | padding: .75rem 1.25rem; 96 | font-weight: 700; 97 | } 98 | 99 | 100 | /* 101 | * Footer 102 | */ 103 | .mastfoot { 104 | color: rgba(255, 255, 255, .5); 105 | } 106 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/layout/utilities-for-layout.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: docs 3 | title: Utilities for layout 4 | description: For faster mobile-friendly and responsive development, Bootstrap includes dozens of utility classes for showing, hiding, aligning, and spacing content. 5 | group: layout 6 | toc: true 7 | --- 8 | 9 | ## Changing `display` 10 | 11 | Use our [display utilities]({{< docsref "/utilities/display" >}}) for responsively toggling common values of the `display` property. Mix it with our grid system, content, or components to show or hide them across specific viewports. 12 | 13 | ## Flexbox options 14 | 15 | Bootstrap 4 is built with flexbox, but not every element's `display` has been changed to `display: flex` as this would add many unnecessary overrides and unexpectedly change key browser behaviors. Most of [our components]({{< docsref "/components/alerts" >}}) are built with flexbox enabled. 16 | 17 | Should you need to add `display: flex` to an element, do so with `.d-flex` or one of the responsive variants (e.g., `.d-sm-flex`). You'll need this class or `display` value to allow the use of our extra [flexbox utilities]({{< docsref "/utilities/flex" >}}) for sizing, alignment, spacing, and more. 18 | 19 | ## Margin and padding 20 | 21 | Use the `margin` and `padding` [spacing utilities]({{< docsref "/utilities/spacing" >}}) to control how elements and components are spaced and sized. Bootstrap 4 includes a five-level scale for spacing utilities, based on a `1rem` value default `$spacer` variable. Choose values for all viewports (e.g., `.mr-3` for `margin-right: 1rem`), or pick responsive variants to target specific viewports (e.g., `.mr-md-3` for `margin-right: 1rem` starting at the `md` breakpoint). 22 | 23 | ## Toggle `visibility` 24 | 25 | When toggling `display` isn't needed, you can toggle the `visibility` of an element with our [visibility utilities]({{< docsref "/utilities/visibility" >}}). Invisible elements will still affect the layout of the page, but are visually hidden from visitors. 26 | -------------------------------------------------------------------------------- /bootstrap4-source/site/static/docs/4.3/assets/scss/_nav.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Main navbar 3 | // 4 | 5 | .bd-navbar { 6 | min-height: 4rem; 7 | background-color: $bd-purple; 8 | box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .05), inset 0 -1px 0 rgba(0, 0, 0, .1); 9 | 10 | @include media-breakpoint-down(md) { 11 | padding-right: .5rem; 12 | padding-left: .5rem; 13 | 14 | .navbar-nav-scroll { 15 | max-width: 100%; 16 | height: 2.5rem; 17 | margin-top: .25rem; 18 | overflow: hidden; 19 | 20 | .navbar-nav { 21 | padding-bottom: 2rem; 22 | overflow-x: auto; 23 | white-space: nowrap; 24 | -webkit-overflow-scrolling: touch; 25 | } 26 | } 27 | } 28 | 29 | @include media-breakpoint-up(md) { 30 | @supports (position: sticky) { 31 | position: sticky; 32 | top: 0; 33 | z-index: 1071; // over everything in bootstrap 34 | } 35 | } 36 | 37 | .navbar-nav { 38 | .nav-link { 39 | padding-right: .5rem; 40 | padding-left: .5rem; 41 | color: $bd-purple-light; 42 | 43 | &.active, 44 | &:hover { 45 | color: $white; 46 | background-color: transparent; 47 | } 48 | 49 | &.active { 50 | font-weight: 600; 51 | } 52 | } 53 | } 54 | 55 | .navbar-nav-svg { 56 | display: inline-block; 57 | width: 1rem; 58 | height: 1rem; 59 | vertical-align: text-top; 60 | } 61 | 62 | .dropdown-menu { 63 | @include font-size(.875rem); 64 | } 65 | 66 | .dropdown-item.active { 67 | font-weight: 600; 68 | color: $gray-900; 69 | background-color: transparent; 70 | background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); 71 | background-repeat: no-repeat; 72 | background-position: .4rem .6rem; 73 | background-size: .75rem .75rem; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /bootstrap4-source/scss/_pagination.scss: -------------------------------------------------------------------------------- 1 | .pagination { 2 | display: flex; 3 | @include list-unstyled(); 4 | @include border-radius(); 5 | } 6 | 7 | .page-link { 8 | position: relative; 9 | display: block; 10 | padding: $pagination-padding-y $pagination-padding-x; 11 | margin-left: -$pagination-border-width; 12 | line-height: $pagination-line-height; 13 | color: $pagination-color; 14 | background-color: $pagination-bg; 15 | border: $pagination-border-width solid $pagination-border-color; 16 | 17 | &:hover { 18 | z-index: 2; 19 | color: $pagination-hover-color; 20 | text-decoration: none; 21 | background-color: $pagination-hover-bg; 22 | border-color: $pagination-hover-border-color; 23 | } 24 | 25 | &:focus { 26 | z-index: 3; 27 | outline: $pagination-focus-outline; 28 | box-shadow: $pagination-focus-box-shadow; 29 | } 30 | } 31 | 32 | .page-item { 33 | &:first-child { 34 | .page-link { 35 | margin-left: 0; 36 | @include border-left-radius($border-radius); 37 | } 38 | } 39 | &:last-child { 40 | .page-link { 41 | @include border-right-radius($border-radius); 42 | } 43 | } 44 | 45 | &.active .page-link { 46 | z-index: 3; 47 | color: $pagination-active-color; 48 | background-color: $pagination-active-bg; 49 | border-color: $pagination-active-border-color; 50 | } 51 | 52 | &.disabled .page-link { 53 | color: $pagination-disabled-color; 54 | pointer-events: none; 55 | // Opinionated: remove the "hand" cursor set previously for .page-link 56 | cursor: auto; 57 | background-color: $pagination-disabled-bg; 58 | border-color: $pagination-disabled-border-color; 59 | } 60 | } 61 | 62 | 63 | // 64 | // Sizing 65 | // 66 | 67 | .pagination-lg { 68 | @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg); 69 | } 70 | 71 | .pagination-sm { 72 | @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm); 73 | } 74 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/carousel/carousel.css: -------------------------------------------------------------------------------- 1 | /* GLOBAL STYLES 2 | -------------------------------------------------- */ 3 | /* Padding below the footer and lighter body text */ 4 | 5 | body { 6 | padding-top: 3rem; 7 | padding-bottom: 3rem; 8 | color: #5a5a5a; 9 | } 10 | 11 | 12 | /* CUSTOMIZE THE CAROUSEL 13 | -------------------------------------------------- */ 14 | 15 | /* Carousel base class */ 16 | .carousel { 17 | margin-bottom: 4rem; 18 | } 19 | /* Since positioning the image, we need to help out the caption */ 20 | .carousel-caption { 21 | bottom: 3rem; 22 | z-index: 10; 23 | } 24 | 25 | /* Declare heights because of positioning of img element */ 26 | .carousel-item { 27 | height: 32rem; 28 | } 29 | .carousel-item > img { 30 | position: absolute; 31 | top: 0; 32 | left: 0; 33 | min-width: 100%; 34 | height: 32rem; 35 | } 36 | 37 | 38 | /* MARKETING CONTENT 39 | -------------------------------------------------- */ 40 | 41 | /* Center align the text within the three columns below the carousel */ 42 | .marketing .col-lg-4 { 43 | margin-bottom: 1.5rem; 44 | text-align: center; 45 | } 46 | .marketing h2 { 47 | font-weight: 400; 48 | } 49 | .marketing .col-lg-4 p { 50 | margin-right: .75rem; 51 | margin-left: .75rem; 52 | } 53 | 54 | 55 | /* Featurettes 56 | ------------------------- */ 57 | 58 | .featurette-divider { 59 | margin: 5rem 0; /* Space out the Bootstrap
    more */ 60 | } 61 | 62 | /* Thin out the marketing headings */ 63 | .featurette-heading { 64 | font-weight: 300; 65 | line-height: 1; 66 | letter-spacing: -.05rem; 67 | } 68 | 69 | 70 | /* RESPONSIVE CSS 71 | -------------------------------------------------- */ 72 | 73 | @media (min-width: 40em) { 74 | /* Bump up size of carousel content */ 75 | .carousel-caption p { 76 | margin-bottom: 1.25rem; 77 | font-size: 1.25rem; 78 | line-height: 1.4; 79 | } 80 | 81 | .featurette-heading { 82 | font-size: 50px; 83 | } 84 | } 85 | 86 | @media (min-width: 62em) { 87 | .featurette-heading { 88 | margin-top: 7rem; 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/_default/examples.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | {{ .Page.Title | markdownify }} · {{ .Site.Title | markdownify }} 10 | 11 | 12 | 13 | {{ with .Params.robots -}} 14 | 15 | {{- end }} 16 | 17 | {{ partial "stylesheet" . }} 18 | {{ partial "favicons" . }} 19 | 20 | 36 | 37 | {{ range .Page.Params.extra_css }} 38 | {{ "" | safeHTML }} 39 | 40 | {{- end }} 41 | 42 | 43 | {{ .Content }} 44 | 45 | {{ if ne .Page.Params.include_js false }} 46 | {{ if eq (getenv "HUGO_ENV") "production" }} 47 | 48 | {{ else }} 49 | 50 | {{ end }} 51 | 52 | {{ range .Page.Params.extra_js }} 53 | 54 | {{- end }} 55 | {{ end }} 56 | 57 | 58 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/docs-sidebar.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 44 | -------------------------------------------------------------------------------- /bootstrap4-source/site/content/docs/4.3/examples/starter-template/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: examples 3 | title: Starter Template 4 | extra_css: 5 | - "starter-template.css" 6 | --- 7 | 8 | 40 | 41 |
    42 | 43 |
    44 |

    Bootstrap starter template

    45 |

    Use this document as a way to quickly start any new project.
    All you get is this text and a mostly barebones HTML document.

    46 |
    47 | 48 |
    49 | -------------------------------------------------------------------------------- /bootstrap4-source/build/ship.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Usage 4 | # --------------- 5 | # 1. Clone second version of Bootstrap in sibling directory named `bs-docs`. 6 | # 2. Within `bs-docs` copy, switch to `gh-pages` branch. 7 | # 3. Pull latest, re-bundle, re-npm. 8 | # 4. Run script. 9 | 10 | red=$'\e[1;31m' 11 | green=$'\e[1;32m' 12 | #blue=$'\e[1;34m' 13 | magenta=$'\e[1;35m' 14 | #cyan=$'\e[1;36m' 15 | end=$'\e[0m' 16 | 17 | # Get current version from package.json 18 | current_version=$(node -p "require('./package.json').version") 19 | 20 | if [[ $# -lt 1 ]]; then 21 | printf "\n%s⚠️ Shipping aborted. You must specify a version.\n%s" $red $end 22 | exit 1 23 | fi 24 | 25 | # Pulling latest changes, just to be sure 26 | printf "\n%s=======================================================%s" $magenta $end 27 | printf "\n%sPulling latest changes...%s" $magenta $end 28 | printf "\n%s=======================================================\n\n%s" $magenta $end 29 | git pull origin master 30 | 31 | # Update version number 32 | printf "\n%s=======================================================%s" $magenta $end 33 | printf "\n%sUpdating version number...%s" $magenta $end 34 | printf "\n%s=======================================================\n%s" $magenta $end 35 | npm run release-version "$current_version" "$1" 36 | 37 | # Build release 38 | printf "\n%s=======================================================%s" $magenta $end 39 | printf "\n%sBuilding release...%s" $magenta $end 40 | printf "\n%s=======================================================\n%s" $magenta $end 41 | npm run release 42 | 43 | # Copy the contents of the built docs site over to `bs-docs` repo 44 | printf "\n%s=======================================================%s" $magenta $end 45 | printf "\n%sCopy it over...%s" $magenta $end 46 | printf "\n%s=======================================================\n%s" $magenta $end 47 | cp -rf _gh_pages/. ../bs-docs/ 48 | printf "\nDone!\n" 49 | 50 | printf "\n%s=======================================================%s" $green $end 51 | printf "\n%sSuccess, $1 is ready to review and publish.%s" $green $end 52 | printf "\n%s=======================================================\n\n%s" $green $end 53 | -------------------------------------------------------------------------------- /bootstrap4-source/site/layouts/partials/bugify.html: -------------------------------------------------------------------------------- 1 | {{- $words := (split . " ") -}} 2 | 3 | {{- range $word := $words -}} 4 | {{- if (strings.Contains $word "#") -}} 5 | {{- $separator := false -}} 6 | 7 | {{- if (strings.Contains $word ",") -}} 8 | {{- $separator = true -}} 9 | {{- end -}} 10 | 11 | {{- $data := split $word "#" -}} 12 | {{- $bug_cat := replace (index $data 0) "\n" "" -}} 13 | {{- $bug_id := replace (index $data 1) "\n" "" -}} 14 | {{- $bug_id = replace $bug_id "," "" -}} 15 | 16 | {{- if (eq $bug_cat "Bootstrap") -}} 17 | #{{ $bug_id }} 18 | {{- else if (eq $bug_cat "Edge") -}} 19 | Edge issue #{{ $bug_id }} 20 | {{- else if (eq $bug_cat "A11yUserVoice") -}} 21 | Microsoft A11y UserVoice idea #{{ $bug_id }} 22 | {{- else if (eq $bug_cat "UserVoice") -}} 23 | Edge UserVoice idea #{{ $bug_id }} 24 | {{- else if (eq $bug_cat "Mozilla") -}} 25 | Mozilla bug #{{ $bug_id }} 26 | {{- else if (eq $bug_cat "Chromium") -}} 27 | Chromium issue #{{ $bug_id }} 28 | {{- else if (eq $bug_cat "WebKit") -}} 29 | WebKit bug #{{ $bug_id }} 30 | {{- else if (eq $bug_cat "Safari") -}} 31 | Apple Safari Radar #{{ $bug_id }} 32 | {{- else if (eq $bug_cat "Normalize") -}} 33 | Normalize #{{ $bug_id }} 34 | {{- end -}} 35 | {{- if (eq $separator true) }}, {{ end -}} 36 | 37 | {{- else -}} 38 | {{- $word -}} 39 | {{- end -}} 40 | {{- end -}} 41 | --------------------------------------------------------------------------------