summaryrefslogtreecommitdiff
path: root/addons/web/static/src/scss
diff options
context:
space:
mode:
authorqsm-odoo <qsm@odoo.com>2018-07-27 12:42:10 +0200
committerqsm-odoo <qsm@odoo.com>2018-07-27 12:42:10 +0200
commit2b3017974bc7cd4b3a74f83c956224cfe4e5a918 (patch)
treeff6aab8dc6bfa7afbe9ef714ca157ebc0185d2fd /addons/web/static/src/scss
parent8ed8b46f6434a2a3adea69e0134317e30bf9b936 (diff)
parent519594e9cab9a6362ef7c3e911605e4507a0a008 (diff)
[MERGE] *: migrate Bootstrap 3.3.7 to 4.1.3
See sub-commits for details. task-49280 Closes https://github.com/odoo/odoo/pull/25045
Diffstat (limited to 'addons/web/static/src/scss')
-rw-r--r--addons/web/static/src/scss/animation.scss16
-rw-r--r--addons/web/static/src/scss/base_settings.scss81
-rw-r--r--addons/web/static/src/scss/bootstrap_overridden.scss212
-rw-r--r--addons/web/static/src/scss/bootstrap_overridden_frontend.scss3
-rw-r--r--addons/web/static/src/scss/bs_mixins_overrides.scss38
-rw-r--r--addons/web/static/src/scss/control_panel.scss31
-rw-r--r--addons/web/static/src/scss/data_export.scss34
-rw-r--r--addons/web/static/src/scss/datepicker.scss21
-rw-r--r--addons/web/static/src/scss/domain_selector.scss36
-rw-r--r--addons/web/static/src/scss/dropdown.scss21
-rw-r--r--addons/web/static/src/scss/dropdown_extra.scss6
-rw-r--r--addons/web/static/src/scss/dropdown_menu.scss29
-rw-r--r--addons/web/static/src/scss/fields.scss82
-rw-r--r--addons/web/static/src/scss/fields_extra.scss2
-rw-r--r--addons/web/static/src/scss/form_view.scss96
-rw-r--r--addons/web/static/src/scss/form_view_extra.scss4
-rw-r--r--addons/web/static/src/scss/import_bootstrap.scss1
-rw-r--r--addons/web/static/src/scss/import_bootstrap_part1.scss11
-rw-r--r--addons/web/static/src/scss/import_bootstrap_part2.scss40
-rw-r--r--addons/web/static/src/scss/kanban_column_progressbar.scss30
-rw-r--r--addons/web/static/src/scss/kanban_dashboard.scss42
-rw-r--r--addons/web/static/src/scss/kanban_examples_dialog.scss22
-rw-r--r--addons/web/static/src/scss/kanban_view.scss97
-rw-r--r--addons/web/static/src/scss/kanban_view_mobile.scss6
-rw-r--r--addons/web/static/src/scss/layout_background.scss20
-rw-r--r--addons/web/static/src/scss/layout_boxed.scss22
-rw-r--r--addons/web/static/src/scss/layout_clean.scss22
-rw-r--r--addons/web/static/src/scss/list_view.scss18
-rw-r--r--addons/web/static/src/scss/list_view_extra.scss2
-rw-r--r--addons/web/static/src/scss/modal.scss16
-rw-r--r--addons/web/static/src/scss/model_field_selector.scss28
-rw-r--r--addons/web/static/src/scss/navbar.scss58
-rw-r--r--addons/web/static/src/scss/pivot_view.scss4
-rw-r--r--addons/web/static/src/scss/primary_variables.scss36
-rw-r--r--addons/web/static/src/scss/progress_bar.scss2
-rw-r--r--addons/web/static/src/scss/rainbow.scss64
-rw-r--r--addons/web/static/src/scss/report.scss4
-rw-r--r--addons/web/static/src/scss/search_groupby_menu.scss16
-rw-r--r--addons/web/static/src/scss/search_view.scss45
-rw-r--r--addons/web/static/src/scss/search_view_extra.scss14
-rw-r--r--addons/web/static/src/scss/search_view_mobile.scss6
-rw-r--r--addons/web/static/src/scss/secondary_variables.scss19
-rw-r--r--addons/web/static/src/scss/tooltip.scss4
-rw-r--r--addons/web/static/src/scss/ui.scss10
-rw-r--r--addons/web/static/src/scss/ui_extra.scss10
-rw-r--r--addons/web/static/src/scss/utils.scss215
-rw-r--r--addons/web/static/src/scss/views.scss6
-rw-r--r--addons/web/static/src/scss/web_calendar.scss28
-rw-r--r--addons/web/static/src/scss/webclient.scss36
-rw-r--r--addons/web/static/src/scss/webclient_extra.scss9
-rw-r--r--addons/web/static/src/scss/webclient_layout.scss36
51 files changed, 809 insertions, 902 deletions
diff --git a/addons/web/static/src/scss/animation.scss b/addons/web/static/src/scss/animation.scss
index 92097a23298..d65a509bcad 100644
--- a/addons/web/static/src/scss/animation.scss
+++ b/addons/web/static/src/scss/animation.scss
@@ -144,19 +144,3 @@
transform: scale3d(1, 1, 1);
}
}
-
-/************** MIXINS for ANIMATIONS **************/
-@mixin o-display-marked($content, $top, $left, $color) {
- @include o-position-absolute($top: $top, $left: $left);
- font-size: 300px;
- font-family: "FontAwesome";
- content: $content;
- color: $color;
- @include o-transform-origin;
- @include o-animation(markAnim, 1s, ease-in-out, 0s, 1, normal, forwards);
-
- @media (max-width: $screen-sm-max) {
- left: 40%;
- font-size: 30vw;
- }
-}
diff --git a/addons/web/static/src/scss/base_settings.scss b/addons/web/static/src/scss/base_settings.scss
index 7cd25c7e578..436298872da 100644
--- a/addons/web/static/src/scss/base_settings.scss
+++ b/addons/web/static/src/scss/base_settings.scss
@@ -1,16 +1,16 @@
// MIXINS
-@mixin o-base-settings-horizontal-padding($padding-base: $padding-small-vertical) {
+@mixin o-base-settings-horizontal-padding($padding-base: $input-btn-padding-y-sm) {
padding: $padding-base $o-horizontal-padding;
- @media (min-width: $screen-lg-min) {
+ @include media-breakpoint-up(xl) {
padding-left: $o-horizontal-padding*2;;
}
}
// Use a very specif selector to overwrite generic form-view rules
.o_form_view.o_form_nosheet.o_base_settings {
- @include o-flex-display;
- @include o-flex-flow(column, nowrap);
+ display: flex;
+ flex-flow: column nowrap;
padding: 0px;
}
@@ -18,20 +18,20 @@
.o_base_settings {
height: 100%;
- @media (max-width: $screen-xs-max) {
- @include o-flex-flow(column, nowrap);
+ @include media-breakpoint-down(sm) {
+ flex-flow: column nowrap;
}
.o_control_panel {
.o_panel {
- @include o-flex-display;
- @include o-flex-flow(row, wrap);
+ display: flex;
+ flex-flow: row wrap;
margin-bottom: $o-sheet-vpadding*0.5;
width: 100%;
.title, .o_setting_search {
- @include o-flex(1, 0, auto);
- width: $screen-xs-min*0.5;
+ flex: 1 0 auto;
+ width: map-get($o-extra-grid-breakpoints, vsm) / 2;
}
.o_setting_search {
@@ -41,15 +41,15 @@
height: 28px;
padding: 0px;
border: 0px;
- border-bottom: 1px solid $gray-lighter-darker;
- border-color: $gray;
+ border-bottom: 1px solid gray('400');
+ border-color: gray('700');
box-shadow: none;
font-weight: 500;
}
.searchIcon {
@include o-position-absolute(4px, 0);
- color: $gray;
+ color: gray('700');
}
}
}
@@ -60,7 +60,7 @@
border: 0;
.btn-primary, .btn-link {
- padding: $padding-small-vertical $padding-small-horizontal;
+ padding: $btn-padding-y-sm $btn-padding-x-sm;
}
.btn-link {
@@ -70,34 +70,34 @@
}
.o_setting_container {
- @include o-flex-display;
- @include o-flex(1, 1, auto);
+ display: flex;
+ flex: 1 1 auto;
overflow: auto;
- @media (max-width: $screen-xs-max) {
- @include o-flex-flow(column, nowrap);
+ @include media-breakpoint-down(sm) {
+ flex-flow: column nowrap;
}
.settings_tab {
- @include o-flex-display;
- @include o-flex(0, 0, auto);
- @include o-flex-flow(column, nowrap);
- background: $gray-dark;
+ display: flex;
+ flex: 0 0 auto;
+ flex-flow: column nowrap;
+ background: gray('900');
overflow: auto;
padding-top: $o-horizontal-padding*0.5;
- @media (max-width: $screen-xs-max) {
- @include o-flex(0, 0, $o-base-settings-mobile-tabs-height);
- @include o-inline-flex-display;
+ @include media-breakpoint-down(sm) {
+ flex: 0 0 $o-base-settings-mobile-tabs-height;
+ display: inline-flex;
position: relative;
overflow: hidden;
padding: 0;
}
.selected {
- background-color: $gray-darker;
- box-shadow: inset 3px 0 0 $o-brand-optional;
+ background-color: gray('900');
+ box-shadow: inset 3px 0 0 $o-brand-primary;
.app_name {
color: white;
@@ -105,10 +105,10 @@
}
.tab {
- @include o-flex-display;
+ display: flex;
padding: 0 $o-horizontal-padding*2 0 $o-horizontal-padding;
height: 40px;
- color: $gray-lighter-darker;
+ color: gray('400');
font-size: 13px;
line-height: 40px;
cursor: pointer;
@@ -119,7 +119,7 @@
}
// Mobile Tabs
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
display: block;
@include o-position-absolute($left:100%);
@include size(auto, $o-base-settings-mobile-tabs-height);
@@ -128,8 +128,8 @@
font-size: 14px;
font-weight: 500;
line-height: inherit;
- @include o-transition(0.2s, all);
- @include o-transform(translate3d(0,0,0));
+ transition: 0.2s all ease 0s;
+ transform: translate3d(0,0,0);
.app_name {
display: block;
@@ -138,11 +138,11 @@
&:after {
content: '';
- background: $o-brand-optional;
+ background: $o-brand-primary;
opacity: 0;
@include o-position-absolute(auto, 0, 0, 0);
@include size(100%, 3px);
- @include o-transition(0.2s, all);
+ transition: 0.2s all ease 0s;
}
&.previous, &.before {
@@ -171,7 +171,7 @@
.settings {
position: relative;
- @include o-flex(1, 1, 100%);
+ flex: 1 1 100%;
background-color: $o-view-background-color;
overflow: auto;
@@ -179,7 +179,7 @@
h2 {
margin-bottom: 0;
@include o-base-settings-horizontal-padding;
- background-color: $gray-lighter;
+ background-color: gray('200');
font-size: 15px;
font-weight: bold;
@@ -190,19 +190,20 @@
}
.o_settings_container {
- max-width: $screen-md-min; // Provide a maximum container size to ensure readability
+ max-width: map-get($grid-breakpoints, lg); // Provide a maximum container size to ensure readability
@include o-base-settings-horizontal-padding(0);
}
}
.settingSearchHeader {
- @include o-flex-display;
+ display: flex;
margin: 30px 0 10px;
@include o-base-settings-horizontal-padding;
- background-color: $gray-lighter;
+ background-color: gray('200');
.icon {
- @include square(25px);
+ width: 25px;
+ height: 25px;
margin-right: 10px;
}
diff --git a/addons/web/static/src/scss/bootstrap_overridden.scss b/addons/web/static/src/scss/bootstrap_overridden.scss
index 9701ead0539..8d0cf644b62 100644
--- a/addons/web/static/src/scss/bootstrap_overridden.scss
+++ b/addons/web/static/src/scss/bootstrap_overridden.scss
@@ -1,85 +1,91 @@
-// ------------------------------------------------------------------
-// Bootstrap variables
-// ------------------------------------------------------------------
-
-//== Grid
-$grid-gutter-width: $o-horizontal-padding*2;
-
-//== Colors
-$brand-primary: $o-brand-primary;
-
-//== Greyscale
-$gray-base: #000;
-$gray-darker: lighten($gray-base, 13.5%);
-$gray-dark: lighten($gray-base, 20%);
-$gray: lighten($gray-base, 33.5%);
-$gray-light: $o-color-gray-light;
-$gray-lighter: $o-color-silver;
-
-//== Titles
-$font-size-h1: $o-font-size-base + 13px;
-$font-size-h2: $o-font-size-base + 7px;
-$font-size-h3: $o-font-size-base + 3px;
-$font-size-h4: $o-font-size-base + 2px;
-$font-size-h5: $o-font-size-base + 1px;
-$font-size-h6: $o-font-size-base;
-
-//== Scaffolding
+///
+/// This file is a copy of the bootstrap _variables.scss file where all the
+/// left-untouched variables definition have been removed.
+///
+
+//
+// Color system
+//
+
+// All of those are BS default
+$white: #fff !default;
+$gray-100: $o-gray-100 !default;
+$gray-200: #e9ecef !default;
+$gray-300: #dee2e6 !default;
+$gray-400: #ced4da !default;
+$gray-500: #adb5bd !default;
+$gray-600: #6c757d !default;
+$gray-700: #495057 !default;
+$gray-800: #343a40 !default;
+$gray-900: #212529 !default;
+$black: #000 !default;
+
+$primary: $o-brand-primary;
+$secondary: $white;
+
+// Body
+//
+// Settings for the `<body>` element.
+
$body-bg: $o-brand-secondary;
-$text-color: $o-main-text-color;
-$link-color: $o-brand-optional;
+$body-color: $o-main-text-color;
+
+// Links
+//
+// Style anchor elements.
+
$link-hover-decoration: none;
-//== Typography
+// Grid columns
+//
+// Set the number of columns and specify the width of the gutters.
+
+$grid-gutter-width: $o-horizontal-padding * 2;
+
+// Components
+//
+// Define common padding and border radius sizes and more.
+
+$border-radius: 3px;
+
+$component-active-color: $o-brand-primary;
+$component-active-bg: $gray-200;
+
+// Fonts
+//
+// Font, line-height, and color for body text, headings, and more.
+
$font-family-sans-serif: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif;
+
$font-size-base: $o-font-size-base;
-$headings-font-weight: bold;
$line-height-base: $o-line-height-base;
-//== Components
-$border-radius-base: 3px;
-$component-active-bg: $gray-lighter;
-$component-active-color: $o-brand-optional;
+$h1-font-size: $o-font-size-base * 2.0;
+$h2-font-size: $o-font-size-base * 1.5;
+$h3-font-size: $o-font-size-base * 1.3;
+$h4-font-size: $o-font-size-base * 1.2;
+$h5-font-size: $o-font-size-base * 1.1;
-//== Badges
-$badge-bg: $o-brand-optional;
-$badge-color: white;
-$badge-line-height: $o-line-height-base;
-$badge-font-weight: normal;
+$headings-font-weight: bold;
+
+// Tables
+//
+// Customizes the `.table` component with basic values, each used across all table variations.
+
+$table-accent-bg: #EFEFF8; // FIXME: expose
+$table-hover-bg: darken($table-accent-bg, 5%);
+
+// Dropdowns
+//
+// Dropdown menu container and contents.
+
+$dropdown-border-color: $gray-300;
-//== Breadcrumbs
-$breadcrumb-active-color: #777777;
-$breadcrumb-bg: $o-control-panel-background-color;
-$breadcrumb-color: #777777;
-$breadcrumb-padding-horizontal: 0;
-$breadcrumb-padding-vertical: 0;
-
-//== Buttons
-$btn-default-bg: white;
-$btn-default-border: #cccccc;
-$btn-default-color: $o-main-text-color;
-$btn-primary-bg: $o-brand-optional;
-$btn-primary-border: $o-brand-optional;
-$btn-primary-color: white;
-
-//== Dropdowns
-$dropdown-bg: white;
-$dropdown-border: $gray-lighter-dark;
-$dropdown-divider-bg: $gray-lighter-dark;
$dropdown-link-color: $o-main-text-color;
-$dropdown-link-hover-color: $gray-dark;
-$dropdown-link-hover-bg: $gray-lighter;
-$dropdown-link-active-color: $component-active-color;
-$dropdown-link-active-bg: $component-active-bg;
-$dropdown-link-disabled-color: $gray-light;
-$dropdown-header-color: $gray-light;
-
-//== Modals
-$modal-sm: 300px;
-$modal-md: 650px;
-$modal-lg: 980px;
-$modal-inner-padding: $o-horizontal-padding;
-$modal-title-padding: $o-horizontal-padding;
+$dropdown-link-hover-color: $gray-900;
+$dropdown-link-hover-bg: $gray-200;
+
+// Z-index master list
// Change the z-index of the modal-backdrop elements to be equal to the
// modal elements' ones. Bootstrap does not support multi-modals, and without
@@ -90,31 +96,45 @@ $modal-title-padding: $o-horizontal-padding;
// cannot happen in odoo though as modals are not hidden but removed from
// the DOM and are always put at the end of the body when opened.
//
-// Note that the variable $zindex-modal-background may be renamed/removed in
-// newer versions of bootstrap.
-//
// TODO the following code was disabled because it is saas-incompatible
//
-// $zindex-modal-background: $zindex-modal;
+// $zindex-modal-backdrop: $zindex-modal;
+
+// Navs
+
+$nav-tabs-link-active-bg: $white;
-//== Navs
-$nav-link-padding: 10px 15px;
$nav-pills-border-radius: 0;
-$nav-pills-active-link-hover-color: white;
-$nav-pills-active-link-hover-bg: $o-brand-optional;
-$nav-tabs-active-link-hover-bg: white;
-
-//== Navbar
-$navbar-height: $o-navbar-height - 2;
-$navbar-margin-bottom: 0;
-$navbar-inverse-bg: #222222;
-$navbar-inverse-link-color: #9d9d9d;
-$navbar-inverse-link-hover-bg: #222222;
-$navbar-inverse-toggle-hover-bg: #222222;
-$navbar-border-radius: 0;
-
-//== Tables
-$table-bg-accent: #efeff8; // FIXME: expose
-$table-bg-hover: darken($table-bg-accent,5%);
-
-$icon-font-path: "/web/static/lib/bootstrap/fonts/";
+$nav-pills-link-active-color: $white;
+$nav-pills-link-active-bg: $o-brand-primary;
+
+// Navbar
+
+// FIXME $navbar-height ? $navbar-margin-bottom ? $navbar-inverse-* ? $navbar-border-radius ?
+
+// Badges
+
+// FIXME $badge-bg, $badge-color, $badge-line-height ?
+$badge-font-weight: normal;
+
+// Modals
+
+// Padding applied to the modal body
+$modal-inner-padding: $o-horizontal-padding;
+
+// FIXME $modal-title-padding ?
+
+$modal-lg: 980px;
+$modal-md: 650px;
+
+// Breadcrumbs
+
+$breadcrumb-padding-y: 0;
+$breadcrumb-padding-x: 0;
+$breadcrumb-margin-bottom: 0;
+
+$breadcrumb-bg: $o-control-panel-background-color;
+// FIXME $breadcrumb-color ?
+$breadcrumb-active-color: #777777;
+
+// FIXME $icon-font-path ?
diff --git a/addons/web/static/src/scss/bootstrap_overridden_frontend.scss b/addons/web/static/src/scss/bootstrap_overridden_frontend.scss
index e69de29bb2d..19ced6c9d8f 100644
--- a/addons/web/static/src/scss/bootstrap_overridden_frontend.scss
+++ b/addons/web/static/src/scss/bootstrap_overridden_frontend.scss
@@ -0,0 +1,3 @@
+
+$black: black;
+$white: white;
diff --git a/addons/web/static/src/scss/bs_mixins_overrides.scss b/addons/web/static/src/scss/bs_mixins_overrides.scss
new file mode 100644
index 00000000000..fd08c94a217
--- /dev/null
+++ b/addons/web/static/src/scss/bs_mixins_overrides.scss
@@ -0,0 +1,38 @@
+//------------------------------------------------------------------------------
+// Bootstrap Mixins and Functions Extensions
+// Those will affect the way bootstrap is generated wherever bootstrap is used
+//------------------------------------------------------------------------------
+
+// Override background utilities so that they come with a default contrasted
+// color (especially useful in the frontend editor for example). Also modifies
+// the way .text-muted elements are rendered in those environments.
+@mixin bg-variant($parent, $color, $text-color: null) {
+ #{$parent} {
+ $-yiq-color: if($text-color, $text-color, color-yiq($color));
+ background-color: $color !important;
+ color: $-yiq-color; // not important so that text utilities still work
+
+ .text-muted {
+ color: rgba($-yiq-color, 0.4) !important;
+ }
+ }
+ a#{$parent},
+ button#{$parent} {
+ $-darken-color: darken($color, 10%);
+ @include hover-focus {
+ background-color: $-darken-color !important;
+ color: if($text-color, $text-color, color-yiq($-darken-color));
+ }
+ }
+}
+@mixin bg-gradient-variant($parent, $color, $text-color: null) {
+ #{$parent} {
+ $-yiq-color: if($text-color, $text-color, color-yiq($color));
+ background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;
+ color: $-yiq-color;
+
+ .text-muted {
+ color: rgba($-yiq-color, 0.4) !important;
+ }
+ }
+}
diff --git a/addons/web/static/src/scss/control_panel.scss b/addons/web/static/src/scss/control_panel.scss
index 13913bdf3d5..b4f7d189f9e 100644
--- a/addons/web/static/src/scss/control_panel.scss
+++ b/addons/web/static/src/scss/control_panel.scss
@@ -1,14 +1,13 @@
.o_control_panel {
- @include o-flex-display;
- @include o-flex-flow(row, wrap);
+ display: flex;
+ flex-flow: row wrap;
border-bottom: 1px solid darken($o-control-panel-background-color, 20%);
@include o-webclient-padding($top: 10px, $bottom: 10px);
background-color: $o-control-panel-background-color;
> .breadcrumb {
width: 50%;
- margin: 0px;
font-size: 18px;
> li {
@@ -36,8 +35,8 @@
}
> .o_cp_left {
- @include o-flex-display;
- @include o-justify-content(space-between);
+ display: flex;
+ justify-content: space-between;
width: 50%;
margin-top: 5px;
@@ -55,10 +54,10 @@
}
.o_form_binary_form span {
padding: 3px 25px;
- color: $btn-default-color;
+ color: $o-brand-primary;
}
.o_form_binary_form:hover {
- background-color: $table-bg-hover;
+ background-color: $table-hover-bg;
}
}
.o_sidebar_delete_attachment {
@@ -71,7 +70,7 @@
}
> .o_cp_right {
- @include o-flex-display;
+ display: flex;
width: 50%;
margin-top: 5px;
@@ -79,11 +78,11 @@
margin: auto 0 auto auto;
padding-left: 5px;
text-align: center;
- @include user-select(none);
+ user-select: none;
> div {
- @include o-flex-display;
- @include o-align-items(center);
+ display: flex;
+ align-items: center;
}
.o_pager_counter {
@@ -93,7 +92,7 @@
> .o_cp_switch_buttons > .btn:first-child {
margin-left: $o-horizontal-padding;
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
margin-left: $o-horizontal-padding - 6;
}
}
@@ -101,11 +100,11 @@
}
.o_x2m_control_panel {
- @include o-flex-display;
- @include o-flex-flow(row, wrap);
+ display: flex;
+ flex-flow: row wrap;
.o_cp_buttons {
- @include o-flex-display;
+ display: flex;
margin-right: auto;
> div {
margin-top: 5px;
@@ -115,7 +114,7 @@
}
}
.o_cp_pager {
- @include o-flex-display;
+ display: flex;
margin-left: auto;
}
}
diff --git a/addons/web/static/src/scss/data_export.scss b/addons/web/static/src/scss/data_export.scss
index 17cec27d3a5..c03d13b355b 100644
--- a/addons/web/static/src/scss/data_export.scss
+++ b/addons/web/static/src/scss/data_export.scss
@@ -1,23 +1,23 @@
.o_web_client .o_export {
- @include o-flex(1, 1, auto);
- @include o-flex-display;
- @include o-flex-flow(column, nowrap);
+ flex: 1 1 auto;
+ display: flex;
+ flex-flow: column nowrap;
min-height: 0;
> p, > .row {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
.o_export_panel {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
position: relative;
min-height: 0;
> div {
height: 100%;
- @include o-flex-display;
- @include o-flex-flow(column, nowrap);
- @include o-justify-content(center);
+ display: flex;
+ flex-flow: column nowrap;
+ justify-content: center;
&.o_left_panel { // Needed because of chrome
@include o-position-absolute($top: 0, $bottom: 0, $left: 0, $right: 57%);
@@ -30,18 +30,18 @@
}
> h4, > div {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
> button {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
margin-top: 10px;
}
.o_left_field_panel, .o_fields_list {
border: 1px solid $o-brand-lightsecondary;
overflow: auto;
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
min-height: 0;
}
@@ -49,10 +49,10 @@
cursor: pointer;
position: relative;
padding-left: 20px;
- @include user-select(none);
+ user-select: none;
&.o_selected > .o_tree_column {
- background-color: $o-brand-primary;
+ background-color: $o-brand-odoo;
color: white;
}
@@ -74,16 +74,16 @@
}
.o_save_list, .o_exported_lists {
- @include o-flex-display;
- @include o-align-items(baseline);
+ display: flex;
+ align-items: baseline;
> label, > button {
margin: 0 0 5px;
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
> input, > select {
width: 0;
- @include o-flex(1, 0, auto);
+ flex: 1 0 auto;
}
}
}
diff --git a/addons/web/static/src/scss/datepicker.scss b/addons/web/static/src/scss/datepicker.scss
index d8d4ba1d520..c4df0ca2ed2 100644
--- a/addons/web/static/src/scss/datepicker.scss
+++ b/addons/web/static/src/scss/datepicker.scss
@@ -27,24 +27,29 @@
}
}
-// Need to put datetimepicker widget above everything else
-// The '.dropdown-menu' part is needed to override default bootstrap rule as
+
+// The 'div.dropdown-menu' part is needed to override default bootstrap rule as
// this file is unfortunately placed in common assets.
-.bootstrap-datetimepicker-widget.dropdown-menu {
+div.dropdown-menu.bootstrap-datetimepicker-widget{
+ // Need to put datetimepicker widget above everything else
z-index: $zindex-modal + 1;
+
+ // Also fix the dropdown width
+ width: auto;
+ min-width: 15rem;
}
.datepicker {
- .table-condensed {
+ .table-sm {
> thead {
color: white;
- background-color: $o-brand-primary;
+ background-color: $o-brand-odoo;
> tr {
&:first-child {
th:hover {
color: white;
- background-color: darken($o-brand-primary, 10%);
+ background-color: darken($o-brand-odoo, 10%);
}
}
@@ -62,12 +67,12 @@
> tr {
> td {
&.active, .active {
- background-color: $o-brand-optional;
+ background-color: $o-brand-primary;
border-radius: 100px;
}
&.today:before {
- border-bottom-color: $o-brand-optional;
+ border-bottom-color: $o-brand-primary;
}
}
}
diff --git a/addons/web/static/src/scss/domain_selector.scss b/addons/web/static/src/scss/domain_selector.scss
index 6755bed49e9..b35934973b9 100644
--- a/addons/web/static/src/scss/domain_selector.scss
+++ b/addons/web/static/src/scss/domain_selector.scss
@@ -9,12 +9,12 @@
// Rows in a domain node (selector) have a minimum height and holds the control panel
.o_domain_selector_row {
- @include o-flex-display;
- @include o-align-items(center);
+ display: flex;
+ align-items: center;
min-height: $o-domain-selector-row-height;
> * {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
> .o_domain_node_control_panel {
@@ -35,7 +35,7 @@
padding-left: 5px;
&:hover {
- color: $brand-danger;
+ color: theme-color('danger');
}
}
}
@@ -74,7 +74,7 @@
display: block;
margin-top: 16px;
padding: 8px 10px 12px;
- background: $gray-dark;
+ background: gray('900');
color: rgba(white, 0.5);
font-family: monospace;
font-weight: normal;
@@ -92,7 +92,7 @@
// Rules specific to domain parts which do not contain sub-domain parts
&.o_domain_leaf {
&.o_read_mode {
- @include o-inline-flex-display;
+ display: inline-flex;
margin-right: 4px;
}
@@ -119,21 +119,21 @@
}
> .o_domain_leaf_edition {
- @include o-flex-display;
+ display: flex;
width: 100%;
padding: 4px ($o-domain-selector-panel-space/2) 4px 0;
> * {
- @include o-flex(1, 1, 15%); // operator select
+ flex: 1 1 15%; // operator select
width: auto;
background-color: white;
&:first-child { // field selector
- @include o-flex(0, 1, 55%);
+ flex: 0 1 55%;
}
&:last-child { // field value
- @include o-flex(1, 1, 25%);
+ flex: 1 1 25%;
}
+ * {
@@ -146,13 +146,13 @@
}
.o_domain_leaf_value_tags {
- @include o-flex-display;
+ display: flex;
> * {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
> input {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
width: 0;
min-width: 50px;
}
@@ -164,7 +164,7 @@
}
// Animation effects
- @include o-transition(margin-bottom, .05s, ease, .05s);
+ transition: margin-bottom .05s ease .05s;
&::after {
content: "";
@@ -172,8 +172,8 @@
display: block;
height: $o-domain-animation-bar-height;
max-height: 0;
- @include o-linear-gradient(45deg, rgba($o-brand-optional, 0.4), rgba($o-brand-optional, 0.1));
- @include o-transition(max-height, .05s, ease, .05s);
+ background-image: linear-gradient(45deg, rgba($o-brand-primary, 0.4), rgba($o-brand-primary, 0.1));
+ transition: max-height .05s ease .05s;
}
&.o_hover_btns, &.o_hover_add_node {
@@ -191,11 +191,11 @@
&.o_hover_add_node {
margin-bottom: $o-domain-animation-bar-height;
- @include o-transition(margin, .15s, ease, .5s);
+ transition: margin .15s ease .5s;
&::after {
max-height: $o-domain-animation-bar-height;
- @include o-transition(max-height, .15s, ease, .5s);
+ transition: max-height .15s ease .5s;
}
&.o_hover_add_inset_node::after {
left: $o-domain-selector-indent;
diff --git a/addons/web/static/src/scss/dropdown.scss b/addons/web/static/src/scss/dropdown.scss
index 7db8b2fcb3c..90deb20083f 100644
--- a/addons/web/static/src/scss/dropdown.scss
+++ b/addons/web/static/src/scss/dropdown.scss
@@ -5,7 +5,7 @@
.ui-autocomplete { // Copy style of bootstrap dropdown
background-image: none;
background-color: $dropdown-bg;
- border: 1px solid $dropdown-border;
+ border: $dropdown-border-width solid $dropdown-border-color;
font-size: $font-size-base;
padding: 5px 0px;
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
@@ -21,7 +21,7 @@
&.ui-state-focus {
background-image: none;
- background-color: $o-brand-primary;
+ background-color: $o-brand-odoo;
border: none;
font-weight: normal;
margin: 0;
@@ -29,7 +29,7 @@
&.o_m2o_dropdown_option {
padding-left: 20px;
> a {
- color: $o-brand-primary;
+ color: $o-brand-odoo;
}
}
}
@@ -41,7 +41,7 @@
.o_inline_dropdown {
position: relative;
- &> .dropdown-menu {
+ & > .dropdown-menu {
top: 0;
left: 100%;
}
@@ -52,9 +52,12 @@
}
@mixin dropdown-menu-mixin {
- .open .dropdown-menu > li {
- position: relative; // to allow absolute positionning inside the li
- > a {
+ .show .dropdown-menu {
+ > * {
+ position: relative; // to allow absolute positionning inside the items
+ }
+
+ .dropdown-item {
&:focus, &:active, &:focus:active {
outline: none;
}
@@ -62,11 +65,11 @@
@extend %dropdown-li-a-padding;
}
- &.dropdown-header {
+ .dropdown-header {
@extend %dropdown-li-a-padding;
color: $o-main-text-color;
- @media (max-width: $screen-sm-max) {
+ @include media-breakpoint-down(md) {
color: white;
text-decoration: underline;
}
diff --git a/addons/web/static/src/scss/dropdown_extra.scss b/addons/web/static/src/scss/dropdown_extra.scss
index c14144e02d3..ca57d9561f2 100644
--- a/addons/web/static/src/scss/dropdown_extra.scss
+++ b/addons/web/static/src/scss/dropdown_extra.scss
@@ -1,9 +1,9 @@
.ui-autocomplete .ui-menu-item {
&.ui-state-focus {
- background-color: $o-brand-primary;
+ background-color: $o-brand-odoo;
}
&.o_m2o_dropdown_option > a {
- color: $o-brand-primary;
+ color: $o-brand-odoo;
}
&.ui-state-focus > a,
&.ui-state-focus.o_m2o_dropdown_option > a {
@@ -41,7 +41,7 @@
margin: 0;
padding: 2px 8px;
&:hover {
- @include o-vertical-gradient(#f0f0fa, #eeeef6);
+ background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
box-shadow: none;
}
> a {
diff --git a/addons/web/static/src/scss/dropdown_menu.scss b/addons/web/static/src/scss/dropdown_menu.scss
index 8024783d3c2..8f5b0c1f00a 100644
--- a/addons/web/static/src/scss/dropdown_menu.scss
+++ b/addons/web/static/src/scss/dropdown_menu.scss
@@ -1,38 +1,23 @@
.o_dropdown_menu {
- > li.divider:first-child {
+ > .dropdown-divider:first-child {
display: none;
}
- max-height: calc(100vh - 125px);
+ max-height: calc(100vh - 125px); // FIXME
overflow: auto;
- .o_submenu_switcher {
- float:right;
- width: 25px;
- text-align: center;
- }
- .o_trash_button {
- float:right;
- + .o_submenu_switcher {
- margin-right: 6px;
- }
- }
- ul {
- list-style-type: none;
- padding-left: 20px;
- }
- li.o_menu_item {
+ .o_menu_item {
position: relative;
- > a {
+ > .dropdown-item {
color: $o-main-text-color;
- padding-right: 25px;
+
&:hover {
color: darken($o-main-text-color, 10%);
}
}
&.selected {
- > a {
+ > .dropdown-item {
color: darken($o-main-text-color, 10%);
font-weight: bold;
&:before {
@@ -43,7 +28,7 @@
}
}
}
- li.divider:first-child {
+ .dropdown-divider:first-child {
display: none;
}
.o_item_option {
diff --git a/addons/web/static/src/scss/fields.scss b/addons/web/static/src/scss/fields.scss
index 370fdc036b3..cbf0eec7d01 100644
--- a/addons/web/static/src/scss/fields.scss
+++ b/addons/web/static/src/scss/fields.scss
@@ -6,8 +6,8 @@
// Invalid
.o_field_invalid {
&.o_input, .o_input, &.o_form_label {
- color: $brand-danger!important;
- border-color: $brand-danger!important; // enterprise o_required_modifier rule overrides this without !important
+ color: theme-color('danger')!important;
+ border-color: theme-color('danger')!important; // enterprise o_required_modifier rule overrides this without !important
}
}
@@ -39,15 +39,15 @@
// Flex fields (inline)
&.o_field_many2one, &.o_field_radio, &.o_field_many2manytags, &.o_field_percent_pie, &.o_field_monetary, &.o_field_binary_file {
- @include o-inline-flex-display;
+ display: inline-flex;
> span, > button {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
}
// Dropdowns input (many2one, ...)
.o_input_dropdown {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
position: relative;
width: 100%;
@@ -75,28 +75,28 @@
// Monetary
&.o_field_monetary {
&.o_input {
- @include o-align-items(baseline);
+ align-items: baseline;
> input {
width: 100px;
- @include o-flex(1, 0, auto);
+ flex: 1 0 auto;
}
}
}
// Many2many tags
&.o_field_many2manytags {
- @include o-flex-flow(row, wrap);
- @include o-align-items(baseline);
+ flex-flow: row wrap;
+ align-items: baseline;
> .o_field_widget {
- @include o-flex(1, 0, 100px);
+ flex: 1 0 100px;
position: initial;
max-width: 100%;
}
> .badge {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
border: 0;
font-size: 12px;
color: white;
@@ -119,7 +119,7 @@
display: inline-block;
margin: 5px 5px 0 0; // FIXME was $o-kanban-inner-hmargin before scss convertion
border: 1px solid white;
- box-shadow: 0 0 0 1px $gray-lighter-dark;
+ box-shadow: 0 0 0 1px gray('300');
> a {
display: block;
@@ -225,7 +225,7 @@
// Specific success color for toggle_button widget
.fa.o_toggle_button_success {
- color: $brand-success;
+ color: theme-color('success');
}
// Handle widget
@@ -239,21 +239,21 @@
margin: 0px 0px 4px 4px;
padding: 1px 6px;
color: $o-main-color-muted;
- border: 1px solid $o-color-silver-dark;
+ border: 1px solid gray('300');
cursor: pointer;
&.active {
- color: $o-brand-optional;
- border-color: $o-brand-optional;
+ color: $o-brand-primary;
+ border-color: $o-brand-primary;
}
&:hover:not(.active) {
- color: darken($o-color-silver-dark, 30%);
- border-color: darken($o-color-silver-dark, 30%);
+ color: darken(gray('300'), 30%);
+ border-color: darken(gray('300'), 30%);
}
}
}
// Radio buttons
&.o_field_radio {
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
display: inline-block;
}
.o_radio_input {
@@ -261,17 +261,7 @@
}
.o_radio_item {
- @include o-flex(0, 0, auto);
- @include o-flex-display;
- @include o-align-items(center);
-
- > input {
- @include o-flex(0, 0, auto);
- margin: 0 $o-form-spacing-unit 0 0;
- }
- > label {
- margin: 0;
- }
+ flex: 0 0 auto;
}
&.o_horizontal {
@@ -281,7 +271,7 @@
}
&.o_vertical {
- @include o-flex-flow(column, nowrap);
+ flex-flow: column nowrap;
.o_radio_item {
margin-bottom: $o-form-spacing-unit;
}
@@ -290,7 +280,7 @@
// Percent pie
&.o_field_percent_pie {
- @include o-align-items(center);
+ align-items: center;
> .o_pie {
position: relative;
@@ -299,7 +289,7 @@
margin-right: 10px;
border-radius: 100%;
overflow: hidden;
- background-color: $o-brand-optional;
+ background-color: $o-brand-primary;
&:after { // Outside pie border to go over border-radius irregularities
content: " ";
@@ -311,7 +301,7 @@
.o_mask {
@include o-position-absolute(0, 0);
- @include o-transform-origin(0);
+ transform-origin: 0;
width: 50%;
height: 100%;
background-color: $o-view-background-color;
@@ -321,14 +311,14 @@
}
.o_pie_value {
- @include o-flex-display;
- @include o-justify-content(center);
- @include o-align-items(center);
+ display: flex;
+ justify-content: center;
+ align-items: center;
border-radius: 100%;
font-weight: 700;
- color: $o-brand-primary;
+ color: $o-brand-odoo;
}
}
}
@@ -351,7 +341,7 @@
width: 100%;
color: white;
- background-color: $o-brand-optional;
+ background-color: $o-brand-primary;
opacity: 0;
transition: opacity ease 400ms;
@@ -365,7 +355,7 @@
cursor: pointer;
}
}
- @media (max-width: $screen-xs-min) {
+ @include media-breakpoint-down(xs, $o-extra-grid-breakpoints) {
.o_form_image_controls{
position: initial;
opacity: 1;
@@ -375,10 +365,10 @@
margin: 0px;
text-align: center;
&.o_select_file_button{
- background: $o-brand-optional;
+ background: $o-brand-primary;
}
&.o_clear_file_button{
- background: $brand-danger;
+ background: theme-color('danger');
}
}
}
@@ -389,7 +379,7 @@
}
&.o_field_invalid > img {
- border: 1px solid $brand-danger;
+ border: 1px solid theme-color('danger');
}
}
@@ -417,9 +407,9 @@
&.o_field_copy {
position: relative;
border-radius: 5px;
- border: 1px solid $btn-primary-border;
- font-size: $font-size-small;
- color: $o-brand-optional;
+ border: 1px solid $primary;
+ font-size: $font-size-sm;
+ color: $o-brand-primary;
font-weight: $badge-font-weight;
text-align: center;
.o_clipboard_button {
diff --git a/addons/web/static/src/scss/fields_extra.scss b/addons/web/static/src/scss/fields_extra.scss
index 7e45291305f..47fca992eb5 100644
--- a/addons/web/static/src/scss/fields_extra.scss
+++ b/addons/web/static/src/scss/fields_extra.scss
@@ -43,7 +43,7 @@
margin-left: 5px;
&:after { // Outside pie border to go over border-radius irregularities
- border: 1px solid $o-brand-primary;
+ border: 1px solid $o-brand-odoo;
}
.o_pie_value {
diff --git a/addons/web/static/src/scss/form_view.scss b/addons/web/static/src/scss/form_view.scss
index f46de22e9db..730f5b9521b 100644
--- a/addons/web/static/src/scss/form_view.scss
+++ b/addons/web/static/src/scss/form_view.scss
@@ -16,7 +16,7 @@
}
.oe_inline {
width: auto!important;
- @media (min-width: $screen-xs-min) {
+ @include media-breakpoint-up(vsm, $o-extra-grid-breakpoints) {
&.o_inner_group {
width: 1px!important;
}
@@ -31,19 +31,19 @@
float: right!important;
}
- @media (min-width: $screen-xs-min) {
+ @include media-breakpoint-up(vsm, $o-extra-grid-breakpoints) {
.o_row {
&, &.o_field_widget { // Some field may want to use o_row as root and these rules must prevalue
- @include o-flex-display;
+ display: flex;
width: auto!important;
}
- @include o-align-items(baseline);
+ align-items: baseline;
min-width: 50px;
margin: 0 (-$o-form-spacing-unit/2);
> div, > span, > button, > label, > a, > input { // > * did not add a level of priority to the rule
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
width: auto!important;
margin-right: $o-form-spacing-unit/2;
margin-left: $o-form-spacing-unit/2;
@@ -57,7 +57,7 @@
padding-bottom: 0;
}
> .o_field_boolean {
- @include o-align-self(center);
+ align-self: center;
}
}
}
@@ -100,17 +100,17 @@
}
.oe_title {
- max-width: $container-sm - (2 * $o-horizontal-padding);
+ max-width: map-get($container-max-widths, md) - (2 * $o-horizontal-padding);
}
- @media (min-width: $screen-xs-min) {
+ @include media-breakpoint-up(vsm, $o-extra-grid-breakpoints) {
.o_row {
> .o_field_widget, > div {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
width: 0!important; // 3rd flex argument does not work with input (must be auto and real width 0)
&.o_field_boolean, &.o_priority {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
width: auto!important;
}
}
@@ -140,25 +140,25 @@
// Statusbar
.o_form_statusbar {
position: relative; // Needed for the "More" dropdown
- @include o-flex-display;
- @include o-justify-content(space-between);
+ display: flex;
+ justify-content: space-between;
padding-left: $o-horizontal-padding;
- border-bottom: 1px solid $gray-lighter-darker;
+ border-bottom: 1px solid gray('400');
background-color: $o-view-background-color;
> .o_statusbar_buttons, > .o_statusbar_status {
- @include o-flex-display;
- @include o-align-items(center);
- @include o-align-content(space-around);
+ display: flex;
+ align-items: center;
+ align-content: space-around;
}
> .o_field_widget {
- @include o-align-self(center);
+ align-self: center;
margin-bottom: 0px;
}
> .o_statusbar_buttons {
- @include o-flex-flow(row, wrap);
+ flex-flow: row wrap;
> .btn {
$o-statusbar-buttons-vmargin: 4px;
@@ -171,9 +171,9 @@
> .o_statusbar_status {
margin-left: auto;
- @include o-flex-flow(row-reverse, wrap-reverse);
- @include o-align-self(stretch);
- @include o-align-items(stretch);
+ flex-flow: row-reverse wrap-reverse;
+ align-self: stretch;
+ align-items: stretch;
overflow-x: hidden; // to prevent horizontal scroll due to last arrow
> .o_arrow_button {
@@ -182,17 +182,17 @@
font-weight: bold;
position: relative;
padding-left: $o-statusbar-arrow-width*2;
- color: $gray;
+ color: gray('700');
border-width: 0 0 0;
border-radius: 0;
- @include o-transition(all, 0.1s);
+ transition: all 0.1s ease 0s;
&:first-child {
padding-right: $o-horizontal-padding; // Compensate container padding
}
&:last-child {
padding-left: $o-horizontal-padding - 1;
- border-left: 1px solid $gray-lighter-darker;
+ border-left: 1px solid gray('400');
}
&:active {
@@ -203,7 +203,7 @@
opacity: 1.0;
color: $text-muted;
pointer-events: none;
- border-left: 1px solid $gray-lighter-dark;
+ border-left: 1px solid gray('300');
}
&:before, &:after {
@@ -215,34 +215,34 @@
border-bottom: ceil($o-statusbar-height/2) solid transparent;
border-right: none;
border-left: $o-statusbar-arrow-width solid $o-view-background-color;
- @include o-transition(border, 0.2s);
+ transition: border 0.2s ease 0s;
-moz-transform: scale(0.9999); // Smooth the triangle on firefox
}
&:not(.disabled) {
&:hover, &:active, &:focus {
- color: $o-brand-optional;
- background-color: $gray-lighter;
+ color: $o-brand-primary;
+ background-color: gray('200');
&:after {
- border-left-color: $gray-lighter;
+ border-left-color: gray('200');
}
}
}
&:before {
right: -$o-statusbar-arrow-width;
- border-left-color: $gray-lighter-dark;
+ border-left-color: gray('300');
}
&.btn-primary.disabled {
- color: $o-brand-primary;
+ color: $o-brand-odoo;
font-size: 11px;
- background-color: $gray-lighter;
+ background-color: gray('200');
cursor: default;
&:after {
- border-left-color: $gray-lighter;
+ border-left-color: gray('200');
}
}
@@ -274,7 +274,7 @@
padding: 5px 0 2px 0;
min-width: 100px;
- > li > .btn {
+ .dropdown-item.btn {
min-width: 100%;
margin-bottom: 3px;
}
@@ -349,7 +349,7 @@
width: 100%;
> .btn {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
padding: 0 10px;
}
}
@@ -361,7 +361,7 @@
// Makes extra buttons (e.g. m2o external button) overflow on the
// right padding of the parent element
.o_input_dropdown {
- @include o-flex(1, 0, auto);
+ flex: 1 0 auto;
}
}
@@ -377,7 +377,7 @@
// Separators
.o_horizontal_separator {
- font-size: $font-size-h2;
+ font-size: $h2-font-size;
margin: $o-form-spacing-unit 0;
&:empty {
height: $o-form-spacing-unit * 2;
@@ -425,7 +425,7 @@
// Text field with oe_inline class
.o_field_text.oe_inline {
width: 100%!important;
- @media (min-width: $screen-xs-min) {
+ @include media-breakpoint-up(vsm, $o-extra-grid-breakpoints) {
width: 45%!important;
}
}
@@ -463,7 +463,7 @@
.o_field_widget {
text-align: right;
- @include o-justify-content(flex-end);
+ justify-content: flex-end;
width: 100%;
}
}
@@ -475,7 +475,7 @@
.oe_subtotal_footer_separator {
width: 100%;
text-align: right;
- border-top: 1px solid $gray-lighter-dark;
+ border-top: 1px solid gray('300');
font-weight: bold;
font-size: 1.3em;
}
@@ -484,7 +484,7 @@
.o_address_format {
width: 100%;
.o_address_street, .o_address_country {
- @include o-flex-display;
+ display: flex;
}
.o_address_city {
@@ -559,7 +559,7 @@
// Timezone widget warning
.o_tz_warning {
- color: $brand-danger;
+ color: theme-color('danger');
cursor: help;
position: absolute;
margin-left: -40px;
@@ -675,11 +675,11 @@ label.o_light_label, .o_light_label label {
display: block;
> tr {
- @include o-flex-display;
- @include o-flex-flow(row, wrap);
+ display: flex;
+ flex-flow: row wrap;
> td {
- @include o-flex(1, 0, auto);
+ flex: 1 0 auto;
display: block;
max-width: 100%;
padding: 0;
@@ -718,9 +718,9 @@ label.o_light_label, .o_light_label label {
// Settings form views
.o_settings_container {
- @include o-flex-display;
- @include o-flex(0, 1, auto);
- @include o-flex-flow(row, wrap);
+ display: flex;
+ flex: 0 1 auto;
+ flex-flow: row wrap;
.o_setting_box:visible:nth-child(odd) {
clear: left;
}
diff --git a/addons/web/static/src/scss/form_view_extra.scss b/addons/web/static/src/scss/form_view_extra.scss
index 29c2512c1ab..cadce3f6809 100644
--- a/addons/web/static/src/scss/form_view_extra.scss
+++ b/addons/web/static/src/scss/form_view_extra.scss
@@ -75,7 +75,7 @@
.o_stat_value {
@include o-text-overflow(block);
font-weight: 700;
- color: $o-brand-primary;
+ color: $o-brand-odoo;
}
.o_stat_text {
@include o-text-overflow(block);
@@ -144,7 +144,7 @@
// Separators
.o_horizontal_separator {
- color: $o-brand-optional;
+ color: $o-brand-primary;
font-weight: bold;
}
diff --git a/addons/web/static/src/scss/import_bootstrap.scss b/addons/web/static/src/scss/import_bootstrap.scss
deleted file mode 100644
index cbd46a7afcf..00000000000
--- a/addons/web/static/src/scss/import_bootstrap.scss
+++ /dev/null
@@ -1 +0,0 @@
-@import "bootstrap";
diff --git a/addons/web/static/src/scss/import_bootstrap_part1.scss b/addons/web/static/src/scss/import_bootstrap_part1.scss
new file mode 100644
index 00000000000..09f4d3579ac
--- /dev/null
+++ b/addons/web/static/src/scss/import_bootstrap_part1.scss
@@ -0,0 +1,11 @@
+
+// This file is importing bootstrap. While a simple "import "bootstrap";"
+// should be enough, this does not allow overridding mixins. Overridding mixins
+// is necessary for some of our need and allow to generate more efficient CSS
+// than adding more rules. This file instead copies the first part of the
+// content of the "bootstrap.scss" files to allow adding mixin overrides in
+// between.
+
+@import "functions";
+@import "variables";
+@import "mixins";
diff --git a/addons/web/static/src/scss/import_bootstrap_part2.scss b/addons/web/static/src/scss/import_bootstrap_part2.scss
new file mode 100644
index 00000000000..c15793019ad
--- /dev/null
+++ b/addons/web/static/src/scss/import_bootstrap_part2.scss
@@ -0,0 +1,40 @@
+
+// This file is importing bootstrap. While a simple "import "bootstrap";"
+// should be enough, this does not allow overridding mixins. Overridding mixins
+// is necessary for some of our need and allow to generate more efficient CSS
+// than adding more rules. This file instead copies the second part of the
+// content of the "bootstrap.scss" files to allow adding mixin overrides in
+// between.
+
+@import "root";
+@import "reboot";
+@import "type";
+@import "images";
+@import "code";
+@import "grid";
+@import "tables";
+@import "forms";
+@import "buttons";
+@import "transitions";
+@import "dropdown";
+@import "button-group";
+@import "input-group";
+@import "custom-forms";
+@import "nav";
+@import "navbar";
+@import "card";
+@import "breadcrumb";
+@import "pagination";
+@import "badge";
+@import "jumbotron";
+@import "alert";
+@import "progress";
+@import "media";
+@import "list-group";
+@import "close";
+@import "modal";
+@import "tooltip";
+@import "popover";
+@import "carousel";
+@import "utilities";
+@import "print";
diff --git a/addons/web/static/src/scss/kanban_column_progressbar.scss b/addons/web/static/src/scss/kanban_column_progressbar.scss
index 2cb35d33a2e..5f16a222736 100644
--- a/addons/web/static/src/scss/kanban_column_progressbar.scss
+++ b/addons/web/static/src/scss/kanban_column_progressbar.scss
@@ -56,16 +56,16 @@
.o_kanban_counter {
position: relative;
- @include o-flex-display;
- @include o-align-items(center);
- @include o-transition(opacity, 0.3s);
+ display: flex;
+ align-items: center;
+ transition: opacity 0.3s ease 0s;
margin-bottom: $o-kanban-record-margin*2;
> .o_kanban_counter_progress {
width: 76%;
- height: $font-size-small;
+ height: $font-size-sm;
margin-bottom: 0;
- background-color: $gray-lighter-dark;
+ background-color: gray('300');
box-shadow: none;
.progress-bar {
@@ -81,7 +81,7 @@
.o_kanban_counter_label {
font-size: 10px;
- @include user-select(none);
+ user-select: none;
}
}
@@ -91,14 +91,14 @@
color: $headings-color;
text-align: right;
white-space: nowrap;
- @include o-transform-origin(right, center);
+ transform-origin: right center;
&.o_kanban_grow {
- @include o-animation(grow, 1s, ease);
+ animation: grow 1s ease 0s 1 normal none running;
}
&.o_kanban_grow_huge {
- @include o-animation(grow_huge, 1s, ease);
+ animation: grow_huge 1s ease 0s 1 normal none running;
}
// Target currency icon
@@ -112,16 +112,16 @@
}
.o_kanban_view .o_kanban_group {
- @include o-kanban-css-filter(success, $brand-success);
- @include o-kanban-css-filter(warning, $brand-warning);
- @include o-kanban-css-filter(danger, $brand-danger);
+ @include o-kanban-css-filter(success, theme-color('success'));
+ @include o-kanban-css-filter(warning, theme-color('warning'));
+ @include o-kanban-css-filter(danger, theme-color('danger'));
&.o_kanban_group_show {
- @include o-flex-display;
- @include o-flex-flow(column, nowrap);
+ display: flex;
+ flex-flow: column nowrap;
> * {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
}
}
diff --git a/addons/web/static/src/scss/kanban_dashboard.scss b/addons/web/static/src/scss/kanban_dashboard.scss
index e6317d4f89e..3330be5bba6 100644
--- a/addons/web/static/src/scss/kanban_dashboard.scss
+++ b/addons/web/static/src/scss/kanban_dashboard.scss
@@ -1,16 +1,16 @@
.o_kanban_view.o_kanban_dashboard {
// correctly display the no_content_helper in dashboards
- @include o-flex-flow(row, wrap);
+ flex-flow: row wrap;
.o_kanban_record {
position: relative;
- @include o-flex-display;
- @include o-flex-flow(column, nowrap);
- @include o-justify-content(space-between);
+ display: flex;
+ flex-flow: column nowrap;
+ justify-content: space-between;
padding: $o-kanban-dashboard-vpadding $o-kanban-dashboard-hpadding;
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
margin-bottom: 10px;
}
@@ -41,7 +41,7 @@
}
> .o_kanban_card_manage_section {
- border-bottom: 1px solid $gray-lighter-dark;
+ border-bottom: 1px solid gray('300');
margin-bottom: 10px;
> div {
@@ -55,9 +55,9 @@
max-width: 400px;
.row {
- @include o-flex-display;
- @include o-flex-flow(row, nowrap);
- @include o-justify-content(space-between);
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: space-between;
margin-left: 0;
margin-right: 0;
padding-left: $o-kanban-dashboard-dropdown-complex-gap*2;
@@ -65,14 +65,14 @@
}
div[class*="col-"] {
- @include o-flex(1, 1, percentage(100/3));
+ flex: 1 1 percentage(100/3);
padding-left: $o-kanban-dashboard-dropdown-complex-gap;
padding-right: $o-kanban-dashboard-dropdown-complex-gap;
> .o_kanban_card_manage_title {
- margin: ($line-height-computed / 2) 0;
+ margin: (($font-size-base * $line-height-base) / 2) 0;
color: $headings-color;
- font-size: $font-size-h5;
+ font-size: $h5-font-size;
font-weight: 500;
line-height: $headings-line-height;
}
@@ -82,7 +82,7 @@
}
.row.o_kanban_card_manage_settings {
- border-top: 1px solid $gray-lighter-dark;
+ border-top: 1px solid gray('300');
padding-top: $o-kanban-dashboard-dropdown-complex-gap*3;
.oe_kanban_colorpicker {
@@ -91,7 +91,7 @@
}
div[class*="col-"] + div[class*="col-"] {
- border-left: 1px solid $gray-lighter-dark;
+ border-left: 1px solid gray('300');
}
// Default options box
@@ -137,7 +137,7 @@
// Identify subtitles without classes
.o_kanban_primary_left .o_primary > span:nth-child(2) > strong {
font-weight: 500;
- font-size: $font-size-small;
+ font-size: $font-size-sm;
color: $text-muted;
}
@@ -154,10 +154,10 @@
}
.o_kanban_card_header + .container.o_kanban_card_content {
- @include o-flex(1, 0, auto);
- @include o-flex-display;
- @include o-flex-flow(column, nowrap);
- @include o-justify-content(space-between);
+ flex: 1 0 auto;
+ display: flex;
+ flex-flow: column nowrap;
+ justify-content: space-between;
margin-top: $o-kanban-dashboard-vpadding * 2;
padding-right: 0;
padding-left: 0;
@@ -176,8 +176,8 @@
margin-bottom: -$o-kanban-dashboard-vpadding;
&.bottom_block {
- border-top: 1px solid $gray-lighter-dark;
- background-color: $gray-lighter;
+ border-top: 1px solid gray('300');
+ background-color: gray('200');
padding-top: $o-kanban-dashboard-vpadding;
padding-bottom: $o-kanban-dashboard-vpadding;
}
diff --git a/addons/web/static/src/scss/kanban_examples_dialog.scss b/addons/web/static/src/scss/kanban_examples_dialog.scss
index a42962ed8f0..65eadc9e0b4 100644
--- a/addons/web/static/src/scss/kanban_examples_dialog.scss
+++ b/addons/web/static/src/scss/kanban_examples_dialog.scss
@@ -1,17 +1,17 @@
.o_kanban_examples_dialog {
- @include o-flex-display;
+ display: flex;
padding: 0px;
- background: $o-color-silver;
+ background: theme-color('light');
// sidebar
.o_kanban_examples_dialog_nav {
- @include o-flex(0, 0, auto);
- border-right: 1px solid $gray-lighter-dark;
+ flex: 0 0 auto;
+ border-right: 1px solid gray('300');
background: white;
> ul > li {
margin: 0;
- border-bottom: 1px solid $gray-lighter-dark;
+ border-bottom: 1px solid gray('300');
> a {
padding: 12px 15px;
@@ -23,7 +23,7 @@
}
&.active > a {
color: $headings-color;
- border-left-color: $o-brand-optional;
+ border-left-color: $o-brand-primary;
font-weight: bold;
}
}
@@ -31,28 +31,28 @@
// content
.o_kanban_examples_dialog_content {
- @include o-flex(1, 1, 100%);
+ flex: 1 1 100%;
.o_kanban_examples_description {
padding: 16px 16px 0;
text-align: justify;
}
.o_kanban_examples {
- @include o-flex-display;
+ display: flex;
padding: 0 6px;
.o_kanban_examples_group {
- @include o-flex(1, 1, 100%);
+ flex: 1 1 100%;
margin: 10px;
.o_kanban_examples_ghost {
padding: 5px;
margin-top: -1px;
- border: thin solid $gray-lighter-dark;
+ border: thin solid gray('300');
background-color: white;
.o_ghost_content {
height: 12px;
- background: $gray-lighter-dark;
+ background: gray('300');
&.o_ghost_tag {
display: inline-block;
width: 40%;
diff --git a/addons/web/static/src/scss/kanban_view.scss b/addons/web/static/src/scss/kanban_view.scss
index 4d00f1be3cf..c00e5ab0d26 100644
--- a/addons/web/static/src/scss/kanban_view.scss
+++ b/addons/web/static/src/scss/kanban_view.scss
@@ -1,27 +1,27 @@
// ------- Kanban View Layout -------
.o_kanban_view {
- @include o-flex-display;
- @include o-align-content(stretch);
+ display: flex;
+ align-content: stretch;
overflow-x: visible;
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
padding: 0px!important;
overflow-x: auto;
}
.o_kanban_record, .o_kanban_quick_create {
padding: $o-kanban-inside-vgutter $o-kanban-inside-hgutter;
- border: 1px solid $gray-lighter-dark;
+ border: 1px solid gray('300');
background-color: white;
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
padding: $o-kanban-inside-vgutter $o-kanban-inside-hgutter-mobile;
}
&:focus, &:focus-within {
- -webkit-box-shadow: 1px 1px 1px 0px $gray-light;
- -moz-box-shadow: 1px 1px 1px 0px $gray-light;
- box-shadow: 1px 1px 1px 0px $gray-light;
+ -webkit-box-shadow: 1px 1px 1px 0px gray('600');
+ -moz-box-shadow: 1px 1px 1px 0px gray('600');
+ box-shadow: 1px 1px 1px 0px gray('600');
z-index: 1; // show the shadow on top of the previous & next cards in grouped mode
outline: none;
}
@@ -43,7 +43,7 @@
.o_kanban_record {
position: relative;
display: inline-block; // Force the creation of a block formatting context to clear float items
- border-color: $gray-lighter-darker;
+ border-color: gray('400');
min-width: 150px;
margin: 0 0 -1px;
@@ -61,11 +61,11 @@
}
.o_kanban_record_top, .o_kanban_record_bottom {
- @include o-flex-display;
+ display: flex;
}
.o_kanban_record_top {
- @include o-align-items(flex-start);
+ align-items: flex-start;
.o_dropdown_kanban {
// For v11 layout, reset positioning to default to properly use
@@ -77,7 +77,7 @@
.o_kanban_record_headings {
line-height: 1.2;
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
// Ensure long word doesn't break out of container
word-wrap: break-word;
overflow: hidden;
@@ -95,12 +95,12 @@
.o_kanban_record_bottom {
.oe_kanban_bottom_left, .oe_kanban_bottom_right {
- @include o-flex-display;
- @include o-align-items(center);
+ display: flex;
+ align-items: center;
height: 20px;
}
.oe_kanban_bottom_left {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
> * {
margin-right: 6px;
@@ -113,7 +113,7 @@
}
}
.oe_kanban_bottom_right{
- @include o-flex(0, 1, auto);
+ flex: 0 1 auto;
.oe_kanban_avatar {
width: 20px;
@@ -122,9 +122,9 @@
}
}
.o_link_muted {
- color: $text-color;
+ color: $body-color;
&:hover {
- color: $brand-primary;
+ color: theme-color('primary');
text-decoration: underline;
}
}
@@ -142,7 +142,7 @@
.o_dropdown_kanban {
@include o-position-absolute($o-kanban-inside-vgutter, $o-kanban-inside-hgutter);
visibility: hidden;
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
visibility: visible;
}
@@ -150,7 +150,7 @@
@include o-kanban-dropdown;
margin: (-$o-kanban-inside-vgutter - 1px) (-$o-kanban-inside-hgutter - 1px) 0 0;
}
- &.open .dropdown-toggle {
+ &.show .dropdown-toggle {
@include o-kanban-dropdown-open;
}
.dropdown-menu {
@@ -159,7 +159,7 @@
}
}
- &:hover .o_dropdown_kanban, .o_dropdown_kanban.open {
+ &:hover .o_dropdown_kanban, .o_dropdown_kanban.show {
visibility: visible;
}
@@ -207,7 +207,7 @@
> button, > a {
@include o-position-absolute($right: $o-kanban-record-margin, $bottom: $o-kanban-record-margin);
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
right: $o-kanban-inside-hgutter-mobile;
}
}
@@ -219,9 +219,9 @@
}
&.ui-sortable-helper {
- @include o-transform(rotate(-3deg));
+ transform: rotate(-3deg);
box-shadow: 0 5px 25px -10px black;
- @include transition(transform 0.6s, box-shadow 0.3s);
+ transition: transform 0.6s, box-shadow 0.3s;
}
.o_attachment_image > img {
@@ -230,18 +230,18 @@
}
.o_progressbar {
- @include o-flex-display;
+ display: flex;
height: $o-kanban-progressbar-height;
.o_progressbar_title {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
.o_progress {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
margin-top: 3px;
}
.o_progressbar_value {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
width: auto;
height: 100%;
text-align: right;
@@ -258,7 +258,7 @@
+ div {
padding-left: $o-kanban-image-width + $o-kanban-inside-hgutter;
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
padding-left: $o-kanban-image-width + $o-kanban-inside-hgutter-mobile;
}
}
@@ -270,7 +270,7 @@
margin-bottom: $o-kanban-inner-hmargin*0.5;;
padding-left: 0;
list-style: none;
- font-size: $font-size-small;
+ font-size: $font-size-sm;
li {
margin-bottom: 2px;
@@ -279,11 +279,11 @@
}
.o_kanban_footer {
- @include o-flex-display;
- @include o-justify-content(space-between);
- @include o-align-items(center);
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
> * {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
}
@@ -305,7 +305,7 @@
&.o_kanban_grouped {
min-height: 100%;
padding: 0;
- background-color: $gray-lighter;
+ background-color: theme-color('light');
.o_kanban_record, .o_kanban_quick_create {
width: 100%;
@@ -320,14 +320,14 @@
// Kanban Grouped Layout - Column default
.o_kanban_group {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
padding: 0 $o-kanban-group-padding $o-kanban-group-padding $o-kanban-group-padding;
.o_kanban_header > .o_kanban_header_title {
@include o-kanban-header-title;
.o_column_title {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
@include o-text-overflow;
font-size: 16px;
font-weight: 500;
@@ -342,7 +342,7 @@
margin-left: $o-kanban-inside-hgutter*2;
}
- &:hover .o_kanban_config, .o_kanban_config.open {
+ &:hover .o_kanban_config, .o_kanban_config.show {
visibility: visible;
margin-left: $o-kanban-inside-hgutter;
}
@@ -430,7 +430,7 @@
.o_kanban_add_column {
display: inline-block;
padding: 10px 14px;
- background-color: $o-color-silver-dark;
+ background-color: gray('300');
}
.o_kanban_title {
margin-left: 10px;
@@ -443,7 +443,7 @@
height: 100%;
border: none;
box-shadow: 0 0 20px -10px;
- background-color: $gray-lighter;
+ background-color: theme-color('light');
.o_kanban_header {
height: 50px;
@@ -453,18 +453,13 @@
}
input, input:focus, input:hover {
- margin-top: 3px;
font-size: 16px;
background: transparent;
}
-
- .o_kanban_add {
- margin-left: 10px;
- }
}
.o_kanban_muted_record {
- background: $gray-lighter-dark;
+ background: gray('300');
height: 70px;
margin: 10px 0px;
}
@@ -474,19 +469,19 @@
// Kanban UN-grouped Layout
&.o_kanban_ungrouped {
- @include o-flex-flow(row, wrap);
- @include o-justify-content(flex-start);
+ flex-flow: row wrap;
+ justify-content: flex-start;
padding: $o-kanban-record-margin ($o-horizontal-padding - $o-kanban-record-margin);
.o_kanban_record {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
width: $o-kanban-default-record-width;
margin: ($o-kanban-record-margin * 0.5) $o-kanban-record-margin;
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
margin: 0 0 -1px 0;
- @include o-flex(1, 0, 100%);
+ flex: 1 0 100%;
}
&.o_kanban_ghost {
diff --git a/addons/web/static/src/scss/kanban_view_mobile.scss b/addons/web/static/src/scss/kanban_view_mobile.scss
index ed4e6ad8436..b74ae8aaea5 100644
--- a/addons/web/static/src/scss/kanban_view_mobile.scss
+++ b/addons/web/static/src/scss/kanban_view_mobile.scss
@@ -1,4 +1,4 @@
-@media (max-width: $screen-xs-max) {
+@include media-breakpoint-down(sm) {
.o_kanban_view.o_kanban_grouped {
display: block;
position: relative;
@@ -11,7 +11,7 @@
.o_kanban_mobile_tab {
@include o-position-absolute($left: 100%);
- @include o-transform(translateX(-50%));
+ transform: translateX(-50%);
height: $o-kanban-mobile-tabs-height;
padding: 10px;
font-size: 14px;
@@ -19,7 +19,7 @@
&.o_current {
font-weight: bold;
- border-bottom: 3px solid $o-brand-optional;
+ border-bottom: 3px solid $o-brand-primary;
}
.o_column_title {
white-space: nowrap;
diff --git a/addons/web/static/src/scss/layout_background.scss b/addons/web/static/src/scss/layout_background.scss
index e23b2585b50..400ba12789b 100644
--- a/addons/web/static/src/scss/layout_background.scss
+++ b/addons/web/static/src/scss/layout_background.scss
@@ -1,9 +1,9 @@
.o_background_footer, .o_background_header, .o_report_layout_background {
font-family: 'Lato';
- color: $gray;
+ color: gray('700');
}
.o_background_header {
- border-bottom: 1px solid $gray-lighter;
+ border-bottom: 1px solid gray('200');
.company_address {
min-width: 300px;
}
@@ -13,19 +13,19 @@
margin-right: 16px;
}
h3 {
- color: $o-brand-primary;
+ color: $o-brand-odoo;
font-weight: 700;
max-width: 300px;
}
}
.o_background_footer {
ul {
- border-top: 1px solid $o-brand-primary;
- border-bottom: 1px solid $o-brand-primary;
+ border-top: 1px solid $o-brand-odoo;
+ border-bottom: 1px solid $o-brand-odoo;
padding: 4px 0;
margin: 0 0 4px 0;
li {
- color: $o-brand-primary;
+ color: $o-brand-odoo;
}
}
}
@@ -36,10 +36,10 @@
background-repeat: no-repeat;
min-height: 900px;
thead tr th, h2 {
- color: $o-brand-primary;
+ color: $o-brand-odoo;
}
tbody {
- color: $gray;
+ color: gray('700');
tr:nth-child(odd) {
background-color: rgba(184, 171, 180, 0.2);
}
@@ -48,7 +48,7 @@
}
}
/*Total table*/
- .row > .col-xs-4 > table {
+ .row > .col-4 > table {
tr:nth-child(odd) {
background-color: transparent !important;
}
@@ -57,7 +57,7 @@
border-top: none !important;
}
tr:last-child td {
- color: $o-brand-primary;
+ color: $o-brand-odoo;
}
}
#total {
diff --git a/addons/web/static/src/scss/layout_boxed.scss b/addons/web/static/src/scss/layout_boxed.scss
index 92208945f45..426b3dd2aac 100644
--- a/addons/web/static/src/scss/layout_boxed.scss
+++ b/addons/web/static/src/scss/layout_boxed.scss
@@ -1,10 +1,10 @@
.o_boxed_footer, .o_boxed_header, .o_report_layout_boxed {
font-family: 'Lato';
- color: $gray;
+ color: gray('700');
font-size: 12px;
}
.o_boxed_header {
- border-bottom: 1px solid $gray-lighter;
+ border-bottom: 1px solid gray('200');
img {
max-height: 100px;
}
@@ -17,7 +17,7 @@
.o_boxed_footer {
margin-top: 200px;
white-space: nowrap;
- border-top: 3px solid $gray;
+ border-top: 3px solid gray('700');
ul {
margin: 4px 0;
}
@@ -26,7 +26,7 @@
// This is not a general rule since the id is not used in all the reports,
// we should make a general structure for report body to use it everywhere
#informations {
- border: 1px solid $gray;
+ border: 1px solid gray('700');
padding-top: 10px;
margin: 0;
}
@@ -34,28 +34,28 @@
text-transform: uppercase;
}
table {
- border: 1px solid $gray;
+ border: 1px solid gray('700');
thead {
tr th {
- border-bottom: 3px solid $gray !important;
+ border-bottom: 3px solid gray('700') !important;
text-transform: uppercase;
}
}
tbody {
- color: $gray;
+ color: gray('700');
tr {
td {
border-top: none;
- border-right: 1px solid $gray;
+ border-right: 1px solid gray('700');
}
td:last-child {
- background-color: $gray-lighter;
+ background-color: gray('200');
}
}
}
}
/*Total table*/
- .row > .col-xs-4 > table {
+ .row > .col-4 > table {
td {
border-right: none;
}
@@ -67,7 +67,7 @@
background-color: transparent;
}
tr:last-child td {
- background-color: $gray;
+ background-color: gray('700');
color: #fff;
}
}
diff --git a/addons/web/static/src/scss/layout_clean.scss b/addons/web/static/src/scss/layout_clean.scss
index 64ec2fd5245..06b2e808dd4 100644
--- a/addons/web/static/src/scss/layout_clean.scss
+++ b/addons/web/static/src/scss/layout_clean.scss
@@ -12,16 +12,16 @@
.o_clean_footer {
margin: 0 3px;
margin-top: 200px;
- border-top: 3px solid $o-brand-primary;
+ border-top: 3px solid $o-brand-odoo;
h4 {
- color: $o-brand-primary;
+ color: $o-brand-odoo;
font-weight: bolder;
}
.pagenumber {
width: 35px;
height: 35px;
- border: 3px solid $o-brand-primary;
- background-color: $o-brand-optional;
+ border: 3px solid $o-brand-odoo;
+ background-color: $o-brand-primary;
color: white;
padding-top: 6px;
text-align: center;
@@ -29,17 +29,17 @@
}
.o_report_layout_clean {
h1, h2, h3 {
- color: $o-brand-optional;
+ color: $o-brand-primary;
font-weight: bolder;
}
strong {
- color: $o-brand-primary;
+ color: $o-brand-odoo;
}
table {
thead {
- color: $o-brand-primary;
+ color: $o-brand-odoo;
tr th {
- border-top: 3px solid $o-brand-primary !important;
+ border-top: 3px solid $o-brand-odoo !important;
text-transform: uppercase;
}
tr th:last-child {
@@ -54,7 +54,7 @@
border-top: none;
}
tr:last-child td {
- border-bottom: 3px solid $o-brand-primary;
+ border-bottom: 3px solid $o-brand-odoo;
}
tr {
td {
@@ -66,13 +66,13 @@
}
}
/*Total table*/
- .row > .col-xs-4 {
+ .row > .col-4 {
width: 43%;
position: relative;
top: -20px;
> table {
tr:last-child td {
- border-top: 1px solid $gray-lighter !important;
+ border-top: 1px solid gray('200') !important;
}
tr:first-child td {
/*we could get rid of this rule if .border-black td would be terminated in report.scss*/
diff --git a/addons/web/static/src/scss/list_view.scss b/addons/web/static/src/scss/list_view.scss
index 27c10cda556..ba5cd8a4dab 100644
--- a/addons/web/static/src/scss/list_view.scss
+++ b/addons/web/static/src/scss/list_view.scss
@@ -5,10 +5,15 @@
background-color: $o-view-background-color;
margin-bottom: 0px;
+ // Don't understand why but without those, the list view appears broken
+ // in both form views and standalone list views.
+ border-collapse: initial;
+ border-spacing: 0;
+
// Checkbox in editable list
// should be clickable and activate the row
&.o_editable_list .o_data_row:not(.o_selected_row) .o_data_cell {
- .o_checkbox:not(.o_readonly_modifier) {
+ .custom-checkbox:not(.o_readonly_modifier) {
pointer-events: none;
}
}
@@ -41,7 +46,7 @@
.o_column_sortable {
position: relative;
- @include user-select(none); // Prevent unwanted selection while sorting
+ user-select: none; // Prevent unwanted selection while sorting
&::after {
font-family: FontAwesome;
@@ -96,11 +101,12 @@
}
.o_group_pager {
cursor: text;
- @include user-select(none);
+ user-select: none;
text-align: right;
- padding-top: 0;
- padding-bottom: 0;
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
.o_pager_previous, .o_pager_next {
+ max-height: 30px;
background-color: $o-list-group-header-color;
&:hover {
background-color: darken($o-list-group-header-color, 10%);
@@ -182,7 +188,7 @@
width: 16px; // to have some space on the right
}
.o_input {
- padding: $table-condensed-cell-padding;
+ padding: $table-cell-padding-sm;
background-color: white;
.o_input {
diff --git a/addons/web/static/src/scss/list_view_extra.scss b/addons/web/static/src/scss/list_view_extra.scss
index ec53efc6df5..83791ce42dd 100644
--- a/addons/web/static/src/scss/list_view_extra.scss
+++ b/addons/web/static/src/scss/list_view_extra.scss
@@ -5,6 +5,6 @@
}
tbody > tr.o_group_header {
- @include o-vertical-gradient(#fcfcfc, #dedede);
+ background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
}
}
diff --git a/addons/web/static/src/scss/modal.scss b/addons/web/static/src/scss/modal.scss
index 82faabfa3bc..5dc3c1eb7d0 100644
--- a/addons/web/static/src/scss/modal.scss
+++ b/addons/web/static/src/scss/modal.scss
@@ -31,7 +31,7 @@
}
- @media (min-width: $screen-sm-min) {
+ @include media-breakpoint-up(md) {
.modal-dialog {
height: 100%;
padding: 30px 0;
@@ -39,11 +39,11 @@
.modal-content {
max-height: 100%;
- @include o-flex-display;
- @include o-flex-flow(column, nowrap);
+ display: flex;
+ flex-flow: column nowrap;
.modal-header, .modal-footer {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
.modal-body {
@@ -54,15 +54,15 @@
&.o_dialog_error {
overflow: visible;
- @include o-flex-display;
- @include o-flex-flow(column, nowrap);
+ display: flex;
+ flex-flow: column nowrap;
> .alert, > button {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
> .o_error_detail {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
min-height: 0;
overflow: auto;
}
diff --git a/addons/web/static/src/scss/model_field_selector.scss b/addons/web/static/src/scss/model_field_selector.scss
index 0eec3e60049..1acd3b0cc90 100644
--- a/addons/web/static/src/scss/model_field_selector.scss
+++ b/addons/web/static/src/scss/model_field_selector.scss
@@ -3,9 +3,9 @@
position: relative;
> .o_field_selector_value {
- @include o-flex-display;
- @include o-flex-flow(row, wrap);
- @include o-align-items(center);
+ display: flex;
+ flex-flow: row wrap;
+ align-items: center;
height: 100%;
min-height: 20px; // needed when there is no value in it and used standalone
&:active, &:focus, &:active:focus {
@@ -19,15 +19,15 @@
margin-bottom: 1px;
}
> i {
- @include o-align-self(center);
+ align-self: center;
margin: 0 2px;
font-size: 10px;
}
}
> .o_field_selector_controls {
@include o-position-absolute(0, 0, 1px);
- @include o-flex-display;
- @include o-align-items(center);
+ display: flex;
+ align-items: center;
cursor: pointer;
}
@@ -51,7 +51,7 @@
.o_field_selector_popover_header {
color: white;
- background: $brand-primary;
+ background: theme-color('primary');
font-weight: bold;
padding: 5px 0 5px 0.4em;
@@ -67,14 +67,14 @@
&.o_prev_page {
left: 0;
- border-right: 1px solid darken($brand-primary, 10%);
+ border-right: 1px solid darken(theme-color('primary'), 10%);
}
&.o_field_selector_close {
right: 0;
- border-left: 1px solid darken($brand-primary, 10%);
+ border-left: 1px solid darken(theme-color('primary'), 10%);
}
&:hover {
- background: darken($brand-primary, 10%);
+ background: darken(theme-color('primary'), 10%);
}
}
&:before {
@@ -82,7 +82,7 @@
content: "";
border-left: $o-field-selector-arrow-height solid rgba(0, 0, 0, 0);
border-right: $o-field-selector-arrow-height solid rgba(0, 0, 0, 0);
- border-bottom: $o-field-selector-arrow-height solid $brand-primary;
+ border-bottom: $o-field-selector-arrow-height solid theme-color('primary');
}
}
.o_field_selector_popover_body {
@@ -110,15 +110,15 @@
}
.o_field_selector_relation_icon {
@include o-position-absolute($top: 0, $right: 0, $bottom: 0);
- @include o-flex-display;
- @include o-align-items(center);
+ display: flex;
+ align-items: center;
padding: 10px;
}
}
}
}
.o_field_selector_popover_footer {
- background: $brand-primary;
+ background: theme-color('primary');
padding: 5px 0.4em;
> input {
diff --git a/addons/web/static/src/scss/navbar.scss b/addons/web/static/src/scss/navbar.scss
index 770532d6693..aa1a2c23067 100644
--- a/addons/web/static/src/scss/navbar.scss
+++ b/addons/web/static/src/scss/navbar.scss
@@ -3,7 +3,7 @@
position: relative;
height: $o-navbar-height;
border-bottom: 1px solid $o-navbar-inverse-link-hover-bg;
- background-color: $o-brand-primary;
+ background-color: $o-brand-odoo;
color: white;
> a, > button {
@@ -17,7 +17,7 @@
color: inherit;
font-size: 18px;
- @include user-select(none);
+ user-select: none;
&:hover, &:focus {
background-color: $o-navbar-inverse-link-hover-bg;
@@ -32,13 +32,13 @@
display: block;
float: left;
margin-right: 35px;
- @include user-select(none);
+ user-select: none;
color: white;
font-size: 22px;
font-weight: 500;
line-height: $o-navbar-height;
- @media (max-width: $screen-sm-max) {
+ @include media-breakpoint-down(md) {
float: none;
margin: 0;
border-bottom: 1px solid $o-navbar-inverse-link-hover-bg;
@@ -86,21 +86,21 @@
width: $o-navbar-height;
text-align: center;
}
- &.open > ul {
+ &.show > ul {
padding: 0;
> li {
> a {
- background-color: $o-brand-primary;
+ background-color: $o-brand-odoo;
color: white;
border-bottom: 1px solid $o-brand-lightsecondary;
&.dropdown-toggle {
- background-color: lighten($o-brand-primary, 15%);
+ background-color: lighten($o-brand-odoo, 15%);
pointer-events: none; // hack to prevent clicking on it because dropdown always opened
}
}
- > ul { // remove dropdown-menu default style as it is nested in another one
+ > .dropdown-menu { // remove dropdown-menu default style as it is nested in another one
position: static;
float: none;
display: block;
@@ -115,27 +115,23 @@
&.o_menu_systray {
float: right;
- .open .dropdown-menu {
- left: auto;
- right: 0;
- }
}
}
- .open .dropdown-menu {
+ .dropdown-menu.show {
max-height: 90vh; // the dropdown should not overstep the viewport
min-width: 100%;
overflow: auto;
margin-top: 0;
@for $index from 3 through 5 {
- > li.o_menu_header_lvl_#{$index}, > li .o_menu_entry_lvl_#{$index} {
+ .o_menu_header_lvl_#{$index}, .o_menu_entry_lvl_#{$index} {
padding-left: $o-dropdown-hpadding + ($index - 2)*12px;
}
}
}
- .open .dropdown-toggle {
+ .show .dropdown-toggle {
background-color: $o-navbar-inverse-link-hover-bg;
}
.o_user_menu {
@@ -147,12 +143,12 @@
.oe_topbar_avatar {
height: 17px;
- @include o-transform(translateY(-2px));
+ transform: translateY(-2px);
}
}
- @media (max-width: $screen-sm-max) {
- @include o-transition(height, 200ms, linear);
+ @include media-breakpoint-down(md) {
+ transition: height 200ms linear 0s;
position: relative;
height: $o-navbar-height;
@@ -165,7 +161,7 @@
display: none;
}
- &.open .dropdown-menu {
+ .dropdown-menu.show {
max-height: none;
}
}
@@ -173,7 +169,7 @@
&.o_menu_sections {
width: 100%;
- > li.open .dropdown-menu {
+ .dropdown-menu.show {
position: static;
float: none;
background-color: transparent;
@@ -181,7 +177,7 @@
border: none;
overflow: visible;
- > li > a {
+ > .dropdown-item {
background-color: transparent;
color: inherit;
}
@@ -196,7 +192,7 @@
> li {
display: inline-block;
- &.open .dropdown-menu {
+ .dropdown-menu.show {
@include o-position-absolute($o-navbar-height, 0, 0, 0);
position: fixed;
width: auto;
@@ -211,7 +207,7 @@
}
}
-@media (max-width: $screen-sm-max) {
+@include media-breakpoint-down(md) {
body.o_mobile_menu_opened {
overflow: hidden;
height: 100%;
@@ -224,11 +220,11 @@
}
}
-@media (max-width: $screen-sm-max) {
- .o_switch_company_menu > .dropdown-menu {
- padding-top: 0px;
- li.bg-info {
- padding: 10px;
- }
- }
- }
+@include media-breakpoint-down(md) {
+ .o_switch_company_menu > .dropdown-menu {
+ padding-top: 0px;
+ .bg-info {
+ padding: 10px;
+ }
+ }
+}
diff --git a/addons/web/static/src/scss/pivot_view.scss b/addons/web/static/src/scss/pivot_view.scss
index 3efddd8eab2..d10c4997f43 100644
--- a/addons/web/static/src/scss/pivot_view.scss
+++ b/addons/web/static/src/scss/pivot_view.scss
@@ -5,7 +5,7 @@
// items corresponding to the clicked cell
&.o_enable_linking {
.o_pivot_cell_value:hover {
- color: $o-brand-optional;
+ color: $o-brand-primary;
cursor: pointer;
}
}
@@ -23,7 +23,7 @@
background-color: lighten($o-brand-secondary, 40%);
cursor: pointer;
white-space: nowrap;
- @include user-select(none);
+ user-select: none;
&:hover {
background-color: lighten($o-brand-secondary, 30%);
}
diff --git a/addons/web/static/src/scss/primary_variables.scss b/addons/web/static/src/scss/primary_variables.scss
index b394aeafe26..0f7f43411c4 100644
--- a/addons/web/static/src/scss/primary_variables.scss
+++ b/addons/web/static/src/scss/primary_variables.scss
@@ -4,20 +4,21 @@
///
// Font sizes
-$o-font-size-base: 13px;
-$o-line-height-base: 1.428571429; // This is BS default
+$o-root-font-size: 13px;
+$o-font-size-base: 1rem;
+$o-line-height-base: 1.5; // This is BS default
// Colors
-$o-brand-primary: #7c7bad;
-$o-brand-optional: #7c7bad;
+$o-community-color: #7C7BAD;
+$o-enterprise-color: #875A7B;
+
+$o-brand-odoo: $o-community-color;
+$o-brand-primary: $o-community-color;
+
$o-brand-secondary: #f0eeee;
$o-brand-lightsecondary: #e2e2e0;
-$o-color-silver: #F9F9F9;
-$o-color-silver-dark: #E5E5E5;
-$o-color-silver-darker: #d9d7d7;
-$o-color-gray-light: lighten(#000, 46.7%); // This is BS default
+$o-gray-100: #f8f9fa; // This is BS default
-$o-color-pink: #875A7B; // Enterprise $o-brand-primary
$o-main-color-muted: #a8a8a8;
$o-main-text-color: #4c4c4c;
@@ -36,8 +37,21 @@ $o-tooltip-text-color: #777777;
$o-tooltip-title-text-color: #4c4c4c;
// Layout
-$screen-xs-min: 475px;
-$screen-xl-min: 1534px;
+//
+// Extension of BS4. This is not redefining the BS4 variable directly as we only
+// need the extra ones for media queries (not creating new breakpoint classes).
+// Note: default BS4 values are hardcoded here while it should be possible to
+// merge with the default BS variable (but we would have to take care of
+// ordering & cie).
+$o-extra-grid-breakpoints: (
+ xs: 0,
+ vsm: 475px,
+ sm: 576px,
+ md: 768px,
+ lg: 992px,
+ xl: 1200px,
+ xxl: 1534px,
+);
$o-form-group-cols: 12;
$o-form-spacing-unit: 5px;
diff --git a/addons/web/static/src/scss/progress_bar.scss b/addons/web/static/src/scss/progress_bar.scss
index 8aaade8812f..71af77082f6 100644
--- a/addons/web/static/src/scss/progress_bar.scss
+++ b/addons/web/static/src/scss/progress_bar.scss
@@ -23,7 +23,7 @@
}
.o_progressbar_complete {
- background-color: $o-brand-optional;
+ background-color: $o-brand-primary;
height: 100%;
}
}
diff --git a/addons/web/static/src/scss/rainbow.scss b/addons/web/static/src/scss/rainbow.scss
index 8a705242adc..fa666fca246 100644
--- a/addons/web/static/src/scss/rainbow.scss
+++ b/addons/web/static/src/scss/rainbow.scss
@@ -10,31 +10,31 @@
z-index: $zindex-modal;
padding: 50px;
margin: -5% auto 0 (-$reward-size / 2);
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
margin: -5% auto 0 (-$reward-size-mobile / 2);
}
background-image: -webkit-radial-gradient(#EDEFF4 30%, transparent 70%, transparent);
background-image: -o-radial-gradient(#EDEFF4 30%, transparent 70%, transparent);
background-image: radial-gradient(#EDEFF4 30%, transparent 70%, transparent);
- @include o-animation(reward-fading, $reward-base-time * 0.5, ease-in-out, 0s, 1, normal, forwards);
+ animation: reward-fading ($reward-base-time * 0.5) ease-in-out 0s 1 normal forwards;
@include o-position-absolute(20%, auto, auto, 50%);
@include size($reward-size, $reward-size);
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
@include size($reward-size-mobile, $reward-size-mobile);
}
&.o_reward_fading {
display: block;
- @include o-animation(reward-fading-reverse, ($reward-base-time * 0.4), ease-in-out, 0s, 1, normal, forwards);
+ animation: reward-fading-reverse ($reward-base-time * 0.4) ease-in-out 0s 1 normal forwards;
.o_reward_face_group {
- @include o-animation(reward-jump-reverse, ($reward-base-time * 0.4), ease-in-out, 0s, 1, normal, forwards);
+ animation: reward-jump-reverse ($reward-base-time * 0.4) ease-in-out 0s 1 normal forwards;
}
.o_reward_rainbow {
path {
- @include o-animation(reward-rainbow-reverse, ($reward-base-time * 0.5), ease-out, 0s, 1, normal, forwards);
+ animation: reward-rainbow-reverse ($reward-base-time * 0.5) ease-out 0s 1 normal forwards;
}
}
@@ -51,13 +51,13 @@
fill: none;
stroke-linecap: round;
stroke-width: 21px;
- @include o-animation(reward-rainbow, ($reward-base-time ), ease-out, 0s, 1, normal, forwards);
+ animation: reward-rainbow $reward-base-time ease-out 0s 1 normal forwards;
}
}
.o_reward_face_group {
transform-origin: center;
- @include o-animation(reward-jump, $reward-base-time * 0.8, ease-in-out);
+ animation: reward-jump $reward-base-time * 0.8 ease-in-out 0s 1 normal none running;
@include o-position-absolute(6%, 0, 0, 0);
@include size(100%, 60%);
}
@@ -68,14 +68,14 @@
position: relative;
border-radius: 100%;
background: center center / contain no-repeat;
- @include o-animation(reward-float, $reward-base-time, ease-in-out, $reward-base-time, infinite, alternate);
+ animation: reward-float $reward-base-time ease-in-out $reward-base-time infinite alternate;
@include size(34%, 56.67%);
}
.o_reward_stars {
display: block;
@include size($reward-size * 0.75, $reward-size / 2);
- @media (max-width: $screen-xs-max) {
+ @include media-breakpoint-down(sm) {
@include size($reward-size-mobile * 0.75, $reward-size-mobile / 2);
}
@include o-position-absolute(18%, 7%);
@@ -83,10 +83,10 @@
svg {
transform-origin: center center;
@include o-position-absolute(28%, $left:3%);
- @include o-animation(reward-stars, $reward-base-time, ease-in-out, 0s, infinite, alternate-reverse);
+ animation: reward-stars $reward-base-time ease-in-out 0s infinite alternate-reverse;
&.star2, &.star4 {
- @include o-animation(reward-stars, ($reward-base-time*1.2), ease-in-out, 0s, infinite, alternate);
+ animation: reward-stars ($reward-base-time*1.2) ease-in-out 0s infinite alternate;
}
&.star2 {
@@ -110,7 +110,7 @@
.o_reward_thumbup {
width: 40px;
display: block;
- @include o-animation(reward-scale, $reward-base-time * 0.5, ease-in-out, 0s, infinite, alternate);
+ animation: reward-scale ($reward-base-time * 0.5) ease-in-out 0s infinite alternate;
@include o-position-absolute(63%, auto, auto, 65%);
}
@@ -121,9 +121,9 @@
margin-left: 15%;
// Translate before animate
- @include o-transform(translateY(5px));
+ transform: translateY(5px);
- @include o-animation(reward-float, $reward-base-time, ease-in-out, $reward-base-time, infinite, alternate-reverse);
+ animation: reward-float $reward-base-time ease-in-out $reward-base-time infinite alternate-reverse;
@include o-position-absolute(85%, auto, auto, 0%);
.o_reward_thumb_right {
@@ -155,16 +155,16 @@
}
.o_reward_shadow_container {
- @include o-transform(translateY(0px) rotateZ(0));
- @include o-animation(reward-float, $reward-base-time, ease-in-out, $reward-base-time, infinite, alternate);
+ transform: translateY(0px) rotateZ(0);
+ animation: reward-float $reward-base-time ease-in-out $reward-base-time infinite alternate;
}
.o_reward_shadow {
@include size(100%, 12px);
background-color: #e7eaf0;
border-radius: 100%;
- @include o-transform(scale(0.8) rotateZ(0));
- @include o-animation(reward-scale, $reward-base-time, ease-in-out, $reward-base-time, infinite, alternate);
+ transform: scale(0.8) rotateZ(0);
+ animation: reward-scale $reward-base-time ease-in-out $reward-base-time infinite alternate;
@include o-position-absolute(auto, auto, -40px, 0);
}
}
@@ -187,25 +187,25 @@
@keyframes reward-jump {
0% {
- @include o-transform(scale(0.5));
+ transform: scale(0.5);
}
50% {
- @include o-transform(scale(1.05));
+ transform: scale(1.05);
}
to {
- @include o-transform(scale(1));
+ transform: scale(1);
}
}
@keyframes reward-jump-reverse {
0% {
- @include o-transform(scale(1));
+ transform: scale(1);
}
50% {
- @include o-transform(scale(1.05));
+ transform: scale(1.05);
}
to {
- @include o-transform(scale(0.5));
+ transform: scale(0.5);
}
}
@@ -226,30 +226,30 @@
@keyframes reward-float {
from {
- @include o-transform(translateY(0px));
+ transform: translateY(0px);
}
to {
- @include o-transform(translateY(5px));
+ transform: translateY(5px);
}
}
@keyframes reward-stars {
from {
- @include o-transform(scale(0.3) rotate(0deg));
+ transform: scale(0.3) rotate(0deg);
}
50% {
- @include o-transform(scale(1.0) rotate(20deg));
+ transform: scale(1.0) rotate(20deg);
}
to {
- @include o-transform(scale(0.3) rotate(80deg));
+ transform: scale(0.3) rotate(80deg);
}
}
@keyframes reward-scale {
from {
- @include o-transform(scale(0.8));
+ transform: scale(0.8);
}
to {
- @include o-transform(scale(1.0));
+ transform: scale(1.0);
}
}
diff --git a/addons/web/static/src/scss/report.scss b/addons/web/static/src/scss/report.scss
index a2df1fbc69b..cce5c6d3be5 100644
--- a/addons/web/static/src/scss/report.scss
+++ b/addons/web/static/src/scss/report.scss
@@ -11,7 +11,7 @@ body {
}
/* See https://github.com/wkhtmltopdf/wkhtmltopdf/issues/1524 */
-.table-condensed {
+.table-sm {
> thead > tr > th {
border-bottom: none !important;
}
@@ -30,7 +30,7 @@ body {
}
/* Wkhtmltopdf doesn't support very well the media-print CSS (depends on the version) */
-.hidden-print{
+.d-print-none{
display: none;
}
diff --git a/addons/web/static/src/scss/search_groupby_menu.scss b/addons/web/static/src/scss/search_groupby_menu.scss
deleted file mode 100644
index 4092b4b5fb7..00000000000
--- a/addons/web/static/src/scss/search_groupby_menu.scss
+++ /dev/null
@@ -1,16 +0,0 @@
-// Group By
-.o_group_by_menu {
- @include o-selected-li;
-
- max-height: calc(100vh - 125px);
- overflow: auto;
-
- .o_add_group { // add button
- @include o-search-options-dropdown-custom-li;
- }
-
- .o_submenu_switcher {
- position: absolute;
- right: 0px;
- }
-}
diff --git a/addons/web/static/src/scss/search_view.scss b/addons/web/static/src/scss/search_view.scss
index 0ff5fd320e7..700c13f7e84 100644
--- a/addons/web/static/src/scss/search_view.scss
+++ b/addons/web/static/src/scss/search_view.scss
@@ -1,11 +1,10 @@
-@mixin o-search-options-dropdown-custom-li {
- margin: 3px 25px;
+@mixin o-search-options-dropdown-custom-item {
width: auto;
max-width: 250px;
}
.o_searchview {
- @include o-align-items(flex-end);
+ align-items: flex-end;
position: relative;
padding: 0 20px 1px 0;
@@ -15,25 +14,25 @@
}
.o_searchview_input_container {
- @include o-flex-display;
- @include o-flex-flow(row, wrap);
+ display: flex;
+ flex-flow: row wrap;
.o_searchview_facet {
$o-searchview-facet-remove-width: 18px;
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
max-width: 100%;
- @include o-flex-display;
+ display: flex;
position: relative;
margin: 1px 3px 0 0;
.o_searchview_facet_label {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
@include o-text-overflow;
padding: 0 3px;
color: white;
- @include o-flex-display;
- @include o-align-items(center);
+ display: flex;
+ align-items: center;
}
.o_facet_values {
@@ -43,10 +42,10 @@
}
}
.o_facet_remove {
- @include o-flex(0, 0, auto);
- @include o-flex-display;
- @include o-justify-content(center);
- @include o-align-items(center);
+ flex: 0 0 auto;
+ display: flex;
+ justify-content: center;
+ align-items: center;
@include o-position-absolute(0, 0, 0);
width: $o-searchview-facet-remove-width;
cursor: pointer;
@@ -54,7 +53,7 @@
}
.o_searchview_input {
width: 100px;
- @include o-flex(1, 0, auto);
+ flex: 1 0 auto;
}
.o_searchview_more {
@@ -107,7 +106,7 @@
display: inline-block;
cursor: pointer;
- @include user-select(none); // Prevent text selection when toggling the dropdowns
+ user-select: none; // Prevent text selection when toggling the dropdowns
> a { // dropdown togglers
color: $o-main-text-color;
&:hover {
@@ -116,7 +115,7 @@
color: darken($o-main-text-color, 10%);
}
}
- &.open > a {
+ &.show > a {
font-weight: bold;
color: darken($o-main-text-color, 10%);
}
@@ -130,7 +129,7 @@
a:before {
@include o-caret-right;
@include o-position-absolute($top: 50%, $left: 10px);
- margin-top: (-$caret-width-base);
+ margin-top: (-$caret-width);
}
}
.o_open_menu {
@@ -138,7 +137,7 @@
a:before {
@include o-caret-down;
@include o-position-absolute($top: 50%, $left: 10px);
- margin-top: (-$caret-width-base);
+ margin-top: (-$caret-width);
}
}
@@ -150,7 +149,7 @@
overflow: auto;
.o_filter_condition {
- @include o-search-options-dropdown-custom-li;
+ @include o-search-options-dropdown-custom-item;
margin-bottom: 8px;
.o_or_filter { // or between conditions
display: none; // hidden for the first condition
@@ -177,7 +176,7 @@
}
.o_add_filter_menu { // apply and add buttons
display: none; // Needed by the webclient
- @include o-search-options-dropdown-custom-li;
+ @include o-search-options-dropdown-custom-item;
}
.o_submenu_switcher {
position: absolute;
@@ -196,7 +195,7 @@
max-height: calc(100vh - 125px);
overflow: auto;
- .divider {display: none;} // hide the divider by default (no favorite)
+ .dropdown-divider {display: none;} // hide the divider by default (no favorite)
.o-searchview-custom-private, .o-searchview-custom-public {
.o-remove-filter {
@include o-position-absolute(50%, 12px);
@@ -212,6 +211,6 @@
}
.o_save_name { // save button
display: none; // hidden by default
- @include o-search-options-dropdown-custom-li;
+ @include o-search-options-dropdown-custom-item;
}
}
diff --git a/addons/web/static/src/scss/search_view_extra.scss b/addons/web/static/src/scss/search_view_extra.scss
index d2098a5f9c3..1deba51bfba 100644
--- a/addons/web/static/src/scss/search_view_extra.scss
+++ b/addons/web/static/src/scss/search_view_extra.scss
@@ -1,21 +1,21 @@
.o_searchview {
background-color: white;
border: 1px solid #ccc;
- border-radius: $border-radius-base;
+ border-radius: $border-radius;
padding: 1px 25px 3px 5px;
.o_searchview_facet {
- border: 1px solid $gray-light;
- background: lighten($o-brand-primary, 35%);
+ border: 1px solid gray('600');
+ background: lighten($o-brand-odoo, 35%);
.o_searchview_facet_label {
- background-color: $gray-light;
+ background-color: gray('600');
}
.o_facet_remove {
- color: $gray-light;
+ color: gray('600');
&:hover {
- color: $gray;
+ color: gray('700');
}
}
}
@@ -28,7 +28,7 @@
@include o-position-absolute($top: 6px, $right: 5px);
}
.o_searchview_autocomplete li.o-selection-focus {
- background-color: $o-brand-primary;
+ background-color: $o-brand-odoo;
> a {
color: white;
}
diff --git a/addons/web/static/src/scss/search_view_mobile.scss b/addons/web/static/src/scss/search_view_mobile.scss
index c36f5d39850..f5ccd133cc1 100644
--- a/addons/web/static/src/scss/search_view_mobile.scss
+++ b/addons/web/static/src/scss/search_view_mobile.scss
@@ -48,7 +48,7 @@
.o_dropdown {
width: 100%;
margin: 15px 5px 0px 5px;
- border: solid 1px darken($gray-lighter, 20%);
+ border: solid 1px darken(gray('200'), 20%);
}
.o_dropdown_toggler_btn {
@@ -66,7 +66,7 @@
width: 100%;
box-shadow: none;
border: none;
- color: $gray-light;
+ color: gray('600');
.divider {
margin: 0px;
}
@@ -85,4 +85,4 @@
z-index: 1000;
}
}
-} \ No newline at end of file
+}
diff --git a/addons/web/static/src/scss/secondary_variables.scss b/addons/web/static/src/scss/secondary_variables.scss
index 8ab2d5bc322..ee7f15eded6 100644
--- a/addons/web/static/src/scss/secondary_variables.scss
+++ b/addons/web/static/src/scss/secondary_variables.scss
@@ -1,30 +1,21 @@
-// Define $gray-lighter-dark as a minor bootstrap $gray-lighter variation used
-// for design purposes only (e.g. cards' borders). We avoid to overwrite the
-// default $gray-light because it is deeply used by bootstrap to define muted
-// elements.
-$gray-lighter-dark: $o-color-silver-dark;
-$gray-lighter-darker: $o-color-silver-darker;
-
-$o-webclient-background-color: $o-color-silver;
-$o-control-panel-background-color: $o-color-silver;
+$o-webclient-background-color: $o-gray-100;
+$o-control-panel-background-color: $o-gray-100;
$o-list-footer-color: $o-main-text-color;
$o-list-group-header-color: lighten($o-brand-lightsecondary, 10%);
// UI custom colors for tags, kanban records' colors, ...)
-$o-colors: $o-color-gray-light, #F06050, #F4A460, #F7CD1F, #6CC1ED, #814968,
+// Note: the first value is the old BS3 gray-light value
+$o-colors: lighten(#000, 46.7%), #F06050, #F4A460, #F7CD1F, #6CC1ED, #814968,
#EB7E7F, #2C8397, #475577, #D6145F, #30C381, #9365B8;
-$screen-xxs-max: ($screen-xs-min - 1);
-$screen-lg-max: ($screen-xl-min - 1);
-
$o-sheet-cancel-hpadding: $o-horizontal-padding;
$o-sheet-cancel-bpadding: $o-horizontal-padding;
$o-statusbar-arrow-width: $o-statusbar-height / 3;
$o-statusbar-disabled-bg: lighten($o-brand-lightsecondary, 7%);
-$o-navbar-inverse-link-hover-bg: darken($o-brand-primary, 10%);
+$o-navbar-inverse-link-hover-bg: darken($o-brand-odoo, 10%);
$o-datepicker-week-bg-color: lighten($o-datepicker-week-color, 30%);
diff --git a/addons/web/static/src/scss/tooltip.scss b/addons/web/static/src/scss/tooltip.scss
index 765db1292da..e40852dd6bc 100644
--- a/addons/web/static/src/scss/tooltip.scss
+++ b/addons/web/static/src/scss/tooltip.scss
@@ -9,7 +9,7 @@
max-width: 100vw;
background-color: $o-tooltip-background-color;
color: $o-tooltip-color;
- border-radius: $border-radius-base;
+ border-radius: $border-radius;
box-shadow: 0px 0px 1px 1px $o-brand-secondary;
padding: 5px;
@@ -17,7 +17,7 @@
text-align: left;
.oe_tooltip_string {
- background-color: $o-brand-primary;
+ background-color: $o-brand-odoo;
color: white;
font-weight: bold;
padding: 5px;
diff --git a/addons/web/static/src/scss/ui.scss b/addons/web/static/src/scss/ui.scss
index d88f21f83a1..d8c68853c0a 100644
--- a/addons/web/static/src/scss/ui.scss
+++ b/addons/web/static/src/scss/ui.scss
@@ -13,3 +13,13 @@
[aria-hidden="true"], [aria-hidden="1"] {
display: none!important;
}
+
+.dropdown-toggle {
+ white-space: nowrap;
+
+ &.o-no-caret {
+ &::before, &::after {
+ content: normal;
+ }
+ }
+}
diff --git a/addons/web/static/src/scss/ui_extra.scss b/addons/web/static/src/scss/ui_extra.scss
index 0d97c09092e..e69de29bb2d 100644
--- a/addons/web/static/src/scss/ui_extra.scss
+++ b/addons/web/static/src/scss/ui_extra.scss
@@ -1,10 +0,0 @@
-//------------------------------------------------------------------------------
-// Checkboxes
-//------------------------------------------------------------------------------
-div.o_checkbox {
- display: inline-block;
- vertical-align: sub;
- > input + span {
- display: none;
- }
-}
diff --git a/addons/web/static/src/scss/utils.scss b/addons/web/static/src/scss/utils.scss
index efb8dce7598..9f254c82ecd 100644
--- a/addons/web/static/src/scss/utils.scss
+++ b/addons/web/static/src/scss/utils.scss
@@ -14,119 +14,6 @@
}
// ------------------------------------------------------------------
-// Vendor prefixes
-// ------------------------------------------------------------------
-// Flex
-@mixin o-flex-display {
- display: -ms-flexbox;
- display: -moz-box;
- display: -webkit-box;
- display: -webkit-flex;
-
- display: flex;
-}
-@mixin o-inline-flex-display {
- display: -ms-inline-flexbox;
- display: -moz-inline-box;
- display: -webkit-inline-box;
- display: -webkit-inline-flex;
-
- display: inline-flex;
-}
-@mixin o-flex-flow($direction, $wrap) {
- -ms-flex-flow: $direction $wrap;
- -moz-flex-flow: $direction $wrap;
- -webkit-flex-flow: $direction $wrap;
-
- flex-flow: $direction $wrap;
-}
-@mixin o-flex($grow, $schrink, $basis) {
- -ms-flex: $grow $schrink $basis;
- -moz-flex: $grow $schrink $basis;
- -webkit-box-flex: $grow;
- -webkit-flex: $grow $schrink $basis;
-
- flex: $grow $schrink $basis;
-}
-@mixin o-justify-content($justify) {
- -moz-justify-content: $justify;
- -webkit-justify-content: $justify;
-
- justify-content: $justify;
-}
-@mixin o-align-content($align) {
- -webkit-align-content: $align;
-
- align-content: $align;
-}
-@mixin o-align-items($align) {
- -webkit-align-items: $align;
-
- align-items: $align;
-}
-@mixin o-align-self($align) {
- -webkit-align-self: $align;
-
- align-self: $align;
-}
-
-// Background-size
-@mixin o-background-size($size) {
- -webkit-background-size: $size;
- -moz-background-size: $size;
- -o-background-size: $size;
- background-size: $size;
-}
-
-// ------------------------------------------------------------------
-// Select Appearance
-// ------------------------------------------------------------------
-@mixin o-appearance($value) {
- -webkit-appearance: $value;
- -moz-appearance: $value;
- appearance: $value;
-}
-
-// ------------------------------------------------------------------
-// Transform
-// ------------------------------------------------------------------
-@mixin o-transform-origin($x: 50%, $y: 50%, $z: 0) {
- -ms-transform-origin: $x $y $z;
- -webkit-transform-origin: $x $y $z;
- -moz-transform-origin: $x $y $z;
- transform-origin: $x $y $z;
-}
-
-// ------------------------------------------------------------------
-// Animation
-// ------------------------------------------------------------------
-@mixin o-animation($name: none, $duration: 0s, $timing-function: ease, $delay: 0s, $iteration-count: 1, $direction: normal, $fill-mode: none, $play-state: running) {
- -webkit-animation: $name $duration $timing-function $delay $iteration-count $direction $fill-mode $play-state;
- -moz-animation: $name $duration $timing-function $delay $iteration-count $direction $fill-mode $play-state;
- -o-animation: $name $duration $timing-function $delay $iteration-count $direction $fill-mode $play-state;
- animation: $name $duration $timing-function $delay $iteration-count $direction $fill-mode $play-state;
-}
-
-// ------------------------------------------------------------------
-// Transition
-// ------------------------------------------------------------------
-@mixin o-transition($property: all, $duration: 0s, $timing-function: ease, $transition-delay: 0s) {
- -webkit-transition: $property $duration $timing-function $transition-delay;
- -moz-transition: $property $duration $timing-function $transition-delay;
- -o-transition: $property $duration $timing-function $transition-delay;
- transition: $property $duration $timing-function $transition-delay;
-}
-
-// ------------------------------------------------------------------
-// Columns
-// ------------------------------------------------------------------
-@mixin o-columns($width: auto, $col: auto) {
- -webkit-columns: $width $col;
- -moz-columns: $width $col;
- columns: $width $col;
-}
-
-// ------------------------------------------------------------------
// Position absolute
// ------------------------------------------------------------------
@mixin o-position-absolute($top: auto, $right: auto, $bottom: auto, $left: auto) {
@@ -150,43 +37,6 @@
}
// ------------------------------------------------------------------
-// Gradients
-// ------------------------------------------------------------------
-@mixin o-linear-gradient($deg: 45deg, $start-color: #555, $end-color: #333) {
- background-repeat: repeat-x;
- background-image: -webkit-linear-gradient($deg, $start-color, $end-color);
- background-image: -o-linear-gradient($deg, $start-color, $end-color);
- background-image: linear-gradient($deg, $start-color, $end-color);
-}
-@mixin o-vertical-gradient($startColor: #555, $endColor: #333) {
- background-color: mix($startColor, $endColor);
- background-image: -webkit-gradient(linear, left top, left bottom, from($startColor), to($endColor));
- background-image: -webkit-linear-gradient(top, $startColor, $endColor);
- background-image: -moz-linear-gradient(top, $startColor, $endColor);
- background-image: -ms-linear-gradient(top, $startColor, $endColor);
- background-image: -o-linear-gradient(top, $startColor, $endColor);
- background-image: linear-gradient(to bottom, $startColor, $endColor);
-}
-@mixin o-skew-gradient($startColor: #555, $endColor: #333) {
- background-color: $endColor;
- background: -moz-linear-gradient(135deg, $endColor, $startColor);
- background: -o-linear-gradient(135deg, $startColor, $endColor);
- background: -webkit-gradient(linear, left top, right bottom, from($startColor), to($endColor));
- background: -ms-linear-gradient(top, $startColor, $endColor);
-}
-
-// ------------------------------------------------------------------
-// Transform
-// ------------------------------------------------------------------
-@mixin o-transform($transform) {
- -webkit-transform: $transform;
- -moz-transform: $transform;
- -ms-transform: $transform;
- -o-transform: $transform;
- transform: $transform;
-}
-
-// ------------------------------------------------------------------
// Hovering effects
// ------------------------------------------------------------------
@mixin o-hover-opacity($default-opacity: 0.5, $hover-opacity: 1) {
@@ -222,7 +72,7 @@
// ------------------------------------------------------------------
// Caret
// ------------------------------------------------------------------
-@mixin o-caret-down($caret-width: $caret-width-base) {
+@mixin o-caret-down($caret-width: $caret-width) {
@include utils-caret-boilerplate;
border-bottom: 0;
border-left: $caret-width solid transparent;
@@ -230,7 +80,7 @@
border-top: $caret-width solid;
-moz-transform: scale(0.9999); // Smooth the caret on firefox
}
-@mixin o-caret-up($caret-width: $caret-width-base) {
+@mixin o-caret-up($caret-width: $caret-width) {
@include utils-caret-boilerplate;
border-bottom: $caret-width solid;
border-left: $caret-width solid transparent;
@@ -238,7 +88,7 @@
border-top: 0;
-moz-transform: scale(0.9999); // Smooth the caret on firefox
}
-@mixin o-caret-left($caret-width: $caret-width-base) {
+@mixin o-caret-left($caret-width: $caret-width) {
@include utils-caret-boilerplate;
border-bottom: $caret-width solid transparent;
border-left: 0;
@@ -246,7 +96,7 @@
border-top: $caret-width solid transparent;
-moz-transform: scale(0.9999); // Smooth the caret on firefox
}
-@mixin o-caret-right($caret-width: $caret-width-base) {
+@mixin o-caret-right($caret-width: $caret-width) {
@include utils-caret-boilerplate;
border-bottom: $caret-width solid transparent;
border-left: $caret-width solid;
@@ -258,25 +108,22 @@
// ------------------------------------------------------------------
// Dropdowns
// ------------------------------------------------------------------
-@mixin o-selected-li {
- li {
+@mixin o-selected-li { // FIXME use active ?
+ .dropdown-item {
position: relative;
- > a {
- color: $o-main-text-color;
- &:hover {
- color: darken($o-main-text-color, 10%);
- }
+ color: $o-main-text-color;
+ &:hover {
+ color: darken($o-main-text-color, 10%);
}
+
&.selected {
- > a {
- color: darken($o-main-text-color, 10%);
- font-weight: bold;
- &:before {
- font-family: FontAwesome;
- position: absolute;
- left: 6px;
- content: "\f00c";
- }
+ color: darken($o-main-text-color, 10%);
+ font-weight: bold;
+ &:before {
+ font-family: FontAwesome;
+ position: absolute;
+ left: 6px;
+ content: "\f00c";
}
}
}
@@ -285,7 +132,7 @@
// ------------------------------------------------------------------
// Hovering effects
// ------------------------------------------------------------------
-@mixin o-hover-text-color($default-color: $text-color, $hover-color: $link-color) {
+@mixin o-hover-text-color($default-color: $body-color, $hover-color: $link-color) {
color: $default-color;
&:hover, &:focus, &.focus {
@@ -316,7 +163,7 @@
display: block;
text-align: center;
color: $o-main-text-color;
- font-size: $font-size-small;
+ font-size: $font-size-sm;
cursor: pointer;
@include o-hover-opacity($base-opacity);
}
@@ -339,22 +186,22 @@
}
@mixin o-kanban-slim-col {
position: relative;
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
margin: 0;
padding: 0 floor($o-kanban-group-padding * 0.7);
cursor: pointer;
}
@mixin o-kanban-header-title {
- @include o-flex-display;
- @include o-align-items(center);
+ display: flex;
+ align-items: center;
height: $o-kanban-header-title-height;
line-height: 2.2;
color: $headings-color;
}
@mixin o-kanban-v-title {
@include o-position-absolute($o-kanban-inside-vgutter * 2, $left: floor(-$o-kanban-inside-vgutter * 1.2));
- @include o-transform-origin(left, bottom, $z: 0);
- @include o-transform(rotate(90deg));
+ transform-origin: left bottom 0;
+ transform: rotate(90deg);
overflow: visible;
white-space: nowrap;
font-size: 15px;
@@ -374,7 +221,7 @@
border: 1px solid transparent;
border-bottom: none;
vertical-align: top;
- color: $text-color;
+ color: $body-color;
&:hover {
color: $headings-color;
@@ -386,13 +233,13 @@
@mixin o-kanban-dropdown-open {
position: relative;
background: white;
- border-color: $gray-lighter-darker;
+ border-color: gray('400');
z-index: $zindex-dropdown + 1;
}
@mixin o-kanban-dropdown-menu {
@include o-position-absolute($right: -1px);
margin-top: -1px;
- border-color: $gray-lighter-darker;
+ border-color: gray('400');
}
@mixin o-kanban-colorpicker {
max-width: 150px;
@@ -402,7 +249,7 @@
display: inline-block;
margin: $o-kanban-inner-hmargin $o-kanban-inner-hmargin 0 0;
border: 1px solid white;
- box-shadow: 0 0 0 1px $gray-lighter-dark;
+ box-shadow: 0 0 0 1px gray('300');
> a {
display: block;
@@ -424,7 +271,7 @@
display: block;
width: 1px;
height: 20px;
- @include rotate(45deg);
+ transform: rotate(45deg);
background-color: red;
}
&::after {
@@ -441,11 +288,11 @@
> a {
margin: auto auto auto (-$link-padding-gap);
padding: 3px $link-padding-gap;
- color: $text-color;
+ color: $body-color;
display: block;
&:hover {
- background-color: $gray-lighter-dark;
+ background-color: gray('300');
color: $headings-color;
}
}
diff --git a/addons/web/static/src/scss/views.scss b/addons/web/static/src/scss/views.scss
index e3562026ffe..e4e86231940 100644
--- a/addons/web/static/src/scss/views.scss
+++ b/addons/web/static/src/scss/views.scss
@@ -18,13 +18,13 @@
border-radius: 6px;
vertical-align: middle;
- background-color: $gray-lighter-dark;
+ background-color: gray('300');
&.o_status_green {
- background-color: $brand-success;
+ background-color: theme-color('success');
}
&.o_status_red {
- background-color: $brand-danger;
+ background-color: theme-color('danger');
}
}
diff --git a/addons/web/static/src/scss/web_calendar.scss b/addons/web/static/src/scss/web_calendar.scss
index 7091cbc3c98..ae22efb2675 100644
--- a/addons/web/static/src/scss/web_calendar.scss
+++ b/addons/web/static/src/scss/web_calendar.scss
@@ -1,12 +1,12 @@
@keyframes backgroundfade {
- from {background-color: rgba($o-brand-primary, 0.5);}
+ from {background-color: rgba($o-brand-odoo, 0.5);}
to {background-color: #f5f5f5;}
}
.o_calendar_container {
height: 100%;
@include o-webclient-padding($top: $o-horizontal-padding/2, $bottom: $o-horizontal-padding/2);
- @include o-flex-display;
+ display: flex;
@for $index from 1 through $o-nb-calendar-colors {
.o_calendar_color_#{$index} {
@@ -28,7 +28,7 @@
}
.o_calendar_view {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
min-width: 0;
.o_calendar_widget {
@@ -62,7 +62,7 @@
}
.o_calendar_sidebar_container {
- @include o-flex(0, 0, $o-horizontal-padding);
+ flex: 0 0 $o-horizontal-padding;
position: relative;
&.o_sidebar_hidden {
@@ -97,13 +97,13 @@
padding: 0;
.ui-widget-header {
- @include o-flex-display;
+ display: flex;
background: none;
background-color: lighten($o-brand-secondary, 30%);
border-radius: 0;
.ui-datepicker-prev, .ui-datepicker-next {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
position: static;
cursor: pointer;
padding: 2px;
@@ -133,7 +133,7 @@
}
}
.ui-datepicker-title {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
order: 2;
display: inline-block;
margin: 0 10px;
@@ -151,22 +151,22 @@
}
}
.ui-state-default {
- color: $o-brand-primary;
+ color: $o-brand-odoo;
&:hover {
background: none;
- background-color: rgba($o-brand-primary, 0.5);
- border-color: $o-brand-primary;
+ background-color: rgba($o-brand-odoo, 0.5);
+ border-color: $o-brand-odoo;
color: $o-view-background-color;
};
}
.ui-state-active {
background: none;
- background-color: $o-brand-primary;
+ background-color: $o-brand-odoo;
color: $o-view-background-color;
}
.o_selected_range.o_color {
background: none;
- background-color: $o-brand-primary;
+ background-color: $o-brand-odoo;
animation: backgroundfade 3s forwards;
}
}
@@ -199,12 +199,12 @@
}
// Mobile rules
-@media only screen and (max-width: 768px) {
+@include media-breakpoint-down(sm) {
.o_calendar_container {
padding: 0;
}
}
-@media (max-width: $screen-xs-max) {
+@include media-breakpoint-down(sm) {
.o_control_panel {
.o_calendar_button_today {
float: right;
diff --git a/addons/web/static/src/scss/webclient.scss b/addons/web/static/src/scss/webclient.scss
index 8f4dadb22df..8c213a57682 100644
--- a/addons/web/static/src/scss/webclient.scss
+++ b/addons/web/static/src/scss/webclient.scss
@@ -1,3 +1,7 @@
+:root {
+ font-size: $o-root-font-size;
+}
+
// ------------------------------------------------------------------
// General
// ------------------------------------------------------------------
@@ -13,7 +17,7 @@
width: 300px;
max-width: 100%;
- @include o-position-absolute($navbar-height, 0px);
+ @include o-position-absolute($nav-link-height, 0);
z-index: 1100; // Bootstrap modal z-index is 1050
.o_notification {
@@ -33,8 +37,8 @@
}
.o_notification_title {
- @include o-flex-display;
- @include o-align-items(center);
+ display: flex;
+ align-items: center;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
padding: 10px 10px 10px 20px;
@@ -101,26 +105,26 @@ div.o_boolean_toggle {
}
> input:checked + .slider {
- background-color: $o-brand-optional;
+ background-color: $o-brand-primary;
&:before {
- @include translate(14px, 0px);
+ transform: translate(14px, 0px);
}
}
}
// Full bg colors (bootstrap extension)
.bg-success-full {
- background-color: $brand-success;
+ background-color: theme-color('success');
}
.bg-warning-full {
- background-color: $brand-warning;
+ background-color: theme-color('warning');
}
.bg-danger-full {
- background-color: $brand-danger;
+ background-color: theme-color('danger');
}
.bg-info-full {
- background-color: $brand-info;
+ background-color: theme-color('info');
}
.o_web_accesskey_overlay {
@@ -151,28 +155,26 @@ div.o_boolean_toggle {
//== Badges
.badge {
margin: 1px 2px 1px 0;
- padding-top: 0;
- padding-bottom: 0;
}
// Btn-link variations
.btn-link {
font-weight: $btn-font-weight;
- &.btn-default {
- @include o-btn-link-variant($text-color, $headings-color);
+ &.btn-secondary {
+ @include o-btn-link-variant($body-color, $headings-color);
}
&.btn-success, &.text-success {
- @include o-btn-link-variant($text-color, $brand-success);
+ @include o-btn-link-variant($body-color, theme-color('success'));
}
&.btn-warning, &.text-warning {
- @include o-btn-link-variant($text-color, $brand-warning);
+ @include o-btn-link-variant($body-color, theme-color('warning'));
}
&.btn-danger, &.text-danger {
- @include o-btn-link-variant($text-color, $brand-danger);
+ @include o-btn-link-variant($body-color, theme-color('danger'));
}
&.btn-info, &.text-info {
- @include o-btn-link-variant($text-color, darken($brand-info, 20%));
+ @include o-btn-link-variant($body-color, darken(theme-color('info'), 20%));
}
}
diff --git a/addons/web/static/src/scss/webclient_extra.scss b/addons/web/static/src/scss/webclient_extra.scss
index cc87e526f8d..80e9390c534 100644
--- a/addons/web/static/src/scss/webclient_extra.scss
+++ b/addons/web/static/src/scss/webclient_extra.scss
@@ -8,7 +8,7 @@
}
.o_input {
border: 1px solid $o-form-lightsecondary;
- border-radius: $border-radius-base;
+ border-radius: $border-radius;
padding: 2px 4px;
color: #1f1f1f;
@@ -29,7 +29,7 @@ select {
top: 0;
right: 50%;
padding: 4px 12px;
- background-color: $o-color-pink;
+ background-color: $o-enterprise-color; // FIXME probably supposed to be primary to be auto-adapted in enterprise ?
color: white;
text-align: center;
border-top: none;
@@ -44,8 +44,3 @@ select {
@include o-text-overflow;
max-width: 150px;
}
-
-// Button
-.btn-icon {
- @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
-}
diff --git a/addons/web/static/src/scss/webclient_layout.scss b/addons/web/static/src/scss/webclient_layout.scss
index f811df48802..c8bb9e3c3ed 100644
--- a/addons/web/static/src/scss/webclient_layout.scss
+++ b/addons/web/static/src/scss/webclient_layout.scss
@@ -1,7 +1,7 @@
.o_web_client {
- @include o-flex-display;
- @include o-flex-flow(column, nowrap);
+ display: flex;
+ flex-flow: column nowrap;
overflow: hidden;
&.o_fullscreen {
@@ -15,7 +15,7 @@
.navbar {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
li > a {
padding: 4px 8px;
@@ -30,20 +30,20 @@
}
> .o_main {
- @include o-flex(1, 1, auto);
- @include o-flex-display;
+ flex: 1 1 auto;
+ display: flex;
min-height: 0; // Allow flex to shrink this element as much as it wants
height: 100%;
.o_sub_menu {
- @include o-flex(0, 0, 220px);
- @include o-flex-display;
- @include o-flex-flow(column, nowrap);
+ flex: 0 0 220px;
+ display: flex;
+ flex-flow: column nowrap;
border-right: 1px solid darken($o-control-panel-background-color, 20%);
background-color: $o-control-panel-background-color;
.o_sub_menu_logo {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
text-align: center;
position: relative;
@@ -67,14 +67,14 @@
}
.o_sub_menu_content {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
height:100%;
overflow-y: auto;
.oe_secondary_menu_section {
font-weight: bold;
margin-left: 8px;
- color: $o-brand-optional;
+ color: $o-brand-primary;
}
.oe_secondary_submenu {
margin: 3px 0px 10px;
@@ -128,28 +128,28 @@
}
.o_sub_menu_footer {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
text-align: center;
> a {
font-weight: bold;
> span {
- color: $o-color-pink;
+ color: $o-enterprise-color; // FIXME probably supposed to be primary to be auto-adapted in enterprise ?
}
}
}
}
.o_main_content {
- @include o-flex(1, 1, auto);
- @include o-flex-display;
- @include o-flex-flow(column, nowrap);
+ flex: 1 1 auto;
+ display: flex;
+ flex-flow: column nowrap;
.o_control_panel {
- @include o-flex(0, 0, auto);
+ flex: 0 0 auto;
}
.o_content {
- @include o-flex(1, 1, auto);
+ flex: 1 1 auto;
height: 100%;
overflow: auto;
position: relative;