summaryrefslogtreecommitdiff
path: root/addons/web/static/lib/bootstrap
diff options
context:
space:
mode:
authorqsm-odoo <qsm@odoo.com>2018-01-30 17:01:02 +0100
committerqsm-odoo <qsm@odoo.com>2018-04-18 15:59:09 +0200
commit6096f2450152fb8c18ac29448b162b7d380c7b30 (patch)
tree103adf96d1af70c378114b814121a4d7b671e9fb /addons/web/static/lib/bootstrap
parent1a007c1a9618a46d94f40c16f20157a70646ad25 (diff)
[REF] web: change bootstrap source from less to scss
Note: bootstrap 3.3.7 in SCSS produces slightly different CSS of bootstrap 3.3.7 in LESS... the DOM result should be the same though.
Diffstat (limited to 'addons/web/static/lib/bootstrap')
-rw-r--r--addons/web/static/lib/bootstrap/LICENSE3
-rw-r--r--addons/web/static/lib/bootstrap/less/bootstrap.less56
-rw-r--r--addons/web/static/lib/bootstrap/less/breadcrumbs.less26
-rw-r--r--addons/web/static/lib/bootstrap/less/close.less34
-rw-r--r--addons/web/static/lib/bootstrap/less/jumbotron.less54
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins.less40
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/alerts.less14
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/background-variant.less9
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/border-radius.less18
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/buttons.less65
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/gradients.less59
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/grid-framework.less91
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/grid.less122
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/labels.less12
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/list-group.less30
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/opacity.less8
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/pagination.less24
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/panels.less24
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/responsive-visibility.less15
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/size.less10
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/text-emphasis.less9
-rw-r--r--addons/web/static/lib/bootstrap/less/mixins/vendor-prefixes.less227
-rw-r--r--addons/web/static/lib/bootstrap/less/pagination.less89
-rw-r--r--addons/web/static/lib/bootstrap/less/popovers.less131
-rw-r--r--addons/web/static/lib/bootstrap/less/theme.less291
-rw-r--r--addons/web/static/lib/bootstrap/less/thumbnails.less36
-rw-r--r--addons/web/static/lib/bootstrap/less/tooltip.less101
-rw-r--r--addons/web/static/lib/bootstrap/less/variables.less869
-rw-r--r--addons/web/static/lib/bootstrap/scss/_bootstrap-compass.scss9
-rw-r--r--addons/web/static/lib/bootstrap/scss/_bootstrap-mincer.scss19
-rw-r--r--addons/web/static/lib/bootstrap/scss/_bootstrap-sprockets.scss9
-rw-r--r--addons/web/static/lib/bootstrap/scss/_bootstrap.scss56
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_alerts.scss (renamed from addons/web/static/lib/bootstrap/less/alerts.less)20
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_badges.scss (renamed from addons/web/static/lib/bootstrap/less/badges.less)36
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_breadcrumbs.scss28
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_button-groups.scss (renamed from addons/web/static/lib/bootstrap/less/button-groups.less)38
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_buttons.scss (renamed from addons/web/static/lib/bootstrap/less/buttons.less)58
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_carousel.scss (renamed from addons/web/static/lib/bootstrap/less/carousel.less)56
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_close.scss36
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_code.scss (renamed from addons/web/static/lib/bootstrap/less/code.less)32
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_component-animations.scss (renamed from addons/web/static/lib/bootstrap/less/component-animations.less)16
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_dropdowns.scss (renamed from addons/web/static/lib/bootstrap/less/dropdowns.less)60
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_forms.scss (renamed from addons/web/static/lib/bootstrap/less/forms.less)200
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_glyphicons.scss (renamed from addons/web/static/lib/bootstrap/less/glyphicons.less)20
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_grid.scss (renamed from addons/web/static/lib/bootstrap/less/grid.less)34
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_input-groups.scss (renamed from addons/web/static/lib/bootstrap/less/input-groups.less)32
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_jumbotron.scss54
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_labels.scss (renamed from addons/web/static/lib/bootstrap/less/labels.less)34
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_list-group.scss (renamed from addons/web/static/lib/bootstrap/less/list-group.less)40
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_media.scss (renamed from addons/web/static/lib/bootstrap/less/media.less)0
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_mixins.scss40
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_modals.scss (renamed from addons/web/static/lib/bootstrap/less/modals.less)54
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_navbar.scss (renamed from addons/web/static/lib/bootstrap/less/navbar.less)256
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_navs.scss (renamed from addons/web/static/lib/bootstrap/less/navs.less)58
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_normalize.scss (renamed from addons/web/static/lib/bootstrap/less/normalize.less)0
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_pager.scss (renamed from addons/web/static/lib/bootstrap/less/pager.less)18
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_pagination.scss89
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_panels.scss (renamed from addons/web/static/lib/bootstrap/less/panels.less)78
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_popovers.scss131
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_print.scss (renamed from addons/web/static/lib/bootstrap/less/print.less)0
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_progress-bars.scss (renamed from addons/web/static/lib/bootstrap/less/progress-bars.less)34
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_responsive-embed.scss (renamed from addons/web/static/lib/bootstrap/less/responsive-embed.less)0
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_responsive-utilities.scss (renamed from addons/web/static/lib/bootstrap/less/responsive-utilities.less)107
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_scaffolding.scss (renamed from addons/web/static/lib/bootstrap/less/scaffolding.less)46
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_tables.scss (renamed from addons/web/static/lib/bootstrap/less/tables.less)48
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_theme.scss291
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_thumbnails.scss38
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_tooltip.scss101
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_type.scss (renamed from addons/web/static/lib/bootstrap/less/type.less)148
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_utilities.scss (renamed from addons/web/static/lib/bootstrap/less/utilities.less)6
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_variables.scss874
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/_wells.scss (renamed from addons/web/static/lib/bootstrap/less/wells.less)12
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_alerts.scss14
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_background-variant.scss12
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_border-radius.scss18
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_buttons.scss65
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_center-block.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/center-block.less)2
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_clearfix.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/clearfix.less)2
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_forms.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/forms.less)57
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_gradients.scss58
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_grid-framework.scss81
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_grid.scss122
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_hide-text.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/hide-text.less)8
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_image.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/image.less)12
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_labels.scss12
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_list-group.scss32
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_nav-divider.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/nav-divider.less)6
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_nav-vertical-align.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/nav-vertical-align.less)6
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_opacity.scss8
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_pagination.scss24
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_panels.scss24
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_progress-bar.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/progress-bar.less)6
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_reset-filter.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/reset-filter.less)4
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_reset-text.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/reset-text.less)6
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_resize.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/resize.less)4
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_responsive-visibility.scss21
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_size.scss10
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_tab-focus.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/tab-focus.less)2
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_table-row.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/table-row.less)24
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_text-emphasis.scss12
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_text-overflow.scss (renamed from addons/web/static/lib/bootstrap/less/mixins/text-overflow.less)2
-rw-r--r--addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_vendor-prefixes.scss222
102 files changed, 3354 insertions, 3305 deletions
diff --git a/addons/web/static/lib/bootstrap/LICENSE b/addons/web/static/lib/bootstrap/LICENSE
index 7a300022c3e..a3827b59600 100644
--- a/addons/web/static/lib/bootstrap/LICENSE
+++ b/addons/web/static/lib/bootstrap/LICENSE
@@ -1,6 +1,7 @@
The MIT License (MIT)
-Copyright (c) 2011-2016 Twitter, Inc.
+Copyright (c) 2011-2016 Twitter, Inc
+Copyright (c) 2011-2016 The Bootstrap Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/addons/web/static/lib/bootstrap/less/bootstrap.less b/addons/web/static/lib/bootstrap/less/bootstrap.less
deleted file mode 100644
index f0aa08f3a6e..00000000000
--- a/addons/web/static/lib/bootstrap/less/bootstrap.less
+++ /dev/null
@@ -1,56 +0,0 @@
-/*!
- * Bootstrap v3.3.7 (http://getbootstrap.com)
- * Copyright 2011-2016 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-// Core variables and mixins
-@import "variables.less";
-@import "mixins.less";
-
-// Reset and dependencies
-@import "normalize.less";
-@import "print.less";
-@import "glyphicons.less";
-
-// Core CSS
-@import "scaffolding.less";
-@import "type.less";
-@import "code.less";
-@import "grid.less";
-@import "tables.less";
-@import "forms.less";
-@import "buttons.less";
-
-// Components
-@import "component-animations.less";
-@import "dropdowns.less";
-@import "button-groups.less";
-@import "input-groups.less";
-@import "navs.less";
-@import "navbar.less";
-@import "breadcrumbs.less";
-@import "pagination.less";
-@import "pager.less";
-@import "labels.less";
-@import "badges.less";
-@import "jumbotron.less";
-@import "thumbnails.less";
-@import "alerts.less";
-@import "progress-bars.less";
-@import "media.less";
-@import "list-group.less";
-@import "panels.less";
-@import "responsive-embed.less";
-@import "wells.less";
-@import "close.less";
-
-// Components w/ JavaScript
-@import "modals.less";
-@import "tooltip.less";
-@import "popovers.less";
-@import "carousel.less";
-
-// Utility classes
-@import "utilities.less";
-@import "responsive-utilities.less";
diff --git a/addons/web/static/lib/bootstrap/less/breadcrumbs.less b/addons/web/static/lib/bootstrap/less/breadcrumbs.less
deleted file mode 100644
index cb01d503fbe..00000000000
--- a/addons/web/static/lib/bootstrap/less/breadcrumbs.less
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// Breadcrumbs
-// --------------------------------------------------
-
-
-.breadcrumb {
- padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
- margin-bottom: @line-height-computed;
- list-style: none;
- background-color: @breadcrumb-bg;
- border-radius: @border-radius-base;
-
- > li {
- display: inline-block;
-
- + li:before {
- content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
- padding: 0 5px;
- color: @breadcrumb-color;
- }
- }
-
- > .active {
- color: @breadcrumb-active-color;
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/close.less b/addons/web/static/lib/bootstrap/less/close.less
deleted file mode 100644
index 6d5bfe087ae..00000000000
--- a/addons/web/static/lib/bootstrap/less/close.less
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// Close icons
-// --------------------------------------------------
-
-
-.close {
- float: right;
- font-size: (@font-size-base * 1.5);
- font-weight: @close-font-weight;
- line-height: 1;
- color: @close-color;
- text-shadow: @close-text-shadow;
- .opacity(.2);
-
- &:hover,
- &:focus {
- color: @close-color;
- text-decoration: none;
- cursor: pointer;
- .opacity(.5);
- }
-
- // Additional properties for button version
- // iOS requires the button element instead of an anchor tag.
- // If you want the anchor version, it requires `href="#"`.
- // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
- button& {
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/jumbotron.less b/addons/web/static/lib/bootstrap/less/jumbotron.less
deleted file mode 100644
index 1d9b515b386..00000000000
--- a/addons/web/static/lib/bootstrap/less/jumbotron.less
+++ /dev/null
@@ -1,54 +0,0 @@
-//
-// Jumbotron
-// --------------------------------------------------
-
-
-.jumbotron {
- padding-top: @jumbotron-padding;
- padding-bottom: @jumbotron-padding;
- margin-bottom: @jumbotron-padding;
- color: @jumbotron-color;
- background-color: @jumbotron-bg;
-
- h1,
- .h1 {
- color: @jumbotron-heading-color;
- }
-
- p {
- margin-bottom: (@jumbotron-padding / 2);
- font-size: @jumbotron-font-size;
- font-weight: 200;
- }
-
- > hr {
- border-top-color: darken(@jumbotron-bg, 10%);
- }
-
- .container &,
- .container-fluid & {
- border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
- padding-left: (@grid-gutter-width / 2);
- padding-right: (@grid-gutter-width / 2);
- }
-
- .container {
- max-width: 100%;
- }
-
- @media screen and (min-width: @screen-sm-min) {
- padding-top: (@jumbotron-padding * 1.6);
- padding-bottom: (@jumbotron-padding * 1.6);
-
- .container &,
- .container-fluid & {
- padding-left: (@jumbotron-padding * 2);
- padding-right: (@jumbotron-padding * 2);
- }
-
- h1,
- .h1 {
- font-size: @jumbotron-heading-font-size;
- }
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins.less b/addons/web/static/lib/bootstrap/less/mixins.less
deleted file mode 100644
index e6f9fe684b7..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins.less
+++ /dev/null
@@ -1,40 +0,0 @@
-// Mixins
-// --------------------------------------------------
-
-// Utilities
-@import "mixins/hide-text.less";
-@import "mixins/opacity.less";
-@import "mixins/image.less";
-@import "mixins/labels.less";
-@import "mixins/reset-filter.less";
-@import "mixins/resize.less";
-@import "mixins/responsive-visibility.less";
-@import "mixins/size.less";
-@import "mixins/tab-focus.less";
-@import "mixins/reset-text.less";
-@import "mixins/text-emphasis.less";
-@import "mixins/text-overflow.less";
-@import "mixins/vendor-prefixes.less";
-
-// Components
-@import "mixins/alerts.less";
-@import "mixins/buttons.less";
-@import "mixins/panels.less";
-@import "mixins/pagination.less";
-@import "mixins/list-group.less";
-@import "mixins/nav-divider.less";
-@import "mixins/forms.less";
-@import "mixins/progress-bar.less";
-@import "mixins/table-row.less";
-
-// Skins
-@import "mixins/background-variant.less";
-@import "mixins/border-radius.less";
-@import "mixins/gradients.less";
-
-// Layout
-@import "mixins/clearfix.less";
-@import "mixins/center-block.less";
-@import "mixins/nav-vertical-align.less";
-@import "mixins/grid-framework.less";
-@import "mixins/grid.less";
diff --git a/addons/web/static/lib/bootstrap/less/mixins/alerts.less b/addons/web/static/lib/bootstrap/less/mixins/alerts.less
deleted file mode 100644
index 396196f438f..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/alerts.less
+++ /dev/null
@@ -1,14 +0,0 @@
-// Alerts
-
-.alert-variant(@background; @border; @text-color) {
- background-color: @background;
- border-color: @border;
- color: @text-color;
-
- hr {
- border-top-color: darken(@border, 5%);
- }
- .alert-link {
- color: darken(@text-color, 10%);
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/background-variant.less b/addons/web/static/lib/bootstrap/less/mixins/background-variant.less
deleted file mode 100644
index a85c22b7453..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/background-variant.less
+++ /dev/null
@@ -1,9 +0,0 @@
-// Contextual backgrounds
-
-.bg-variant(@color) {
- background-color: @color;
- a&:hover,
- a&:focus {
- background-color: darken(@color, 10%);
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/border-radius.less b/addons/web/static/lib/bootstrap/less/mixins/border-radius.less
deleted file mode 100644
index ca05dbf4570..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/border-radius.less
+++ /dev/null
@@ -1,18 +0,0 @@
-// Single side border-radius
-
-.border-top-radius(@radius) {
- border-top-right-radius: @radius;
- border-top-left-radius: @radius;
-}
-.border-right-radius(@radius) {
- border-bottom-right-radius: @radius;
- border-top-right-radius: @radius;
-}
-.border-bottom-radius(@radius) {
- border-bottom-right-radius: @radius;
- border-bottom-left-radius: @radius;
-}
-.border-left-radius(@radius) {
- border-bottom-left-radius: @radius;
- border-top-left-radius: @radius;
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/buttons.less b/addons/web/static/lib/bootstrap/less/mixins/buttons.less
deleted file mode 100644
index b294d8c210e..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/buttons.less
+++ /dev/null
@@ -1,65 +0,0 @@
-// Button variants
-//
-// Easily pump out default styles, as well as :hover, :focus, :active,
-// and disabled options for all buttons
-
-.button-variant(@color; @background; @border) {
- color: @color;
- background-color: @background;
- border-color: @border;
-
- &:focus,
- &.focus {
- color: @color;
- background-color: darken(@background, 10%);
- border-color: darken(@border, 25%);
- }
- &:hover {
- color: @color;
- background-color: darken(@background, 10%);
- border-color: darken(@border, 12%);
- }
- &:active,
- &.active,
- .open > .dropdown-toggle& {
- color: @color;
- background-color: darken(@background, 10%);
- border-color: darken(@border, 12%);
-
- &:hover,
- &:focus,
- &.focus {
- color: @color;
- background-color: darken(@background, 17%);
- border-color: darken(@border, 25%);
- }
- }
- &:active,
- &.active,
- .open > .dropdown-toggle& {
- background-image: none;
- }
- &.disabled,
- &[disabled],
- fieldset[disabled] & {
- &:hover,
- &:focus,
- &.focus {
- background-color: @background;
- border-color: @border;
- }
- }
-
- .badge {
- color: @background;
- background-color: @color;
- }
-}
-
-// Button sizes
-.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- line-height: @line-height;
- border-radius: @border-radius;
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/gradients.less b/addons/web/static/lib/bootstrap/less/mixins/gradients.less
deleted file mode 100644
index 0b88a89cc56..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/gradients.less
+++ /dev/null
@@ -1,59 +0,0 @@
-// Gradients
-
-#gradient {
-
- // Horizontal gradient, from left to right
- //
- // Creates two color stops, start and end, by specifying a color and position for each color stop.
- // Color stops are not available in IE9 and below.
- .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
- background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
- background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
- background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- background-repeat: repeat-x;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
- }
-
- // Vertical gradient, from top to bottom
- //
- // Creates two color stops, start and end, by specifying a color and position for each color stop.
- // Color stops are not available in IE9 and below.
- .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
- background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
- background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12
- background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- background-repeat: repeat-x;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
- }
-
- .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
- background-repeat: repeat-x;
- background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
- background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
- background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- }
- .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
- background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
- background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
- background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
- background-repeat: no-repeat;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
- }
- .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
- background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
- background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
- background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
- background-repeat: no-repeat;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
- }
- .radial(@inner-color: #555; @outer-color: #333) {
- background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
- background-image: radial-gradient(circle, @inner-color, @outer-color);
- background-repeat: no-repeat;
- }
- .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
- background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/grid-framework.less b/addons/web/static/lib/bootstrap/less/mixins/grid-framework.less
deleted file mode 100644
index 8c23eed24e6..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/grid-framework.less
+++ /dev/null
@@ -1,91 +0,0 @@
-// Framework grid generation
-//
-// Used only by Bootstrap to generate the correct number of grid classes given
-// any value of `@grid-columns`.
-
-.make-grid-columns() {
- // Common styles for all sizes of grid columns, widths 1-12
- .col(@index) { // initial
- @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
- .col((@index + 1), @item);
- }
- .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
- @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
- .col((@index + 1), ~"@{list}, @{item}");
- }
- .col(@index, @list) when (@index > @grid-columns) { // terminal
- @{list} {
- position: relative;
- // Prevent columns from collapsing when empty
- min-height: 1px;
- // Inner gutter via padding
- padding-left: ceil((@grid-gutter-width / 2));
- padding-right: floor((@grid-gutter-width / 2));
- }
- }
- .col(1); // kickstart it
-}
-
-.float-grid-columns(@class) {
- .col(@index) { // initial
- @item: ~".col-@{class}-@{index}";
- .col((@index + 1), @item);
- }
- .col(@index, @list) when (@index =< @grid-columns) { // general
- @item: ~".col-@{class}-@{index}";
- .col((@index + 1), ~"@{list}, @{item}");
- }
- .col(@index, @list) when (@index > @grid-columns) { // terminal
- @{list} {
- float: left;
- }
- }
- .col(1); // kickstart it
-}
-
-.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
- .col-@{class}-@{index} {
- width: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {
- .col-@{class}-push-@{index} {
- left: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {
- .col-@{class}-push-0 {
- left: auto;
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {
- .col-@{class}-pull-@{index} {
- right: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {
- .col-@{class}-pull-0 {
- right: auto;
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = offset) {
- .col-@{class}-offset-@{index} {
- margin-left: percentage((@index / @grid-columns));
- }
-}
-
-// Basic looping in LESS
-.loop-grid-columns(@index, @class, @type) when (@index >= 0) {
- .calc-grid-column(@index, @class, @type);
- // next iteration
- .loop-grid-columns((@index - 1), @class, @type);
-}
-
-// Create grid for specific class
-.make-grid(@class) {
- .float-grid-columns(@class);
- .loop-grid-columns(@grid-columns, @class, width);
- .loop-grid-columns(@grid-columns, @class, pull);
- .loop-grid-columns(@grid-columns, @class, push);
- .loop-grid-columns(@grid-columns, @class, offset);
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/grid.less b/addons/web/static/lib/bootstrap/less/mixins/grid.less
deleted file mode 100644
index df496d0b3c1..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/grid.less
+++ /dev/null
@@ -1,122 +0,0 @@
-// Grid system
-//
-// Generate semantic grid columns with these mixins.
-
-// Centered container element
-.container-fixed(@gutter: @grid-gutter-width) {
- margin-right: auto;
- margin-left: auto;
- padding-left: floor((@gutter / 2));
- padding-right: ceil((@gutter / 2));
- &:extend(.clearfix all);
-}
-
-// Creates a wrapper for a series of columns
-.make-row(@gutter: @grid-gutter-width) {
- margin-left: ceil((@gutter / -2));
- margin-right: floor((@gutter / -2));
- &:extend(.clearfix all);
-}
-
-// Generate the extra small columns
-.make-xs-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- float: left;
- width: percentage((@columns / @grid-columns));
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-}
-.make-xs-column-offset(@columns) {
- margin-left: percentage((@columns / @grid-columns));
-}
-.make-xs-column-push(@columns) {
- left: percentage((@columns / @grid-columns));
-}
-.make-xs-column-pull(@columns) {
- right: percentage((@columns / @grid-columns));
-}
-
-// Generate the small columns
-.make-sm-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-sm-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-offset(@columns) {
- @media (min-width: @screen-sm-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-push(@columns) {
- @media (min-width: @screen-sm-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-pull(@columns) {
- @media (min-width: @screen-sm-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-// Generate the medium columns
-.make-md-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-md-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-offset(@columns) {
- @media (min-width: @screen-md-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-push(@columns) {
- @media (min-width: @screen-md-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-pull(@columns) {
- @media (min-width: @screen-md-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-// Generate the large columns
-.make-lg-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-lg-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-offset(@columns) {
- @media (min-width: @screen-lg-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-push(@columns) {
- @media (min-width: @screen-lg-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-pull(@columns) {
- @media (min-width: @screen-lg-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/labels.less b/addons/web/static/lib/bootstrap/less/mixins/labels.less
deleted file mode 100644
index 9f7a67ee3d0..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/labels.less
+++ /dev/null
@@ -1,12 +0,0 @@
-// Labels
-
-.label-variant(@color) {
- background-color: @color;
-
- &[href] {
- &:hover,
- &:focus {
- background-color: darken(@color, 10%);
- }
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/list-group.less b/addons/web/static/lib/bootstrap/less/mixins/list-group.less
deleted file mode 100644
index 03aa19069d9..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/list-group.less
+++ /dev/null
@@ -1,30 +0,0 @@
-// List Groups
-
-.list-group-item-variant(@state; @background; @color) {
- .list-group-item-@{state} {
- color: @color;
- background-color: @background;
-
- a&,
- button& {
- color: @color;
-
- .list-group-item-heading {
- color: inherit;
- }
-
- &:hover,
- &:focus {
- color: @color;
- background-color: darken(@background, 5%);
- }
- &.active,
- &.active:hover,
- &.active:focus {
- color: #fff;
- background-color: @color;
- border-color: @color;
- }
- }
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/opacity.less b/addons/web/static/lib/bootstrap/less/mixins/opacity.less
deleted file mode 100644
index 33ed25ce676..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/opacity.less
+++ /dev/null
@@ -1,8 +0,0 @@
-// Opacity
-
-.opacity(@opacity) {
- opacity: @opacity;
- // IE8 filter
- @opacity-ie: (@opacity * 100);
- filter: ~"alpha(opacity=@{opacity-ie})";
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/pagination.less b/addons/web/static/lib/bootstrap/less/mixins/pagination.less
deleted file mode 100644
index 618804f2dee..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/pagination.less
+++ /dev/null
@@ -1,24 +0,0 @@
-// Pagination
-
-.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
- > li {
- > a,
- > span {
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- line-height: @line-height;
- }
- &:first-child {
- > a,
- > span {
- .border-left-radius(@border-radius);
- }
- }
- &:last-child {
- > a,
- > span {
- .border-right-radius(@border-radius);
- }
- }
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/panels.less b/addons/web/static/lib/bootstrap/less/mixins/panels.less
deleted file mode 100644
index 49ee10d4ad3..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/panels.less
+++ /dev/null
@@ -1,24 +0,0 @@
-// Panels
-
-.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
- border-color: @border;
-
- & > .panel-heading {
- color: @heading-text-color;
- background-color: @heading-bg-color;
- border-color: @heading-border;
-
- + .panel-collapse > .panel-body {
- border-top-color: @border;
- }
- .badge {
- color: @heading-bg-color;
- background-color: @heading-text-color;
- }
- }
- & > .panel-footer {
- + .panel-collapse > .panel-body {
- border-bottom-color: @border;
- }
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/responsive-visibility.less b/addons/web/static/lib/bootstrap/less/mixins/responsive-visibility.less
deleted file mode 100644
index ecf1e979fd2..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/responsive-visibility.less
+++ /dev/null
@@ -1,15 +0,0 @@
-// Responsive utilities
-
-//
-// More easily include all the states for responsive-utilities.less.
-.responsive-visibility() {
- display: block !important;
- table& { display: table !important; }
- tr& { display: table-row !important; }
- th&,
- td& { display: table-cell !important; }
-}
-
-.responsive-invisibility() {
- display: none !important;
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/size.less b/addons/web/static/lib/bootstrap/less/mixins/size.less
deleted file mode 100644
index a8be6508960..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/size.less
+++ /dev/null
@@ -1,10 +0,0 @@
-// Sizing shortcuts
-
-.size(@width; @height) {
- width: @width;
- height: @height;
-}
-
-.square(@size) {
- .size(@size; @size);
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/text-emphasis.less b/addons/web/static/lib/bootstrap/less/mixins/text-emphasis.less
deleted file mode 100644
index 9e8a77a6985..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/text-emphasis.less
+++ /dev/null
@@ -1,9 +0,0 @@
-// Typography
-
-.text-emphasis-variant(@color) {
- color: @color;
- a&:hover,
- a&:focus {
- color: darken(@color, 10%);
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/vendor-prefixes.less b/addons/web/static/lib/bootstrap/less/mixins/vendor-prefixes.less
deleted file mode 100644
index 2b5e74b99ed..00000000000
--- a/addons/web/static/lib/bootstrap/less/mixins/vendor-prefixes.less
+++ /dev/null
@@ -1,227 +0,0 @@
-// Vendor Prefixes
-//
-// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
-// Autoprefixer in our Gruntfile. They have been removed in v4.
-
-// - Animations
-// - Backface visibility
-// - Box shadow
-// - Box sizing
-// - Content columns
-// - Hyphens
-// - Placeholder text
-// - Transformations
-// - Transitions
-// - User Select
-
-
-// Animations
-.animation(@animation) {
- -webkit-animation: @animation;
- -o-animation: @animation;
- animation: @animation;
-}
-.animation-name(@name) {
- -webkit-animation-name: @name;
- animation-name: @name;
-}
-.animation-duration(@duration) {
- -webkit-animation-duration: @duration;
- animation-duration: @duration;
-}
-.animation-timing-function(@timing-function) {
- -webkit-animation-timing-function: @timing-function;
- animation-timing-function: @timing-function;
-}
-.animation-delay(@delay) {
- -webkit-animation-delay: @delay;
- animation-delay: @delay;
-}
-.animation-iteration-count(@iteration-count) {
- -webkit-animation-iteration-count: @iteration-count;
- animation-iteration-count: @iteration-count;
-}
-.animation-direction(@direction) {
- -webkit-animation-direction: @direction;
- animation-direction: @direction;
-}
-.animation-fill-mode(@fill-mode) {
- -webkit-animation-fill-mode: @fill-mode;
- animation-fill-mode: @fill-mode;
-}
-
-// Backface visibility
-// Prevent browsers from flickering when using CSS 3D transforms.
-// Default value is `visible`, but can be changed to `hidden`
-
-.backface-visibility(@visibility) {
- -webkit-backface-visibility: @visibility;
- -moz-backface-visibility: @visibility;
- backface-visibility: @visibility;
-}
-
-// Drop shadows
-//
-// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
-// supported browsers that have box shadow capabilities now support it.
-
-.box-shadow(@shadow) {
- -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
- box-shadow: @shadow;
-}
-
-// Box sizing
-.box-sizing(@boxmodel) {
- -webkit-box-sizing: @boxmodel;
- -moz-box-sizing: @boxmodel;
- box-sizing: @boxmodel;
-}
-
-// CSS3 Content Columns
-.content-columns(@column-count; @column-gap: @grid-gutter-width) {
- -webkit-column-count: @column-count;
- -moz-column-count: @column-count;
- column-count: @column-count;
- -webkit-column-gap: @column-gap;
- -moz-column-gap: @column-gap;
- column-gap: @column-gap;
-}
-
-// Optional hyphenation
-.hyphens(@mode: auto) {
- word-wrap: break-word;
- -webkit-hyphens: @mode;
- -moz-hyphens: @mode;
- -ms-hyphens: @mode; // IE10+
- -o-hyphens: @mode;
- hyphens: @mode;
-}
-
-// Placeholder text
-.placeholder(@color: @input-color-placeholder) {
- // Firefox
- &::-moz-placeholder {
- color: @color;
- opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
- }
- &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
- &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
-}
-
-// Transformations
-.scale(@ratio) {
- -webkit-transform: scale(@ratio);
- -ms-transform: scale(@ratio); // IE9 only
- -o-transform: scale(@ratio);
- transform: scale(@ratio);
-}
-.scale(@ratioX; @ratioY) {
- -webkit-transform: scale(@ratioX, @ratioY);
- -ms-transform: scale(@ratioX, @ratioY); // IE9 only
- -o-transform: scale(@ratioX, @ratioY);
- transform: scale(@ratioX, @ratioY);
-}
-.scaleX(@ratio) {
- -webkit-transform: scaleX(@ratio);
- -ms-transform: scaleX(@ratio); // IE9 only
- -o-transform: scaleX(@ratio);
- transform: scaleX(@ratio);
-}
-.scaleY(@ratio) {
- -webkit-transform: scaleY(@ratio);
- -ms-transform: scaleY(@ratio); // IE9 only
- -o-transform: scaleY(@ratio);
- transform: scaleY(@ratio);
-}
-.skew(@x; @y) {
- -webkit-transform: skewX(@x) skewY(@y);
- -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
- -o-transform: skewX(@x) skewY(@y);
- transform: skewX(@x) skewY(@y);
-}
-.translate(@x; @y) {
- -webkit-transform: translate(@x, @y);
- -ms-transform: translate(@x, @y); // IE9 only
- -o-transform: translate(@x, @y);
- transform: translate(@x, @y);
-}
-.translate3d(@x; @y; @z) {
- -webkit-transform: translate3d(@x, @y, @z);
- transform: translate3d(@x, @y, @z);
-}
-.rotate(@degrees) {
- -webkit-transform: rotate(@degrees);
- -ms-transform: rotate(@degrees); // IE9 only
- -o-transform: rotate(@degrees);
- transform: rotate(@degrees);
-}
-.rotateX(@degrees) {
- -webkit-transform: rotateX(@degrees);
- -ms-transform: rotateX(@degrees); // IE9 only
- -o-transform: rotateX(@degrees);
- transform: rotateX(@degrees);
-}
-.rotateY(@degrees) {
- -webkit-transform: rotateY(@degrees);
- -ms-transform: rotateY(@degrees); // IE9 only
- -o-transform: rotateY(@degrees);
- transform: rotateY(@degrees);
-}
-.perspective(@perspective) {
- -webkit-perspective: @perspective;
- -moz-perspective: @perspective;
- perspective: @perspective;
-}
-.perspective-origin(@perspective) {
- -webkit-perspective-origin: @perspective;
- -moz-perspective-origin: @perspective;
- perspective-origin: @perspective;
-}
-.transform-origin(@origin) {
- -webkit-transform-origin: @origin;
- -moz-transform-origin: @origin;
- -ms-transform-origin: @origin; // IE9 only
- transform-origin: @origin;
-}
-
-
-// Transitions
-
-.transition(@transition) {
- -webkit-transition: @transition;
- -o-transition: @transition;
- transition: @transition;
-}
-.transition-property(@transition-property) {
- -webkit-transition-property: @transition-property;
- transition-property: @transition-property;
-}
-.transition-delay(@transition-delay) {
- -webkit-transition-delay: @transition-delay;
- transition-delay: @transition-delay;
-}
-.transition-duration(@transition-duration) {
- -webkit-transition-duration: @transition-duration;
- transition-duration: @transition-duration;
-}
-.transition-timing-function(@timing-function) {
- -webkit-transition-timing-function: @timing-function;
- transition-timing-function: @timing-function;
-}
-.transition-transform(@transition) {
- -webkit-transition: -webkit-transform @transition;
- -moz-transition: -moz-transform @transition;
- -o-transition: -o-transform @transition;
- transition: transform @transition;
-}
-
-
-// User select
-// For selecting text on the page
-
-.user-select(@select) {
- -webkit-user-select: @select;
- -moz-user-select: @select;
- -ms-user-select: @select; // IE10+
- user-select: @select;
-}
diff --git a/addons/web/static/lib/bootstrap/less/pagination.less b/addons/web/static/lib/bootstrap/less/pagination.less
deleted file mode 100644
index 31f77aae4ed..00000000000
--- a/addons/web/static/lib/bootstrap/less/pagination.less
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Pagination (multiple pages)
-// --------------------------------------------------
-.pagination {
- display: inline-block;
- padding-left: 0;
- margin: @line-height-computed 0;
- border-radius: @border-radius-base;
-
- > li {
- display: inline; // Remove list-style and block-level defaults
- > a,
- > span {
- position: relative;
- float: left; // Collapse white-space
- padding: @padding-base-vertical @padding-base-horizontal;
- line-height: @line-height-base;
- text-decoration: none;
- color: @pagination-color;
- background-color: @pagination-bg;
- border: 1px solid @pagination-border;
- margin-left: -1px;
- }
- &:first-child {
- > a,
- > span {
- margin-left: 0;
- .border-left-radius(@border-radius-base);
- }
- }
- &:last-child {
- > a,
- > span {
- .border-right-radius(@border-radius-base);
- }
- }
- }
-
- > li > a,
- > li > span {
- &:hover,
- &:focus {
- z-index: 2;
- color: @pagination-hover-color;
- background-color: @pagination-hover-bg;
- border-color: @pagination-hover-border;
- }
- }
-
- > .active > a,
- > .active > span {
- &,
- &:hover,
- &:focus {
- z-index: 3;
- color: @pagination-active-color;
- background-color: @pagination-active-bg;
- border-color: @pagination-active-border;
- cursor: default;
- }
- }
-
- > .disabled {
- > span,
- > span:hover,
- > span:focus,
- > a,
- > a:hover,
- > a:focus {
- color: @pagination-disabled-color;
- background-color: @pagination-disabled-bg;
- border-color: @pagination-disabled-border;
- cursor: @cursor-disabled;
- }
- }
-}
-
-// Sizing
-// --------------------------------------------------
-
-// Large
-.pagination-lg {
- .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
-}
-
-// Small
-.pagination-sm {
- .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
-}
diff --git a/addons/web/static/lib/bootstrap/less/popovers.less b/addons/web/static/lib/bootstrap/less/popovers.less
deleted file mode 100644
index 3a62a6455ac..00000000000
--- a/addons/web/static/lib/bootstrap/less/popovers.less
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// Popovers
-// --------------------------------------------------
-
-
-.popover {
- position: absolute;
- top: 0;
- left: 0;
- z-index: @zindex-popover;
- display: none;
- max-width: @popover-max-width;
- padding: 1px;
- // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.
- // So reset our font and text properties to avoid inheriting weird values.
- .reset-text();
- font-size: @font-size-base;
-
- background-color: @popover-bg;
- background-clip: padding-box;
- border: 1px solid @popover-fallback-border-color;
- border: 1px solid @popover-border-color;
- border-radius: @border-radius-large;
- .box-shadow(0 5px 10px rgba(0,0,0,.2));
-
- // Offset the popover to account for the popover arrow
- &.top { margin-top: -@popover-arrow-width; }
- &.right { margin-left: @popover-arrow-width; }
- &.bottom { margin-top: @popover-arrow-width; }
- &.left { margin-left: -@popover-arrow-width; }
-}
-
-.popover-title {
- margin: 0; // reset heading margin
- padding: 8px 14px;
- font-size: @font-size-base;
- background-color: @popover-title-bg;
- border-bottom: 1px solid darken(@popover-title-bg, 5%);
- border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;
-}
-
-.popover-content {
- padding: 9px 14px;
-}
-
-// Arrows
-//
-// .arrow is outer, .arrow:after is inner
-
-.popover > .arrow {
- &,
- &:after {
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
- }
-}
-.popover > .arrow {
- border-width: @popover-arrow-outer-width;
-}
-.popover > .arrow:after {
- border-width: @popover-arrow-width;
- content: "";
-}
-
-.popover {
- &.top > .arrow {
- left: 50%;
- margin-left: -@popover-arrow-outer-width;
- border-bottom-width: 0;
- border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback
- border-top-color: @popover-arrow-outer-color;
- bottom: -@popover-arrow-outer-width;
- &:after {
- content: " ";
- bottom: 1px;
- margin-left: -@popover-arrow-width;
- border-bottom-width: 0;
- border-top-color: @popover-arrow-color;
- }
- }
- &.right > .arrow {
- top: 50%;
- left: -@popover-arrow-outer-width;
- margin-top: -@popover-arrow-outer-width;
- border-left-width: 0;
- border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback
- border-right-color: @popover-arrow-outer-color;
- &:after {
- content: " ";
- left: 1px;
- bottom: -@popover-arrow-width;
- border-left-width: 0;
- border-right-color: @popover-arrow-color;
- }
- }
- &.bottom > .arrow {
- left: 50%;
- margin-left: -@popover-arrow-outer-width;
- border-top-width: 0;
- border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback
- border-bottom-color: @popover-arrow-outer-color;
- top: -@popover-arrow-outer-width;
- &:after {
- content: " ";
- top: 1px;
- margin-left: -@popover-arrow-width;
- border-top-width: 0;
- border-bottom-color: @popover-arrow-color;
- }
- }
-
- &.left > .arrow {
- top: 50%;
- right: -@popover-arrow-outer-width;
- margin-top: -@popover-arrow-outer-width;
- border-right-width: 0;
- border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback
- border-left-color: @popover-arrow-outer-color;
- &:after {
- content: " ";
- right: 1px;
- border-right-width: 0;
- border-left-color: @popover-arrow-color;
- bottom: -@popover-arrow-width;
- }
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/theme.less b/addons/web/static/lib/bootstrap/less/theme.less
deleted file mode 100644
index fb6174427ba..00000000000
--- a/addons/web/static/lib/bootstrap/less/theme.less
+++ /dev/null
@@ -1,291 +0,0 @@
-/*!
- * Bootstrap v3.3.7 (http://getbootstrap.com)
- * Copyright 2011-2016 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-//
-// Load core variables and mixins
-// --------------------------------------------------
-
-@import "variables.less";
-@import "mixins.less";
-
-
-//
-// Buttons
-// --------------------------------------------------
-
-// Common styles
-.btn-default,
-.btn-primary,
-.btn-success,
-.btn-info,
-.btn-warning,
-.btn-danger {
- text-shadow: 0 -1px 0 rgba(0,0,0,.2);
- @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
- .box-shadow(@shadow);
-
- // Reset the shadow
- &:active,
- &.active {
- .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
- }
-
- &.disabled,
- &[disabled],
- fieldset[disabled] & {
- .box-shadow(none);
- }
-
- .badge {
- text-shadow: none;
- }
-}
-
-// Mixin for generating new styles
-.btn-styles(@btn-color: #555) {
- #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));
- .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620
- background-repeat: repeat-x;
- border-color: darken(@btn-color, 14%);
-
- &:hover,
- &:focus {
- background-color: darken(@btn-color, 12%);
- background-position: 0 -15px;
- }
-
- &:active,
- &.active {
- background-color: darken(@btn-color, 12%);
- border-color: darken(@btn-color, 14%);
- }
-
- &.disabled,
- &[disabled],
- fieldset[disabled] & {
- &,
- &:hover,
- &:focus,
- &.focus,
- &:active,
- &.active {
- background-color: darken(@btn-color, 12%);
- background-image: none;
- }
- }
-}
-
-// Common styles
-.btn {
- // Remove the gradient for the pressed/active state
- &:active,
- &.active {
- background-image: none;
- }
-}
-
-// Apply the mixin to the buttons
-.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
-.btn-primary { .btn-styles(@btn-primary-bg); }
-.btn-success { .btn-styles(@btn-success-bg); }
-.btn-info { .btn-styles(@btn-info-bg); }
-.btn-warning { .btn-styles(@btn-warning-bg); }
-.btn-danger { .btn-styles(@btn-danger-bg); }
-
-
-//
-// Images
-// --------------------------------------------------
-
-.thumbnail,
-.img-thumbnail {
- .box-shadow(0 1px 2px rgba(0,0,0,.075));
-}
-
-
-//
-// Dropdowns
-// --------------------------------------------------
-
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
- #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));
- background-color: darken(@dropdown-link-hover-bg, 5%);
-}
-.dropdown-menu > .active > a,
-.dropdown-menu > .active > a:hover,
-.dropdown-menu > .active > a:focus {
- #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
- background-color: darken(@dropdown-link-active-bg, 5%);
-}
-
-
-//
-// Navbar
-// --------------------------------------------------
-
-// Default navbar
-.navbar-default {
- #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);
- .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
- border-radius: @navbar-border-radius;
- @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
- .box-shadow(@shadow);
-
- .navbar-nav > .open > a,
- .navbar-nav > .active > a {
- #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));
- .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
- }
-}
-.navbar-brand,
-.navbar-nav > li > a {
- text-shadow: 0 1px 0 rgba(255,255,255,.25);
-}
-
-// Inverted navbar
-.navbar-inverse {
- #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);
- .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257
- border-radius: @navbar-border-radius;
- .navbar-nav > .open > a,
- .navbar-nav > .active > a {
- #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));
- .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
- }
-
- .navbar-brand,
- .navbar-nav > li > a {
- text-shadow: 0 -1px 0 rgba(0,0,0,.25);
- }
-}
-
-// Undo rounded corners in static and fixed navbars
-.navbar-static-top,
-.navbar-fixed-top,
-.navbar-fixed-bottom {
- border-radius: 0;
-}
-
-// Fix active state of dropdown items in collapsed mode
-@media (max-width: @grid-float-breakpoint-max) {
- .navbar .navbar-nav .open .dropdown-menu > .active > a {
- &,
- &:hover,
- &:focus {
- color: #fff;
- #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
- }
- }
-}
-
-
-//
-// Alerts
-// --------------------------------------------------
-
-// Common styles
-.alert {
- text-shadow: 0 1px 0 rgba(255,255,255,.2);
- @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
- .box-shadow(@shadow);
-}
-
-// Mixin for generating new styles
-.alert-styles(@color) {
- #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));
- border-color: darken(@color, 15%);
-}
-
-// Apply the mixin to the alerts
-.alert-success { .alert-styles(@alert-success-bg); }
-.alert-info { .alert-styles(@alert-info-bg); }
-.alert-warning { .alert-styles(@alert-warning-bg); }
-.alert-danger { .alert-styles(@alert-danger-bg); }
-
-
-//
-// Progress bars
-// --------------------------------------------------
-
-// Give the progress background some depth
-.progress {
- #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)
-}
-
-// Mixin for generating new styles
-.progress-bar-styles(@color) {
- #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));
-}
-
-// Apply the mixin to the progress bars
-.progress-bar { .progress-bar-styles(@progress-bar-bg); }
-.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }
-.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }
-.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }
-.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }
-
-// Reset the striped class because our mixins don't do multiple gradients and
-// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
-.progress-bar-striped {
- #gradient > .striped();
-}
-
-
-//
-// List groups
-// --------------------------------------------------
-
-.list-group {
- border-radius: @border-radius-base;
- .box-shadow(0 1px 2px rgba(0,0,0,.075));
-}
-.list-group-item.active,
-.list-group-item.active:hover,
-.list-group-item.active:focus {
- text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);
- #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));
- border-color: darken(@list-group-active-border, 7.5%);
-
- .badge {
- text-shadow: none;
- }
-}
-
-
-//
-// Panels
-// --------------------------------------------------
-
-// Common styles
-.panel {
- .box-shadow(0 1px 2px rgba(0,0,0,.05));
-}
-
-// Mixin for generating new styles
-.panel-heading-styles(@color) {
- #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));
-}
-
-// Apply the mixin to the panel headings only
-.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }
-.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }
-.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }
-.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }
-.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }
-.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }
-
-
-//
-// Wells
-// --------------------------------------------------
-
-.well {
- #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);
- border-color: darken(@well-bg, 10%);
- @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
- .box-shadow(@shadow);
-}
diff --git a/addons/web/static/lib/bootstrap/less/thumbnails.less b/addons/web/static/lib/bootstrap/less/thumbnails.less
deleted file mode 100644
index 0713e67d006..00000000000
--- a/addons/web/static/lib/bootstrap/less/thumbnails.less
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// Thumbnails
-// --------------------------------------------------
-
-
-// Mixin and adjust the regular image class
-.thumbnail {
- display: block;
- padding: @thumbnail-padding;
- margin-bottom: @line-height-computed;
- line-height: @line-height-base;
- background-color: @thumbnail-bg;
- border: 1px solid @thumbnail-border;
- border-radius: @thumbnail-border-radius;
- .transition(border .2s ease-in-out);
-
- > img,
- a > img {
- &:extend(.img-responsive);
- margin-left: auto;
- margin-right: auto;
- }
-
- // Add a hover state for linked versions only
- a&:hover,
- a&:focus,
- a&.active {
- border-color: @link-color;
- }
-
- // Image captions
- .caption {
- padding: @thumbnail-caption-padding;
- color: @thumbnail-caption-color;
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/tooltip.less b/addons/web/static/lib/bootstrap/less/tooltip.less
deleted file mode 100644
index b48d63e07ad..00000000000
--- a/addons/web/static/lib/bootstrap/less/tooltip.less
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Tooltips
-// --------------------------------------------------
-
-
-// Base class
-.tooltip {
- position: absolute;
- z-index: @zindex-tooltip;
- display: block;
- // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
- // So reset our font and text properties to avoid inheriting weird values.
- .reset-text();
- font-size: @font-size-small;
-
- .opacity(0);
-
- &.in { .opacity(@tooltip-opacity); }
- &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }
- &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }
- &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }
- &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }
-}
-
-// Wrapper for the tooltip content
-.tooltip-inner {
- max-width: @tooltip-max-width;
- padding: 3px 8px;
- color: @tooltip-color;
- text-align: center;
- background-color: @tooltip-bg;
- border-radius: @border-radius-base;
-}
-
-// Arrows
-.tooltip-arrow {
- position: absolute;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
-}
-// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1
-.tooltip {
- &.top .tooltip-arrow {
- bottom: 0;
- left: 50%;
- margin-left: -@tooltip-arrow-width;
- border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
- border-top-color: @tooltip-arrow-color;
- }
- &.top-left .tooltip-arrow {
- bottom: 0;
- right: @tooltip-arrow-width;
- margin-bottom: -@tooltip-arrow-width;
- border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
- border-top-color: @tooltip-arrow-color;
- }
- &.top-right .tooltip-arrow {
- bottom: 0;
- left: @tooltip-arrow-width;
- margin-bottom: -@tooltip-arrow-width;
- border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
- border-top-color: @tooltip-arrow-color;
- }
- &.right .tooltip-arrow {
- top: 50%;
- left: 0;
- margin-top: -@tooltip-arrow-width;
- border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;
- border-right-color: @tooltip-arrow-color;
- }
- &.left .tooltip-arrow {
- top: 50%;
- right: 0;
- margin-top: -@tooltip-arrow-width;
- border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;
- border-left-color: @tooltip-arrow-color;
- }
- &.bottom .tooltip-arrow {
- top: 0;
- left: 50%;
- margin-left: -@tooltip-arrow-width;
- border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
- border-bottom-color: @tooltip-arrow-color;
- }
- &.bottom-left .tooltip-arrow {
- top: 0;
- right: @tooltip-arrow-width;
- margin-top: -@tooltip-arrow-width;
- border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
- border-bottom-color: @tooltip-arrow-color;
- }
- &.bottom-right .tooltip-arrow {
- top: 0;
- left: @tooltip-arrow-width;
- margin-top: -@tooltip-arrow-width;
- border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
- border-bottom-color: @tooltip-arrow-color;
- }
-}
diff --git a/addons/web/static/lib/bootstrap/less/variables.less b/addons/web/static/lib/bootstrap/less/variables.less
deleted file mode 100644
index 03b54980ae2..00000000000
--- a/addons/web/static/lib/bootstrap/less/variables.less
+++ /dev/null
@@ -1,869 +0,0 @@
-//
-// Variables
-// --------------------------------------------------
-
-
-//== Colors
-//
-//## Gray and brand colors for use across Bootstrap.
-
-@gray-base: #000;
-@gray-darker: lighten(@gray-base, 13.5%); // #222
-@gray-dark: lighten(@gray-base, 20%); // #333
-@gray: lighten(@gray-base, 33.5%); // #555
-@gray-light: lighten(@gray-base, 46.7%); // #777
-@gray-lighter: lighten(@gray-base, 93.5%); // #eee
-
-@brand-primary: darken(#428bca, 6.5%); // #337ab7
-@brand-success: #5cb85c;
-@brand-info: #5bc0de;
-@brand-warning: #f0ad4e;
-@brand-danger: #d9534f;
-
-
-//== Scaffolding
-//
-//## Settings for some of the most global styles.
-
-//** Background color for `<body>`.
-@body-bg: #fff;
-//** Global text color on `<body>`.
-@text-color: @gray-dark;
-
-//** Global textual link color.
-@link-color: @brand-primary;
-//** Link hover color set via `darken()` function.
-@link-hover-color: darken(@link-color, 15%);
-//** Link hover decoration.
-@link-hover-decoration: underline;
-
-
-//== Typography
-//
-//## Font, line-height, and color for body text, headings, and more.
-
-@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
-@font-family-serif: Georgia, "Times New Roman", Times, serif;
-//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
-@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
-@font-family-base: @font-family-sans-serif;
-
-@font-size-base: 14px;
-@font-size-large: ceil((@font-size-base * 1.25)); // ~18px
-@font-size-small: ceil((@font-size-base * 0.85)); // ~12px
-
-@font-size-h1: floor((@font-size-base * 2.6)); // ~36px
-@font-size-h2: floor((@font-size-base * 2.15)); // ~30px
-@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px
-@font-size-h4: ceil((@font-size-base * 1.25)); // ~18px
-@font-size-h5: @font-size-base;
-@font-size-h6: ceil((@font-size-base * 0.85)); // ~12px
-
-//** Unit-less `line-height` for use in components like buttons.
-@line-height-base: 1.428571429; // 20/14
-//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
-@line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px
-
-//** By default, this inherits from the `<body>`.
-@headings-font-family: inherit;
-@headings-font-weight: 500;
-@headings-line-height: 1.1;
-@headings-color: inherit;
-
-
-//== Iconography
-//
-//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
-
-//** Load fonts from this directory.
-@icon-font-path: "../fonts/";
-//** File name for all font files.
-@icon-font-name: "glyphicons-halflings-regular";
-//** Element ID within SVG icon file.
-@icon-font-svg-id: "glyphicons_halflingsregular";
-
-
-//== Components
-//
-//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
-
-@padding-base-vertical: 6px;
-@padding-base-horizontal: 12px;
-
-@padding-large-vertical: 10px;
-@padding-large-horizontal: 16px;
-
-@padding-small-vertical: 5px;
-@padding-small-horizontal: 10px;
-
-@padding-xs-vertical: 1px;
-@padding-xs-horizontal: 5px;
-
-@line-height-large: 1.3333333; // extra decimals for Win 8.1 Chrome
-@line-height-small: 1.5;
-
-@border-radius-base: 4px;
-@border-radius-large: 6px;
-@border-radius-small: 3px;
-
-//** Global color for active items (e.g., navs or dropdowns).
-@component-active-color: #fff;
-//** Global background color for active items (e.g., navs or dropdowns).
-@component-active-bg: @brand-primary;
-
-//** Width of the `border` for generating carets that indicate dropdowns.
-@caret-width-base: 4px;
-//** Carets increase slightly in size for larger components.
-@caret-width-large: 5px;
-
-
-//== Tables
-//
-//## Customizes the `.table` component with basic values, each used across all table variations.
-
-//** Padding for `<th>`s and `<td>`s.
-@table-cell-padding: 8px;
-//** Padding for cells in `.table-condensed`.
-@table-condensed-cell-padding: 5px;
-
-//** Default background color used for all tables.
-@table-bg: transparent;
-//** Background color used for `.table-striped`.
-@table-bg-accent: #f9f9f9;
-//** Background color used for `.table-hover`.
-@table-bg-hover: #f5f5f5;
-@table-bg-active: @table-bg-hover;
-
-//** Border color for table and cell borders.
-@table-border-color: #ddd;
-
-
-//== Buttons
-//
-//## For each of Bootstrap's buttons, define text, background and border color.
-
-@btn-font-weight: normal;
-
-@btn-default-color: #333;
-@btn-default-bg: #fff;
-@btn-default-border: #ccc;
-
-@btn-primary-color: #fff;
-@btn-primary-bg: @brand-primary;
-@btn-primary-border: darken(@btn-primary-bg, 5%);
-
-@btn-success-color: #fff;
-@btn-success-bg: @brand-success;
-@btn-success-border: darken(@btn-success-bg, 5%);
-
-@btn-info-color: #fff;
-@btn-info-bg: @brand-info;
-@btn-info-border: darken(@btn-info-bg, 5%);
-
-@btn-warning-color: #fff;
-@btn-warning-bg: @brand-warning;
-@btn-warning-border: darken(@btn-warning-bg, 5%);
-
-@btn-danger-color: #fff;
-@btn-danger-bg: @brand-danger;
-@btn-danger-border: darken(@btn-danger-bg, 5%);
-
-@btn-link-disabled-color: @gray-light;
-
-// Allows for customizing button radius independently from global border radius
-@btn-border-radius-base: @border-radius-base;
-@btn-border-radius-large: @border-radius-large;
-@btn-border-radius-small: @border-radius-small;
-
-
-//== Forms
-//
-//##
-
-//** `<input>` background color
-@input-bg: #fff;
-//** `<input disabled>` background color
-@input-bg-disabled: @gray-lighter;
-
-//** Text color for `<input>`s
-@input-color: @gray;
-//** `<input>` border color
-@input-border: #ccc;
-
-// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
-//** Default `.form-control` border radius
-// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.
-@input-border-radius: @border-radius-base;
-//** Large `.form-control` border radius
-@input-border-radius-large: @border-radius-large;
-//** Small `.form-control` border radius
-@input-border-radius-small: @border-radius-small;
-
-//** Border color for inputs on focus
-@input-border-focus: #66afe9;
-
-//** Placeholder text color
-@input-color-placeholder: #999;
-
-//** Default `.form-control` height
-@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);
-//** Large `.form-control` height
-@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
-//** Small `.form-control` height
-@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
-
-//** `.form-group` margin
-@form-group-margin-bottom: 15px;
-
-@legend-color: @gray-dark;
-@legend-border-color: #e5e5e5;
-
-//** Background color for textual input addons
-@input-group-addon-bg: @gray-lighter;
-//** Border color for textual input addons
-@input-group-addon-border-color: @input-border;
-
-//** Disabled cursor for form controls and buttons.
-@cursor-disabled: not-allowed;
-
-
-//== Dropdowns
-//
-//## Dropdown menu container and contents.
-
-//** Background for the dropdown menu.
-@dropdown-bg: #fff;
-//** Dropdown menu `border-color`.
-@dropdown-border: rgba(0,0,0,.15);
-//** Dropdown menu `border-color` **for IE8**.
-@dropdown-fallback-border: #ccc;
-//** Divider color for between dropdown items.
-@dropdown-divider-bg: #e5e5e5;
-
-//** Dropdown link text color.
-@dropdown-link-color: @gray-dark;
-//** Hover color for dropdown links.
-@dropdown-link-hover-color: darken(@gray-dark, 5%);
-//** Hover background for dropdown links.
-@dropdown-link-hover-bg: #f5f5f5;
-
-//** Active dropdown menu item text color.
-@dropdown-link-active-color: @component-active-color;
-//** Active dropdown menu item background color.
-@dropdown-link-active-bg: @component-active-bg;
-
-//** Disabled dropdown menu item background color.
-@dropdown-link-disabled-color: @gray-light;
-
-//** Text color for headers within dropdown menus.
-@dropdown-header-color: @gray-light;
-
-//** Deprecated `@dropdown-caret-color` as of v3.1.0
-@dropdown-caret-color: #000;
-
-
-//-- Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-//
-// Note: These variables are not generated into the Customizer.
-
-@zindex-navbar: 1000;
-@zindex-dropdown: 1000;
-@zindex-popover: 1060;
-@zindex-tooltip: 1070;
-@zindex-navbar-fixed: 1030;
-@zindex-modal-background: 1040;
-@zindex-modal: 1050;
-
-
-//== Media queries breakpoints
-//
-//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
-
-// Extra small screen / phone
-//** Deprecated `@screen-xs` as of v3.0.1
-@screen-xs: 480px;
-//** Deprecated `@screen-xs-min` as of v3.2.0
-@screen-xs-min: @screen-xs;
-//** Deprecated `@screen-phone` as of v3.0.1
-@screen-phone: @screen-xs-min;
-
-// Small screen / tablet
-//** Deprecated `@screen-sm` as of v3.0.1
-@screen-sm: 768px;
-@screen-sm-min: @screen-sm;
-//** Deprecated `@screen-tablet` as of v3.0.1
-@screen-tablet: @screen-sm-min;
-
-// Medium screen / desktop
-//** Deprecated `@screen-md` as of v3.0.1
-@screen-md: 992px;
-@screen-md-min: @screen-md;
-//** Deprecated `@screen-desktop` as of v3.0.1
-@screen-desktop: @screen-md-min;
-
-// Large screen / wide desktop
-//** Deprecated `@screen-lg` as of v3.0.1
-@screen-lg: 1200px;
-@screen-lg-min: @screen-lg;
-//** Deprecated `@screen-lg-desktop` as of v3.0.1
-@screen-lg-desktop: @screen-lg-min;
-
-// So media queries don't overlap when required, provide a maximum
-@screen-xs-max: (@screen-sm-min - 1);
-@screen-sm-max: (@screen-md-min - 1);
-@screen-md-max: (@screen-lg-min - 1);
-
-
-//== Grid system
-//
-//## Define your custom responsive grid.
-
-//** Number of columns in the grid.
-@grid-columns: 12;
-//** Padding between columns. Gets divided in half for the left and right.
-@grid-gutter-width: 30px;
-// Navbar collapse
-//** Point at which the navbar becomes uncollapsed.
-@grid-float-breakpoint: @screen-sm-min;
-//** Point at which the navbar begins collapsing.
-@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
-
-
-//== Container sizes
-//
-//## Define the maximum width of `.container` for different screen sizes.
-
-// Small screen / tablet
-@container-tablet: (720px + @grid-gutter-width);
-//** For `@screen-sm-min` and up.
-@container-sm: @container-tablet;
-
-// Medium screen / desktop
-@container-desktop: (940px + @grid-gutter-width);
-//** For `@screen-md-min` and up.
-@container-md: @container-desktop;
-
-// Large screen / wide desktop
-@container-large-desktop: (1140px + @grid-gutter-width);
-//** For `@screen-lg-min` and up.
-@container-lg: @container-large-desktop;
-
-
-//== Navbar
-//
-//##
-
-// Basics of a navbar
-@navbar-height: 50px;
-@navbar-margin-bottom: @line-height-computed;
-@navbar-border-radius: @border-radius-base;
-@navbar-padding-horizontal: floor((@grid-gutter-width / 2));
-@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);
-@navbar-collapse-max-height: 340px;
-
-@navbar-default-color: #777;
-@navbar-default-bg: #f8f8f8;
-@navbar-default-border: darken(@navbar-default-bg, 6.5%);
-
-// Navbar links
-@navbar-default-link-color: #777;
-@navbar-default-link-hover-color: #333;
-@navbar-default-link-hover-bg: transparent;
-@navbar-default-link-active-color: #555;
-@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%);
-@navbar-default-link-disabled-color: #ccc;
-@navbar-default-link-disabled-bg: transparent;
-
-// Navbar brand label
-@navbar-default-brand-color: @navbar-default-link-color;
-@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%);
-@navbar-default-brand-hover-bg: transparent;
-
-// Navbar toggle
-@navbar-default-toggle-hover-bg: #ddd;
-@navbar-default-toggle-icon-bar-bg: #888;
-@navbar-default-toggle-border-color: #ddd;
-
-
-//=== Inverted navbar
-// Reset inverted navbar basics
-@navbar-inverse-color: lighten(@gray-light, 15%);
-@navbar-inverse-bg: #222;
-@navbar-inverse-border: darken(@navbar-inverse-bg, 10%);
-
-// Inverted navbar links
-@navbar-inverse-link-color: lighten(@gray-light, 15%);
-@navbar-inverse-link-hover-color: #fff;
-@navbar-inverse-link-hover-bg: transparent;
-@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color;
-@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%);
-@navbar-inverse-link-disabled-color: #444;
-@navbar-inverse-link-disabled-bg: transparent;
-
-// Inverted navbar brand label
-@navbar-inverse-brand-color: @navbar-inverse-link-color;
-@navbar-inverse-brand-hover-color: #fff;
-@navbar-inverse-brand-hover-bg: transparent;
-
-// Inverted navbar toggle
-@navbar-inverse-toggle-hover-bg: #333;
-@navbar-inverse-toggle-icon-bar-bg: #fff;
-@navbar-inverse-toggle-border-color: #333;
-
-
-//== Navs
-//
-//##
-
-//=== Shared nav styles
-@nav-link-padding: 10px 15px;
-@nav-link-hover-bg: @gray-lighter;
-
-@nav-disabled-link-color: @gray-light;
-@nav-disabled-link-hover-color: @gray-light;
-
-//== Tabs
-@nav-tabs-border-color: #ddd;
-
-@nav-tabs-link-hover-border-color: @gray-lighter;
-
-@nav-tabs-active-link-hover-bg: @body-bg;
-@nav-tabs-active-link-hover-color: @gray;
-@nav-tabs-active-link-hover-border-color: #ddd;
-
-@nav-tabs-justified-link-border-color: #ddd;
-@nav-tabs-justified-active-link-border-color: @body-bg;
-
-//== Pills
-@nav-pills-border-radius: @border-radius-base;
-@nav-pills-active-link-hover-bg: @component-active-bg;
-@nav-pills-active-link-hover-color: @component-active-color;
-
-
-//== Pagination
-//
-//##
-
-@pagination-color: @link-color;
-@pagination-bg: #fff;
-@pagination-border: #ddd;
-
-@pagination-hover-color: @link-hover-color;
-@pagination-hover-bg: @gray-lighter;
-@pagination-hover-border: #ddd;
-
-@pagination-active-color: #fff;
-@pagination-active-bg: @brand-primary;
-@pagination-active-border: @brand-primary;
-
-@pagination-disabled-color: @gray-light;
-@pagination-disabled-bg: #fff;
-@pagination-disabled-border: #ddd;
-
-
-//== Pager
-//
-//##
-
-@pager-bg: @pagination-bg;
-@pager-border: @pagination-border;
-@pager-border-radius: 15px;
-
-@pager-hover-bg: @pagination-hover-bg;
-
-@pager-active-bg: @pagination-active-bg;
-@pager-active-color: @pagination-active-color;
-
-@pager-disabled-color: @pagination-disabled-color;
-
-
-//== Jumbotron
-//
-//##
-
-@jumbotron-padding: 30px;
-@jumbotron-color: inherit;
-@jumbotron-bg: @gray-lighter;
-@jumbotron-heading-color: inherit;
-@jumbotron-font-size: ceil((@font-size-base * 1.5));
-@jumbotron-heading-font-size: ceil((@font-size-base * 4.5));
-
-
-//== Form states and alerts
-//
-//## Define colors for form feedback states and, by default, alerts.
-
-@state-success-text: #3c763d;
-@state-success-bg: #dff0d8;
-@state-success-border: darken(spin(@state-success-bg, -10), 5%);
-
-@state-info-text: #31708f;
-@state-info-bg: #d9edf7;
-@state-info-border: darken(spin(@state-info-bg, -10), 7%);
-
-@state-warning-text: #8a6d3b;
-@state-warning-bg: #fcf8e3;
-@state-warning-border: darken(spin(@state-warning-bg, -10), 5%);
-
-@state-danger-text: #a94442;
-@state-danger-bg: #f2dede;
-@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);
-
-
-//== Tooltips
-//
-//##
-
-//** Tooltip max width
-@tooltip-max-width: 200px;
-//** Tooltip text color
-@tooltip-color: #fff;
-//** Tooltip background color
-@tooltip-bg: #000;
-@tooltip-opacity: .9;
-
-//** Tooltip arrow width
-@tooltip-arrow-width: 5px;
-//** Tooltip arrow color
-@tooltip-arrow-color: @tooltip-bg;
-
-
-//== Popovers
-//
-//##
-
-//** Popover body background color
-@popover-bg: #fff;
-//** Popover maximum width
-@popover-max-width: 276px;
-//** Popover border color
-@popover-border-color: rgba(0,0,0,.2);
-//** Popover fallback border color
-@popover-fallback-border-color: #ccc;
-
-//** Popover title background color
-@popover-title-bg: darken(@popover-bg, 3%);
-
-//** Popover arrow width
-@popover-arrow-width: 10px;
-//** Popover arrow color
-@popover-arrow-color: @popover-bg;
-
-//** Popover outer arrow width
-@popover-arrow-outer-width: (@popover-arrow-width + 1);
-//** Popover outer arrow color
-@popover-arrow-outer-color: fadein(@popover-border-color, 5%);
-//** Popover outer arrow fallback color
-@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%);
-
-
-//== Labels
-//
-//##
-
-//** Default label background color
-@label-default-bg: @gray-light;
-//** Primary label background color
-@label-primary-bg: @brand-primary;
-//** Success label background color
-@label-success-bg: @brand-success;
-//** Info label background color
-@label-info-bg: @brand-info;
-//** Warning label background color
-@label-warning-bg: @brand-warning;
-//** Danger label background color
-@label-danger-bg: @brand-danger;
-
-//** Default label text color
-@label-color: #fff;
-//** Default text color of a linked label
-@label-link-hover-color: #fff;
-
-
-//== Modals
-//
-//##
-
-//** Padding applied to the modal body
-@modal-inner-padding: 15px;
-
-//** Padding applied to the modal title
-@modal-title-padding: 15px;
-//** Modal title line-height
-@modal-title-line-height: @line-height-base;
-
-//** Background color of modal content area
-@modal-content-bg: #fff;
-//** Modal content border color
-@modal-content-border-color: rgba(0,0,0,.2);
-//** Modal content border color **for IE8**
-@modal-content-fallback-border-color: #999;
-
-//** Modal backdrop background color
-@modal-backdrop-bg: #000;
-//** Modal backdrop opacity
-@modal-backdrop-opacity: .5;
-//** Modal header border color
-@modal-header-border-color: #e5e5e5;
-//** Modal footer border color
-@modal-footer-border-color: @modal-header-border-color;
-
-@modal-lg: 900px;
-@modal-md: 600px;
-@modal-sm: 300px;
-
-
-//== Alerts
-//
-//## Define alert colors, border radius, and padding.
-
-@alert-padding: 15px;
-@alert-border-radius: @border-radius-base;
-@alert-link-font-weight: bold;
-
-@alert-success-bg: @state-success-bg;
-@alert-success-text: @state-success-text;
-@alert-success-border: @state-success-border;
-
-@alert-info-bg: @state-info-bg;
-@alert-info-text: @state-info-text;
-@alert-info-border: @state-info-border;
-
-@alert-warning-bg: @state-warning-bg;
-@alert-warning-text: @state-warning-text;
-@alert-warning-border: @state-warning-border;
-
-@alert-danger-bg: @state-danger-bg;
-@alert-danger-text: @state-danger-text;
-@alert-danger-border: @state-danger-border;
-
-
-//== Progress bars
-//
-//##
-
-//** Background color of the whole progress component
-@progress-bg: #f5f5f5;
-//** Progress bar text color
-@progress-bar-color: #fff;
-//** Variable for setting rounded corners on progress bar.
-@progress-border-radius: @border-radius-base;
-
-//** Default progress bar color
-@progress-bar-bg: @brand-primary;
-//** Success progress bar color
-@progress-bar-success-bg: @brand-success;
-//** Warning progress bar color
-@progress-bar-warning-bg: @brand-warning;
-//** Danger progress bar color
-@progress-bar-danger-bg: @brand-danger;
-//** Info progress bar color
-@progress-bar-info-bg: @brand-info;
-
-
-//== List group
-//
-//##
-
-//** Background color on `.list-group-item`
-@list-group-bg: #fff;
-//** `.list-group-item` border color
-@list-group-border: #ddd;
-//** List group border radius
-@list-group-border-radius: @border-radius-base;
-
-//** Background color of single list items on hover
-@list-group-hover-bg: #f5f5f5;
-//** Text color of active list items
-@list-group-active-color: @component-active-color;
-//** Background color of active list items
-@list-group-active-bg: @component-active-bg;
-//** Border color of active list elements
-@list-group-active-border: @list-group-active-bg;
-//** Text color for content within active list items
-@list-group-active-text-color: lighten(@list-group-active-bg, 40%);
-
-//** Text color of disabled list items
-@list-group-disabled-color: @gray-light;
-//** Background color of disabled list items
-@list-group-disabled-bg: @gray-lighter;
-//** Text color for content within disabled list items
-@list-group-disabled-text-color: @list-group-disabled-color;
-
-@list-group-link-color: #555;
-@list-group-link-hover-color: @list-group-link-color;
-@list-group-link-heading-color: #333;
-
-
-//== Panels
-//
-//##
-
-@panel-bg: #fff;
-@panel-body-padding: 15px;
-@panel-heading-padding: 10px 15px;
-@panel-footer-padding: @panel-heading-padding;
-@panel-border-radius: @border-radius-base;
-
-//** Border color for elements within panels
-@panel-inner-border: #ddd;
-@panel-footer-bg: #f5f5f5;
-
-@panel-default-text: @gray-dark;
-@panel-default-border: #ddd;
-@panel-default-heading-bg: #f5f5f5;
-
-@panel-primary-text: #fff;
-@panel-primary-border: @brand-primary;
-@panel-primary-heading-bg: @brand-primary;
-
-@panel-success-text: @state-success-text;
-@panel-success-border: @state-success-border;
-@panel-success-heading-bg: @state-success-bg;
-
-@panel-info-text: @state-info-text;
-@panel-info-border: @state-info-border;
-@panel-info-heading-bg: @state-info-bg;
-
-@panel-warning-text: @state-warning-text;
-@panel-warning-border: @state-warning-border;
-@panel-warning-heading-bg: @state-warning-bg;
-
-@panel-danger-text: @state-danger-text;
-@panel-danger-border: @state-danger-border;
-@panel-danger-heading-bg: @state-danger-bg;
-
-
-//== Thumbnails
-//
-//##
-
-//** Padding around the thumbnail image
-@thumbnail-padding: 4px;
-//** Thumbnail background color
-@thumbnail-bg: @body-bg;
-//** Thumbnail border color
-@thumbnail-border: #ddd;
-//** Thumbnail border radius
-@thumbnail-border-radius: @border-radius-base;
-
-//** Custom text color for thumbnail captions
-@thumbnail-caption-color: @text-color;
-//** Padding around the thumbnail caption
-@thumbnail-caption-padding: 9px;
-
-
-//== Wells
-//
-//##
-
-@well-bg: #f5f5f5;
-@well-border: darken(@well-bg, 7%);
-
-
-//== Badges
-//
-//##
-
-@badge-color: #fff;
-//** Linked badge text color on hover
-@badge-link-hover-color: #fff;
-@badge-bg: @gray-light;
-
-//** Badge text color in active nav link
-@badge-active-color: @link-color;
-//** Badge background color in active nav link
-@badge-active-bg: #fff;
-
-@badge-font-weight: bold;
-@badge-line-height: 1;
-@badge-border-radius: 10px;
-
-
-//== Breadcrumbs
-//
-//##
-
-@breadcrumb-padding-vertical: 8px;
-@breadcrumb-padding-horizontal: 15px;
-//** Breadcrumb background color
-@breadcrumb-bg: #f5f5f5;
-//** Breadcrumb text color
-@breadcrumb-color: #ccc;
-//** Text color of current page in the breadcrumb
-@breadcrumb-active-color: @gray-light;
-//** Textual separator for between breadcrumb elements
-@breadcrumb-separator: "/";
-
-
-//== Carousel
-//
-//##
-
-@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);
-
-@carousel-control-color: #fff;
-@carousel-control-width: 15%;
-@carousel-control-opacity: .5;
-@carousel-control-font-size: 20px;
-
-@carousel-indicator-active-bg: #fff;
-@carousel-indicator-border-color: #fff;
-
-@carousel-caption-color: #fff;
-
-
-//== Close
-//
-//##
-
-@close-font-weight: bold;
-@close-color: #000;
-@close-text-shadow: 0 1px 0 #fff;
-
-
-//== Code
-//
-//##
-
-@code-color: #c7254e;
-@code-bg: #f9f2f4;
-
-@kbd-color: #fff;
-@kbd-bg: #333;
-
-@pre-bg: #f5f5f5;
-@pre-color: @gray-dark;
-@pre-border-color: #ccc;
-@pre-scrollable-max-height: 340px;
-
-
-//== Type
-//
-//##
-
-//** Horizontal offset for forms and lists.
-@component-offset-horizontal: 180px;
-//** Text muted color
-@text-muted: @gray-light;
-//** Abbreviations and acronyms border color
-@abbr-border-color: @gray-light;
-//** Headings small color
-@headings-small-color: @gray-light;
-//** Blockquote small color
-@blockquote-small-color: @gray-light;
-//** Blockquote font size
-@blockquote-font-size: (@font-size-base * 1.25);
-//** Blockquote border color
-@blockquote-border-color: @gray-lighter;
-//** Page header border color
-@page-header-border-color: @gray-lighter;
-//** Width of horizontal description list titles
-@dl-horizontal-offset: @component-offset-horizontal;
-//** Point at which .dl-horizontal becomes horizontal
-@dl-horizontal-breakpoint: @grid-float-breakpoint;
-//** Horizontal line color.
-@hr-border: @gray-lighter;
diff --git a/addons/web/static/lib/bootstrap/scss/_bootstrap-compass.scss b/addons/web/static/lib/bootstrap/scss/_bootstrap-compass.scss
new file mode 100644
index 00000000000..8fbc3cda5e3
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/_bootstrap-compass.scss
@@ -0,0 +1,9 @@
+@function twbs-font-path($path) {
+ @return font-url($path, true);
+}
+
+@function twbs-image-path($path) {
+ @return image-url($path, true);
+}
+
+$bootstrap-sass-asset-helper: true;
diff --git a/addons/web/static/lib/bootstrap/scss/_bootstrap-mincer.scss b/addons/web/static/lib/bootstrap/scss/_bootstrap-mincer.scss
new file mode 100644
index 00000000000..0c4655e32d2
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/_bootstrap-mincer.scss
@@ -0,0 +1,19 @@
+// Mincer asset helper functions
+//
+// This must be imported into a .css.ejs.scss file.
+// Then, <% %>-interpolations will be parsed as strings by Sass, and evaluated by EJS after Sass compilation.
+
+
+@function twbs-font-path($path) {
+ // do something like following
+ // from "path/to/font.ext#suffix" to "<%- asset_path(path/to/font.ext)) + #suffix %>"
+ // from "path/to/font.ext?#suffix" to "<%- asset_path(path/to/font.ext)) + ?#suffix %>"
+ // or from "path/to/font.ext" just "<%- asset_path(path/to/font.ext)) %>"
+ @return "<%- asset_path("#{$path}".replace(/[#?].*$/, '')) + "#{$path}".replace(/(^[^#?]*)([#?]?.*$)/, '$2') %>";
+}
+
+@function twbs-image-path($file) {
+ @return "<%- asset_path("#{$file}") %>";
+}
+
+$bootstrap-sass-asset-helper: true;
diff --git a/addons/web/static/lib/bootstrap/scss/_bootstrap-sprockets.scss b/addons/web/static/lib/bootstrap/scss/_bootstrap-sprockets.scss
new file mode 100644
index 00000000000..9fffc1eb4b1
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/_bootstrap-sprockets.scss
@@ -0,0 +1,9 @@
+@function twbs-font-path($path) {
+ @return font-path($path);
+}
+
+@function twbs-image-path($path) {
+ @return image-path($path);
+}
+
+$bootstrap-sass-asset-helper: true;
diff --git a/addons/web/static/lib/bootstrap/scss/_bootstrap.scss b/addons/web/static/lib/bootstrap/scss/_bootstrap.scss
new file mode 100644
index 00000000000..e72d1def2a2
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/_bootstrap.scss
@@ -0,0 +1,56 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+// Core variables and mixins
+@import "bootstrap/variables";
+@import "bootstrap/mixins";
+
+// Reset and dependencies
+@import "bootstrap/normalize";
+@import "bootstrap/print";
+@import "bootstrap/glyphicons";
+
+// Core CSS
+@import "bootstrap/scaffolding";
+@import "bootstrap/type";
+@import "bootstrap/code";
+@import "bootstrap/grid";
+@import "bootstrap/tables";
+@import "bootstrap/forms";
+@import "bootstrap/buttons";
+
+// Components
+@import "bootstrap/component-animations";
+@import "bootstrap/dropdowns";
+@import "bootstrap/button-groups";
+@import "bootstrap/input-groups";
+@import "bootstrap/navs";
+@import "bootstrap/navbar";
+@import "bootstrap/breadcrumbs";
+@import "bootstrap/pagination";
+@import "bootstrap/pager";
+@import "bootstrap/labels";
+@import "bootstrap/badges";
+@import "bootstrap/jumbotron";
+@import "bootstrap/thumbnails";
+@import "bootstrap/alerts";
+@import "bootstrap/progress-bars";
+@import "bootstrap/media";
+@import "bootstrap/list-group";
+@import "bootstrap/panels";
+@import "bootstrap/responsive-embed";
+@import "bootstrap/wells";
+@import "bootstrap/close";
+
+// Components w/ JavaScript
+@import "bootstrap/modals";
+@import "bootstrap/tooltip";
+@import "bootstrap/popovers";
+@import "bootstrap/carousel";
+
+// Utility classes
+@import "bootstrap/utilities";
+@import "bootstrap/responsive-utilities";
diff --git a/addons/web/static/lib/bootstrap/less/alerts.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_alerts.scss
index c4199db927e..7d1e1fddd15 100644
--- a/addons/web/static/lib/bootstrap/less/alerts.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_alerts.scss
@@ -7,21 +7,21 @@
// -------------------------
.alert {
- padding: @alert-padding;
- margin-bottom: @line-height-computed;
+ padding: $alert-padding;
+ margin-bottom: $line-height-computed;
border: 1px solid transparent;
- border-radius: @alert-border-radius;
+ border-radius: $alert-border-radius;
// Headings for larger alerts
h4 {
margin-top: 0;
- // Specified for the h4 to prevent conflicts of changing @headings-color
+ // Specified for the h4 to prevent conflicts of changing $headings-color
color: inherit;
}
// Provide class for links that match alerts
.alert-link {
- font-weight: @alert-link-font-weight;
+ font-weight: $alert-link-font-weight;
}
// Improve alignment and spacing of inner content
@@ -41,7 +41,7 @@
.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
.alert-dismissible {
- padding-right: (@alert-padding + 20);
+ padding-right: ($alert-padding + 20);
// Adjust close link position
.close {
@@ -57,17 +57,17 @@
// Generate contextual modifier classes for colorizing the alert.
.alert-success {
- .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
+ @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
}
.alert-info {
- .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
+ @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
}
.alert-warning {
- .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);
+ @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
}
.alert-danger {
- .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
+ @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
}
diff --git a/addons/web/static/lib/bootstrap/less/badges.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_badges.scss
index 6ee16dca413..70002e085b1 100644
--- a/addons/web/static/lib/bootstrap/less/badges.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_badges.scss
@@ -8,15 +8,15 @@
display: inline-block;
min-width: 10px;
padding: 3px 7px;
- font-size: @font-size-small;
- font-weight: @badge-font-weight;
- color: @badge-color;
- line-height: @badge-line-height;
+ font-size: $font-size-small;
+ font-weight: $badge-font-weight;
+ color: $badge-color;
+ line-height: $badge-line-height;
vertical-align: middle;
white-space: nowrap;
text-align: center;
- background-color: @badge-bg;
- border-radius: @badge-border-radius;
+ background-color: $badge-bg;
+ border-radius: $badge-border-radius;
// Empty badges collapse automatically (not available in IE8)
&:empty {
@@ -35,21 +35,13 @@
padding: 1px 5px;
}
- // Hover state, but only for links
- a& {
- &:hover,
- &:focus {
- color: @badge-link-hover-color;
- text-decoration: none;
- cursor: pointer;
- }
- }
+ // [converter] extracted a& to a.badge
// Account for badges in navs
.list-group-item.active > &,
.nav-pills > .active > a > & {
- color: @badge-active-color;
- background-color: @badge-active-bg;
+ color: $badge-active-color;
+ background-color: $badge-active-bg;
}
.list-group-item > & {
@@ -64,3 +56,13 @@
margin-left: 3px;
}
}
+
+// Hover state, but only for links
+a.badge {
+ &:hover,
+ &:focus {
+ color: $badge-link-hover-color;
+ text-decoration: none;
+ cursor: pointer;
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/_breadcrumbs.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/_breadcrumbs.scss
new file mode 100644
index 00000000000..b61f0c731ca
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_breadcrumbs.scss
@@ -0,0 +1,28 @@
+//
+// Breadcrumbs
+// --------------------------------------------------
+
+
+.breadcrumb {
+ padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;
+ margin-bottom: $line-height-computed;
+ list-style: none;
+ background-color: $breadcrumb-bg;
+ border-radius: $border-radius-base;
+
+ > li {
+ display: inline-block;
+
+ + li:before {
+ // [converter] Workaround for https://github.com/sass/libsass/issues/1115
+ $nbsp: "\00a0";
+ content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space
+ padding: 0 5px;
+ color: $breadcrumb-color;
+ }
+ }
+
+ > .active {
+ color: $breadcrumb-active-color;
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/less/button-groups.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_button-groups.scss
index 16db0c6135e..4b385f569c4 100644
--- a/addons/web/static/lib/bootstrap/less/button-groups.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_button-groups.scss
@@ -34,7 +34,7 @@
// Optional: Group multiple button groups together for a toolbar
.btn-toolbar {
margin-left: -5px; // Offset the first child's margin
- &:extend(.clearfix all);
+ @include clearfix;
.btn,
.btn-group,
@@ -56,13 +56,13 @@
.btn-group > .btn:first-child {
margin-left: 0;
&:not(:last-child):not(.dropdown-toggle) {
- .border-right-radius(0);
+ @include border-right-radius(0);
}
}
// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
- .border-left-radius(0);
+ @include border-left-radius(0);
}
// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
@@ -75,11 +75,11 @@
.btn-group > .btn-group:first-child:not(:last-child) {
> .btn:last-child,
> .dropdown-toggle {
- .border-right-radius(0);
+ @include border-right-radius(0);
}
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
- .border-left-radius(0);
+ @include border-left-radius(0);
}
// On active and open, don't show outline
@@ -93,9 +93,9 @@
//
// Remix the default button sizing classes into new ones for easier manipulation.
-.btn-group-xs > .btn { &:extend(.btn-xs); }
-.btn-group-sm > .btn { &:extend(.btn-sm); }
-.btn-group-lg > .btn { &:extend(.btn-lg); }
+.btn-group-xs > .btn { @extend .btn-xs; }
+.btn-group-sm > .btn { @extend .btn-sm; }
+.btn-group-lg > .btn { @extend .btn-lg; }
// Split button dropdowns
@@ -114,11 +114,11 @@
// The clickable button for toggling the menu
// Remove the gradient and set the same inset shadow as the :active state
.btn-group.open .dropdown-toggle {
- .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
// Show no shadow for `.btn-link` since it has no other button styles.
&.btn-link {
- .box-shadow(none);
+ @include box-shadow(none);
}
}
@@ -129,12 +129,12 @@
}
// Carets in other button sizes
.btn-lg .caret {
- border-width: @caret-width-large @caret-width-large 0;
+ border-width: $caret-width-large $caret-width-large 0;
border-bottom-width: 0;
}
// Upside down carets for .dropup
.dropup .btn-lg .caret {
- border-width: 0 @caret-width-large @caret-width-large;
+ border-width: 0 $caret-width-large $caret-width-large;
}
@@ -153,7 +153,7 @@
// Clear floats so dropdown menus can be properly placed
> .btn-group {
- &:extend(.clearfix all);
+ @include clearfix;
> .btn {
float: none;
}
@@ -173,12 +173,12 @@
border-radius: 0;
}
&:first-child:not(:last-child) {
- .border-top-radius(@btn-border-radius-base);
- .border-bottom-radius(0);
+ @include border-top-radius($btn-border-radius-base);
+ @include border-bottom-radius(0);
}
&:last-child:not(:first-child) {
- .border-top-radius(0);
- .border-bottom-radius(@btn-border-radius-base);
+ @include border-top-radius(0);
+ @include border-bottom-radius($btn-border-radius-base);
}
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
@@ -187,11 +187,11 @@
.btn-group-vertical > .btn-group:first-child:not(:last-child) {
> .btn:last-child,
> .dropdown-toggle {
- .border-bottom-radius(0);
+ @include border-bottom-radius(0);
}
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
- .border-top-radius(0);
+ @include border-top-radius(0);
}
diff --git a/addons/web/static/lib/bootstrap/less/buttons.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_buttons.scss
index 9cbb8f416fa..6452b709f10 100644
--- a/addons/web/static/lib/bootstrap/less/buttons.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_buttons.scss
@@ -9,7 +9,7 @@
.btn {
display: inline-block;
margin-bottom: 0; // For input.btn
- font-weight: @btn-font-weight;
+ font-weight: $btn-font-weight;
text-align: center;
vertical-align: middle;
touch-action: manipulation;
@@ -17,22 +17,22 @@
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid transparent;
white-space: nowrap;
- .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);
- .user-select(none);
+ @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base);
+ @include user-select(none);
&,
&:active,
&.active {
&:focus,
&.focus {
- .tab-focus();
+ @include tab-focus;
}
}
&:hover,
&:focus,
&.focus {
- color: @btn-default-color;
+ color: $btn-default-color;
text-decoration: none;
}
@@ -40,22 +40,24 @@
&.active {
outline: 0;
background-image: none;
- .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
}
&.disabled,
&[disabled],
fieldset[disabled] & {
- cursor: @cursor-disabled;
- .opacity(.65);
- .box-shadow(none);
+ cursor: $cursor-disabled;
+ @include opacity(.65);
+ @include box-shadow(none);
}
- a& {
- &.disabled,
- fieldset[disabled] & {
- pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
- }
+ // [converter] extracted a& to a.btn
+}
+
+a.btn {
+ &.disabled,
+ fieldset[disabled] & {
+ pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
}
}
@@ -64,26 +66,26 @@
// --------------------------------------------------
.btn-default {
- .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);
+ @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
}
.btn-primary {
- .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);
+ @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
}
// Success appears as green
.btn-success {
- .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);
+ @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
}
// Info appears as blue-green
.btn-info {
- .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);
+ @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
}
// Warning appears as orange
.btn-warning {
- .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);
+ @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
}
// Danger and error appear as red
.btn-danger {
- .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
+ @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
}
@@ -92,7 +94,7 @@
// Make a button look and behave like a link
.btn-link {
- color: @link-color;
+ color: $link-color;
font-weight: normal;
border-radius: 0;
@@ -102,7 +104,7 @@
&[disabled],
fieldset[disabled] & {
background-color: transparent;
- .box-shadow(none);
+ @include box-shadow(none);
}
&,
&:hover,
@@ -112,15 +114,15 @@
}
&:hover,
&:focus {
- color: @link-hover-color;
- text-decoration: @link-hover-decoration;
+ color: $link-hover-color;
+ text-decoration: $link-hover-decoration;
background-color: transparent;
}
&[disabled],
fieldset[disabled] & {
&:hover,
&:focus {
- color: @btn-link-disabled-color;
+ color: $btn-link-disabled-color;
text-decoration: none;
}
}
@@ -132,14 +134,14 @@
.btn-lg {
// line-height: ensure even-numbered height of button next to large input
- .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);
+ @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large);
}
.btn-sm {
// line-height: ensure proper height of button next to small input
- .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
+ @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);
}
.btn-xs {
- .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
+ @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);
}
diff --git a/addons/web/static/lib/bootstrap/less/carousel.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_carousel.scss
index 252011e9e25..753d881f455 100644
--- a/addons/web/static/lib/bootstrap/less/carousel.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_carousel.scss
@@ -16,35 +16,35 @@
> .item {
display: none;
position: relative;
- .transition(.6s ease-in-out left);
+ @include transition(.6s ease-in-out left);
// Account for jankitude on images
> img,
> a > img {
- &:extend(.img-responsive);
+ @include img-responsive;
line-height: 1;
}
// WebKit CSS3 transforms for supported devices
@media all and (transform-3d), (-webkit-transform-3d) {
- .transition-transform(~'0.6s ease-in-out');
- .backface-visibility(~'hidden');
- .perspective(1000px);
+ @include transition-transform(0.6s ease-in-out);
+ @include backface-visibility(hidden);
+ @include perspective(1000px);
&.next,
&.active.right {
- .translate3d(100%, 0, 0);
+ @include translate3d(100%, 0, 0);
left: 0;
}
&.prev,
&.active.left {
- .translate3d(-100%, 0, 0);
+ @include translate3d(-100%, 0, 0);
left: 0;
}
&.next.left,
&.prev.right,
&.active {
- .translate3d(0, 0, 0);
+ @include translate3d(0, 0, 0);
left: 0;
}
}
@@ -95,33 +95,33 @@
top: 0;
left: 0;
bottom: 0;
- width: @carousel-control-width;
- .opacity(@carousel-control-opacity);
- font-size: @carousel-control-font-size;
- color: @carousel-control-color;
+ width: $carousel-control-width;
+ @include opacity($carousel-control-opacity);
+ font-size: $carousel-control-font-size;
+ color: $carousel-control-color;
text-align: center;
- text-shadow: @carousel-text-shadow;
+ text-shadow: $carousel-text-shadow;
background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug
// We can't have this transition here because WebKit cancels the carousel
// animation if you trip this while in the middle of another animation.
// Set gradients for backgrounds
&.left {
- #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));
+ @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001));
}
&.right {
left: auto;
right: 0;
- #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));
+ @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5));
}
// Hover/focus state
&:hover,
&:focus {
outline: 0;
- color: @carousel-control-color;
+ color: $carousel-control-color;
text-decoration: none;
- .opacity(.9);
+ @include opacity(.9);
}
// Toggles
@@ -188,7 +188,7 @@
height: 10px;
margin: 1px;
text-indent: -999px;
- border: 1px solid @carousel-indicator-border-color;
+ border: 1px solid $carousel-indicator-border-color;
border-radius: 10px;
cursor: pointer;
@@ -208,7 +208,7 @@
margin: 0;
width: 12px;
height: 12px;
- background-color: @carousel-indicator-active-bg;
+ background-color: $carousel-indicator-active-bg;
}
}
@@ -223,9 +223,9 @@
z-index: 10;
padding-top: 20px;
padding-bottom: 20px;
- color: @carousel-caption-color;
+ color: $carousel-caption-color;
text-align: center;
- text-shadow: @carousel-text-shadow;
+ text-shadow: $carousel-text-shadow;
& .btn {
text-shadow: none; // No shadow for button elements in carousel-caption
}
@@ -233,7 +233,7 @@
// Scale up controls for tablets and up
-@media screen and (min-width: @screen-sm-min) {
+@media screen and (min-width: $screen-sm-min) {
// Scale up the controls a smidge
.carousel-control {
@@ -241,18 +241,18 @@
.glyphicon-chevron-right,
.icon-prev,
.icon-next {
- width: (@carousel-control-font-size * 1.5);
- height: (@carousel-control-font-size * 1.5);
- margin-top: (@carousel-control-font-size / -2);
- font-size: (@carousel-control-font-size * 1.5);
+ width: ($carousel-control-font-size * 1.5);
+ height: ($carousel-control-font-size * 1.5);
+ margin-top: ($carousel-control-font-size / -2);
+ font-size: ($carousel-control-font-size * 1.5);
}
.glyphicon-chevron-left,
.icon-prev {
- margin-left: (@carousel-control-font-size / -2);
+ margin-left: ($carousel-control-font-size / -2);
}
.glyphicon-chevron-right,
.icon-next {
- margin-right: (@carousel-control-font-size / -2);
+ margin-right: ($carousel-control-font-size / -2);
}
}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/_close.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/_close.scss
new file mode 100644
index 00000000000..3b74d8a973c
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_close.scss
@@ -0,0 +1,36 @@
+//
+// Close icons
+// --------------------------------------------------
+
+
+.close {
+ float: right;
+ font-size: ($font-size-base * 1.5);
+ font-weight: $close-font-weight;
+ line-height: 1;
+ color: $close-color;
+ text-shadow: $close-text-shadow;
+ @include opacity(.2);
+
+ &:hover,
+ &:focus {
+ color: $close-color;
+ text-decoration: none;
+ cursor: pointer;
+ @include opacity(.5);
+ }
+
+ // [converter] extracted button& to button.close
+}
+
+// Additional properties for button version
+// iOS requires the button element instead of an anchor tag.
+// If you want the anchor version, it requires `href="#"`.
+// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+}
diff --git a/addons/web/static/lib/bootstrap/less/code.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_code.scss
index a08b4d48c4c..caa5f06304c 100644
--- a/addons/web/static/lib/bootstrap/less/code.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_code.scss
@@ -8,25 +8,25 @@ code,
kbd,
pre,
samp {
- font-family: @font-family-monospace;
+ font-family: $font-family-monospace;
}
// Inline code
code {
padding: 2px 4px;
font-size: 90%;
- color: @code-color;
- background-color: @code-bg;
- border-radius: @border-radius-base;
+ color: $code-color;
+ background-color: $code-bg;
+ border-radius: $border-radius-base;
}
// User input typically entered via keyboard
kbd {
padding: 2px 4px;
font-size: 90%;
- color: @kbd-color;
- background-color: @kbd-bg;
- border-radius: @border-radius-small;
+ color: $kbd-color;
+ background-color: $kbd-bg;
+ border-radius: $border-radius-small;
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
kbd {
@@ -40,16 +40,16 @@ kbd {
// Blocks of code
pre {
display: block;
- padding: ((@line-height-computed - 1) / 2);
- margin: 0 0 (@line-height-computed / 2);
- font-size: (@font-size-base - 1); // 14px to 13px
- line-height: @line-height-base;
+ padding: (($line-height-computed - 1) / 2);
+ margin: 0 0 ($line-height-computed / 2);
+ font-size: ($font-size-base - 1); // 14px to 13px
+ line-height: $line-height-base;
word-break: break-all;
word-wrap: break-word;
- color: @pre-color;
- background-color: @pre-bg;
- border: 1px solid @pre-border-color;
- border-radius: @border-radius-base;
+ color: $pre-color;
+ background-color: $pre-bg;
+ border: 1px solid $pre-border-color;
+ border-radius: $border-radius-base;
// Account for some code outputs that place code tags in pre tags
code {
@@ -64,6 +64,6 @@ pre {
// Enable scrollable blocks of code
.pre-scrollable {
- max-height: @pre-scrollable-max-height;
+ max-height: $pre-scrollable-max-height;
overflow-y: scroll;
}
diff --git a/addons/web/static/lib/bootstrap/less/component-animations.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_component-animations.scss
index 0bcee910ac5..ca3b43ca788 100644
--- a/addons/web/static/lib/bootstrap/less/component-animations.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_component-animations.scss
@@ -9,7 +9,7 @@
.fade {
opacity: 0;
- .transition(opacity .15s linear);
+ @include transition(opacity .15s linear);
&.in {
opacity: 1;
}
@@ -19,15 +19,19 @@
display: none;
&.in { display: block; }
- tr&.in { display: table-row; }
- tbody&.in { display: table-row-group; }
+ // [converter] extracted tr&.in to tr.collapse.in
+ // [converter] extracted tbody&.in to tbody.collapse.in
}
+tr.collapse.in { display: table-row; }
+
+tbody.collapse.in { display: table-row-group; }
+
.collapsing {
position: relative;
height: 0;
overflow: hidden;
- .transition-property(~"height, visibility");
- .transition-duration(.35s);
- .transition-timing-function(ease);
+ @include transition-property(height, visibility);
+ @include transition-duration(.35s);
+ @include transition-timing-function(ease);
}
diff --git a/addons/web/static/lib/bootstrap/less/dropdowns.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_dropdowns.scss
index f6876c1a9b2..aac84597a49 100644
--- a/addons/web/static/lib/bootstrap/less/dropdowns.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_dropdowns.scss
@@ -10,10 +10,10 @@
height: 0;
margin-left: 2px;
vertical-align: middle;
- border-top: @caret-width-base dashed;
- border-top: @caret-width-base solid ~"\9"; // IE8
- border-right: @caret-width-base solid transparent;
- border-left: @caret-width-base solid transparent;
+ border-top: $caret-width-base dashed;
+ border-top: $caret-width-base solid \9; // IE8
+ border-right: $caret-width-base solid transparent;
+ border-left: $caret-width-base solid transparent;
}
// The dropdown wrapper (div)
@@ -32,20 +32,20 @@
position: absolute;
top: 100%;
left: 0;
- z-index: @zindex-dropdown;
+ z-index: $zindex-dropdown;
display: none; // none by default, but block on "open" of the menu
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0; // override default ul
list-style: none;
- font-size: @font-size-base;
+ font-size: $font-size-base;
text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
- background-color: @dropdown-bg;
- border: 1px solid @dropdown-fallback-border; // IE8 fallback
- border: 1px solid @dropdown-border;
- border-radius: @border-radius-base;
- .box-shadow(0 6px 12px rgba(0,0,0,.175));
+ background-color: $dropdown-bg;
+ border: 1px solid $dropdown-fallback-border; // IE8 fallback
+ border: 1px solid $dropdown-border;
+ border-radius: $border-radius-base;
+ @include box-shadow(0 6px 12px rgba(0,0,0,.175));
background-clip: padding-box;
// Aligns the dropdown menu to right
@@ -58,7 +58,7 @@
// Dividers (basically an hr) within the dropdown
.divider {
- .nav-divider(@dropdown-divider-bg);
+ @include nav-divider($dropdown-divider-bg);
}
// Links within the dropdown menu
@@ -67,8 +67,8 @@
padding: 3px 20px;
clear: both;
font-weight: normal;
- line-height: @line-height-base;
- color: @dropdown-link-color;
+ line-height: $line-height-base;
+ color: $dropdown-link-color;
white-space: nowrap; // prevent links from randomly breaking onto new lines
}
}
@@ -78,8 +78,8 @@
&:hover,
&:focus {
text-decoration: none;
- color: @dropdown-link-hover-color;
- background-color: @dropdown-link-hover-bg;
+ color: $dropdown-link-hover-color;
+ background-color: $dropdown-link-hover-bg;
}
}
@@ -88,10 +88,10 @@
&,
&:hover,
&:focus {
- color: @dropdown-link-active-color;
+ color: $dropdown-link-active-color;
text-decoration: none;
outline: 0;
- background-color: @dropdown-link-active-bg;
+ background-color: $dropdown-link-active-bg;
}
}
@@ -103,7 +103,7 @@
&,
&:hover,
&:focus {
- color: @dropdown-link-disabled-color;
+ color: $dropdown-link-disabled-color;
}
// Nuke hover/focus effects
@@ -112,8 +112,8 @@
text-decoration: none;
background-color: transparent;
background-image: none; // Remove CSS gradient
- .reset-filter();
- cursor: @cursor-disabled;
+ @include reset-filter;
+ cursor: $cursor-disabled;
}
}
@@ -153,9 +153,9 @@
.dropdown-header {
display: block;
padding: 3px 20px;
- font-size: @font-size-small;
- line-height: @line-height-base;
- color: @dropdown-header-color;
+ font-size: $font-size-small;
+ line-height: $line-height-base;
+ color: $dropdown-header-color;
white-space: nowrap; // as with > li > a
}
@@ -166,7 +166,7 @@
right: 0;
bottom: 0;
top: 0;
- z-index: (@zindex-dropdown - 10);
+ z-index: ($zindex-dropdown - 10);
}
// Right aligned dropdowns
@@ -185,8 +185,8 @@
// Reverse the caret
.caret {
border-top: 0;
- border-bottom: @caret-width-base dashed;
- border-bottom: @caret-width-base solid ~"\9"; // IE8
+ border-bottom: $caret-width-base dashed;
+ border-bottom: $caret-width-base solid \9; // IE8
content: "";
}
// Different positioning for bottom up menu
@@ -202,15 +202,15 @@
//
// Reiterate per navbar.less and the modified component alignment there.
-@media (min-width: @grid-float-breakpoint) {
+@media (min-width: $grid-float-breakpoint) {
.navbar-right {
.dropdown-menu {
- .dropdown-menu-right();
+ right: 0; left: auto;
}
// Necessary for overrides of the default right aligned menu.
// Will remove come v4 in all likelihood.
.dropdown-menu-left {
- .dropdown-menu-left();
+ left: 0; right: auto;
}
}
}
diff --git a/addons/web/static/lib/bootstrap/less/forms.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_forms.scss
index 9377d3846b9..ac26a6ad86b 100644
--- a/addons/web/static/lib/bootstrap/less/forms.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_forms.scss
@@ -21,12 +21,12 @@ legend {
display: block;
width: 100%;
padding: 0;
- margin-bottom: @line-height-computed;
- font-size: (@font-size-base * 1.5);
+ margin-bottom: $line-height-computed;
+ font-size: ($font-size-base * 1.5);
line-height: inherit;
- color: @legend-color;
+ color: $legend-color;
border: 0;
- border-bottom: 1px solid @legend-border-color;
+ border-bottom: 1px solid $legend-border-color;
}
label {
@@ -45,7 +45,7 @@ label {
// Override content-box in Normalize (* isn't specific enough)
input[type="search"] {
- .box-sizing(border-box);
+ @include box-sizing(border-box);
}
// Position radios and checkboxes better
@@ -76,16 +76,16 @@ select[size] {
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
- .tab-focus();
+ @include tab-focus;
}
// Adjust output element
output {
display: block;
- padding-top: (@padding-base-vertical + 1);
- font-size: @font-size-base;
- line-height: @line-height-base;
- color: @input-color;
+ padding-top: ($padding-base-vertical + 1);
+ font-size: $font-size-base;
+ line-height: $line-height-base;
+ color: $input-color;
}
@@ -114,23 +114,23 @@ output {
.form-control {
display: block;
width: 100%;
- height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
- padding: @padding-base-vertical @padding-base-horizontal;
- font-size: @font-size-base;
- line-height: @line-height-base;
- color: @input-color;
- background-color: @input-bg;
+ height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
+ padding: $padding-base-vertical $padding-base-horizontal;
+ font-size: $font-size-base;
+ line-height: $line-height-base;
+ color: $input-color;
+ background-color: $input-bg;
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
- border: 1px solid @input-border;
- border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
- .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
+ border: 1px solid $input-border;
+ border-radius: $input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
+ @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);
// Customize the `:focus` state to imitate native WebKit styles.
- .form-control-focus();
+ @include form-control-focus;
// Placeholder
- .placeholder();
+ @include placeholder;
// Unstyle the caret on `<select>`s in IE10+.
&::-ms-expand {
@@ -146,19 +146,21 @@ output {
&[disabled],
&[readonly],
fieldset[disabled] & {
- background-color: @input-bg-disabled;
+ background-color: $input-bg-disabled;
opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655
}
&[disabled],
fieldset[disabled] & {
- cursor: @cursor-disabled;
+ cursor: $cursor-disabled;
}
- // Reset height for `textarea`s
- textarea& {
- height: auto;
- }
+ // [converter] extracted textarea& to textarea.form-control
+}
+
+// Reset height for `textarea`s
+textarea.form-control {
+ height: auto;
}
@@ -189,17 +191,17 @@ input[type="search"] {
input[type="datetime-local"],
input[type="month"] {
&.form-control {
- line-height: @input-height-base;
+ line-height: $input-height-base;
}
&.input-sm,
.input-group-sm & {
- line-height: @input-height-small;
+ line-height: $input-height-small;
}
&.input-lg,
.input-group-lg & {
- line-height: @input-height-large;
+ line-height: $input-height-large;
}
}
}
@@ -211,7 +213,7 @@ input[type="search"] {
// horizontal forms, use the predefined grid classes.
.form-group {
- margin-bottom: @form-group-margin-bottom;
+ margin-bottom: $form-group-margin-bottom;
}
@@ -227,7 +229,7 @@ input[type="search"] {
margin-bottom: 10px;
label {
- min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text
+ min-height: $line-height-computed; // Ensure the input doesn't jump when there is no text
padding-left: 20px;
margin-bottom: 0;
font-weight: normal;
@@ -274,7 +276,7 @@ input[type="checkbox"] {
&[disabled],
&.disabled,
fieldset[disabled] & {
- cursor: @cursor-disabled;
+ cursor: $cursor-disabled;
}
}
// These classes are used directly on <label>s
@@ -282,7 +284,7 @@ input[type="checkbox"] {
.checkbox-inline {
&.disabled,
fieldset[disabled] & {
- cursor: @cursor-disabled;
+ cursor: $cursor-disabled;
}
}
// These classes are used on elements with <label> descendants
@@ -291,7 +293,7 @@ input[type="checkbox"] {
&.disabled,
fieldset[disabled] & {
label {
- cursor: @cursor-disabled;
+ cursor: $cursor-disabled;
}
}
}
@@ -304,11 +306,11 @@ input[type="checkbox"] {
.form-control-static {
// Size it appropriately next to real form controls
- padding-top: (@padding-base-vertical + 1);
- padding-bottom: (@padding-base-vertical + 1);
+ padding-top: ($padding-base-vertical + 1);
+ padding-bottom: ($padding-base-vertical + 1);
// Remove default margin from `p`
margin-bottom: 0;
- min-height: (@line-height-computed + @font-size-base);
+ min-height: ($line-height-computed + $font-size-base);
&.input-lg,
&.input-sm {
@@ -326,59 +328,55 @@ input[type="checkbox"] {
// The `.form-group-* form-control` variations are sadly duplicated to avoid the
// issue documented in https://github.com/twbs/bootstrap/issues/15074.
-.input-sm {
- .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);
-}
+@include input-size('.input-sm', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $input-border-radius-small);
.form-group-sm {
.form-control {
- height: @input-height-small;
- padding: @padding-small-vertical @padding-small-horizontal;
- font-size: @font-size-small;
- line-height: @line-height-small;
- border-radius: @input-border-radius-small;
+ height: $input-height-small;
+ padding: $padding-small-vertical $padding-small-horizontal;
+ font-size: $font-size-small;
+ line-height: $line-height-small;
+ border-radius: $input-border-radius-small;
}
select.form-control {
- height: @input-height-small;
- line-height: @input-height-small;
+ height: $input-height-small;
+ line-height: $input-height-small;
}
textarea.form-control,
select[multiple].form-control {
height: auto;
}
.form-control-static {
- height: @input-height-small;
- min-height: (@line-height-computed + @font-size-small);
- padding: (@padding-small-vertical + 1) @padding-small-horizontal;
- font-size: @font-size-small;
- line-height: @line-height-small;
+ height: $input-height-small;
+ min-height: ($line-height-computed + $font-size-small);
+ padding: ($padding-small-vertical + 1) $padding-small-horizontal;
+ font-size: $font-size-small;
+ line-height: $line-height-small;
}
}
-.input-lg {
- .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);
-}
+@include input-size('.input-lg', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $input-border-radius-large);
.form-group-lg {
.form-control {
- height: @input-height-large;
- padding: @padding-large-vertical @padding-large-horizontal;
- font-size: @font-size-large;
- line-height: @line-height-large;
- border-radius: @input-border-radius-large;
+ height: $input-height-large;
+ padding: $padding-large-vertical $padding-large-horizontal;
+ font-size: $font-size-large;
+ line-height: $line-height-large;
+ border-radius: $input-border-radius-large;
}
select.form-control {
- height: @input-height-large;
- line-height: @input-height-large;
+ height: $input-height-large;
+ line-height: $input-height-large;
}
textarea.form-control,
select[multiple].form-control {
height: auto;
}
.form-control-static {
- height: @input-height-large;
- min-height: (@line-height-computed + @font-size-large);
- padding: (@padding-large-vertical + 1) @padding-large-horizontal;
- font-size: @font-size-large;
- line-height: @line-height-large;
+ height: $input-height-large;
+ min-height: ($line-height-computed + $font-size-large);
+ padding: ($padding-large-vertical + 1) $padding-large-horizontal;
+ font-size: $font-size-large;
+ line-height: $line-height-large;
}
}
@@ -393,7 +391,7 @@ input[type="checkbox"] {
// Ensure icons don't overlap text
.form-control {
- padding-right: (@input-height-base * 1.25);
+ padding-right: ($input-height-base * 1.25);
}
}
// Feedback icon (requires .glyphicon classes)
@@ -403,43 +401,43 @@ input[type="checkbox"] {
right: 0;
z-index: 2; // Ensure icon is above input groups
display: block;
- width: @input-height-base;
- height: @input-height-base;
- line-height: @input-height-base;
+ width: $input-height-base;
+ height: $input-height-base;
+ line-height: $input-height-base;
text-align: center;
pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
- width: @input-height-large;
- height: @input-height-large;
- line-height: @input-height-large;
+ width: $input-height-large;
+ height: $input-height-large;
+ line-height: $input-height-large;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
- width: @input-height-small;
- height: @input-height-small;
- line-height: @input-height-small;
+ width: $input-height-small;
+ height: $input-height-small;
+ line-height: $input-height-small;
}
// Feedback states
.has-success {
- .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);
+ @include form-control-validation($state-success-text, $state-success-text, $state-success-bg);
}
.has-warning {
- .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);
+ @include form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);
}
.has-error {
- .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);
+ @include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);
}
// Reposition feedback icon if input has visible label above
.has-feedback label {
& ~ .form-control-feedback {
- top: (@line-height-computed + 5); // Height of the `label` and its margin
+ top: ($line-height-computed + 5); // Height of the `label` and its margin
}
&.sr-only ~ .form-control-feedback {
top: 0;
@@ -456,7 +454,7 @@ input[type="checkbox"] {
display: block; // account for any element using help-block
margin-top: 5px;
margin-bottom: 10px;
- color: lighten(@text-color, 25%); // lighten the text some for contrast
+ color: lighten($text-color, 25%); // lighten the text some for contrast
}
@@ -471,10 +469,11 @@ input[type="checkbox"] {
//
// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
-.form-inline {
+// [converter] extracted from `.form-inline` for libsass compatibility
+@mixin form-inline {
// Kick in the inline
- @media (min-width: @screen-sm-min) {
+ @media (min-width: $screen-sm-min) {
// Inline-block all the things for "inline"
.form-group {
display: inline-block;
@@ -540,6 +539,11 @@ input[type="checkbox"] {
}
}
}
+// [converter] extracted as `@mixin form-inline` for libsass compatibility
+.form-inline {
+ @include form-inline;
+}
+
// Horizontal forms
@@ -558,27 +562,27 @@ input[type="checkbox"] {
.checkbox-inline {
margin-top: 0;
margin-bottom: 0;
- padding-top: (@padding-base-vertical + 1); // Default padding plus a border
+ padding-top: ($padding-base-vertical + 1); // Default padding plus a border
}
// Account for padding we're adding to ensure the alignment and of help text
// and other content below items
.radio,
.checkbox {
- min-height: (@line-height-computed + (@padding-base-vertical + 1));
+ min-height: ($line-height-computed + ($padding-base-vertical + 1));
}
// Make form groups behave like rows
.form-group {
- .make-row();
+ @include make-row;
}
// Reset spacing and right align labels, but scope to media queries so that
// labels on narrow viewports stack the same as a default form example.
- @media (min-width: @screen-sm-min) {
+ @media (min-width: $screen-sm-min) {
.control-label {
text-align: right;
margin-bottom: 0;
- padding-top: (@padding-base-vertical + 1); // Default padding plus a border
+ padding-top: ($padding-base-vertical + 1); // Default padding plus a border
}
}
@@ -587,7 +591,7 @@ input[type="checkbox"] {
// Reposition the icon because it's now within a grid column and columns have
// `position: relative;` on them. Also accounts for the grid gutter padding.
.has-feedback .form-control-feedback {
- right: floor((@grid-gutter-width / 2));
+ right: floor(($grid-gutter-width / 2));
}
// Form group sizes
@@ -595,18 +599,18 @@ input[type="checkbox"] {
// Quick utility class for applying `.input-lg` and `.input-sm` styles to the
// inputs and labels within a `.form-group`.
.form-group-lg {
- @media (min-width: @screen-sm-min) {
+ @media (min-width: $screen-sm-min) {
.control-label {
- padding-top: (@padding-large-vertical + 1);
- font-size: @font-size-large;
+ padding-top: ($padding-large-vertical + 1);
+ font-size: $font-size-large;
}
}
}
.form-group-sm {
- @media (min-width: @screen-sm-min) {
+ @media (min-width: $screen-sm-min) {
.control-label {
- padding-top: (@padding-small-vertical + 1);
- font-size: @font-size-small;
+ padding-top: ($padding-small-vertical + 1);
+ font-size: $font-size-small;
}
}
}
diff --git a/addons/web/static/lib/bootstrap/less/glyphicons.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_glyphicons.scss
index 7bc5852d2c0..07a0fc91fe6 100644
--- a/addons/web/static/lib/bootstrap/less/glyphicons.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_glyphicons.scss
@@ -7,15 +7,17 @@
//
// <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a>
-// Import the fonts
-@font-face {
- font-family: 'Glyphicons Halflings';
- src: url('@{icon-font-path}@{icon-font-name}.eot');
- src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),
- url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),
- url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),
- url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),
- url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');
+@at-root {
+ // Import the fonts
+ @font-face {
+ font-family: 'Glyphicons Halflings';
+ src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot'));
+ src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'),
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff2'), '#{$icon-font-path}#{$icon-font-name}.woff2')) format('woff2'),
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'),
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'),
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg');
+ }
}
// Catchall baseclass
diff --git a/addons/web/static/lib/bootstrap/less/grid.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_grid.scss
index e100655b70e..b15ca27bb54 100644
--- a/addons/web/static/lib/bootstrap/less/grid.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_grid.scss
@@ -8,16 +8,16 @@
// Set the container width, and override it for fixed navbars in media queries.
.container {
- .container-fixed();
+ @include container-fixed;
- @media (min-width: @screen-sm-min) {
- width: @container-sm;
+ @media (min-width: $screen-sm-min) {
+ width: $container-sm;
}
- @media (min-width: @screen-md-min) {
- width: @container-md;
+ @media (min-width: $screen-md-min) {
+ width: $container-md;
}
- @media (min-width: @screen-lg-min) {
- width: @container-lg;
+ @media (min-width: $screen-lg-min) {
+ width: $container-lg;
}
}
@@ -28,7 +28,7 @@
// width for fluid, full width layouts.
.container-fluid {
- .container-fixed();
+ @include container-fixed;
}
@@ -37,7 +37,7 @@
// Rows contain and clear the floats of your columns.
.row {
- .make-row();
+ @include make-row;
}
@@ -45,7 +45,7 @@
//
// Common styles for small and large grid columns
-.make-grid-columns();
+@include make-grid-columns;
// Extra small grid
@@ -53,7 +53,7 @@
// Columns, offsets, pushes, and pulls for extra small devices like
// smartphones.
-.make-grid(xs);
+@include make-grid(xs);
// Small grid
@@ -61,8 +61,8 @@
// Columns, offsets, pushes, and pulls for the small device range, from phones
// to tablets.
-@media (min-width: @screen-sm-min) {
- .make-grid(sm);
+@media (min-width: $screen-sm-min) {
+ @include make-grid(sm);
}
@@ -70,8 +70,8 @@
//
// Columns, offsets, pushes, and pulls for the desktop device range.
-@media (min-width: @screen-md-min) {
- .make-grid(md);
+@media (min-width: $screen-md-min) {
+ @include make-grid(md);
}
@@ -79,6 +79,6 @@
//
// Columns, offsets, pushes, and pulls for the large desktop device range.
-@media (min-width: @screen-lg-min) {
- .make-grid(lg);
+@media (min-width: $screen-lg-min) {
+ @include make-grid(lg);
}
diff --git a/addons/web/static/lib/bootstrap/less/input-groups.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_input-groups.scss
index d0763db7fff..81f46f3e616 100644
--- a/addons/web/static/lib/bootstrap/less/input-groups.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_input-groups.scss
@@ -44,12 +44,12 @@
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
- .input-lg();
+ @extend .input-lg;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
- .input-sm();
+ @extend .input-sm;
}
@@ -75,26 +75,26 @@
// Text input groups
// -------------------------
.input-group-addon {
- padding: @padding-base-vertical @padding-base-horizontal;
- font-size: @font-size-base;
+ padding: $padding-base-vertical $padding-base-horizontal;
+ font-size: $font-size-base;
font-weight: normal;
line-height: 1;
- color: @input-color;
+ color: $input-color;
text-align: center;
- background-color: @input-group-addon-bg;
- border: 1px solid @input-group-addon-border-color;
- border-radius: @input-border-radius;
+ background-color: $input-group-addon-bg;
+ border: 1px solid $input-group-addon-border-color;
+ border-radius: $input-border-radius;
// Sizing
&.input-sm {
- padding: @padding-small-vertical @padding-small-horizontal;
- font-size: @font-size-small;
- border-radius: @input-border-radius-small;
+ padding: $padding-small-vertical $padding-small-horizontal;
+ font-size: $font-size-small;
+ border-radius: $input-border-radius-small;
}
&.input-lg {
- padding: @padding-large-vertical @padding-large-horizontal;
- font-size: @font-size-large;
- border-radius: @input-border-radius-large;
+ padding: $padding-large-vertical $padding-large-horizontal;
+ font-size: $font-size-large;
+ border-radius: $input-border-radius-large;
}
// Nuke default margins from checkboxes and radios to vertically center within.
@@ -112,7 +112,7 @@
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
- .border-right-radius(0);
+ @include border-right-radius(0);
}
.input-group-addon:first-child {
border-right: 0;
@@ -124,7 +124,7 @@
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
- .border-left-radius(0);
+ @include border-left-radius(0);
}
.input-group-addon:last-child {
border-left: 0;
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/_jumbotron.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/_jumbotron.scss
new file mode 100644
index 00000000000..a27da4738fe
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_jumbotron.scss
@@ -0,0 +1,54 @@
+//
+// Jumbotron
+// --------------------------------------------------
+
+
+.jumbotron {
+ padding-top: $jumbotron-padding;
+ padding-bottom: $jumbotron-padding;
+ margin-bottom: $jumbotron-padding;
+ color: $jumbotron-color;
+ background-color: $jumbotron-bg;
+
+ h1,
+ .h1 {
+ color: $jumbotron-heading-color;
+ }
+
+ p {
+ margin-bottom: ($jumbotron-padding / 2);
+ font-size: $jumbotron-font-size;
+ font-weight: 200;
+ }
+
+ > hr {
+ border-top-color: darken($jumbotron-bg, 10%);
+ }
+
+ .container &,
+ .container-fluid & {
+ border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container
+ padding-left: ($grid-gutter-width / 2);
+ padding-right: ($grid-gutter-width / 2);
+ }
+
+ .container {
+ max-width: 100%;
+ }
+
+ @media screen and (min-width: $screen-sm-min) {
+ padding-top: ($jumbotron-padding * 1.6);
+ padding-bottom: ($jumbotron-padding * 1.6);
+
+ .container &,
+ .container-fluid & {
+ padding-left: ($jumbotron-padding * 2);
+ padding-right: ($jumbotron-padding * 2);
+ }
+
+ h1,
+ .h1 {
+ font-size: $jumbotron-heading-font-size;
+ }
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/less/labels.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_labels.scss
index 9a5a27006a5..42ed6ea1232 100644
--- a/addons/web/static/lib/bootstrap/less/labels.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_labels.scss
@@ -8,21 +8,13 @@
font-size: 75%;
font-weight: bold;
line-height: 1;
- color: @label-color;
+ color: $label-color;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
- // Add hover effects, but only for links
- a& {
- &:hover,
- &:focus {
- color: @label-link-hover-color;
- text-decoration: none;
- cursor: pointer;
- }
- }
+ // [converter] extracted a& to a.label
// Empty labels collapse automatically (not available in IE8)
&:empty {
@@ -36,29 +28,39 @@
}
}
+// Add hover effects, but only for links
+a.label {
+ &:hover,
+ &:focus {
+ color: $label-link-hover-color;
+ text-decoration: none;
+ cursor: pointer;
+ }
+}
+
// Colors
// Contextual variations (linked labels get darker on :hover)
.label-default {
- .label-variant(@label-default-bg);
+ @include label-variant($label-default-bg);
}
.label-primary {
- .label-variant(@label-primary-bg);
+ @include label-variant($label-primary-bg);
}
.label-success {
- .label-variant(@label-success-bg);
+ @include label-variant($label-success-bg);
}
.label-info {
- .label-variant(@label-info-bg);
+ @include label-variant($label-info-bg);
}
.label-warning {
- .label-variant(@label-warning-bg);
+ @include label-variant($label-warning-bg);
}
.label-danger {
- .label-variant(@label-danger-bg);
+ @include label-variant($label-danger-bg);
}
diff --git a/addons/web/static/lib/bootstrap/less/list-group.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_list-group.scss
index 216b91230ab..7cb83aab05c 100644
--- a/addons/web/static/lib/bootstrap/less/list-group.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_list-group.scss
@@ -24,16 +24,16 @@
padding: 10px 15px;
// Place the border on the list items and negative margin up for better styling
margin-bottom: -1px;
- background-color: @list-group-bg;
- border: 1px solid @list-group-border;
+ background-color: $list-group-bg;
+ border: 1px solid $list-group-border;
// Round the first and last items
&:first-child {
- .border-top-radius(@list-group-border-radius);
+ @include border-top-radius($list-group-border-radius);
}
&:last-child {
margin-bottom: 0;
- .border-bottom-radius(@list-group-border-radius);
+ @include border-bottom-radius($list-group-border-radius);
}
}
@@ -45,18 +45,18 @@
a.list-group-item,
button.list-group-item {
- color: @list-group-link-color;
+ color: $list-group-link-color;
.list-group-item-heading {
- color: @list-group-link-heading-color;
+ color: $list-group-link-heading-color;
}
// Hover state
&:hover,
&:focus {
text-decoration: none;
- color: @list-group-link-hover-color;
- background-color: @list-group-hover-bg;
+ color: $list-group-link-hover-color;
+ background-color: $list-group-hover-bg;
}
}
@@ -70,16 +70,16 @@ button.list-group-item {
&.disabled,
&.disabled:hover,
&.disabled:focus {
- background-color: @list-group-disabled-bg;
- color: @list-group-disabled-color;
- cursor: @cursor-disabled;
+ background-color: $list-group-disabled-bg;
+ color: $list-group-disabled-color;
+ cursor: $cursor-disabled;
// Force color to inherit for custom content
.list-group-item-heading {
color: inherit;
}
.list-group-item-text {
- color: @list-group-disabled-text-color;
+ color: $list-group-disabled-text-color;
}
}
@@ -88,9 +88,9 @@ button.list-group-item {
&.active:hover,
&.active:focus {
z-index: 2; // Place active items above their siblings for proper border styling
- color: @list-group-active-color;
- background-color: @list-group-active-bg;
- border-color: @list-group-active-border;
+ color: $list-group-active-color;
+ background-color: $list-group-active-bg;
+ border-color: $list-group-active-border;
// Force color to inherit for custom content
.list-group-item-heading,
@@ -99,7 +99,7 @@ button.list-group-item {
color: inherit;
}
.list-group-item-text {
- color: @list-group-active-text-color;
+ color: $list-group-active-text-color;
}
}
}
@@ -110,10 +110,10 @@ button.list-group-item {
// Add modifier classes to change text and background color on individual items.
// Organizationally, this must come after the `:hover` states.
-.list-group-item-variant(success; @state-success-bg; @state-success-text);
-.list-group-item-variant(info; @state-info-bg; @state-info-text);
-.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);
-.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);
+@include list-group-item-variant(success, $state-success-bg, $state-success-text);
+@include list-group-item-variant(info, $state-info-bg, $state-info-text);
+@include list-group-item-variant(warning, $state-warning-bg, $state-warning-text);
+@include list-group-item-variant(danger, $state-danger-bg, $state-danger-text);
// Custom content options
diff --git a/addons/web/static/lib/bootstrap/less/media.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_media.scss
index 8c835e861ed..8c835e861ed 100644
--- a/addons/web/static/lib/bootstrap/less/media.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_media.scss
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/_mixins.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/_mixins.scss
new file mode 100644
index 00000000000..78cd5aa0ff3
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_mixins.scss
@@ -0,0 +1,40 @@
+// Mixins
+// --------------------------------------------------
+
+// Utilities
+@import "mixins/hide-text";
+@import "mixins/opacity";
+@import "mixins/image";
+@import "mixins/labels";
+@import "mixins/reset-filter";
+@import "mixins/resize";
+@import "mixins/responsive-visibility";
+@import "mixins/size";
+@import "mixins/tab-focus";
+@import "mixins/reset-text";
+@import "mixins/text-emphasis";
+@import "mixins/text-overflow";
+@import "mixins/vendor-prefixes";
+
+// Components
+@import "mixins/alerts";
+@import "mixins/buttons";
+@import "mixins/panels";
+@import "mixins/pagination";
+@import "mixins/list-group";
+@import "mixins/nav-divider";
+@import "mixins/forms";
+@import "mixins/progress-bar";
+@import "mixins/table-row";
+
+// Skins
+@import "mixins/background-variant";
+@import "mixins/border-radius";
+@import "mixins/gradients";
+
+// Layout
+@import "mixins/clearfix";
+@import "mixins/center-block";
+@import "mixins/nav-vertical-align";
+@import "mixins/grid-framework";
+@import "mixins/grid";
diff --git a/addons/web/static/lib/bootstrap/less/modals.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_modals.scss
index 767ce36ba37..823870f2a4d 100644
--- a/addons/web/static/lib/bootstrap/less/modals.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_modals.scss
@@ -21,7 +21,7 @@
right: 0;
bottom: 0;
left: 0;
- z-index: @zindex-modal;
+ z-index: $zindex-modal;
-webkit-overflow-scrolling: touch;
// Prevent Chrome on Windows from adding a focus outline. For details, see
@@ -30,10 +30,10 @@
// When fading in the modal, animate it to slide down
&.fade .modal-dialog {
- .translate(0, -25%);
- .transition-transform(~"0.3s ease-out");
+ @include translate(0, -25%);
+ @include transition-transform(0.3s ease-out);
}
- &.in .modal-dialog { .translate(0, 0) }
+ &.in .modal-dialog { @include translate(0, 0) }
}
.modal-open .modal {
overflow-x: hidden;
@@ -50,11 +50,11 @@
// Actual modal
.modal-content {
position: relative;
- background-color: @modal-content-bg;
- border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
- border: 1px solid @modal-content-border-color;
- border-radius: @border-radius-large;
- .box-shadow(0 3px 9px rgba(0,0,0,.5));
+ background-color: $modal-content-bg;
+ border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
+ border: 1px solid $modal-content-border-color;
+ border-radius: $border-radius-large;
+ @include box-shadow(0 3px 9px rgba(0,0,0,.5));
background-clip: padding-box;
// Remove focus outline from opened modal
outline: 0;
@@ -67,19 +67,19 @@
right: 0;
bottom: 0;
left: 0;
- z-index: @zindex-modal-background;
- background-color: @modal-backdrop-bg;
+ z-index: $zindex-modal-background;
+ background-color: $modal-backdrop-bg;
// Fade for backdrop
- &.fade { .opacity(0); }
- &.in { .opacity(@modal-backdrop-opacity); }
+ &.fade { @include opacity(0); }
+ &.in { @include opacity($modal-backdrop-opacity); }
}
// Modal header
// Top section of the modal w/ title and dismiss
.modal-header {
- padding: @modal-title-padding;
- border-bottom: 1px solid @modal-header-border-color;
- &:extend(.clearfix all);
+ padding: $modal-title-padding;
+ border-bottom: 1px solid $modal-header-border-color;
+ @include clearfix;
}
// Close icon
.modal-header .close {
@@ -89,22 +89,22 @@
// Title text within header
.modal-title {
margin: 0;
- line-height: @modal-title-line-height;
+ line-height: $modal-title-line-height;
}
// Modal body
// Where all modal content resides (sibling of .modal-header and .modal-footer)
.modal-body {
position: relative;
- padding: @modal-inner-padding;
+ padding: $modal-inner-padding;
}
// Footer (for actions)
.modal-footer {
- padding: @modal-inner-padding;
+ padding: $modal-inner-padding;
text-align: right; // right align buttons
- border-top: 1px solid @modal-footer-border-color;
- &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons
+ border-top: 1px solid $modal-footer-border-color;
+ @include clearfix; // clear it in case folks use .pull-* classes on buttons
// Properly space out buttons
.btn + .btn {
@@ -131,20 +131,20 @@
}
// Scale up the modal
-@media (min-width: @screen-sm-min) {
+@media (min-width: $screen-sm-min) {
// Automatically set modal's width for larger viewports
.modal-dialog {
- width: @modal-md;
+ width: $modal-md;
margin: 30px auto;
}
.modal-content {
- .box-shadow(0 5px 15px rgba(0,0,0,.5));
+ @include box-shadow(0 5px 15px rgba(0,0,0,.5));
}
// Modal sizes
- .modal-sm { width: @modal-sm; }
+ .modal-sm { width: $modal-sm; }
}
-@media (min-width: @screen-md-min) {
- .modal-lg { width: @modal-lg; }
+@media (min-width: $screen-md-min) {
+ .modal-lg { width: $modal-lg; }
}
diff --git a/addons/web/static/lib/bootstrap/less/navbar.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_navbar.scss
index 6d751bb9ce0..11e5c01c158 100644
--- a/addons/web/static/lib/bootstrap/less/navbar.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_navbar.scss
@@ -10,15 +10,15 @@
.navbar {
position: relative;
- min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
- margin-bottom: @navbar-margin-bottom;
+ min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
+ margin-bottom: $navbar-margin-bottom;
border: 1px solid transparent;
// Prevent floats from breaking the navbar
- &:extend(.clearfix all);
+ @include clearfix;
- @media (min-width: @grid-float-breakpoint) {
- border-radius: @navbar-border-radius;
+ @media (min-width: $grid-float-breakpoint) {
+ border-radius: $navbar-border-radius;
}
}
@@ -29,9 +29,9 @@
// styling of responsive aspects.
.navbar-header {
- &:extend(.clearfix all);
+ @include clearfix;
- @media (min-width: @grid-float-breakpoint) {
+ @media (min-width: $grid-float-breakpoint) {
float: left;
}
}
@@ -49,18 +49,18 @@
.navbar-collapse {
overflow-x: visible;
- padding-right: @navbar-padding-horizontal;
- padding-left: @navbar-padding-horizontal;
+ padding-right: $navbar-padding-horizontal;
+ padding-left: $navbar-padding-horizontal;
border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
- &:extend(.clearfix all);
+ @include clearfix;
-webkit-overflow-scrolling: touch;
&.in {
overflow-y: auto;
}
- @media (min-width: @grid-float-breakpoint) {
+ @media (min-width: $grid-float-breakpoint) {
width: auto;
border-top: 0;
box-shadow: none;
@@ -90,9 +90,9 @@
.navbar-fixed-top,
.navbar-fixed-bottom {
.navbar-collapse {
- max-height: @navbar-collapse-max-height;
+ max-height: $navbar-collapse-max-height;
- @media (max-device-width: @screen-xs-min) and (orientation: landscape) {
+ @media (max-device-width: $screen-xs-min) and (orientation: landscape) {
max-height: 200px;
}
}
@@ -107,10 +107,10 @@
.container-fluid {
> .navbar-header,
> .navbar-collapse {
- margin-right: -@navbar-padding-horizontal;
- margin-left: -@navbar-padding-horizontal;
+ margin-right: -$navbar-padding-horizontal;
+ margin-left: -$navbar-padding-horizontal;
- @media (min-width: @grid-float-breakpoint) {
+ @media (min-width: $grid-float-breakpoint) {
margin-right: 0;
margin-left: 0;
}
@@ -126,10 +126,10 @@
// Static top (unfixed, but 100% wide) navbar
.navbar-static-top {
- z-index: @zindex-navbar;
+ z-index: $zindex-navbar;
border-width: 0 0 1px;
- @media (min-width: @grid-float-breakpoint) {
+ @media (min-width: $grid-float-breakpoint) {
border-radius: 0;
}
}
@@ -140,10 +140,10 @@
position: fixed;
right: 0;
left: 0;
- z-index: @zindex-navbar-fixed;
+ z-index: $zindex-navbar-fixed;
// Undo the rounded corners
- @media (min-width: @grid-float-breakpoint) {
+ @media (min-width: $grid-float-breakpoint) {
border-radius: 0;
}
}
@@ -162,10 +162,10 @@
.navbar-brand {
float: left;
- padding: @navbar-padding-vertical @navbar-padding-horizontal;
- font-size: @font-size-large;
- line-height: @line-height-computed;
- height: @navbar-height;
+ padding: $navbar-padding-vertical $navbar-padding-horizontal;
+ font-size: $font-size-large;
+ line-height: $line-height-computed;
+ height: $navbar-height;
&:hover,
&:focus {
@@ -176,10 +176,10 @@
display: block;
}
- @media (min-width: @grid-float-breakpoint) {
+ @media (min-width: $grid-float-breakpoint) {
.navbar > .container &,
.navbar > .container-fluid & {
- margin-left: -@navbar-padding-horizontal;
+ margin-left: -$navbar-padding-horizontal;
}
}
}
@@ -193,13 +193,13 @@
.navbar-toggle {
position: relative;
float: right;
- margin-right: @navbar-padding-horizontal;
+ margin-right: $navbar-padding-horizontal;
padding: 9px 10px;
- .navbar-vertical-align(34px);
+ @include navbar-vertical-align(34px);
background-color: transparent;
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid transparent;
- border-radius: @border-radius-base;
+ border-radius: $border-radius-base;
// We remove the `outline` here, but later compensate by attaching `:hover`
// styles to `:focus`.
@@ -218,7 +218,7 @@
margin-top: 4px;
}
- @media (min-width: @grid-float-breakpoint) {
+ @media (min-width: $grid-float-breakpoint) {
display: none;
}
}
@@ -230,15 +230,15 @@
// the nav the full height of the horizontal nav (above 768px).
.navbar-nav {
- margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
+ margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal);
> li > a {
padding-top: 10px;
padding-bottom: 10px;
- line-height: @line-height-computed;
+ line-height: $line-height-computed;
}
- @media (max-width: @grid-float-breakpoint-max) {
+ @media (max-width: $grid-float-breakpoint-max) {
// Dropdowns get custom display when collapsed
.open .dropdown-menu {
position: static;
@@ -253,7 +253,7 @@
padding: 5px 15px 5px 25px;
}
> li > a {
- line-height: @line-height-computed;
+ line-height: $line-height-computed;
&:hover,
&:focus {
background-image: none;
@@ -263,15 +263,15 @@
}
// Uncollapse the nav
- @media (min-width: @grid-float-breakpoint) {
+ @media (min-width: $grid-float-breakpoint) {
float: left;
margin: 0;
> li {
float: left;
> a {
- padding-top: @navbar-padding-vertical;
- padding-bottom: @navbar-padding-vertical;
+ padding-top: $navbar-padding-vertical;
+ padding-bottom: $navbar-padding-vertical;
}
}
}
@@ -284,19 +284,19 @@
// our navbars.
.navbar-form {
- margin-left: -@navbar-padding-horizontal;
- margin-right: -@navbar-padding-horizontal;
- padding: 10px @navbar-padding-horizontal;
+ margin-left: -$navbar-padding-horizontal;
+ margin-right: -$navbar-padding-horizontal;
+ padding: 10px $navbar-padding-horizontal;
border-top: 1px solid transparent;
border-bottom: 1px solid transparent;
- @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
- .box-shadow(@shadow);
+ $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
+ @include box-shadow($shadow);
// Mixin behavior for optimum display
- .form-inline();
+ @include form-inline;
.form-group {
- @media (max-width: @grid-float-breakpoint-max) {
+ @media (max-width: $grid-float-breakpoint-max) {
margin-bottom: 5px;
&:last-child {
@@ -306,17 +306,17 @@
}
// Vertically center in expanded, horizontal navbar
- .navbar-vertical-align(@input-height-base);
+ @include navbar-vertical-align($input-height-base);
// Undo 100% width for pull classes
- @media (min-width: @grid-float-breakpoint) {
+ @media (min-width: $grid-float-breakpoint) {
width: auto;
border: 0;
margin-left: 0;
margin-right: 0;
padding-top: 0;
padding-bottom: 0;
- .box-shadow(none);
+ @include box-shadow(none);
}
}
@@ -326,13 +326,13 @@
// Menu position and menu carets
.navbar-nav > li > .dropdown-menu {
margin-top: 0;
- .border-top-radius(0);
+ @include border-top-radius(0);
}
// Menu position and menu caret support for dropups via extra dropup class
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
margin-bottom: 0;
- .border-top-radius(@navbar-border-radius);
- .border-bottom-radius(0);
+ @include border-top-radius($navbar-border-radius);
+ @include border-bottom-radius(0);
}
@@ -341,13 +341,13 @@
// Vertically center a button within a navbar (when *not* in a form).
.navbar-btn {
- .navbar-vertical-align(@input-height-base);
+ @include navbar-vertical-align($input-height-base);
&.btn-sm {
- .navbar-vertical-align(@input-height-small);
+ @include navbar-vertical-align($input-height-small);
}
&.btn-xs {
- .navbar-vertical-align(22);
+ @include navbar-vertical-align(22);
}
}
@@ -357,12 +357,12 @@
// Add a class to make any element properly align itself vertically within the navbars.
.navbar-text {
- .navbar-vertical-align(@line-height-computed);
+ @include navbar-vertical-align($line-height-computed);
- @media (min-width: @grid-float-breakpoint) {
+ @media (min-width: $grid-float-breakpoint) {
float: left;
- margin-left: @navbar-padding-horizontal;
- margin-right: @navbar-padding-horizontal;
+ margin-left: $navbar-padding-horizontal;
+ margin-right: $navbar-padding-horizontal;
}
}
@@ -375,11 +375,13 @@
//
// Declared after the navbar components to ensure more specificity on the margins.
-@media (min-width: @grid-float-breakpoint) {
- .navbar-left { .pull-left(); }
+@media (min-width: $grid-float-breakpoint) {
+ .navbar-left {
+ float: left !important;
+ }
.navbar-right {
- .pull-right();
- margin-right: -@navbar-padding-horizontal;
+ float: right !important;
+ margin-right: -$navbar-padding-horizontal;
~ .navbar-right {
margin-right: 0;
@@ -393,64 +395,64 @@
// Default navbar
.navbar-default {
- background-color: @navbar-default-bg;
- border-color: @navbar-default-border;
+ background-color: $navbar-default-bg;
+ border-color: $navbar-default-border;
.navbar-brand {
- color: @navbar-default-brand-color;
+ color: $navbar-default-brand-color;
&:hover,
&:focus {
- color: @navbar-default-brand-hover-color;
- background-color: @navbar-default-brand-hover-bg;
+ color: $navbar-default-brand-hover-color;
+ background-color: $navbar-default-brand-hover-bg;
}
}
.navbar-text {
- color: @navbar-default-color;
+ color: $navbar-default-color;
}
.navbar-nav {
> li > a {
- color: @navbar-default-link-color;
+ color: $navbar-default-link-color;
&:hover,
&:focus {
- color: @navbar-default-link-hover-color;
- background-color: @navbar-default-link-hover-bg;
+ color: $navbar-default-link-hover-color;
+ background-color: $navbar-default-link-hover-bg;
}
}
> .active > a {
&,
&:hover,
&:focus {
- color: @navbar-default-link-active-color;
- background-color: @navbar-default-link-active-bg;
+ color: $navbar-default-link-active-color;
+ background-color: $navbar-default-link-active-bg;
}
}
> .disabled > a {
&,
&:hover,
&:focus {
- color: @navbar-default-link-disabled-color;
- background-color: @navbar-default-link-disabled-bg;
+ color: $navbar-default-link-disabled-color;
+ background-color: $navbar-default-link-disabled-bg;
}
}
}
.navbar-toggle {
- border-color: @navbar-default-toggle-border-color;
+ border-color: $navbar-default-toggle-border-color;
&:hover,
&:focus {
- background-color: @navbar-default-toggle-hover-bg;
+ background-color: $navbar-default-toggle-hover-bg;
}
.icon-bar {
- background-color: @navbar-default-toggle-icon-bar-bg;
+ background-color: $navbar-default-toggle-icon-bar-bg;
}
}
.navbar-collapse,
.navbar-form {
- border-color: @navbar-default-border;
+ border-color: $navbar-default-border;
}
// Dropdown menu items
@@ -460,36 +462,36 @@
&,
&:hover,
&:focus {
- background-color: @navbar-default-link-active-bg;
- color: @navbar-default-link-active-color;
+ background-color: $navbar-default-link-active-bg;
+ color: $navbar-default-link-active-color;
}
}
- @media (max-width: @grid-float-breakpoint-max) {
+ @media (max-width: $grid-float-breakpoint-max) {
// Dropdowns get custom display when collapsed
.open .dropdown-menu {
> li > a {
- color: @navbar-default-link-color;
+ color: $navbar-default-link-color;
&:hover,
&:focus {
- color: @navbar-default-link-hover-color;
- background-color: @navbar-default-link-hover-bg;
+ color: $navbar-default-link-hover-color;
+ background-color: $navbar-default-link-hover-bg;
}
}
> .active > a {
&,
&:hover,
&:focus {
- color: @navbar-default-link-active-color;
- background-color: @navbar-default-link-active-bg;
+ color: $navbar-default-link-active-color;
+ background-color: $navbar-default-link-active-bg;
}
}
> .disabled > a {
&,
&:hover,
&:focus {
- color: @navbar-default-link-disabled-color;
- background-color: @navbar-default-link-disabled-bg;
+ color: $navbar-default-link-disabled-color;
+ background-color: $navbar-default-link-disabled-bg;
}
}
}
@@ -502,23 +504,23 @@
// Add a class to ensure links outside the navbar nav are colored correctly.
.navbar-link {
- color: @navbar-default-link-color;
+ color: $navbar-default-link-color;
&:hover {
- color: @navbar-default-link-hover-color;
+ color: $navbar-default-link-hover-color;
}
}
.btn-link {
- color: @navbar-default-link-color;
+ color: $navbar-default-link-color;
&:hover,
&:focus {
- color: @navbar-default-link-hover-color;
+ color: $navbar-default-link-hover-color;
}
&[disabled],
fieldset[disabled] & {
&:hover,
&:focus {
- color: @navbar-default-link-disabled-color;
+ color: $navbar-default-link-disabled-color;
}
}
}
@@ -527,65 +529,65 @@
// Inverse navbar
.navbar-inverse {
- background-color: @navbar-inverse-bg;
- border-color: @navbar-inverse-border;
+ background-color: $navbar-inverse-bg;
+ border-color: $navbar-inverse-border;
.navbar-brand {
- color: @navbar-inverse-brand-color;
+ color: $navbar-inverse-brand-color;
&:hover,
&:focus {
- color: @navbar-inverse-brand-hover-color;
- background-color: @navbar-inverse-brand-hover-bg;
+ color: $navbar-inverse-brand-hover-color;
+ background-color: $navbar-inverse-brand-hover-bg;
}
}
.navbar-text {
- color: @navbar-inverse-color;
+ color: $navbar-inverse-color;
}
.navbar-nav {
> li > a {
- color: @navbar-inverse-link-color;
+ color: $navbar-inverse-link-color;
&:hover,
&:focus {
- color: @navbar-inverse-link-hover-color;
- background-color: @navbar-inverse-link-hover-bg;
+ color: $navbar-inverse-link-hover-color;
+ background-color: $navbar-inverse-link-hover-bg;
}
}
> .active > a {
&,
&:hover,
&:focus {
- color: @navbar-inverse-link-active-color;
- background-color: @navbar-inverse-link-active-bg;
+ color: $navbar-inverse-link-active-color;
+ background-color: $navbar-inverse-link-active-bg;
}
}
> .disabled > a {
&,
&:hover,
&:focus {
- color: @navbar-inverse-link-disabled-color;
- background-color: @navbar-inverse-link-disabled-bg;
+ color: $navbar-inverse-link-disabled-color;
+ background-color: $navbar-inverse-link-disabled-bg;
}
}
}
// Darken the responsive nav toggle
.navbar-toggle {
- border-color: @navbar-inverse-toggle-border-color;
+ border-color: $navbar-inverse-toggle-border-color;
&:hover,
&:focus {
- background-color: @navbar-inverse-toggle-hover-bg;
+ background-color: $navbar-inverse-toggle-hover-bg;
}
.icon-bar {
- background-color: @navbar-inverse-toggle-icon-bar-bg;
+ background-color: $navbar-inverse-toggle-icon-bar-bg;
}
}
.navbar-collapse,
.navbar-form {
- border-color: darken(@navbar-inverse-bg, 7%);
+ border-color: darken($navbar-inverse-bg, 7%);
}
// Dropdowns
@@ -594,42 +596,42 @@
&,
&:hover,
&:focus {
- background-color: @navbar-inverse-link-active-bg;
- color: @navbar-inverse-link-active-color;
+ background-color: $navbar-inverse-link-active-bg;
+ color: $navbar-inverse-link-active-color;
}
}
- @media (max-width: @grid-float-breakpoint-max) {
+ @media (max-width: $grid-float-breakpoint-max) {
// Dropdowns get custom display
.open .dropdown-menu {
> .dropdown-header {
- border-color: @navbar-inverse-border;
+ border-color: $navbar-inverse-border;
}
.divider {
- background-color: @navbar-inverse-border;
+ background-color: $navbar-inverse-border;
}
> li > a {
- color: @navbar-inverse-link-color;
+ color: $navbar-inverse-link-color;
&:hover,
&:focus {
- color: @navbar-inverse-link-hover-color;
- background-color: @navbar-inverse-link-hover-bg;
+ color: $navbar-inverse-link-hover-color;
+ background-color: $navbar-inverse-link-hover-bg;
}
}
> .active > a {
&,
&:hover,
&:focus {
- color: @navbar-inverse-link-active-color;
- background-color: @navbar-inverse-link-active-bg;
+ color: $navbar-inverse-link-active-color;
+ background-color: $navbar-inverse-link-active-bg;
}
}
> .disabled > a {
&,
&:hover,
&:focus {
- color: @navbar-inverse-link-disabled-color;
- background-color: @navbar-inverse-link-disabled-bg;
+ color: $navbar-inverse-link-disabled-color;
+ background-color: $navbar-inverse-link-disabled-bg;
}
}
}
@@ -637,23 +639,23 @@
}
.navbar-link {
- color: @navbar-inverse-link-color;
+ color: $navbar-inverse-link-color;
&:hover {
- color: @navbar-inverse-link-hover-color;
+ color: $navbar-inverse-link-hover-color;
}
}
.btn-link {
- color: @navbar-inverse-link-color;
+ color: $navbar-inverse-link-color;
&:hover,
&:focus {
- color: @navbar-inverse-link-hover-color;
+ color: $navbar-inverse-link-hover-color;
}
&[disabled],
fieldset[disabled] & {
&:hover,
&:focus {
- color: @navbar-inverse-link-disabled-color;
+ color: $navbar-inverse-link-disabled-color;
}
}
}
diff --git a/addons/web/static/lib/bootstrap/less/navs.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_navs.scss
index a3d11b13621..9d369f30791 100644
--- a/addons/web/static/lib/bootstrap/less/navs.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_navs.scss
@@ -10,7 +10,7 @@
margin-bottom: 0;
padding-left: 0; // Override default ul/ol
list-style: none;
- &:extend(.clearfix all);
+ @include clearfix;
> li {
position: relative;
@@ -19,24 +19,24 @@
> a {
position: relative;
display: block;
- padding: @nav-link-padding;
+ padding: $nav-link-padding;
&:hover,
&:focus {
text-decoration: none;
- background-color: @nav-link-hover-bg;
+ background-color: $nav-link-hover-bg;
}
}
// Disabled state sets text to gray and nukes hover/tab effects
&.disabled > a {
- color: @nav-disabled-link-color;
+ color: $nav-disabled-link-color;
&:hover,
&:focus {
- color: @nav-disabled-link-hover-color;
+ color: $nav-disabled-link-hover-color;
text-decoration: none;
background-color: transparent;
- cursor: @cursor-disabled;
+ cursor: $cursor-disabled;
}
}
}
@@ -46,8 +46,8 @@
&,
&:hover,
&:focus {
- background-color: @nav-link-hover-bg;
- border-color: @link-color;
+ background-color: $nav-link-hover-bg;
+ border-color: $link-color;
}
}
@@ -57,7 +57,7 @@
// we missed it. We don't currently support this anywhere, but in the interest
// of maintaining backward compatibility in case you use it, it's deprecated.
.nav-divider {
- .nav-divider();
+ @include nav-divider;
}
// Prevent IE8 from misplacing imgs
@@ -74,7 +74,7 @@
// Give the tabs something to sit on
.nav-tabs {
- border-bottom: 1px solid @nav-tabs-border-color;
+ border-bottom: 1px solid $nav-tabs-border-color;
> li {
float: left;
// Make the list-items overlay the bottom border
@@ -83,11 +83,11 @@
// Actual tabs (as links)
> a {
margin-right: 2px;
- line-height: @line-height-base;
+ line-height: $line-height-base;
border: 1px solid transparent;
- border-radius: @border-radius-base @border-radius-base 0 0;
+ border-radius: $border-radius-base $border-radius-base 0 0;
&:hover {
- border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;
+ border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
}
}
@@ -96,9 +96,9 @@
&,
&:hover,
&:focus {
- color: @nav-tabs-active-link-hover-color;
- background-color: @nav-tabs-active-link-hover-bg;
- border: 1px solid @nav-tabs-active-link-hover-border-color;
+ color: $nav-tabs-active-link-hover-color;
+ background-color: $nav-tabs-active-link-hover-bg;
+ border: 1px solid $nav-tabs-active-link-hover-border-color;
border-bottom-color: transparent;
cursor: default;
}
@@ -106,8 +106,8 @@
}
// pulling this in mainly for less shorthand
&.nav-justified {
- .nav-justified();
- .nav-tabs-justified();
+ @extend .nav-justified;
+ @extend .nav-tabs-justified;
}
}
@@ -120,7 +120,7 @@
// Links rendered as pills
> a {
- border-radius: @nav-pills-border-radius;
+ border-radius: $nav-pills-border-radius;
}
+ li {
margin-left: 2px;
@@ -131,8 +131,8 @@
&,
&:hover,
&:focus {
- color: @nav-pills-active-link-hover-color;
- background-color: @nav-pills-active-link-hover-bg;
+ color: $nav-pills-active-link-hover-color;
+ background-color: $nav-pills-active-link-hover-bg;
}
}
}
@@ -173,7 +173,7 @@
left: auto;
}
- @media (min-width: @screen-sm-min) {
+ @media (min-width: $screen-sm-min) {
> li {
display: table-cell;
width: 1%;
@@ -193,24 +193,24 @@
> li > a {
// Override margin from .nav-tabs
margin-right: 0;
- border-radius: @border-radius-base;
+ border-radius: $border-radius-base;
}
> .active > a,
> .active > a:hover,
> .active > a:focus {
- border: 1px solid @nav-tabs-justified-link-border-color;
+ border: 1px solid $nav-tabs-justified-link-border-color;
}
- @media (min-width: @screen-sm-min) {
+ @media (min-width: $screen-sm-min) {
> li > a {
- border-bottom: 1px solid @nav-tabs-justified-link-border-color;
- border-radius: @border-radius-base @border-radius-base 0 0;
+ border-bottom: 1px solid $nav-tabs-justified-link-border-color;
+ border-radius: $border-radius-base $border-radius-base 0 0;
}
> .active > a,
> .active > a:hover,
> .active > a:focus {
- border-bottom-color: @nav-tabs-justified-active-link-border-color;
+ border-bottom-color: $nav-tabs-justified-active-link-border-color;
}
}
}
@@ -238,5 +238,5 @@
// make dropdown border overlap tab border
margin-top: -1px;
// Remove the top rounded corners here since there is a hard edge above the menu
- .border-top-radius(0);
+ @include border-top-radius(0);
}
diff --git a/addons/web/static/lib/bootstrap/less/normalize.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_normalize.scss
index 9dddf73ad29..9dddf73ad29 100644
--- a/addons/web/static/lib/bootstrap/less/normalize.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_normalize.scss
diff --git a/addons/web/static/lib/bootstrap/less/pager.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_pager.scss
index 41abaaadc5d..c2342174ff3 100644
--- a/addons/web/static/lib/bootstrap/less/pager.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_pager.scss
@@ -5,25 +5,25 @@
.pager {
padding-left: 0;
- margin: @line-height-computed 0;
+ margin: $line-height-computed 0;
list-style: none;
text-align: center;
- &:extend(.clearfix all);
+ @include clearfix;
li {
display: inline;
> a,
> span {
display: inline-block;
padding: 5px 14px;
- background-color: @pager-bg;
- border: 1px solid @pager-border;
- border-radius: @pager-border-radius;
+ background-color: $pager-bg;
+ border: 1px solid $pager-border;
+ border-radius: $pager-border-radius;
}
> a:hover,
> a:focus {
text-decoration: none;
- background-color: @pager-hover-bg;
+ background-color: $pager-hover-bg;
}
}
@@ -46,9 +46,9 @@
> a:hover,
> a:focus,
> span {
- color: @pager-disabled-color;
- background-color: @pager-bg;
- cursor: @cursor-disabled;
+ color: $pager-disabled-color;
+ background-color: $pager-bg;
+ cursor: $cursor-disabled;
}
}
}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/_pagination.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/_pagination.scss
new file mode 100644
index 00000000000..fecfa9c6421
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_pagination.scss
@@ -0,0 +1,89 @@
+//
+// Pagination (multiple pages)
+// --------------------------------------------------
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: $line-height-computed 0;
+ border-radius: $border-radius-base;
+
+ > li {
+ display: inline; // Remove list-style and block-level defaults
+ > a,
+ > span {
+ position: relative;
+ float: left; // Collapse white-space
+ padding: $padding-base-vertical $padding-base-horizontal;
+ line-height: $line-height-base;
+ text-decoration: none;
+ color: $pagination-color;
+ background-color: $pagination-bg;
+ border: 1px solid $pagination-border;
+ margin-left: -1px;
+ }
+ &:first-child {
+ > a,
+ > span {
+ margin-left: 0;
+ @include border-left-radius($border-radius-base);
+ }
+ }
+ &:last-child {
+ > a,
+ > span {
+ @include border-right-radius($border-radius-base);
+ }
+ }
+ }
+
+ > li > a,
+ > li > span {
+ &:hover,
+ &:focus {
+ z-index: 2;
+ color: $pagination-hover-color;
+ background-color: $pagination-hover-bg;
+ border-color: $pagination-hover-border;
+ }
+ }
+
+ > .active > a,
+ > .active > span {
+ &,
+ &:hover,
+ &:focus {
+ z-index: 3;
+ color: $pagination-active-color;
+ background-color: $pagination-active-bg;
+ border-color: $pagination-active-border;
+ cursor: default;
+ }
+ }
+
+ > .disabled {
+ > span,
+ > span:hover,
+ > span:focus,
+ > a,
+ > a:hover,
+ > a:focus {
+ color: $pagination-disabled-color;
+ background-color: $pagination-disabled-bg;
+ border-color: $pagination-disabled-border;
+ cursor: $cursor-disabled;
+ }
+ }
+}
+
+// Sizing
+// --------------------------------------------------
+
+// Large
+.pagination-lg {
+ @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
+}
+
+// Small
+.pagination-sm {
+ @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
+}
diff --git a/addons/web/static/lib/bootstrap/less/panels.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_panels.scss
index 65aa3a83f34..6c568def47b 100644
--- a/addons/web/static/lib/bootstrap/less/panels.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_panels.scss
@@ -5,24 +5,24 @@
// Base class
.panel {
- margin-bottom: @line-height-computed;
- background-color: @panel-bg;
+ margin-bottom: $line-height-computed;
+ background-color: $panel-bg;
border: 1px solid transparent;
- border-radius: @panel-border-radius;
- .box-shadow(0 1px 1px rgba(0,0,0,.05));
+ border-radius: $panel-border-radius;
+ @include box-shadow(0 1px 1px rgba(0,0,0,.05));
}
// Panel contents
.panel-body {
- padding: @panel-body-padding;
- &:extend(.clearfix all);
+ padding: $panel-body-padding;
+ @include clearfix;
}
// Optional heading
.panel-heading {
- padding: @panel-heading-padding;
+ padding: $panel-heading-padding;
border-bottom: 1px solid transparent;
- .border-top-radius((@panel-border-radius - 1));
+ @include border-top-radius(($panel-border-radius - 1));
> .dropdown .dropdown-toggle {
color: inherit;
@@ -33,7 +33,7 @@
.panel-title {
margin-top: 0;
margin-bottom: 0;
- font-size: ceil((@font-size-base * 1.125));
+ font-size: ceil(($font-size-base * 1.125));
color: inherit;
> a,
@@ -47,10 +47,10 @@
// Optional footer (stays gray in every modifier class)
.panel-footer {
- padding: @panel-footer-padding;
- background-color: @panel-footer-bg;
- border-top: 1px solid @panel-inner-border;
- .border-bottom-radius((@panel-border-radius - 1));
+ padding: $panel-footer-padding;
+ background-color: $panel-footer-bg;
+ border-top: 1px solid $panel-inner-border;
+ @include border-bottom-radius(($panel-border-radius - 1));
}
@@ -73,7 +73,7 @@
&:first-child {
.list-group-item:first-child {
border-top: 0;
- .border-top-radius((@panel-border-radius - 1));
+ @include border-top-radius(($panel-border-radius - 1));
}
}
@@ -81,13 +81,13 @@
&:last-child {
.list-group-item:last-child {
border-bottom: 0;
- .border-bottom-radius((@panel-border-radius - 1));
+ @include border-bottom-radius(($panel-border-radius - 1));
}
}
}
> .panel-heading + .panel-collapse > .list-group {
.list-group-item:first-child {
- .border-top-radius(0);
+ @include border-top-radius(0);
}
}
}
@@ -113,28 +113,28 @@
margin-bottom: 0;
caption {
- padding-left: @panel-body-padding;
- padding-right: @panel-body-padding;
+ padding-left: $panel-body-padding;
+ padding-right: $panel-body-padding;
}
}
// Add border top radius for first one
> .table:first-child,
> .table-responsive:first-child > .table:first-child {
- .border-top-radius((@panel-border-radius - 1));
+ @include border-top-radius(($panel-border-radius - 1));
> thead:first-child,
> tbody:first-child {
> tr:first-child {
- border-top-left-radius: (@panel-border-radius - 1);
- border-top-right-radius: (@panel-border-radius - 1);
+ border-top-left-radius: ($panel-border-radius - 1);
+ border-top-right-radius: ($panel-border-radius - 1);
td:first-child,
th:first-child {
- border-top-left-radius: (@panel-border-radius - 1);
+ border-top-left-radius: ($panel-border-radius - 1);
}
td:last-child,
th:last-child {
- border-top-right-radius: (@panel-border-radius - 1);
+ border-top-right-radius: ($panel-border-radius - 1);
}
}
}
@@ -142,21 +142,21 @@
// Add border bottom radius for last one
> .table:last-child,
> .table-responsive:last-child > .table:last-child {
- .border-bottom-radius((@panel-border-radius - 1));
+ @include border-bottom-radius(($panel-border-radius - 1));
> tbody:last-child,
> tfoot:last-child {
> tr:last-child {
- border-bottom-left-radius: (@panel-border-radius - 1);
- border-bottom-right-radius: (@panel-border-radius - 1);
+ border-bottom-left-radius: ($panel-border-radius - 1);
+ border-bottom-right-radius: ($panel-border-radius - 1);
td:first-child,
th:first-child {
- border-bottom-left-radius: (@panel-border-radius - 1);
+ border-bottom-left-radius: ($panel-border-radius - 1);
}
td:last-child,
th:last-child {
- border-bottom-right-radius: (@panel-border-radius - 1);
+ border-bottom-right-radius: ($panel-border-radius - 1);
}
}
}
@@ -165,7 +165,7 @@
> .panel-body + .table-responsive,
> .table + .panel-body,
> .table-responsive + .panel-body {
- border-top: 1px solid @table-border-color;
+ border-top: 1px solid $table-border-color;
}
> .table > tbody:first-child > tr:first-child th,
> .table > tbody:first-child > tr:first-child td {
@@ -220,12 +220,12 @@
// the help of our collapse JavaScript plugin.
.panel-group {
- margin-bottom: @line-height-computed;
+ margin-bottom: $line-height-computed;
// Tighten up margin so it's only between panels
.panel {
margin-bottom: 0;
- border-radius: @panel-border-radius;
+ border-radius: $panel-border-radius;
+ .panel {
margin-top: 5px;
@@ -237,14 +237,14 @@
+ .panel-collapse > .panel-body,
+ .panel-collapse > .list-group {
- border-top: 1px solid @panel-inner-border;
+ border-top: 1px solid $panel-inner-border;
}
}
.panel-footer {
border-top: 0;
+ .panel-collapse .panel-body {
- border-bottom: 1px solid @panel-inner-border;
+ border-bottom: 1px solid $panel-inner-border;
}
}
}
@@ -252,20 +252,20 @@
// Contextual variations
.panel-default {
- .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);
+ @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border);
}
.panel-primary {
- .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);
+ @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border);
}
.panel-success {
- .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);
+ @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border);
}
.panel-info {
- .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);
+ @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border);
}
.panel-warning {
- .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);
+ @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border);
}
.panel-danger {
- .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);
+ @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border);
}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/_popovers.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/_popovers.scss
new file mode 100644
index 00000000000..9b90a2e964e
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_popovers.scss
@@ -0,0 +1,131 @@
+//
+// Popovers
+// --------------------------------------------------
+
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: $zindex-popover;
+ display: none;
+ max-width: $popover-max-width;
+ padding: 1px;
+ // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.
+ // So reset our font and text properties to avoid inheriting weird values.
+ @include reset-text;
+ font-size: $font-size-base;
+
+ background-color: $popover-bg;
+ background-clip: padding-box;
+ border: 1px solid $popover-fallback-border-color;
+ border: 1px solid $popover-border-color;
+ border-radius: $border-radius-large;
+ @include box-shadow(0 5px 10px rgba(0,0,0,.2));
+
+ // Offset the popover to account for the popover arrow
+ &.top { margin-top: -$popover-arrow-width; }
+ &.right { margin-left: $popover-arrow-width; }
+ &.bottom { margin-top: $popover-arrow-width; }
+ &.left { margin-left: -$popover-arrow-width; }
+}
+
+.popover-title {
+ margin: 0; // reset heading margin
+ padding: 8px 14px;
+ font-size: $font-size-base;
+ background-color: $popover-title-bg;
+ border-bottom: 1px solid darken($popover-title-bg, 5%);
+ border-radius: ($border-radius-large - 1) ($border-radius-large - 1) 0 0;
+}
+
+.popover-content {
+ padding: 9px 14px;
+}
+
+// Arrows
+//
+// .arrow is outer, .arrow:after is inner
+
+.popover > .arrow {
+ &,
+ &:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ }
+}
+.popover > .arrow {
+ border-width: $popover-arrow-outer-width;
+}
+.popover > .arrow:after {
+ border-width: $popover-arrow-width;
+ content: "";
+}
+
+.popover {
+ &.top > .arrow {
+ left: 50%;
+ margin-left: -$popover-arrow-outer-width;
+ border-bottom-width: 0;
+ border-top-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+ border-top-color: $popover-arrow-outer-color;
+ bottom: -$popover-arrow-outer-width;
+ &:after {
+ content: " ";
+ bottom: 1px;
+ margin-left: -$popover-arrow-width;
+ border-bottom-width: 0;
+ border-top-color: $popover-arrow-color;
+ }
+ }
+ &.right > .arrow {
+ top: 50%;
+ left: -$popover-arrow-outer-width;
+ margin-top: -$popover-arrow-outer-width;
+ border-left-width: 0;
+ border-right-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+ border-right-color: $popover-arrow-outer-color;
+ &:after {
+ content: " ";
+ left: 1px;
+ bottom: -$popover-arrow-width;
+ border-left-width: 0;
+ border-right-color: $popover-arrow-color;
+ }
+ }
+ &.bottom > .arrow {
+ left: 50%;
+ margin-left: -$popover-arrow-outer-width;
+ border-top-width: 0;
+ border-bottom-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+ border-bottom-color: $popover-arrow-outer-color;
+ top: -$popover-arrow-outer-width;
+ &:after {
+ content: " ";
+ top: 1px;
+ margin-left: -$popover-arrow-width;
+ border-top-width: 0;
+ border-bottom-color: $popover-arrow-color;
+ }
+ }
+
+ &.left > .arrow {
+ top: 50%;
+ right: -$popover-arrow-outer-width;
+ margin-top: -$popover-arrow-outer-width;
+ border-right-width: 0;
+ border-left-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+ border-left-color: $popover-arrow-outer-color;
+ &:after {
+ content: " ";
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: $popover-arrow-color;
+ bottom: -$popover-arrow-width;
+ }
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/less/print.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_print.scss
index 66e54ab489e..66e54ab489e 100644
--- a/addons/web/static/lib/bootstrap/less/print.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_print.scss
diff --git a/addons/web/static/lib/bootstrap/less/progress-bars.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_progress-bars.scss
index 8868a1feef0..343df6323c5 100644
--- a/addons/web/static/lib/bootstrap/less/progress-bars.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_progress-bars.scss
@@ -25,11 +25,11 @@
// Outer container
.progress {
overflow: hidden;
- height: @line-height-computed;
- margin-bottom: @line-height-computed;
- background-color: @progress-bg;
- border-radius: @progress-border-radius;
- .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
+ height: $line-height-computed;
+ margin-bottom: $line-height-computed;
+ background-color: $progress-bg;
+ border-radius: $progress-border-radius;
+ @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
}
// Bar of progress
@@ -37,13 +37,13 @@
float: left;
width: 0%;
height: 100%;
- font-size: @font-size-small;
- line-height: @line-height-computed;
- color: @progress-bar-color;
+ font-size: $font-size-small;
+ line-height: $line-height-computed;
+ color: $progress-bar-color;
text-align: center;
- background-color: @progress-bar-bg;
- .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
- .transition(width .6s ease);
+ background-color: $progress-bar-bg;
+ @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
+ @include transition(width .6s ease);
}
// Striped bars
@@ -53,7 +53,7 @@
// `.progress-bar`.
.progress-striped .progress-bar,
.progress-bar-striped {
- #gradient > .striped();
+ @include gradient-striped;
background-size: 40px 40px;
}
@@ -63,7 +63,7 @@
// `.progress-bar.active` approach.
.progress.active .progress-bar,
.progress-bar.active {
- .animation(progress-bar-stripes 2s linear infinite);
+ @include animation(progress-bar-stripes 2s linear infinite);
}
@@ -71,17 +71,17 @@
// -------------------------
.progress-bar-success {
- .progress-bar-variant(@progress-bar-success-bg);
+ @include progress-bar-variant($progress-bar-success-bg);
}
.progress-bar-info {
- .progress-bar-variant(@progress-bar-info-bg);
+ @include progress-bar-variant($progress-bar-info-bg);
}
.progress-bar-warning {
- .progress-bar-variant(@progress-bar-warning-bg);
+ @include progress-bar-variant($progress-bar-warning-bg);
}
.progress-bar-danger {
- .progress-bar-variant(@progress-bar-danger-bg);
+ @include progress-bar-variant($progress-bar-danger-bg);
}
diff --git a/addons/web/static/lib/bootstrap/less/responsive-embed.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_responsive-embed.scss
index 080a5118fe9..080a5118fe9 100644
--- a/addons/web/static/lib/bootstrap/less/responsive-embed.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_responsive-embed.scss
diff --git a/addons/web/static/lib/bootstrap/less/responsive-utilities.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_responsive-utilities.scss
index b1db31d7bfc..f3f0c839bec 100644
--- a/addons/web/static/lib/bootstrap/less/responsive-utilities.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_responsive-utilities.scss
@@ -18,19 +18,20 @@
// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
-@-ms-viewport {
- width: device-width;
+@at-root {
+ @-ms-viewport {
+ width: device-width;
+ }
}
// Visibility utilities
// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
-.visible-xs,
-.visible-sm,
-.visible-md,
-.visible-lg {
- .responsive-invisibility();
-}
+
+@include responsive-invisibility('.visible-xs');
+@include responsive-invisibility('.visible-sm');
+@include responsive-invisibility('.visible-md');
+@include responsive-invisibility('.visible-lg');
.visible-xs-block,
.visible-xs-inline,
@@ -47,109 +48,96 @@
display: none !important;
}
-.visible-xs {
- @media (max-width: @screen-xs-max) {
- .responsive-visibility();
- }
+@media (max-width: $screen-xs-max) {
+ @include responsive-visibility('.visible-xs');
}
.visible-xs-block {
- @media (max-width: @screen-xs-max) {
+ @media (max-width: $screen-xs-max) {
display: block !important;
}
}
.visible-xs-inline {
- @media (max-width: @screen-xs-max) {
+ @media (max-width: $screen-xs-max) {
display: inline !important;
}
}
.visible-xs-inline-block {
- @media (max-width: @screen-xs-max) {
+ @media (max-width: $screen-xs-max) {
display: inline-block !important;
}
}
-.visible-sm {
- @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
- .responsive-visibility();
- }
+@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+ @include responsive-visibility('.visible-sm');
}
.visible-sm-block {
- @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
display: block !important;
}
}
.visible-sm-inline {
- @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
display: inline !important;
}
}
.visible-sm-inline-block {
- @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
display: inline-block !important;
}
}
-.visible-md {
- @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
- .responsive-visibility();
- }
+@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+ @include responsive-visibility('.visible-md');
}
.visible-md-block {
- @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
display: block !important;
}
}
.visible-md-inline {
- @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
display: inline !important;
}
}
.visible-md-inline-block {
- @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
display: inline-block !important;
}
}
-.visible-lg {
- @media (min-width: @screen-lg-min) {
- .responsive-visibility();
- }
+@media (min-width: $screen-lg-min) {
+ @include responsive-visibility('.visible-lg');
}
.visible-lg-block {
- @media (min-width: @screen-lg-min) {
+ @media (min-width: $screen-lg-min) {
display: block !important;
}
}
.visible-lg-inline {
- @media (min-width: @screen-lg-min) {
+ @media (min-width: $screen-lg-min) {
display: inline !important;
}
}
.visible-lg-inline-block {
- @media (min-width: @screen-lg-min) {
+ @media (min-width: $screen-lg-min) {
display: inline-block !important;
}
}
-.hidden-xs {
- @media (max-width: @screen-xs-max) {
- .responsive-invisibility();
- }
+@media (max-width: $screen-xs-max) {
+ @include responsive-invisibility('.hidden-xs');
}
-.hidden-sm {
- @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
- .responsive-invisibility();
- }
+
+@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+ @include responsive-invisibility('.hidden-sm');
}
-.hidden-md {
- @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
- .responsive-invisibility();
- }
+
+@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+ @include responsive-invisibility('.hidden-md');
}
-.hidden-lg {
- @media (min-width: @screen-lg-min) {
- .responsive-invisibility();
- }
+
+@media (min-width: $screen-lg-min) {
+ @include responsive-invisibility('.hidden-lg');
}
@@ -158,12 +146,11 @@
// Media queries are placed on the inside to be mixin-friendly.
// Note: Deprecated .visible-print as of v3.2.0
-.visible-print {
- .responsive-invisibility();
- @media print {
- .responsive-visibility();
- }
+@include responsive-invisibility('.visible-print');
+
+@media print {
+ @include responsive-visibility('.visible-print');
}
.visible-print-block {
display: none !important;
@@ -187,8 +174,6 @@
}
}
-.hidden-print {
- @media print {
- .responsive-invisibility();
- }
+@media print {
+ @include responsive-invisibility('.hidden-print');
}
diff --git a/addons/web/static/lib/bootstrap/less/scaffolding.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_scaffolding.scss
index 64a29c6a5e7..362c7e2a133 100644
--- a/addons/web/static/lib/bootstrap/less/scaffolding.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_scaffolding.scss
@@ -9,11 +9,11 @@
// For recommendations on resolving such conflicts, see
// http://getbootstrap.com/getting-started/#third-box-sizing
* {
- .box-sizing(border-box);
+ @include box-sizing(border-box);
}
*:before,
*:after {
- .box-sizing(border-box);
+ @include box-sizing(border-box);
}
@@ -25,11 +25,11 @@ html {
}
body {
- font-family: @font-family-base;
- font-size: @font-size-base;
- line-height: @line-height-base;
- color: @text-color;
- background-color: @body-bg;
+ font-family: $font-family-base;
+ font-size: $font-size-base;
+ line-height: $line-height-base;
+ color: $text-color;
+ background-color: $body-bg;
}
// Reset fonts for relevant elements
@@ -46,17 +46,17 @@ textarea {
// Links
a {
- color: @link-color;
+ color: $link-color;
text-decoration: none;
&:hover,
&:focus {
- color: @link-hover-color;
- text-decoration: @link-hover-decoration;
+ color: $link-hover-color;
+ text-decoration: $link-hover-decoration;
}
&:focus {
- .tab-focus();
+ @include tab-focus;
}
}
@@ -79,27 +79,27 @@ img {
// Responsive images (ensure images don't scale beyond their parents)
.img-responsive {
- .img-responsive();
+ @include img-responsive;
}
// Rounded corners
.img-rounded {
- border-radius: @border-radius-large;
+ border-radius: $border-radius-large;
}
// Image thumbnails
//
// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
.img-thumbnail {
- padding: @thumbnail-padding;
- line-height: @line-height-base;
- background-color: @thumbnail-bg;
- border: 1px solid @thumbnail-border;
- border-radius: @thumbnail-border-radius;
- .transition(all .2s ease-in-out);
+ padding: $thumbnail-padding;
+ line-height: $line-height-base;
+ background-color: $thumbnail-bg;
+ border: 1px solid $thumbnail-border;
+ border-radius: $thumbnail-border-radius;
+ @include transition(all .2s ease-in-out);
// Keep them at most 100% wide
- .img-responsive(inline-block);
+ @include img-responsive(inline-block);
}
// Perfect circle
@@ -111,10 +111,10 @@ img {
// Horizontal rules
hr {
- margin-top: @line-height-computed;
- margin-bottom: @line-height-computed;
+ margin-top: $line-height-computed;
+ margin-bottom: $line-height-computed;
border: 0;
- border-top: 1px solid @hr-border;
+ border-top: 1px solid $hr-border;
}
diff --git a/addons/web/static/lib/bootstrap/less/tables.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_tables.scss
index 2242c036868..affcc58c0b0 100644
--- a/addons/web/static/lib/bootstrap/less/tables.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_tables.scss
@@ -4,12 +4,12 @@
table {
- background-color: @table-bg;
+ background-color: $table-bg;
}
caption {
- padding-top: @table-cell-padding;
- padding-bottom: @table-cell-padding;
- color: @text-muted;
+ padding-top: $table-cell-padding;
+ padding-bottom: $table-cell-padding;
+ color: $text-muted;
text-align: left;
}
th {
@@ -22,7 +22,7 @@ th {
.table {
width: 100%;
max-width: 100%;
- margin-bottom: @line-height-computed;
+ margin-bottom: $line-height-computed;
// Cells
> thead,
> tbody,
@@ -30,17 +30,17 @@ th {
> tr {
> th,
> td {
- padding: @table-cell-padding;
- line-height: @line-height-base;
+ padding: $table-cell-padding;
+ line-height: $line-height-base;
vertical-align: top;
- border-top: 1px solid @table-border-color;
+ border-top: 1px solid $table-border-color;
}
}
}
// Bottom align for column headings
> thead > tr > th {
vertical-align: bottom;
- border-bottom: 2px solid @table-border-color;
+ border-bottom: 2px solid $table-border-color;
}
// Remove top border from thead by default
> caption + thead,
@@ -55,12 +55,12 @@ th {
}
// Account for multiple tbody instances
> tbody + tbody {
- border-top: 2px solid @table-border-color;
+ border-top: 2px solid $table-border-color;
}
// Nesting
.table {
- background-color: @body-bg;
+ background-color: $body-bg;
}
}
@@ -74,7 +74,7 @@ th {
> tr {
> th,
> td {
- padding: @table-condensed-cell-padding;
+ padding: $table-condensed-cell-padding;
}
}
}
@@ -86,14 +86,14 @@ th {
// Add borders all around the table and between all the columns.
.table-bordered {
- border: 1px solid @table-border-color;
+ border: 1px solid $table-border-color;
> thead,
> tbody,
> tfoot {
> tr {
> th,
> td {
- border: 1px solid @table-border-color;
+ border: 1px solid $table-border-color;
}
}
}
@@ -112,7 +112,7 @@ th {
.table-striped {
> tbody > tr:nth-of-type(odd) {
- background-color: @table-bg-accent;
+ background-color: $table-bg-accent;
}
}
@@ -123,7 +123,7 @@ th {
.table-hover {
> tbody > tr:hover {
- background-color: @table-bg-hover;
+ background-color: $table-bg-hover;
}
}
@@ -155,11 +155,11 @@ table {
// inheritance to nested tables.
// Generate the contextual variants
-.table-row-variant(active; @table-bg-active);
-.table-row-variant(success; @state-success-bg);
-.table-row-variant(info; @state-info-bg);
-.table-row-variant(warning; @state-warning-bg);
-.table-row-variant(danger; @state-danger-bg);
+@include table-row-variant('active', $table-bg-active);
+@include table-row-variant('success', $state-success-bg);
+@include table-row-variant('info', $state-info-bg);
+@include table-row-variant('warning', $state-warning-bg);
+@include table-row-variant('danger', $state-danger-bg);
// Responsive tables
@@ -172,12 +172,12 @@ table {
overflow-x: auto;
min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)
- @media screen and (max-width: @screen-xs-max) {
+ @media screen and (max-width: $screen-xs-max) {
width: 100%;
- margin-bottom: (@line-height-computed * 0.75);
+ margin-bottom: ($line-height-computed * 0.75);
overflow-y: hidden;
-ms-overflow-style: -ms-autohiding-scrollbar;
- border: 1px solid @table-border-color;
+ border: 1px solid $table-border-color;
// Tighten up spacing
> .table {
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/_theme.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/_theme.scss
new file mode 100644
index 00000000000..c1b0e9c609f
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_theme.scss
@@ -0,0 +1,291 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+//
+// Load core variables and mixins
+// --------------------------------------------------
+
+@import "variables";
+@import "mixins";
+
+
+//
+// Buttons
+// --------------------------------------------------
+
+// Common styles
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+ text-shadow: 0 -1px 0 rgba(0,0,0,.2);
+ $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
+ @include box-shadow($shadow);
+
+ // Reset the shadow
+ &:active,
+ &.active {
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+ }
+
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ @include box-shadow(none);
+ }
+
+ .badge {
+ text-shadow: none;
+ }
+}
+
+// Mixin for generating new styles
+@mixin btn-styles($btn-color: #555) {
+ @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%));
+ @include reset-filter; // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620
+ background-repeat: repeat-x;
+ border-color: darken($btn-color, 14%);
+
+ &:hover,
+ &:focus {
+ background-color: darken($btn-color, 12%);
+ background-position: 0 -15px;
+ }
+
+ &:active,
+ &.active {
+ background-color: darken($btn-color, 12%);
+ border-color: darken($btn-color, 14%);
+ }
+
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ &,
+ &:hover,
+ &:focus,
+ &.focus,
+ &:active,
+ &.active {
+ background-color: darken($btn-color, 12%);
+ background-image: none;
+ }
+ }
+}
+
+// Common styles
+.btn {
+ // Remove the gradient for the pressed/active state
+ &:active,
+ &.active {
+ background-image: none;
+ }
+}
+
+// Apply the mixin to the buttons
+.btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
+.btn-primary { @include btn-styles($btn-primary-bg); }
+.btn-success { @include btn-styles($btn-success-bg); }
+.btn-info { @include btn-styles($btn-info-bg); }
+.btn-warning { @include btn-styles($btn-warning-bg); }
+.btn-danger { @include btn-styles($btn-danger-bg); }
+
+
+//
+// Images
+// --------------------------------------------------
+
+.thumbnail,
+.img-thumbnail {
+ @include box-shadow(0 1px 2px rgba(0,0,0,.075));
+}
+
+
+//
+// Dropdowns
+// --------------------------------------------------
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));
+ background-color: darken($dropdown-link-hover-bg, 5%);
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
+ background-color: darken($dropdown-link-active-bg, 5%);
+}
+
+
+//
+// Navbar
+// --------------------------------------------------
+
+// Default navbar
+.navbar-default {
+ @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);
+ @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
+ border-radius: $navbar-border-radius;
+ $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
+ @include box-shadow($shadow);
+
+ .navbar-nav > .open > a,
+ .navbar-nav > .active > a {
+ @include gradient-vertical($start-color: darken($navbar-default-link-active-bg, 5%), $end-color: darken($navbar-default-link-active-bg, 2%));
+ @include box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
+ }
+}
+.navbar-brand,
+.navbar-nav > li > a {
+ text-shadow: 0 1px 0 rgba(255,255,255,.25);
+}
+
+// Inverted navbar
+.navbar-inverse {
+ @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);
+ @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257
+ border-radius: $navbar-border-radius;
+ .navbar-nav > .open > a,
+ .navbar-nav > .active > a {
+ @include gradient-vertical($start-color: $navbar-inverse-link-active-bg, $end-color: lighten($navbar-inverse-link-active-bg, 2.5%));
+ @include box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
+ }
+
+ .navbar-brand,
+ .navbar-nav > li > a {
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+}
+
+// Undo rounded corners in static and fixed navbars
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ border-radius: 0;
+}
+
+// Fix active state of dropdown items in collapsed mode
+@media (max-width: $grid-float-breakpoint-max) {
+ .navbar .navbar-nav .open .dropdown-menu > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: #fff;
+ @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
+ }
+ }
+}
+
+
+//
+// Alerts
+// --------------------------------------------------
+
+// Common styles
+.alert {
+ text-shadow: 0 1px 0 rgba(255,255,255,.2);
+ $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
+ @include box-shadow($shadow);
+}
+
+// Mixin for generating new styles
+@mixin alert-styles($color) {
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));
+ border-color: darken($color, 15%);
+}
+
+// Apply the mixin to the alerts
+.alert-success { @include alert-styles($alert-success-bg); }
+.alert-info { @include alert-styles($alert-info-bg); }
+.alert-warning { @include alert-styles($alert-warning-bg); }
+.alert-danger { @include alert-styles($alert-danger-bg); }
+
+
+//
+// Progress bars
+// --------------------------------------------------
+
+// Give the progress background some depth
+.progress {
+ @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)
+}
+
+// Mixin for generating new styles
+@mixin progress-bar-styles($color) {
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));
+}
+
+// Apply the mixin to the progress bars
+.progress-bar { @include progress-bar-styles($progress-bar-bg); }
+.progress-bar-success { @include progress-bar-styles($progress-bar-success-bg); }
+.progress-bar-info { @include progress-bar-styles($progress-bar-info-bg); }
+.progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); }
+.progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); }
+
+// Reset the striped class because our mixins don't do multiple gradients and
+// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
+.progress-bar-striped {
+ @include gradient-striped;
+}
+
+
+//
+// List groups
+// --------------------------------------------------
+
+.list-group {
+ border-radius: $border-radius-base;
+ @include box-shadow(0 1px 2px rgba(0,0,0,.075));
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+ text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);
+ @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));
+ border-color: darken($list-group-active-border, 7.5%);
+
+ .badge {
+ text-shadow: none;
+ }
+}
+
+
+//
+// Panels
+// --------------------------------------------------
+
+// Common styles
+.panel {
+ @include box-shadow(0 1px 2px rgba(0,0,0,.05));
+}
+
+// Mixin for generating new styles
+@mixin panel-heading-styles($color) {
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));
+}
+
+// Apply the mixin to the panel headings only
+.panel-default > .panel-heading { @include panel-heading-styles($panel-default-heading-bg); }
+.panel-primary > .panel-heading { @include panel-heading-styles($panel-primary-heading-bg); }
+.panel-success > .panel-heading { @include panel-heading-styles($panel-success-heading-bg); }
+.panel-info > .panel-heading { @include panel-heading-styles($panel-info-heading-bg); }
+.panel-warning > .panel-heading { @include panel-heading-styles($panel-warning-heading-bg); }
+.panel-danger > .panel-heading { @include panel-heading-styles($panel-danger-heading-bg); }
+
+
+//
+// Wells
+// --------------------------------------------------
+
+.well {
+ @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);
+ border-color: darken($well-bg, 10%);
+ $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
+ @include box-shadow($shadow);
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/_thumbnails.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/_thumbnails.scss
new file mode 100644
index 00000000000..da0e1e76cf0
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_thumbnails.scss
@@ -0,0 +1,38 @@
+//
+// Thumbnails
+// --------------------------------------------------
+
+
+// Mixin and adjust the regular image class
+.thumbnail {
+ display: block;
+ padding: $thumbnail-padding;
+ margin-bottom: $line-height-computed;
+ line-height: $line-height-base;
+ background-color: $thumbnail-bg;
+ border: 1px solid $thumbnail-border;
+ border-radius: $thumbnail-border-radius;
+ @include transition(border .2s ease-in-out);
+
+ > img,
+ a > img {
+ @include img-responsive;
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active
+
+ // Image captions
+ .caption {
+ padding: $thumbnail-caption-padding;
+ color: $thumbnail-caption-color;
+ }
+}
+
+// Add a hover state for linked versions only
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+ border-color: $link-color;
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/_tooltip.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/_tooltip.scss
new file mode 100644
index 00000000000..f0c16582743
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_tooltip.scss
@@ -0,0 +1,101 @@
+//
+// Tooltips
+// --------------------------------------------------
+
+
+// Base class
+.tooltip {
+ position: absolute;
+ z-index: $zindex-tooltip;
+ display: block;
+ // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
+ // So reset our font and text properties to avoid inheriting weird values.
+ @include reset-text;
+ font-size: $font-size-small;
+
+ @include opacity(0);
+
+ &.in { @include opacity($tooltip-opacity); }
+ &.top { margin-top: -3px; padding: $tooltip-arrow-width 0; }
+ &.right { margin-left: 3px; padding: 0 $tooltip-arrow-width; }
+ &.bottom { margin-top: 3px; padding: $tooltip-arrow-width 0; }
+ &.left { margin-left: -3px; padding: 0 $tooltip-arrow-width; }
+}
+
+// Wrapper for the tooltip content
+.tooltip-inner {
+ max-width: $tooltip-max-width;
+ padding: 3px 8px;
+ color: $tooltip-color;
+ text-align: center;
+ background-color: $tooltip-bg;
+ border-radius: $border-radius-base;
+}
+
+// Arrows
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1
+.tooltip {
+ &.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -$tooltip-arrow-width;
+ border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
+ border-top-color: $tooltip-arrow-color;
+ }
+ &.top-left .tooltip-arrow {
+ bottom: 0;
+ right: $tooltip-arrow-width;
+ margin-bottom: -$tooltip-arrow-width;
+ border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
+ border-top-color: $tooltip-arrow-color;
+ }
+ &.top-right .tooltip-arrow {
+ bottom: 0;
+ left: $tooltip-arrow-width;
+ margin-bottom: -$tooltip-arrow-width;
+ border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
+ border-top-color: $tooltip-arrow-color;
+ }
+ &.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -$tooltip-arrow-width;
+ border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
+ border-right-color: $tooltip-arrow-color;
+ }
+ &.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -$tooltip-arrow-width;
+ border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
+ border-left-color: $tooltip-arrow-color;
+ }
+ &.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -$tooltip-arrow-width;
+ border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
+ border-bottom-color: $tooltip-arrow-color;
+ }
+ &.bottom-left .tooltip-arrow {
+ top: 0;
+ right: $tooltip-arrow-width;
+ margin-top: -$tooltip-arrow-width;
+ border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
+ border-bottom-color: $tooltip-arrow-color;
+ }
+ &.bottom-right .tooltip-arrow {
+ top: 0;
+ left: $tooltip-arrow-width;
+ margin-top: -$tooltip-arrow-width;
+ border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
+ border-bottom-color: $tooltip-arrow-color;
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/less/type.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_type.scss
index 0d4fee48486..620796adc1e 100644
--- a/addons/web/static/lib/bootstrap/less/type.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_type.scss
@@ -8,24 +8,24 @@
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
- font-family: @headings-font-family;
- font-weight: @headings-font-weight;
- line-height: @headings-line-height;
- color: @headings-color;
+ font-family: $headings-font-family;
+ font-weight: $headings-font-weight;
+ line-height: $headings-line-height;
+ color: $headings-color;
small,
.small {
font-weight: normal;
line-height: 1;
- color: @headings-small-color;
+ color: $headings-small-color;
}
}
h1, .h1,
h2, .h2,
h3, .h3 {
- margin-top: @line-height-computed;
- margin-bottom: (@line-height-computed / 2);
+ margin-top: $line-height-computed;
+ margin-bottom: ($line-height-computed / 2);
small,
.small {
@@ -35,8 +35,8 @@ h3, .h3 {
h4, .h4,
h5, .h5,
h6, .h6 {
- margin-top: (@line-height-computed / 2);
- margin-bottom: (@line-height-computed / 2);
+ margin-top: ($line-height-computed / 2);
+ margin-bottom: ($line-height-computed / 2);
small,
.small {
@@ -44,29 +44,29 @@ h6, .h6 {
}
}
-h1, .h1 { font-size: @font-size-h1; }
-h2, .h2 { font-size: @font-size-h2; }
-h3, .h3 { font-size: @font-size-h3; }
-h4, .h4 { font-size: @font-size-h4; }
-h5, .h5 { font-size: @font-size-h5; }
-h6, .h6 { font-size: @font-size-h6; }
+h1, .h1 { font-size: $font-size-h1; }
+h2, .h2 { font-size: $font-size-h2; }
+h3, .h3 { font-size: $font-size-h3; }
+h4, .h4 { font-size: $font-size-h4; }
+h5, .h5 { font-size: $font-size-h5; }
+h6, .h6 { font-size: $font-size-h6; }
// Body text
// -------------------------
p {
- margin: 0 0 (@line-height-computed / 2);
+ margin: 0 0 ($line-height-computed / 2);
}
.lead {
- margin-bottom: @line-height-computed;
- font-size: floor((@font-size-base * 1.15));
+ margin-bottom: $line-height-computed;
+ font-size: floor(($font-size-base * 1.15));
font-weight: 300;
line-height: 1.4;
- @media (min-width: @screen-sm-min) {
- font-size: (@font-size-base * 1.5);
+ @media (min-width: $screen-sm-min) {
+ font-size: ($font-size-base * 1.5);
}
}
@@ -77,12 +77,12 @@ p {
// Ex: (12px small font / 14px base font) * 100% = about 85%
small,
.small {
- font-size: floor((100% * @font-size-small / @font-size-base));
+ font-size: floor((100% * $font-size-small / $font-size-base));
}
mark,
.mark {
- background-color: @state-warning-bg;
+ background-color: $state-warning-bg;
padding: .2em;
}
@@ -100,24 +100,19 @@ mark,
// Contextual colors
.text-muted {
- color: @text-muted;
-}
-.text-primary {
- .text-emphasis-variant(@brand-primary);
-}
-.text-success {
- .text-emphasis-variant(@state-success-text);
-}
-.text-info {
- .text-emphasis-variant(@state-info-text);
-}
-.text-warning {
- .text-emphasis-variant(@state-warning-text);
-}
-.text-danger {
- .text-emphasis-variant(@state-danger-text);
+ color: $text-muted;
}
+@include text-emphasis-variant('.text-primary', $brand-primary);
+
+@include text-emphasis-variant('.text-success', $state-success-text);
+
+@include text-emphasis-variant('.text-info', $state-info-text);
+
+@include text-emphasis-variant('.text-warning', $state-warning-text);
+
+@include text-emphasis-variant('.text-danger', $state-danger-text);
+
// Contextual backgrounds
// For now we'll leave these alongside the text classes until v4 when we can
// safely shift things around (per SemVer rules).
@@ -125,29 +120,25 @@ mark,
// Given the contrast here, this is the only class to have its color inverted
// automatically.
color: #fff;
- .bg-variant(@brand-primary);
-}
-.bg-success {
- .bg-variant(@state-success-bg);
-}
-.bg-info {
- .bg-variant(@state-info-bg);
-}
-.bg-warning {
- .bg-variant(@state-warning-bg);
-}
-.bg-danger {
- .bg-variant(@state-danger-bg);
}
+@include bg-variant('.bg-primary', $brand-primary);
+
+@include bg-variant('.bg-success', $state-success-bg);
+
+@include bg-variant('.bg-info', $state-info-bg);
+
+@include bg-variant('.bg-warning', $state-warning-bg);
+
+@include bg-variant('.bg-danger', $state-danger-bg);
// Page header
// -------------------------
.page-header {
- padding-bottom: ((@line-height-computed / 2) - 1);
- margin: (@line-height-computed * 2) 0 @line-height-computed;
- border-bottom: 1px solid @page-header-border-color;
+ padding-bottom: (($line-height-computed / 2) - 1);
+ margin: ($line-height-computed * 2) 0 $line-height-computed;
+ border-bottom: 1px solid $page-header-border-color;
}
@@ -158,7 +149,7 @@ mark,
ul,
ol {
margin-top: 0;
- margin-bottom: (@line-height-computed / 2);
+ margin-bottom: ($line-height-computed / 2);
ul,
ol {
margin-bottom: 0;
@@ -167,15 +158,20 @@ ol {
// List options
-// Unstyled keeps list items block level, just removes default browser padding and list-style
-.list-unstyled {
+// [converter] extracted from `.list-unstyled` for libsass compatibility
+@mixin list-unstyled {
padding-left: 0;
list-style: none;
}
+// [converter] extracted as `@mixin list-unstyled` for libsass compatibility
+.list-unstyled {
+ @include list-unstyled;
+}
+
// Inline turns list items into inline-block
.list-inline {
- .list-unstyled();
+ @include list-unstyled;
margin-left: -5px;
> li {
@@ -188,11 +184,11 @@ ol {
// Description Lists
dl {
margin-top: 0; // Remove browser default
- margin-bottom: @line-height-computed;
+ margin-bottom: $line-height-computed;
}
dt,
dd {
- line-height: @line-height-base;
+ line-height: $line-height-base;
}
dt {
font-weight: bold;
@@ -208,19 +204,19 @@ dd {
.dl-horizontal {
dd {
- &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
+ @include clearfix; // Clear the floated `dt` if an empty `dd` is present
}
- @media (min-width: @dl-horizontal-breakpoint) {
+ @media (min-width: $dl-horizontal-breakpoint) {
dt {
float: left;
- width: (@dl-horizontal-offset - 20);
+ width: ($dl-horizontal-offset - 20);
clear: left;
text-align: right;
- .text-overflow();
+ @include text-overflow;
}
dd {
- margin-left: @dl-horizontal-offset;
+ margin-left: $dl-horizontal-offset;
}
}
}
@@ -234,19 +230,19 @@ abbr[title],
// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
abbr[data-original-title] {
cursor: help;
- border-bottom: 1px dotted @abbr-border-color;
+ border-bottom: 1px dotted $abbr-border-color;
}
.initialism {
font-size: 90%;
- .text-uppercase();
+ @extend .text-uppercase;
}
// Blockquotes
blockquote {
- padding: (@line-height-computed / 2) @line-height-computed;
- margin: 0 0 @line-height-computed;
- font-size: @blockquote-font-size;
- border-left: 5px solid @blockquote-border-color;
+ padding: ($line-height-computed / 2) $line-height-computed;
+ margin: 0 0 $line-height-computed;
+ font-size: $blockquote-font-size;
+ border-left: 5px solid $blockquote-border-color;
p,
ul,
@@ -263,8 +259,8 @@ blockquote {
.small {
display: block;
font-size: 80%; // back to default font-size
- line-height: @line-height-base;
- color: @blockquote-small-color;
+ line-height: $line-height-base;
+ color: $blockquote-small-color;
&:before {
content: '\2014 \00A0'; // em dash, nbsp
@@ -279,7 +275,7 @@ blockquote {
blockquote.pull-right {
padding-right: 15px;
padding-left: 0;
- border-right: 5px solid @blockquote-border-color;
+ border-right: 5px solid $blockquote-border-color;
border-left: 0;
text-align: right;
@@ -296,7 +292,7 @@ blockquote.pull-right {
// Addresses
address {
- margin-bottom: @line-height-computed;
+ margin-bottom: $line-height-computed;
font-style: normal;
- line-height: @line-height-base;
+ line-height: $line-height-base;
}
diff --git a/addons/web/static/lib/bootstrap/less/utilities.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_utilities.scss
index 7a8ca27a8ff..8c99c71643e 100644
--- a/addons/web/static/lib/bootstrap/less/utilities.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_utilities.scss
@@ -7,10 +7,10 @@
// -------------------------
.clearfix {
- .clearfix();
+ @include clearfix;
}
.center-block {
- .center-block();
+ @include center-block;
}
.pull-right {
float: right !important;
@@ -34,7 +34,7 @@
visibility: hidden;
}
.text-hide {
- .text-hide();
+ @include text-hide;
}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/_variables.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/_variables.scss
new file mode 100644
index 00000000000..e0496852917
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_variables.scss
@@ -0,0 +1,874 @@
+$bootstrap-sass-asset-helper: false !default;
+//
+// Variables
+// --------------------------------------------------
+
+
+//== Colors
+//
+//## Gray and brand colors for use across Bootstrap.
+
+$gray-base: #000 !default;
+$gray-darker: lighten($gray-base, 13.5%) !default; // #222
+$gray-dark: lighten($gray-base, 20%) !default; // #333
+$gray: lighten($gray-base, 33.5%) !default; // #555
+$gray-light: lighten($gray-base, 46.7%) !default; // #777
+$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee
+
+$brand-primary: darken(#428bca, 6.5%) !default; // #337ab7
+$brand-success: #5cb85c !default;
+$brand-info: #5bc0de !default;
+$brand-warning: #f0ad4e !default;
+$brand-danger: #d9534f !default;
+
+
+//== Scaffolding
+//
+//## Settings for some of the most global styles.
+
+//** Background color for `<body>`.
+$body-bg: #fff !default;
+//** Global text color on `<body>`.
+$text-color: $gray-dark !default;
+
+//** Global textual link color.
+$link-color: $brand-primary !default;
+//** Link hover color set via `darken()` function.
+$link-hover-color: darken($link-color, 15%) !default;
+//** Link hover decoration.
+$link-hover-decoration: underline !default;
+
+
+//== Typography
+//
+//## Font, line-height, and color for body text, headings, and more.
+
+$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif !default;
+$font-family-serif: Georgia, "Times New Roman", Times, serif !default;
+//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
+$font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace !default;
+$font-family-base: $font-family-sans-serif !default;
+
+$font-size-base: 14px !default;
+$font-size-large: ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-small: ceil(($font-size-base * 0.85)) !default; // ~12px
+
+$font-size-h1: floor(($font-size-base * 2.6)) !default; // ~36px
+$font-size-h2: floor(($font-size-base * 2.15)) !default; // ~30px
+$font-size-h3: ceil(($font-size-base * 1.7)) !default; // ~24px
+$font-size-h4: ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-h5: $font-size-base !default;
+$font-size-h6: ceil(($font-size-base * 0.85)) !default; // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+$line-height-base: 1.428571429 !default; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+$line-height-computed: floor(($font-size-base * $line-height-base)) !default; // ~20px
+
+//** By default, this inherits from the `<body>`.
+$headings-font-family: inherit !default;
+$headings-font-weight: 500 !default;
+$headings-line-height: 1.1 !default;
+$headings-color: inherit !default;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+
+// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.
+// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.
+$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
+
+//** File name for all font files.
+$icon-font-name: "glyphicons-halflings-regular" !default;
+//** Element ID within SVG icon file.
+$icon-font-svg-id: "glyphicons_halflingsregular" !default;
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+$padding-base-vertical: 6px !default;
+$padding-base-horizontal: 12px !default;
+
+$padding-large-vertical: 10px !default;
+$padding-large-horizontal: 16px !default;
+
+$padding-small-vertical: 5px !default;
+$padding-small-horizontal: 10px !default;
+
+$padding-xs-vertical: 1px !default;
+$padding-xs-horizontal: 5px !default;
+
+$line-height-large: 1.3333333 !default; // extra decimals for Win 8.1 Chrome
+$line-height-small: 1.5 !default;
+
+$border-radius-base: 4px !default;
+$border-radius-large: 6px !default;
+$border-radius-small: 3px !default;
+
+//** Global color for active items (e.g., navs or dropdowns).
+$component-active-color: #fff !default;
+//** Global background color for active items (e.g., navs or dropdowns).
+$component-active-bg: $brand-primary !default;
+
+//** Width of the `border` for generating carets that indicate dropdowns.
+$caret-width-base: 4px !default;
+//** Carets increase slightly in size for larger components.
+$caret-width-large: 5px !default;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for `<th>`s and `<td>`s.
+$table-cell-padding: 8px !default;
+//** Padding for cells in `.table-condensed`.
+$table-condensed-cell-padding: 5px !default;
+
+//** Default background color used for all tables.
+$table-bg: transparent !default;
+//** Background color used for `.table-striped`.
+$table-bg-accent: #f9f9f9 !default;
+//** Background color used for `.table-hover`.
+$table-bg-hover: #f5f5f5 !default;
+$table-bg-active: $table-bg-hover !default;
+
+//** Border color for table and cell borders.
+$table-border-color: #ddd !default;
+
+
+//== Buttons
+//
+//## For each of Bootstrap's buttons, define text, background and border color.
+
+$btn-font-weight: normal !default;
+
+$btn-default-color: #333 !default;
+$btn-default-bg: #fff !default;
+$btn-default-border: #ccc !default;
+
+$btn-primary-color: #fff !default;
+$btn-primary-bg: $brand-primary !default;
+$btn-primary-border: darken($btn-primary-bg, 5%) !default;
+
+$btn-success-color: #fff !default;
+$btn-success-bg: $brand-success !default;
+$btn-success-border: darken($btn-success-bg, 5%) !default;
+
+$btn-info-color: #fff !default;
+$btn-info-bg: $brand-info !default;
+$btn-info-border: darken($btn-info-bg, 5%) !default;
+
+$btn-warning-color: #fff !default;
+$btn-warning-bg: $brand-warning !default;
+$btn-warning-border: darken($btn-warning-bg, 5%) !default;
+
+$btn-danger-color: #fff !default;
+$btn-danger-bg: $brand-danger !default;
+$btn-danger-border: darken($btn-danger-bg, 5%) !default;
+
+$btn-link-disabled-color: $gray-light !default;
+
+// Allows for customizing button radius independently from global border radius
+$btn-border-radius-base: $border-radius-base !default;
+$btn-border-radius-large: $border-radius-large !default;
+$btn-border-radius-small: $border-radius-small !default;
+
+
+//== Forms
+//
+//##
+
+//** `<input>` background color
+$input-bg: #fff !default;
+//** `<input disabled>` background color
+$input-bg-disabled: $gray-lighter !default;
+
+//** Text color for `<input>`s
+$input-color: $gray !default;
+//** `<input>` border color
+$input-border: #ccc !default;
+
+// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
+//** Default `.form-control` border radius
+// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.
+$input-border-radius: $border-radius-base !default;
+//** Large `.form-control` border radius
+$input-border-radius-large: $border-radius-large !default;
+//** Small `.form-control` border radius
+$input-border-radius-small: $border-radius-small !default;
+
+//** Border color for inputs on focus
+$input-border-focus: #66afe9 !default;
+
+//** Placeholder text color
+$input-color-placeholder: #999 !default;
+
+//** Default `.form-control` height
+$input-height-base: ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
+//** Large `.form-control` height
+$input-height-large: (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
+//** Small `.form-control` height
+$input-height-small: (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
+
+//** `.form-group` margin
+$form-group-margin-bottom: 15px !default;
+
+$legend-color: $gray-dark !default;
+$legend-border-color: #e5e5e5 !default;
+
+//** Background color for textual input addons
+$input-group-addon-bg: $gray-lighter !default;
+//** Border color for textual input addons
+$input-group-addon-border-color: $input-border !default;
+
+//** Disabled cursor for form controls and buttons.
+$cursor-disabled: not-allowed !default;
+
+
+//== Dropdowns
+//
+//## Dropdown menu container and contents.
+
+//** Background for the dropdown menu.
+$dropdown-bg: #fff !default;
+//** Dropdown menu `border-color`.
+$dropdown-border: rgba(0,0,0,.15) !default;
+//** Dropdown menu `border-color` **for IE8**.
+$dropdown-fallback-border: #ccc !default;
+//** Divider color for between dropdown items.
+$dropdown-divider-bg: #e5e5e5 !default;
+
+//** Dropdown link text color.
+$dropdown-link-color: $gray-dark !default;
+//** Hover color for dropdown links.
+$dropdown-link-hover-color: darken($gray-dark, 5%) !default;
+//** Hover background for dropdown links.
+$dropdown-link-hover-bg: #f5f5f5 !default;
+
+//** Active dropdown menu item text color.
+$dropdown-link-active-color: $component-active-color !default;
+//** Active dropdown menu item background color.
+$dropdown-link-active-bg: $component-active-bg !default;
+
+//** Disabled dropdown menu item background color.
+$dropdown-link-disabled-color: $gray-light !default;
+
+//** Text color for headers within dropdown menus.
+$dropdown-header-color: $gray-light !default;
+
+//** Deprecated `$dropdown-caret-color` as of v3.1.0
+$dropdown-caret-color: #000 !default;
+
+
+//-- Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+//
+// Note: These variables are not generated into the Customizer.
+
+$zindex-navbar: 1000 !default;
+$zindex-dropdown: 1000 !default;
+$zindex-popover: 1060 !default;
+$zindex-tooltip: 1070 !default;
+$zindex-navbar-fixed: 1030 !default;
+$zindex-modal-background: 1040 !default;
+$zindex-modal: 1050 !default;
+
+
+//== Media queries breakpoints
+//
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+// Extra small screen / phone
+//** Deprecated `$screen-xs` as of v3.0.1
+$screen-xs: 480px !default;
+//** Deprecated `$screen-xs-min` as of v3.2.0
+$screen-xs-min: $screen-xs !default;
+//** Deprecated `$screen-phone` as of v3.0.1
+$screen-phone: $screen-xs-min !default;
+
+// Small screen / tablet
+//** Deprecated `$screen-sm` as of v3.0.1
+$screen-sm: 768px !default;
+$screen-sm-min: $screen-sm !default;
+//** Deprecated `$screen-tablet` as of v3.0.1
+$screen-tablet: $screen-sm-min !default;
+
+// Medium screen / desktop
+//** Deprecated `$screen-md` as of v3.0.1
+$screen-md: 992px !default;
+$screen-md-min: $screen-md !default;
+//** Deprecated `$screen-desktop` as of v3.0.1
+$screen-desktop: $screen-md-min !default;
+
+// Large screen / wide desktop
+//** Deprecated `$screen-lg` as of v3.0.1
+$screen-lg: 1200px !default;
+$screen-lg-min: $screen-lg !default;
+//** Deprecated `$screen-lg-desktop` as of v3.0.1
+$screen-lg-desktop: $screen-lg-min !default;
+
+// So media queries don't overlap when required, provide a maximum
+$screen-xs-max: ($screen-sm-min - 1) !default;
+$screen-sm-max: ($screen-md-min - 1) !default;
+$screen-md-max: ($screen-lg-min - 1) !default;
+
+
+//== Grid system
+//
+//## Define your custom responsive grid.
+
+//** Number of columns in the grid.
+$grid-columns: 12 !default;
+//** Padding between columns. Gets divided in half for the left and right.
+$grid-gutter-width: 30px !default;
+// Navbar collapse
+//** Point at which the navbar becomes uncollapsed.
+$grid-float-breakpoint: $screen-sm-min !default;
+//** Point at which the navbar begins collapsing.
+$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
+
+
+//== Container sizes
+//
+//## Define the maximum width of `.container` for different screen sizes.
+
+// Small screen / tablet
+$container-tablet: (720px + $grid-gutter-width) !default;
+//** For `$screen-sm-min` and up.
+$container-sm: $container-tablet !default;
+
+// Medium screen / desktop
+$container-desktop: (940px + $grid-gutter-width) !default;
+//** For `$screen-md-min` and up.
+$container-md: $container-desktop !default;
+
+// Large screen / wide desktop
+$container-large-desktop: (1140px + $grid-gutter-width) !default;
+//** For `$screen-lg-min` and up.
+$container-lg: $container-large-desktop !default;
+
+
+//== Navbar
+//
+//##
+
+// Basics of a navbar
+$navbar-height: 50px !default;
+$navbar-margin-bottom: $line-height-computed !default;
+$navbar-border-radius: $border-radius-base !default;
+$navbar-padding-horizontal: floor(($grid-gutter-width / 2)) !default;
+$navbar-padding-vertical: (($navbar-height - $line-height-computed) / 2) !default;
+$navbar-collapse-max-height: 340px !default;
+
+$navbar-default-color: #777 !default;
+$navbar-default-bg: #f8f8f8 !default;
+$navbar-default-border: darken($navbar-default-bg, 6.5%) !default;
+
+// Navbar links
+$navbar-default-link-color: #777 !default;
+$navbar-default-link-hover-color: #333 !default;
+$navbar-default-link-hover-bg: transparent !default;
+$navbar-default-link-active-color: #555 !default;
+$navbar-default-link-active-bg: darken($navbar-default-bg, 6.5%) !default;
+$navbar-default-link-disabled-color: #ccc !default;
+$navbar-default-link-disabled-bg: transparent !default;
+
+// Navbar brand label
+$navbar-default-brand-color: $navbar-default-link-color !default;
+$navbar-default-brand-hover-color: darken($navbar-default-brand-color, 10%) !default;
+$navbar-default-brand-hover-bg: transparent !default;
+
+// Navbar toggle
+$navbar-default-toggle-hover-bg: #ddd !default;
+$navbar-default-toggle-icon-bar-bg: #888 !default;
+$navbar-default-toggle-border-color: #ddd !default;
+
+
+//=== Inverted navbar
+// Reset inverted navbar basics
+$navbar-inverse-color: lighten($gray-light, 15%) !default;
+$navbar-inverse-bg: #222 !default;
+$navbar-inverse-border: darken($navbar-inverse-bg, 10%) !default;
+
+// Inverted navbar links
+$navbar-inverse-link-color: lighten($gray-light, 15%) !default;
+$navbar-inverse-link-hover-color: #fff !default;
+$navbar-inverse-link-hover-bg: transparent !default;
+$navbar-inverse-link-active-color: $navbar-inverse-link-hover-color !default;
+$navbar-inverse-link-active-bg: darken($navbar-inverse-bg, 10%) !default;
+$navbar-inverse-link-disabled-color: #444 !default;
+$navbar-inverse-link-disabled-bg: transparent !default;
+
+// Inverted navbar brand label
+$navbar-inverse-brand-color: $navbar-inverse-link-color !default;
+$navbar-inverse-brand-hover-color: #fff !default;
+$navbar-inverse-brand-hover-bg: transparent !default;
+
+// Inverted navbar toggle
+$navbar-inverse-toggle-hover-bg: #333 !default;
+$navbar-inverse-toggle-icon-bar-bg: #fff !default;
+$navbar-inverse-toggle-border-color: #333 !default;
+
+
+//== Navs
+//
+//##
+
+//=== Shared nav styles
+$nav-link-padding: 10px 15px !default;
+$nav-link-hover-bg: $gray-lighter !default;
+
+$nav-disabled-link-color: $gray-light !default;
+$nav-disabled-link-hover-color: $gray-light !default;
+
+//== Tabs
+$nav-tabs-border-color: #ddd !default;
+
+$nav-tabs-link-hover-border-color: $gray-lighter !default;
+
+$nav-tabs-active-link-hover-bg: $body-bg !default;
+$nav-tabs-active-link-hover-color: $gray !default;
+$nav-tabs-active-link-hover-border-color: #ddd !default;
+
+$nav-tabs-justified-link-border-color: #ddd !default;
+$nav-tabs-justified-active-link-border-color: $body-bg !default;
+
+//== Pills
+$nav-pills-border-radius: $border-radius-base !default;
+$nav-pills-active-link-hover-bg: $component-active-bg !default;
+$nav-pills-active-link-hover-color: $component-active-color !default;
+
+
+//== Pagination
+//
+//##
+
+$pagination-color: $link-color !default;
+$pagination-bg: #fff !default;
+$pagination-border: #ddd !default;
+
+$pagination-hover-color: $link-hover-color !default;
+$pagination-hover-bg: $gray-lighter !default;
+$pagination-hover-border: #ddd !default;
+
+$pagination-active-color: #fff !default;
+$pagination-active-bg: $brand-primary !default;
+$pagination-active-border: $brand-primary !default;
+
+$pagination-disabled-color: $gray-light !default;
+$pagination-disabled-bg: #fff !default;
+$pagination-disabled-border: #ddd !default;
+
+
+//== Pager
+//
+//##
+
+$pager-bg: $pagination-bg !default;
+$pager-border: $pagination-border !default;
+$pager-border-radius: 15px !default;
+
+$pager-hover-bg: $pagination-hover-bg !default;
+
+$pager-active-bg: $pagination-active-bg !default;
+$pager-active-color: $pagination-active-color !default;
+
+$pager-disabled-color: $pagination-disabled-color !default;
+
+
+//== Jumbotron
+//
+//##
+
+$jumbotron-padding: 30px !default;
+$jumbotron-color: inherit !default;
+$jumbotron-bg: $gray-lighter !default;
+$jumbotron-heading-color: inherit !default;
+$jumbotron-font-size: ceil(($font-size-base * 1.5)) !default;
+$jumbotron-heading-font-size: ceil(($font-size-base * 4.5)) !default;
+
+
+//== Form states and alerts
+//
+//## Define colors for form feedback states and, by default, alerts.
+
+$state-success-text: #3c763d !default;
+$state-success-bg: #dff0d8 !default;
+$state-success-border: darken(adjust-hue($state-success-bg, -10), 5%) !default;
+
+$state-info-text: #31708f !default;
+$state-info-bg: #d9edf7 !default;
+$state-info-border: darken(adjust-hue($state-info-bg, -10), 7%) !default;
+
+$state-warning-text: #8a6d3b !default;
+$state-warning-bg: #fcf8e3 !default;
+$state-warning-border: darken(adjust-hue($state-warning-bg, -10), 5%) !default;
+
+$state-danger-text: #a94442 !default;
+$state-danger-bg: #f2dede !default;
+$state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%) !default;
+
+
+//== Tooltips
+//
+//##
+
+//** Tooltip max width
+$tooltip-max-width: 200px !default;
+//** Tooltip text color
+$tooltip-color: #fff !default;
+//** Tooltip background color
+$tooltip-bg: #000 !default;
+$tooltip-opacity: .9 !default;
+
+//** Tooltip arrow width
+$tooltip-arrow-width: 5px !default;
+//** Tooltip arrow color
+$tooltip-arrow-color: $tooltip-bg !default;
+
+
+//== Popovers
+//
+//##
+
+//** Popover body background color
+$popover-bg: #fff !default;
+//** Popover maximum width
+$popover-max-width: 276px !default;
+//** Popover border color
+$popover-border-color: rgba(0,0,0,.2) !default;
+//** Popover fallback border color
+$popover-fallback-border-color: #ccc !default;
+
+//** Popover title background color
+$popover-title-bg: darken($popover-bg, 3%) !default;
+
+//** Popover arrow width
+$popover-arrow-width: 10px !default;
+//** Popover arrow color
+$popover-arrow-color: $popover-bg !default;
+
+//** Popover outer arrow width
+$popover-arrow-outer-width: ($popover-arrow-width + 1) !default;
+//** Popover outer arrow color
+$popover-arrow-outer-color: fade_in($popover-border-color, 0.05) !default;
+//** Popover outer arrow fallback color
+$popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%) !default;
+
+
+//== Labels
+//
+//##
+
+//** Default label background color
+$label-default-bg: $gray-light !default;
+//** Primary label background color
+$label-primary-bg: $brand-primary !default;
+//** Success label background color
+$label-success-bg: $brand-success !default;
+//** Info label background color
+$label-info-bg: $brand-info !default;
+//** Warning label background color
+$label-warning-bg: $brand-warning !default;
+//** Danger label background color
+$label-danger-bg: $brand-danger !default;
+
+//** Default label text color
+$label-color: #fff !default;
+//** Default text color of a linked label
+$label-link-hover-color: #fff !default;
+
+
+//== Modals
+//
+//##
+
+//** Padding applied to the modal body
+$modal-inner-padding: 15px !default;
+
+//** Padding applied to the modal title
+$modal-title-padding: 15px !default;
+//** Modal title line-height
+$modal-title-line-height: $line-height-base !default;
+
+//** Background color of modal content area
+$modal-content-bg: #fff !default;
+//** Modal content border color
+$modal-content-border-color: rgba(0,0,0,.2) !default;
+//** Modal content border color **for IE8**
+$modal-content-fallback-border-color: #999 !default;
+
+//** Modal backdrop background color
+$modal-backdrop-bg: #000 !default;
+//** Modal backdrop opacity
+$modal-backdrop-opacity: .5 !default;
+//** Modal header border color
+$modal-header-border-color: #e5e5e5 !default;
+//** Modal footer border color
+$modal-footer-border-color: $modal-header-border-color !default;
+
+$modal-lg: 900px !default;
+$modal-md: 600px !default;
+$modal-sm: 300px !default;
+
+
+//== Alerts
+//
+//## Define alert colors, border radius, and padding.
+
+$alert-padding: 15px !default;
+$alert-border-radius: $border-radius-base !default;
+$alert-link-font-weight: bold !default;
+
+$alert-success-bg: $state-success-bg !default;
+$alert-success-text: $state-success-text !default;
+$alert-success-border: $state-success-border !default;
+
+$alert-info-bg: $state-info-bg !default;
+$alert-info-text: $state-info-text !default;
+$alert-info-border: $state-info-border !default;
+
+$alert-warning-bg: $state-warning-bg !default;
+$alert-warning-text: $state-warning-text !default;
+$alert-warning-border: $state-warning-border !default;
+
+$alert-danger-bg: $state-danger-bg !default;
+$alert-danger-text: $state-danger-text !default;
+$alert-danger-border: $state-danger-border !default;
+
+
+//== Progress bars
+//
+//##
+
+//** Background color of the whole progress component
+$progress-bg: #f5f5f5 !default;
+//** Progress bar text color
+$progress-bar-color: #fff !default;
+//** Variable for setting rounded corners on progress bar.
+$progress-border-radius: $border-radius-base !default;
+
+//** Default progress bar color
+$progress-bar-bg: $brand-primary !default;
+//** Success progress bar color
+$progress-bar-success-bg: $brand-success !default;
+//** Warning progress bar color
+$progress-bar-warning-bg: $brand-warning !default;
+//** Danger progress bar color
+$progress-bar-danger-bg: $brand-danger !default;
+//** Info progress bar color
+$progress-bar-info-bg: $brand-info !default;
+
+
+//== List group
+//
+//##
+
+//** Background color on `.list-group-item`
+$list-group-bg: #fff !default;
+//** `.list-group-item` border color
+$list-group-border: #ddd !default;
+//** List group border radius
+$list-group-border-radius: $border-radius-base !default;
+
+//** Background color of single list items on hover
+$list-group-hover-bg: #f5f5f5 !default;
+//** Text color of active list items
+$list-group-active-color: $component-active-color !default;
+//** Background color of active list items
+$list-group-active-bg: $component-active-bg !default;
+//** Border color of active list elements
+$list-group-active-border: $list-group-active-bg !default;
+//** Text color for content within active list items
+$list-group-active-text-color: lighten($list-group-active-bg, 40%) !default;
+
+//** Text color of disabled list items
+$list-group-disabled-color: $gray-light !default;
+//** Background color of disabled list items
+$list-group-disabled-bg: $gray-lighter !default;
+//** Text color for content within disabled list items
+$list-group-disabled-text-color: $list-group-disabled-color !default;
+
+$list-group-link-color: #555 !default;
+$list-group-link-hover-color: $list-group-link-color !default;
+$list-group-link-heading-color: #333 !default;
+
+
+//== Panels
+//
+//##
+
+$panel-bg: #fff !default;
+$panel-body-padding: 15px !default;
+$panel-heading-padding: 10px 15px !default;
+$panel-footer-padding: $panel-heading-padding !default;
+$panel-border-radius: $border-radius-base !default;
+
+//** Border color for elements within panels
+$panel-inner-border: #ddd !default;
+$panel-footer-bg: #f5f5f5 !default;
+
+$panel-default-text: $gray-dark !default;
+$panel-default-border: #ddd !default;
+$panel-default-heading-bg: #f5f5f5 !default;
+
+$panel-primary-text: #fff !default;
+$panel-primary-border: $brand-primary !default;
+$panel-primary-heading-bg: $brand-primary !default;
+
+$panel-success-text: $state-success-text !default;
+$panel-success-border: $state-success-border !default;
+$panel-success-heading-bg: $state-success-bg !default;
+
+$panel-info-text: $state-info-text !default;
+$panel-info-border: $state-info-border !default;
+$panel-info-heading-bg: $state-info-bg !default;
+
+$panel-warning-text: $state-warning-text !default;
+$panel-warning-border: $state-warning-border !default;
+$panel-warning-heading-bg: $state-warning-bg !default;
+
+$panel-danger-text: $state-danger-text !default;
+$panel-danger-border: $state-danger-border !default;
+$panel-danger-heading-bg: $state-danger-bg !default;
+
+
+//== Thumbnails
+//
+//##
+
+//** Padding around the thumbnail image
+$thumbnail-padding: 4px !default;
+//** Thumbnail background color
+$thumbnail-bg: $body-bg !default;
+//** Thumbnail border color
+$thumbnail-border: #ddd !default;
+//** Thumbnail border radius
+$thumbnail-border-radius: $border-radius-base !default;
+
+//** Custom text color for thumbnail captions
+$thumbnail-caption-color: $text-color !default;
+//** Padding around the thumbnail caption
+$thumbnail-caption-padding: 9px !default;
+
+
+//== Wells
+//
+//##
+
+$well-bg: #f5f5f5 !default;
+$well-border: darken($well-bg, 7%) !default;
+
+
+//== Badges
+//
+//##
+
+$badge-color: #fff !default;
+//** Linked badge text color on hover
+$badge-link-hover-color: #fff !default;
+$badge-bg: $gray-light !default;
+
+//** Badge text color in active nav link
+$badge-active-color: $link-color !default;
+//** Badge background color in active nav link
+$badge-active-bg: #fff !default;
+
+$badge-font-weight: bold !default;
+$badge-line-height: 1 !default;
+$badge-border-radius: 10px !default;
+
+
+//== Breadcrumbs
+//
+//##
+
+$breadcrumb-padding-vertical: 8px !default;
+$breadcrumb-padding-horizontal: 15px !default;
+//** Breadcrumb background color
+$breadcrumb-bg: #f5f5f5 !default;
+//** Breadcrumb text color
+$breadcrumb-color: #ccc !default;
+//** Text color of current page in the breadcrumb
+$breadcrumb-active-color: $gray-light !default;
+//** Textual separator for between breadcrumb elements
+$breadcrumb-separator: "/" !default;
+
+
+//== Carousel
+//
+//##
+
+$carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6) !default;
+
+$carousel-control-color: #fff !default;
+$carousel-control-width: 15% !default;
+$carousel-control-opacity: .5 !default;
+$carousel-control-font-size: 20px !default;
+
+$carousel-indicator-active-bg: #fff !default;
+$carousel-indicator-border-color: #fff !default;
+
+$carousel-caption-color: #fff !default;
+
+
+//== Close
+//
+//##
+
+$close-font-weight: bold !default;
+$close-color: #000 !default;
+$close-text-shadow: 0 1px 0 #fff !default;
+
+
+//== Code
+//
+//##
+
+$code-color: #c7254e !default;
+$code-bg: #f9f2f4 !default;
+
+$kbd-color: #fff !default;
+$kbd-bg: #333 !default;
+
+$pre-bg: #f5f5f5 !default;
+$pre-color: $gray-dark !default;
+$pre-border-color: #ccc !default;
+$pre-scrollable-max-height: 340px !default;
+
+
+//== Type
+//
+//##
+
+//** Horizontal offset for forms and lists.
+$component-offset-horizontal: 180px !default;
+//** Text muted color
+$text-muted: $gray-light !default;
+//** Abbreviations and acronyms border color
+$abbr-border-color: $gray-light !default;
+//** Headings small color
+$headings-small-color: $gray-light !default;
+//** Blockquote small color
+$blockquote-small-color: $gray-light !default;
+//** Blockquote font size
+$blockquote-font-size: ($font-size-base * 1.25) !default;
+//** Blockquote border color
+$blockquote-border-color: $gray-lighter !default;
+//** Page header border color
+$page-header-border-color: $gray-lighter !default;
+//** Width of horizontal description list titles
+$dl-horizontal-offset: $component-offset-horizontal !default;
+//** Point at which .dl-horizontal becomes horizontal
+$dl-horizontal-breakpoint: $grid-float-breakpoint !default;
+//** Horizontal line color.
+$hr-border: $gray-lighter !default;
diff --git a/addons/web/static/lib/bootstrap/less/wells.less b/addons/web/static/lib/bootstrap/scss/bootstrap/_wells.scss
index 15d072b0cd0..b8657118a66 100644
--- a/addons/web/static/lib/bootstrap/less/wells.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/_wells.scss
@@ -8,10 +8,10 @@
min-height: 20px;
padding: 19px;
margin-bottom: 20px;
- background-color: @well-bg;
- border: 1px solid @well-border;
- border-radius: @border-radius-base;
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
+ background-color: $well-bg;
+ border: 1px solid $well-border;
+ border-radius: $border-radius-base;
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
blockquote {
border-color: #ddd;
border-color: rgba(0,0,0,.15);
@@ -21,9 +21,9 @@
// Sizes
.well-lg {
padding: 24px;
- border-radius: @border-radius-large;
+ border-radius: $border-radius-large;
}
.well-sm {
padding: 9px;
- border-radius: @border-radius-small;
+ border-radius: $border-radius-small;
}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_alerts.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_alerts.scss
new file mode 100644
index 00000000000..3faf0b5a507
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_alerts.scss
@@ -0,0 +1,14 @@
+// Alerts
+
+@mixin alert-variant($background, $border, $text-color) {
+ background-color: $background;
+ border-color: $border;
+ color: $text-color;
+
+ hr {
+ border-top-color: darken($border, 5%);
+ }
+ .alert-link {
+ color: darken($text-color, 10%);
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_background-variant.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_background-variant.scss
new file mode 100644
index 00000000000..4c7769e13a3
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_background-variant.scss
@@ -0,0 +1,12 @@
+// Contextual backgrounds
+
+// [converter] $parent hack
+@mixin bg-variant($parent, $color) {
+ #{$parent} {
+ background-color: $color;
+ }
+ a#{$parent}:hover,
+ a#{$parent}:focus {
+ background-color: darken($color, 10%);
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_border-radius.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_border-radius.scss
new file mode 100644
index 00000000000..ce194998750
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_border-radius.scss
@@ -0,0 +1,18 @@
+// Single side border-radius
+
+@mixin border-top-radius($radius) {
+ border-top-right-radius: $radius;
+ border-top-left-radius: $radius;
+}
+@mixin border-right-radius($radius) {
+ border-bottom-right-radius: $radius;
+ border-top-right-radius: $radius;
+}
+@mixin border-bottom-radius($radius) {
+ border-bottom-right-radius: $radius;
+ border-bottom-left-radius: $radius;
+}
+@mixin border-left-radius($radius) {
+ border-bottom-left-radius: $radius;
+ border-top-left-radius: $radius;
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_buttons.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_buttons.scss
new file mode 100644
index 00000000000..b93f84b2cb6
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_buttons.scss
@@ -0,0 +1,65 @@
+// Button variants
+//
+// Easily pump out default styles, as well as :hover, :focus, :active,
+// and disabled options for all buttons
+
+@mixin button-variant($color, $background, $border) {
+ color: $color;
+ background-color: $background;
+ border-color: $border;
+
+ &:focus,
+ &.focus {
+ color: $color;
+ background-color: darken($background, 10%);
+ border-color: darken($border, 25%);
+ }
+ &:hover {
+ color: $color;
+ background-color: darken($background, 10%);
+ border-color: darken($border, 12%);
+ }
+ &:active,
+ &.active,
+ .open > &.dropdown-toggle {
+ color: $color;
+ background-color: darken($background, 10%);
+ border-color: darken($border, 12%);
+
+ &:hover,
+ &:focus,
+ &.focus {
+ color: $color;
+ background-color: darken($background, 17%);
+ border-color: darken($border, 25%);
+ }
+ }
+ &:active,
+ &.active,
+ .open > &.dropdown-toggle {
+ background-image: none;
+ }
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus,
+ &.focus {
+ background-color: $background;
+ border-color: $border;
+ }
+ }
+
+ .badge {
+ color: $background;
+ background-color: $color;
+ }
+}
+
+// Button sizes
+@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
+ padding: $padding-vertical $padding-horizontal;
+ font-size: $font-size;
+ line-height: $line-height;
+ border-radius: $border-radius;
+}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/center-block.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_center-block.scss
index d18d6de9ed6..e06fb5e276e 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/center-block.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_center-block.scss
@@ -1,6 +1,6 @@
// Center-align a block level element
-.center-block() {
+@mixin center-block() {
display: block;
margin-left: auto;
margin-right: auto;
diff --git a/addons/web/static/lib/bootstrap/less/mixins/clearfix.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_clearfix.scss
index 3f7a3820c1c..dc3e2ab426e 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/clearfix.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_clearfix.scss
@@ -10,7 +10,7 @@
//
// Source: http://nicolasgallagher.com/micro-clearfix-hack/
-.clearfix() {
+@mixin clearfix() {
&:before,
&:after {
content: " "; // 1
diff --git a/addons/web/static/lib/bootstrap/less/mixins/forms.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_forms.scss
index 6f55ed96708..277aa5f8e18 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/forms.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_forms.scss
@@ -3,7 +3,7 @@
// Used in forms.less to generate the form validation CSS for warnings, errors,
// and successes.
-.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
+@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
// Color the label and help text
.help-block,
.control-label,
@@ -15,27 +15,27 @@
&.checkbox label,
&.radio-inline label,
&.checkbox-inline label {
- color: @text-color;
+ color: $text-color;
}
// Set the border and box shadow on specific inputs to match
.form-control {
- border-color: @border-color;
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ border-color: $border-color;
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
&:focus {
- border-color: darken(@border-color, 10%);
- @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
- .box-shadow(@shadow);
+ border-color: darken($border-color, 10%);
+ $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
+ @include box-shadow($shadow);
}
}
// Set validation states also for addons
.input-group-addon {
- color: @text-color;
- border-color: @border-color;
- background-color: @background-color;
+ color: $text-color;
+ border-color: $border-color;
+ background-color: $background-color;
}
// Optional feedback icon
.form-control-feedback {
- color: @text-color;
+ color: $text-color;
}
}
@@ -43,7 +43,7 @@
// Form control focus state
//
// Generate a customized focus state and for any input with the specified color,
-// which defaults to the `@input-border-focus` variable.
+// which defaults to the `$input-border-focus` variable.
//
// We highly encourage you to not customize the default value, but instead use
// this to tweak colors on an as-needed basis. This aesthetic change is based on
@@ -52,12 +52,12 @@
//
// Example usage: change the default blue border and shadow to white for better
// contrast against a dark gray background.
-.form-control-focus(@color: @input-border-focus) {
- @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
+@mixin form-control-focus($color: $input-border-focus) {
+ $color-rgba: rgba(red($color), green($color), blue($color), .6);
&:focus {
- border-color: @color;
+ border-color: $color;
outline: 0;
- .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
}
}
@@ -66,20 +66,23 @@
// Relative text size, padding, and border-radii changes for form controls. For
// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
// element gets special love because it's special, and that's a fact!
-.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
- height: @input-height;
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- line-height: @line-height;
- border-radius: @border-radius;
+// [converter] $parent hack
+@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
+ #{$parent} {
+ height: $input-height;
+ padding: $padding-vertical $padding-horizontal;
+ font-size: $font-size;
+ line-height: $line-height;
+ border-radius: $border-radius;
+ }
- select& {
- height: @input-height;
- line-height: @input-height;
+ select#{$parent} {
+ height: $input-height;
+ line-height: $input-height;
}
- textarea&,
- select[multiple]& {
+ textarea#{$parent},
+ select[multiple]#{$parent} {
height: auto;
}
}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_gradients.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_gradients.scss
new file mode 100644
index 00000000000..a8939f5ae64
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_gradients.scss
@@ -0,0 +1,58 @@
+// Gradients
+
+
+
+// Horizontal gradient, from left to right
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+// Color stops are not available in IE9 and below.
+@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
+ background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12
+ background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down
+}
+
+// Vertical gradient, from top to bottom
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+// Color stops are not available in IE9 and below.
+@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
+ background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Opera 12
+ background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down
+}
+
+@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
+ background-repeat: repeat-x;
+ background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12
+ background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+}
+@mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
+ background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
+ background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
+ background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
+ background-repeat: no-repeat;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback
+}
+@mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
+ background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
+ background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);
+ background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
+ background-repeat: no-repeat;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
+}
+@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
+ background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);
+ background-image: radial-gradient(circle, $inner-color, $outer-color);
+ background-repeat: no-repeat;
+}
+@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
+ background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+ background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_grid-framework.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_grid-framework.scss
new file mode 100644
index 00000000000..16d038c04f3
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_grid-framework.scss
@@ -0,0 +1,81 @@
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `$grid-columns`.
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") {
+ @for $i from (1 + 1) through $grid-columns {
+ $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
+ }
+ #{$list} {
+ position: relative;
+ // Prevent columns from collapsing when empty
+ min-height: 1px;
+ // Inner gutter via padding
+ padding-left: ceil(($grid-gutter-width / 2));
+ padding-right: floor(($grid-gutter-width / 2));
+ }
+}
+
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") {
+ @for $i from (1 + 1) through $grid-columns {
+ $list: "#{$list}, .col-#{$class}-#{$i}";
+ }
+ #{$list} {
+ float: left;
+ }
+}
+
+
+@mixin calc-grid-column($index, $class, $type) {
+ @if ($type == width) and ($index > 0) {
+ .col-#{$class}-#{$index} {
+ width: percentage(($index / $grid-columns));
+ }
+ }
+ @if ($type == push) and ($index > 0) {
+ .col-#{$class}-push-#{$index} {
+ left: percentage(($index / $grid-columns));
+ }
+ }
+ @if ($type == push) and ($index == 0) {
+ .col-#{$class}-push-0 {
+ left: auto;
+ }
+ }
+ @if ($type == pull) and ($index > 0) {
+ .col-#{$class}-pull-#{$index} {
+ right: percentage(($index / $grid-columns));
+ }
+ }
+ @if ($type == pull) and ($index == 0) {
+ .col-#{$class}-pull-0 {
+ right: auto;
+ }
+ }
+ @if ($type == offset) {
+ .col-#{$class}-offset-#{$index} {
+ margin-left: percentage(($index / $grid-columns));
+ }
+ }
+}
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin loop-grid-columns($columns, $class, $type) {
+ @for $i from 0 through $columns {
+ @include calc-grid-column($i, $class, $type);
+ }
+}
+
+
+// Create grid for specific class
+@mixin make-grid($class) {
+ @include float-grid-columns($class);
+ @include loop-grid-columns($grid-columns, $class, width);
+ @include loop-grid-columns($grid-columns, $class, pull);
+ @include loop-grid-columns($grid-columns, $class, push);
+ @include loop-grid-columns($grid-columns, $class, offset);
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_grid.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_grid.scss
new file mode 100644
index 00000000000..59551dac1ed
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_grid.scss
@@ -0,0 +1,122 @@
+// Grid system
+//
+// Generate semantic grid columns with these mixins.
+
+// Centered container element
+@mixin container-fixed($gutter: $grid-gutter-width) {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: floor(($gutter / 2));
+ padding-right: ceil(($gutter / 2));
+ @include clearfix;
+}
+
+// Creates a wrapper for a series of columns
+@mixin make-row($gutter: $grid-gutter-width) {
+ margin-left: ceil(($gutter / -2));
+ margin-right: floor(($gutter / -2));
+ @include clearfix;
+}
+
+// Generate the extra small columns
+@mixin make-xs-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+}
+@mixin make-xs-column-offset($columns) {
+ margin-left: percentage(($columns / $grid-columns));
+}
+@mixin make-xs-column-push($columns) {
+ left: percentage(($columns / $grid-columns));
+}
+@mixin make-xs-column-pull($columns) {
+ right: percentage(($columns / $grid-columns));
+}
+
+// Generate the small columns
+@mixin make-sm-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+
+ @media (min-width: $screen-sm-min) {
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-sm-column-offset($columns) {
+ @media (min-width: $screen-sm-min) {
+ margin-left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-sm-column-push($columns) {
+ @media (min-width: $screen-sm-min) {
+ left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-sm-column-pull($columns) {
+ @media (min-width: $screen-sm-min) {
+ right: percentage(($columns / $grid-columns));
+ }
+}
+
+// Generate the medium columns
+@mixin make-md-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+
+ @media (min-width: $screen-md-min) {
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-md-column-offset($columns) {
+ @media (min-width: $screen-md-min) {
+ margin-left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-md-column-push($columns) {
+ @media (min-width: $screen-md-min) {
+ left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-md-column-pull($columns) {
+ @media (min-width: $screen-md-min) {
+ right: percentage(($columns / $grid-columns));
+ }
+}
+
+// Generate the large columns
+@mixin make-lg-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+
+ @media (min-width: $screen-lg-min) {
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-lg-column-offset($columns) {
+ @media (min-width: $screen-lg-min) {
+ margin-left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-lg-column-push($columns) {
+ @media (min-width: $screen-lg-min) {
+ left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-lg-column-pull($columns) {
+ @media (min-width: $screen-lg-min) {
+ right: percentage(($columns / $grid-columns));
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/hide-text.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_hide-text.scss
index 2bb84a3b444..1767e029c53 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/hide-text.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_hide-text.scss
@@ -7,8 +7,8 @@
// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
// Deprecated as of v3.0.1 (has been removed in v4)
-.hide-text() {
- font: ~"0/0" a;
+@mixin hide-text() {
+ font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
@@ -16,6 +16,6 @@
}
// New mixin to use as of v3.0.1
-.text-hide() {
- .hide-text();
+@mixin text-hide() {
+ @include hide-text;
}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/image.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_image.scss
index f233cb3e199..c8dcf5e9cd8 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/image.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_image.scss
@@ -6,8 +6,8 @@
// Responsive image
//
// Keep images from scaling beyond the width of their parents.
-.img-responsive(@display: block) {
- display: @display;
+@mixin img-responsive($display: block) {
+ display: $display;
max-width: 100%; // Part 1: Set a maximum relative to the parent
height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
}
@@ -17,8 +17,8 @@
//
// Short retina mixin for setting background-image and -size. Note that the
// spelling of `min--moz-device-pixel-ratio` is intentional.
-.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
- background-image: url("@{file-1x}");
+@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
+ background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}"));
@media
only screen and (-webkit-min-device-pixel-ratio: 2),
@@ -27,7 +27,7 @@
only screen and ( min-device-pixel-ratio: 2),
only screen and ( min-resolution: 192dpi),
only screen and ( min-resolution: 2dppx) {
- background-image: url("@{file-2x}");
- background-size: @width-1x @height-1x;
+ background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}"));
+ background-size: $width-1x $height-1x;
}
}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_labels.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_labels.scss
new file mode 100644
index 00000000000..eda6dfd29ea
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_labels.scss
@@ -0,0 +1,12 @@
+// Labels
+
+@mixin label-variant($color) {
+ background-color: $color;
+
+ &[href] {
+ &:hover,
+ &:focus {
+ background-color: darken($color, 10%);
+ }
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_list-group.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_list-group.scss
new file mode 100644
index 00000000000..c478eeb31e3
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_list-group.scss
@@ -0,0 +1,32 @@
+// List Groups
+
+@mixin list-group-item-variant($state, $background, $color) {
+ .list-group-item-#{$state} {
+ color: $color;
+ background-color: $background;
+
+ // [converter] extracted a&, button& to a.list-group-item-#{$state}, button.list-group-item-#{$state}
+ }
+
+ a.list-group-item-#{$state},
+ button.list-group-item-#{$state} {
+ color: $color;
+
+ .list-group-item-heading {
+ color: inherit;
+ }
+
+ &:hover,
+ &:focus {
+ color: $color;
+ background-color: darken($background, 5%);
+ }
+ &.active,
+ &.active:hover,
+ &.active:focus {
+ color: #fff;
+ background-color: $color;
+ border-color: $color;
+ }
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/nav-divider.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_nav-divider.scss
index feb1e9ed0da..2e6da02a474 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/nav-divider.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_nav-divider.scss
@@ -2,9 +2,9 @@
//
// Dividers (basically an hr) within dropdowns and nav lists
-.nav-divider(@color: #e5e5e5) {
+@mixin nav-divider($color: #e5e5e5) {
height: 1px;
- margin: ((@line-height-computed / 2) - 1) 0;
+ margin: (($line-height-computed / 2) - 1) 0;
overflow: hidden;
- background-color: @color;
+ background-color: $color;
}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/nav-vertical-align.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_nav-vertical-align.scss
index d458c78613e..c8fbf1a7d67 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/nav-vertical-align.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_nav-vertical-align.scss
@@ -3,7 +3,7 @@
// Vertically center elements in the navbar.
// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
-.navbar-vertical-align(@element-height) {
- margin-top: ((@navbar-height - @element-height) / 2);
- margin-bottom: ((@navbar-height - @element-height) / 2);
+@mixin navbar-vertical-align($element-height) {
+ margin-top: (($navbar-height - $element-height) / 2);
+ margin-bottom: (($navbar-height - $element-height) / 2);
}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_opacity.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_opacity.scss
new file mode 100644
index 00000000000..88e9a576abd
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_opacity.scss
@@ -0,0 +1,8 @@
+// Opacity
+
+@mixin opacity($opacity) {
+ opacity: $opacity;
+ // IE8 filter
+ $opacity-ie: ($opacity * 100);
+ filter: alpha(opacity=$opacity-ie);
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_pagination.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_pagination.scss
new file mode 100644
index 00000000000..d4a5404fce2
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_pagination.scss
@@ -0,0 +1,24 @@
+// Pagination
+
+@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
+ > li {
+ > a,
+ > span {
+ padding: $padding-vertical $padding-horizontal;
+ font-size: $font-size;
+ line-height: $line-height;
+ }
+ &:first-child {
+ > a,
+ > span {
+ @include border-left-radius($border-radius);
+ }
+ }
+ &:last-child {
+ > a,
+ > span {
+ @include border-right-radius($border-radius);
+ }
+ }
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_panels.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_panels.scss
new file mode 100644
index 00000000000..3ff31ae51ee
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_panels.scss
@@ -0,0 +1,24 @@
+// Panels
+
+@mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {
+ border-color: $border;
+
+ & > .panel-heading {
+ color: $heading-text-color;
+ background-color: $heading-bg-color;
+ border-color: $heading-border;
+
+ + .panel-collapse > .panel-body {
+ border-top-color: $border;
+ }
+ .badge {
+ color: $heading-bg-color;
+ background-color: $heading-text-color;
+ }
+ }
+ & > .panel-footer {
+ + .panel-collapse > .panel-body {
+ border-bottom-color: $border;
+ }
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/progress-bar.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_progress-bar.scss
index f07996a34db..90a62afc2d6 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/progress-bar.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_progress-bar.scss
@@ -1,10 +1,10 @@
// Progress bars
-.progress-bar-variant(@color) {
- background-color: @color;
+@mixin progress-bar-variant($color) {
+ background-color: $color;
// Deprecated parent class requirement as of v3.2.0
.progress-striped & {
- #gradient > .striped();
+ @include gradient-striped;
}
}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/reset-filter.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_reset-filter.scss
index 68cdb5e1860..bf73051200e 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/reset-filter.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_reset-filter.scss
@@ -3,6 +3,6 @@
// When you need to remove a gradient background, do not forget to use this to reset
// the IE filter for IE9 and below.
-.reset-filter() {
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
+@mixin reset-filter() {
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/reset-text.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_reset-text.scss
index 58dd4d19b4d..c9c28417fab 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/reset-text.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_reset-text.scss
@@ -1,11 +1,11 @@
-.reset-text() {
- font-family: @font-family-base;
+@mixin reset-text() {
+ font-family: $font-family-base;
// We deliberately do NOT reset font-size.
font-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
- line-height: @line-height-base;
+ line-height: $line-height-base;
text-align: left; // Fallback for where `start` is not supported
text-align: start;
text-decoration: none;
diff --git a/addons/web/static/lib/bootstrap/less/mixins/resize.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_resize.scss
index 3acd3afdbac..83fa6379179 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/resize.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_resize.scss
@@ -1,6 +1,6 @@
// Resize anything
-.resizable(@direction) {
- resize: @direction; // Options: horizontal, vertical, both
+@mixin resizable($direction) {
+ resize: $direction; // Options: horizontal, vertical, both
overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_responsive-visibility.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_responsive-visibility.scss
new file mode 100644
index 00000000000..cbdf7772397
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_responsive-visibility.scss
@@ -0,0 +1,21 @@
+// Responsive utilities
+
+//
+// More easily include all the states for responsive-utilities.less.
+// [converter] $parent hack
+@mixin responsive-visibility($parent) {
+ #{$parent} {
+ display: block !important;
+ }
+ table#{$parent} { display: table !important; }
+ tr#{$parent} { display: table-row !important; }
+ th#{$parent},
+ td#{$parent} { display: table-cell !important; }
+}
+
+// [converter] $parent hack
+@mixin responsive-invisibility($parent) {
+ #{$parent} {
+ display: none !important;
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_size.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_size.scss
new file mode 100644
index 00000000000..abbe2463ce8
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_size.scss
@@ -0,0 +1,10 @@
+// Sizing shortcuts
+
+@mixin size($width, $height) {
+ width: $width;
+ height: $height;
+}
+
+@mixin square($size) {
+ @include size($size, $size);
+}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/tab-focus.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_tab-focus.scss
index d12d23629f5..f16ed6428aa 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/tab-focus.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_tab-focus.scss
@@ -1,6 +1,6 @@
// WebKit-style focus
-.tab-focus() {
+@mixin tab-focus() {
// WebKit-specific. Other browsers will keep their default outline style.
// (Initially tried to also force default via `outline: initial`,
// but that seems to erroneously remove the outline in Firefox altogether.)
diff --git a/addons/web/static/lib/bootstrap/less/mixins/table-row.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_table-row.scss
index 0f287f1a8bd..136795081eb 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/table-row.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_table-row.scss
@@ -1,28 +1,28 @@
// Tables
-.table-row-variant(@state; @background) {
+@mixin table-row-variant($state, $background) {
// Exact selectors below required to override `.table-striped` and prevent
// inheritance to nested tables.
.table > thead > tr,
.table > tbody > tr,
.table > tfoot > tr {
- > td.@{state},
- > th.@{state},
- &.@{state} > td,
- &.@{state} > th {
- background-color: @background;
+ > td.#{$state},
+ > th.#{$state},
+ &.#{$state} > td,
+ &.#{$state} > th {
+ background-color: $background;
}
}
// Hover states for `.table-hover`
// Note: this is not available for cells or rows within `thead` or `tfoot`.
.table-hover > tbody > tr {
- > td.@{state}:hover,
- > th.@{state}:hover,
- &.@{state}:hover > td,
- &:hover > .@{state},
- &.@{state}:hover > th {
- background-color: darken(@background, 5%);
+ > td.#{$state}:hover,
+ > th.#{$state}:hover,
+ &.#{$state}:hover > td,
+ &:hover > .#{$state},
+ &.#{$state}:hover > th {
+ background-color: darken($background, 5%);
}
}
}
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_text-emphasis.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_text-emphasis.scss
new file mode 100644
index 00000000000..3b446c41524
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_text-emphasis.scss
@@ -0,0 +1,12 @@
+// Typography
+
+// [converter] $parent hack
+@mixin text-emphasis-variant($parent, $color) {
+ #{$parent} {
+ color: $color;
+ }
+ a#{$parent}:hover,
+ a#{$parent}:focus {
+ color: darken($color, 10%);
+ }
+}
diff --git a/addons/web/static/lib/bootstrap/less/mixins/text-overflow.less b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_text-overflow.scss
index c11ad2fb747..1593b25ea5c 100644
--- a/addons/web/static/lib/bootstrap/less/mixins/text-overflow.less
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_text-overflow.scss
@@ -1,7 +1,7 @@
// Text overflow
// Requires inline-block or block for proper styling
-.text-overflow() {
+@mixin text-overflow() {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
diff --git a/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_vendor-prefixes.scss b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_vendor-prefixes.scss
new file mode 100644
index 00000000000..b3d0371fa86
--- /dev/null
+++ b/addons/web/static/lib/bootstrap/scss/bootstrap/mixins/_vendor-prefixes.scss
@@ -0,0 +1,222 @@
+// Vendor Prefixes
+//
+// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
+// Autoprefixer in our Gruntfile. They have been removed in v4.
+
+// - Animations
+// - Backface visibility
+// - Box shadow
+// - Box sizing
+// - Content columns
+// - Hyphens
+// - Placeholder text
+// - Transformations
+// - Transitions
+// - User Select
+
+
+// Animations
+@mixin animation($animation) {
+ -webkit-animation: $animation;
+ -o-animation: $animation;
+ animation: $animation;
+}
+@mixin animation-name($name) {
+ -webkit-animation-name: $name;
+ animation-name: $name;
+}
+@mixin animation-duration($duration) {
+ -webkit-animation-duration: $duration;
+ animation-duration: $duration;
+}
+@mixin animation-timing-function($timing-function) {
+ -webkit-animation-timing-function: $timing-function;
+ animation-timing-function: $timing-function;
+}
+@mixin animation-delay($delay) {
+ -webkit-animation-delay: $delay;
+ animation-delay: $delay;
+}
+@mixin animation-iteration-count($iteration-count) {
+ -webkit-animation-iteration-count: $iteration-count;
+ animation-iteration-count: $iteration-count;
+}
+@mixin animation-direction($direction) {
+ -webkit-animation-direction: $direction;
+ animation-direction: $direction;
+}
+@mixin animation-fill-mode($fill-mode) {
+ -webkit-animation-fill-mode: $fill-mode;
+ animation-fill-mode: $fill-mode;
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden`
+
+@mixin backface-visibility($visibility) {
+ -webkit-backface-visibility: $visibility;
+ -moz-backface-visibility: $visibility;
+ backface-visibility: $visibility;
+}
+
+// Drop shadows
+//
+// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
+// supported browsers that have box shadow capabilities now support it.
+
+@mixin box-shadow($shadow...) {
+ -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
+ box-shadow: $shadow;
+}
+
+// Box sizing
+@mixin box-sizing($boxmodel) {
+ -webkit-box-sizing: $boxmodel;
+ -moz-box-sizing: $boxmodel;
+ box-sizing: $boxmodel;
+}
+
+// CSS3 Content Columns
+@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
+ -webkit-column-count: $column-count;
+ -moz-column-count: $column-count;
+ column-count: $column-count;
+ -webkit-column-gap: $column-gap;
+ -moz-column-gap: $column-gap;
+ column-gap: $column-gap;
+}
+
+// Optional hyphenation
+@mixin hyphens($mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: $mode;
+ -moz-hyphens: $mode;
+ -ms-hyphens: $mode; // IE10+
+ -o-hyphens: $mode;
+ hyphens: $mode;
+}
+
+// Placeholder text
+@mixin placeholder($color: $input-color-placeholder) {
+ // Firefox
+ &::-moz-placeholder {
+ color: $color;
+ opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
+ }
+ &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
+ &::-webkit-input-placeholder { color: $color; } // Safari and Chrome
+}
+
+// Transformations
+@mixin scale($ratio...) {
+ -webkit-transform: scale($ratio);
+ -ms-transform: scale($ratio); // IE9 only
+ -o-transform: scale($ratio);
+ transform: scale($ratio);
+}
+
+@mixin scaleX($ratio) {
+ -webkit-transform: scaleX($ratio);
+ -ms-transform: scaleX($ratio); // IE9 only
+ -o-transform: scaleX($ratio);
+ transform: scaleX($ratio);
+}
+@mixin scaleY($ratio) {
+ -webkit-transform: scaleY($ratio);
+ -ms-transform: scaleY($ratio); // IE9 only
+ -o-transform: scaleY($ratio);
+ transform: scaleY($ratio);
+}
+@mixin skew($x, $y) {
+ -webkit-transform: skewX($x) skewY($y);
+ -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
+ -o-transform: skewX($x) skewY($y);
+ transform: skewX($x) skewY($y);
+}
+@mixin translate($x, $y) {
+ -webkit-transform: translate($x, $y);
+ -ms-transform: translate($x, $y); // IE9 only
+ -o-transform: translate($x, $y);
+ transform: translate($x, $y);
+}
+@mixin translate3d($x, $y, $z) {
+ -webkit-transform: translate3d($x, $y, $z);
+ transform: translate3d($x, $y, $z);
+}
+@mixin rotate($degrees) {
+ -webkit-transform: rotate($degrees);
+ -ms-transform: rotate($degrees); // IE9 only
+ -o-transform: rotate($degrees);
+ transform: rotate($degrees);
+}
+@mixin rotateX($degrees) {
+ -webkit-transform: rotateX($degrees);
+ -ms-transform: rotateX($degrees); // IE9 only
+ -o-transform: rotateX($degrees);
+ transform: rotateX($degrees);
+}
+@mixin rotateY($degrees) {
+ -webkit-transform: rotateY($degrees);
+ -ms-transform: rotateY($degrees); // IE9 only
+ -o-transform: rotateY($degrees);
+ transform: rotateY($degrees);
+}
+@mixin perspective($perspective) {
+ -webkit-perspective: $perspective;
+ -moz-perspective: $perspective;
+ perspective: $perspective;
+}
+@mixin perspective-origin($perspective) {
+ -webkit-perspective-origin: $perspective;
+ -moz-perspective-origin: $perspective;
+ perspective-origin: $perspective;
+}
+@mixin transform-origin($origin) {
+ -webkit-transform-origin: $origin;
+ -moz-transform-origin: $origin;
+ -ms-transform-origin: $origin; // IE9 only
+ transform-origin: $origin;
+}
+
+
+// Transitions
+
+@mixin transition($transition...) {
+ -webkit-transition: $transition;
+ -o-transition: $transition;
+ transition: $transition;
+}
+@mixin transition-property($transition-property...) {
+ -webkit-transition-property: $transition-property;
+ transition-property: $transition-property;
+}
+@mixin transition-delay($transition-delay) {
+ -webkit-transition-delay: $transition-delay;
+ transition-delay: $transition-delay;
+}
+@mixin transition-duration($transition-duration...) {
+ -webkit-transition-duration: $transition-duration;
+ transition-duration: $transition-duration;
+}
+@mixin transition-timing-function($timing-function) {
+ -webkit-transition-timing-function: $timing-function;
+ transition-timing-function: $timing-function;
+}
+@mixin transition-transform($transition...) {
+ -webkit-transition: -webkit-transform $transition;
+ -moz-transition: -moz-transform $transition;
+ -o-transition: -o-transform $transition;
+ transition: transform $transition;
+}
+
+
+// User select
+// For selecting text on the page
+
+@mixin user-select($select) {
+ -webkit-user-select: $select;
+ -moz-user-select: $select;
+ -ms-user-select: $select; // IE10+
+ user-select: $select;
+}