diff --git a/addons/web/static/img/odoo_logo_dark.svg b/addons/web/static/img/odoo_logo_dark.svg
new file mode 100644
index 00000000000..ead69d7324d
--- /dev/null
+++ b/addons/web/static/img/odoo_logo_dark.svg
@@ -0,0 +1,10 @@
+
+
diff --git a/addons/web/static/lib/tempusdominus/tempusdominus.scss b/addons/web/static/lib/tempusdominus/tempusdominus.scss
index c38f1e87fcb..b5de3afbdf3 100644
--- a/addons/web/static/lib/tempusdominus/tempusdominus.scss
+++ b/addons/web/static/lib/tempusdominus/tempusdominus.scss
@@ -1,14 +1,14 @@
-$bs-datetimepicker-timepicker-font-size: 1.2em !default;
-$bs-datetimepicker-active-bg: $blue !default;
-$bs-datetimepicker-active-color: $white !default;
-$bs-datetimepicker-border-radius: $border-radius !default;
-$bs-datetimepicker-btn-hover-bg: $gray-200 !default;
-$bs-datetimepicker-disabled-color: $gray-600 !default;
-$bs-datetimepicker-alternate-color: $gray-600 !default;
-$bs-datetimepicker-secondary-border-color: #ccc !default;
-$bs-datetimepicker-secondary-border-color-rgba: rgba(0, 0, 0, 0.2) !default;
-$bs-datetimepicker-primary-border-color: white !default;
-$bs-datetimepicker-text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25) !default;
+$bs-datetimepicker-timepicker-font-size: var(--bs-datetimepicker-timepicker-font-size, 1.2em) !default;
+$bs-datetimepicker-active-bg: var(--bs-datetimepicker-active-bg, #{$blue}) !default;
+$bs-datetimepicker-active-color: var(--bs-datetimepicker-active-color, #{$white}) !default;
+$bs-datetimepicker-border-radius: var(--bs-datetimepicker-border-radius, #{$border-radius}) !default;
+$bs-datetimepicker-btn-hover-bg: var(--bs-datetimepicker-btn-hover-bg, #{$gray-200}) !default;
+$bs-datetimepicker-disabled-color: var(--bs-datetimepicker-disabled-color, #{$gray-600}) !default;
+$bs-datetimepicker-alternate-color: var(--bs-datetimepicker-alternate-color, #{$gray-600}) !default;
+$bs-datetimepicker-secondary-border-color: var(--bs-datetimepicker-secondary-border-color, #ccc) !default;
+$bs-datetimepicker-secondary-border-color-rgba: var(--bs-datetimepicker-secondary-border-color-rgba, rgba(0, 0, 0, 0.2)) !default;
+$bs-datetimepicker-primary-border-color: var(--bs-datetimepicker-primary-border-color, white) !default;
+$bs-datetimepicker-text-shadow: var(--bs-datetimepicker-text-shadow, 0 -1px 0 rgba(0, 0, 0, 0.25)) !default;
.bootstrap-datetimepicker-widget {
list-style: none;
diff --git a/addons/web/static/src/core/colorlist/colorlist.scss b/addons/web/static/src/core/colorlist/colorlist.scss
index 56c488ca107..cd28f4e57ab 100644
--- a/addons/web/static/src/core/colorlist/colorlist.scss
+++ b/addons/web/static/src/core/colorlist/colorlist.scss
@@ -1,7 +1,7 @@
.o_colorlist {
button {
- border: 1px solid white;
- box-shadow: 0 0 0 1px #c9ccd2;
+ border: 1px solid $white;
+ box-shadow: 0 0 0 1px $gray-500;
width: 22px;
height: 17px;
}
diff --git a/addons/web/static/src/core/errors/error_dialogs.xml b/addons/web/static/src/core/errors/error_dialogs.xml
index 94cac028eb4..3e5fbf2bfb1 100644
--- a/addons/web/static/src/core/errors/error_dialogs.xml
+++ b/addons/web/static/src/core/errors/error_dialogs.xml
@@ -58,7 +58,7 @@
-
+
diff --git a/addons/web/static/src/legacy/js/fields/basic_fields_owl.js b/addons/web/static/src/legacy/js/fields/basic_fields_owl.js
index d6d6b4e3312..29024900303 100644
--- a/addons/web/static/src/legacy/js/fields/basic_fields_owl.js
+++ b/addons/web/static/src/legacy/js/fields/basic_fields_owl.js
@@ -19,7 +19,7 @@ odoo.define('web.basic_fields_owl', function (require) {
*/
class FieldBadge extends AbstractField {
_getClassFromDecoration(decoration) {
- return `bg-${decoration.split('-')[1]}`;
+ return `text-bg-${decoration.split('-')[1]}`;
}
}
FieldBadge.description = _lt("Badge");
diff --git a/addons/web/static/src/legacy/scss/datepicker.scss b/addons/web/static/src/legacy/scss/datepicker.scss
index 7c48ca0f14d..36676c6b127 100644
--- a/addons/web/static/src/legacy/scss/datepicker.scss
+++ b/addons/web/static/src/legacy/scss/datepicker.scss
@@ -49,13 +49,16 @@ div.dropdown-menu.bootstrap-datetimepicker-widget {
}
.bootstrap-datetimepicker-widget .datepicker table {
+ --datepicker-color: #{map-get($grays, '900')};
+ --datepicker__thead-bg: #{map-get($grays, '100')};
+
th, td {
border-radius: 0;
border-bottom-width: $border-width;
width: percentage(1/8);
height: 30px;
line-height: 30px;
- color: map-get($grays, '900');
+ color: var(--datepicker-color);
&.prev, &.next, &.old, &.new {
@include o-hover-opacity(.5);
@@ -72,7 +75,7 @@ div.dropdown-menu.bootstrap-datetimepicker-widget {
}
thead tr:nth-child(2) th, td.cw {
- background-color: map-get($grays, '100');
+ background-color: var(--datepicker__thead-bg);
font-size: $font-size-sm;
font-weight: $font-weight-bold;
color: $o-main-text-color;
@@ -102,8 +105,8 @@ div.dropdown-menu.bootstrap-datetimepicker-widget {
margin: 0;
border-radius: 0;
color: $o-main-text-color;
- border-top: 1px solid $border-color;
- box-shadow: 0 1px 0 $border-color; // overlaps with main box border
+ border-top: 1px solid var(--datepicker-border-color, #{$border-color});
+ box-shadow: 0 1px 0 var(--datepicker-border-color, #{$border-color}); // overlaps with main box border
&.primary {
color: $o-brand-primary;
diff --git a/addons/web/static/src/legacy/scss/daterangepicker.scss b/addons/web/static/src/legacy/scss/daterangepicker.scss
index cdcdfc82342..2a750888305 100644
--- a/addons/web/static/src/legacy/scss/daterangepicker.scss
+++ b/addons/web/static/src/legacy/scss/daterangepicker.scss
@@ -1,19 +1,63 @@
// Match DateTimePicker styling
-.daterangepicker {
+.daterangepicker.show-calendar {
+ --daterangepicker-border: #{$dropdown-border-width} solid #{$dropdown-border-color};
+ --daterangepicker-border-radius: #{$dropdown-border-radius};
+ --daterangepicker-bg: #{$dropdown-bg};
+ --daterangepicker-color: #{map-get($grays, '900')};
+
+ @if $enable-shadows {
+ --daterangepicker-box-shadow: #{$dropdown-box-shadow};
+ }
+
+ --daterangepicker__table-bg: #{$table-bg};
+ --daterangepicker__thead-bg: #{map-get($grays, '100')};
+
+ --daterangepicker__cell-border-color: #{$table-border-color};
+ --daterangepicker__cell-bg--hover: #{map-get($grays, '100')};
+
+ --daterangepicker__select-bg: #{$form-select-bg};
+ --daterangepicker__select-border-color: #{$input-border-color};
+ --daterangepicker__select-color: #{$form-select-color};
+
+
+ border: var(--daterangepicker-border);
+ border-radius: var(--daterangepicker-border-radius);
+ background-color: var(--daterangepicker-bg);
+ box-shadow: var(--daterangepicker-box-shadow);
font-family: inherit;
+ &:before {
+ border-bottom-color: var(--daterangerpicker__arrow-border-color, #{$dropdown-border-color});
+ }
+
+ &:after {
+ border-bottom-color: var(--daterangerpicker__arrow-background-color, #{$dropdown-bg});
+ }
+
.calendar-table {
+ border: 0;
+ background-color: var(--daterangepicker__table-bg);
+
+ .next span, .prev span {
+ border-color: currentColor;
+ }
+
td, th {
- border-bottom-color: $table-border-color;
+ border-bottom-color: var(--daterangepicker__cell-border-color);
&, &.start-date.end-date {
border-radius: 0;
}
&:not(.active) {
- color: map-get($grays, '900');
+ color: var(--daterangepicker-color);
+
}
+ &.available:hover {
+ background-color: var(--daterangepicker__cell-bg--hover);
+ }
+
&.prev, &.next, &.off.ends {
@include o-hover-opacity(.5);
@@ -46,11 +90,17 @@
}
&.active,
- &.active:hover {
+ &.active:hover,
+ &.in-range:hover {
background-color: $o-brand-odoo;
color: $white;
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
}
+
+ &.off {
+ background-color: transparent;
+ }
+
}
thead tr {
@@ -63,7 +113,7 @@
}
}
&:nth-child(2) th {
- background-color: map-get($grays, '100');
+ background-color: var(--daterangepicker__thead-bg);
font-size: $font-size-sm;
font-weight: $font-weight-bold;
color: $o-main-text-color;
@@ -74,14 +124,26 @@
.calendar-time select {
&.hourselect, &.minuteselect, &.secondselect, &.ampmselect {
display: initial;
+ border-color: var(--daterangepicker__select-border-color);
+ background-color: var(--daterangepicker__select-bg);
+ color: var(--daterangepicker__select-color);
-webkit-appearance: menulist-button;
-moz-appearance: menulist-button;
appearance: menulist-button;
}
}
- .drp-buttons .drp-selected {
- display: none;
+ .drp-buttons {
+ border-top: 0;
+
+ .btn {
+ text-transform: uppercase;
+ font-weight: $btn-font-weight;
+ }
+
+ .drp-selected {
+ display: none;
+ }
}
@include media-breakpoint-down(sm) {
diff --git a/addons/web/static/src/legacy/scss/domain_selector.scss b/addons/web/static/src/legacy/scss/domain_selector.scss
index 1a908719ace..04423987177 100644
--- a/addons/web/static/src/legacy/scss/domain_selector.scss
+++ b/addons/web/static/src/legacy/scss/domain_selector.scss
@@ -69,7 +69,7 @@
display: block;
margin-top: 16px;
padding: 8px 10px 12px;
- background: map-get($grays, '900');
+ background: var(--DomainDebugContainer-background-colomap-get, #{$o-gray-900});
color: rgba(white, 0.5);
font-family: monospace;
font-weight: normal;
diff --git a/addons/web/static/src/legacy/scss/dropdown.scss b/addons/web/static/src/legacy/scss/dropdown.scss
index d08a4b6cd0b..e3d0fadb52e 100644
--- a/addons/web/static/src/legacy/scss/dropdown.scss
+++ b/addons/web/static/src/legacy/scss/dropdown.scss
@@ -3,13 +3,23 @@
.ui-widget.ui-autocomplete {
top: 0; // Compute initial position
min-width: 0; // Compute initial width
+ color: $dropdown-color;
// Needed because .ui-widget are rendered at a
// lower stacking contex compared to modals.
z-index: $zindex-modal + 1;
+ &.ui-widget-content {
+ background-color: $dropdown-bg;
+ border: $dropdown-border-width solid $dropdown-border-color;
+ @include border-radius($dropdown-border-radius);
+ @include box-shadow($dropdown-box-shadow);
+ }
+
.ui-menu-item {
> a {
+ @include o-hover-text-color($dropdown-link-color, $dropdown-link-hover-color);
+
&.dropdown-item {
padding: $o-dropdown-vpadding $o-dropdown-hpadding;
}
diff --git a/addons/web/static/src/legacy/scss/fields.scss b/addons/web/static/src/legacy/scss/fields.scss
index fc036cdef02..dfcd3fc38d8 100644
--- a/addons/web/static/src/legacy/scss/fields.scss
+++ b/addons/web/static/src/legacy/scss/fields.scss
@@ -163,7 +163,8 @@
}
.o_m2o_avatar_empty {
display: block;
- background-color: #e9ecef;
+ background: $o-black;
+ opacity: .1;
}
}
diff --git a/addons/web/static/src/legacy/scss/kanban_view.scss b/addons/web/static/src/legacy/scss/kanban_view.scss
index 4dc3a0af798..d538df4377d 100644
--- a/addons/web/static/src/legacy/scss/kanban_view.scss
+++ b/addons/web/static/src/legacy/scss/kanban_view.scss
@@ -407,7 +407,7 @@
}
.oe_kanban_text_red {
- color: #A61300;
+ color: o-text-color('danger');
font-weight: $font-weight-bold;
}
diff --git a/addons/web/static/src/legacy/scss/list_view.scss b/addons/web/static/src/legacy/scss/list_view.scss
index d6ee00bfa2c..ee282697106 100644
--- a/addons/web/static/src/legacy/scss/list_view.scss
+++ b/addons/web/static/src/legacy/scss/list_view.scss
@@ -274,7 +274,7 @@
.o_data_row.o_selected_row > .o_data_cell:not(.o_readonly_modifier):not(.o_invisible_modifier) {
position: relative; // for o_field_translate
&:not(.o_handle_cell) {
- background-color: white;
+ background-color: $o-view-background-color;
}
.o_input {
border: none;
diff --git a/addons/web/static/src/legacy/scss/modal.scss b/addons/web/static/src/legacy/scss/modal.scss
index 98513ed65bb..d2a411ab3d0 100644
--- a/addons/web/static/src/legacy/scss/modal.scss
+++ b/addons/web/static/src/legacy/scss/modal.scss
@@ -86,9 +86,10 @@
border: none;
.modal-header {
- background: $o-brand-odoo;
+ background: $o-navbar-background;
+
.modal-title, .o_subtitle, button.close {
- color: white;
+ color: $o-navbar-entry-color;
}
}
diff --git a/addons/web/static/src/legacy/scss/name_and_signature.scss b/addons/web/static/src/legacy/scss/name_and_signature.scss
index b2b723e187c..76c04b59f27 100644
--- a/addons/web/static/src/legacy/scss/name_and_signature.scss
+++ b/addons/web/static/src/legacy/scss/name_and_signature.scss
@@ -3,6 +3,10 @@
position: relative;
}
+.o_web_sign_signature_group {
+ background: #ffffff;
+}
+
/* Signature Dialog */
// The .card selector is important to make sure the position absolute will take
// priority over the position relative of the card.
diff --git a/addons/web/static/src/legacy/scss/popover.scss b/addons/web/static/src/legacy/scss/popover.scss
index f115f8c5ad2..5ada57d5c1d 100644
--- a/addons/web/static/src/legacy/scss/popover.scss
+++ b/addons/web/static/src/legacy/scss/popover.scss
@@ -57,7 +57,6 @@
position: fixed;
z-index: 1060;
border: 1px solid $border-color;
- background-color: #fff;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
.o_popover_header {
diff --git a/addons/web/static/src/legacy/scss/progress_bar.scss b/addons/web/static/src/legacy/scss/progress_bar.scss
index 71af77082f6..32668382af0 100644
--- a/addons/web/static/src/legacy/scss/progress_bar.scss
+++ b/addons/web/static/src/legacy/scss/progress_bar.scss
@@ -14,10 +14,10 @@
height: 15px;
vertical-align: middle;
- border: 1px solid lighten($o-brand-secondary, 25%);
+ border: 1px solid $o-gray-300;
overflow: hidden;
- background-color: white;
+ background-color: $o-view-background-color;
&.o_progress_overflow {
background-color: $o-brand-secondary;
}
diff --git a/addons/web/static/src/legacy/scss/tempusdominus_overridden.scss b/addons/web/static/src/legacy/scss/tempusdominus_overridden.scss
index 0c02a66f4dc..9a2e9718dfd 100644
--- a/addons/web/static/src/legacy/scss/tempusdominus_overridden.scss
+++ b/addons/web/static/src/legacy/scss/tempusdominus_overridden.scss
@@ -3,7 +3,6 @@ $bs-datetimepicker-active-bg: $o-brand-odoo;
$bs-datetimepicker-active-color: $white;
$bs-datetimepicker-text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
$bs-datetimepicker-secondary-border-color: $dropdown-border-color;
-$bs-datetimepicker-secondary-border-color-rgba: $dropdown-border-color;
// TODO remove sr-only when TempusDominus is upgraded to 6+
.sr-only {
diff --git a/addons/web/static/src/legacy/scss/utils.scss b/addons/web/static/src/legacy/scss/utils.scss
index fdd48a12852..de650a25106 100644
--- a/addons/web/static/src/legacy/scss/utils.scss
+++ b/addons/web/static/src/legacy/scss/utils.scss
@@ -312,7 +312,7 @@
}
@mixin o-kanban-dropdown-open {
position: relative;
- background: white;
+ background: $dropdown-bg;
border-color: $border-color;
z-index: $zindex-dropdown + 1;
}
diff --git a/addons/web/static/src/legacy/scss/views.scss b/addons/web/static/src/legacy/scss/views.scss
index cbf0d96092d..943f6ed0e70 100644
--- a/addons/web/static/src/legacy/scss/views.scss
+++ b/addons/web/static/src/legacy/scss/views.scss
@@ -50,9 +50,13 @@
// No content helper
.o_view_nocontent {
- @include o-position-absolute(30%, 0, 0, 0);
+ @include o-position-absolute(0, 0, 0, 0);
pointer-events: none;
z-index: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-image: radial-gradient(at 50% 50%, #{$o-view-background-color} 0px, #{rgba($o-view-background-color, 0.5)} 100%);
.o_nocontent_help {
@include o-nocontent-empty;
@@ -100,8 +104,8 @@
.o_nocontent_help {
border-radius: 20%;
- background-color: #f9f9f9;
- box-shadow: 0 0 120px 100px #f9f9f9;
+ background-color: $o-view-background-color;
+ box-shadow: 0 0 120px 100px $o-view-background-color;
}
.o_sample_data_disabled {
diff --git a/addons/web/static/src/legacy/xml/base.xml b/addons/web/static/src/legacy/xml/base.xml
index 1ba74e6c8c7..f5c64a26020 100644
--- a/addons/web/static/src/legacy/xml/base.xml
+++ b/addons/web/static/src/legacy/xml/base.xml
@@ -1016,7 +1016,7 @@