diff options
| author | qsm-odoo <qsm@odoo.com> | 2018-01-30 17:01:02 +0100 |
|---|---|---|
| committer | qsm-odoo <qsm@odoo.com> | 2018-04-18 15:59:09 +0200 |
| commit | 6096f2450152fb8c18ac29448b162b7d380c7b30 (patch) | |
| tree | 103adf96d1af70c378114b814121a4d7b671e9fb /addons/web/static/lib/bootstrap | |
| parent | 1a007c1a9618a46d94f40c16f20157a70646ad25 (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')
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; +} |
