diff --git a/addons/web/static/src/core/colorlist/colorlist.js b/addons/web/static/src/core/colorlist/colorlist.js
index 1c3ba27d9e7..830cf649f0b 100644
--- a/addons/web/static/src/core/colorlist/colorlist.js
+++ b/addons/web/static/src/core/colorlist/colorlist.js
@@ -40,14 +40,14 @@ ColorList.COLORS = [
_lt("Red"),
_lt("Orange"),
_lt("Yellow"),
- _lt("Light blue"),
- _lt("Dark purple"),
- _lt("Salmon pink"),
- _lt("Medium blue"),
- _lt("Dark blue"),
- _lt("Fuchsia"),
- _lt("Green"),
+ _lt("Cyan"),
_lt("Purple"),
+ _lt("Almond"),
+ _lt("Teal"),
+ _lt("Blue"),
+ _lt("Raspberry"),
+ _lt("Green"),
+ _lt("Violet"),
];
ColorList.template = "web.ColorList";
ColorList.defaultProps = {
diff --git a/addons/web/static/src/core/colorlist/colorlist.scss b/addons/web/static/src/core/colorlist/colorlist.scss
index cd28f4e57ab..2e7f864f845 100644
--- a/addons/web/static/src/core/colorlist/colorlist.scss
+++ b/addons/web/static/src/core/colorlist/colorlist.scss
@@ -1,6 +1,6 @@
.o_colorlist {
button {
- border: 1px solid $white;
+ border: 1px solid $dropdown-bg;
box-shadow: 0 0 0 1px $gray-500;
width: 22px;
height: 17px;
@@ -13,23 +13,12 @@
// Set all the colors but the "no-color" one
@for $size from 2 through length($o-colors) {
.o_colorlist_item_color_#{$size - 1} {
- background-color: nth($o-colors, $size);
+ $-bg: adjust-color(nth($o-colors, $size), $lightness: 25%, $saturation: 15%);
+ @include o-print-color($-bg, background-color, bg-opacity);
}
}
// Set the "no-color", a red bar on white background
.o_colorlist_item_color_0 {
- position: relative;
- &::before {
- content: "";
- @include o-position-absolute(-2px, $left: 10px);
- display: block;
- width: 1px;
- height: 19px;
- transform: rotate(45deg);
- background-color: red;
- }
- &::after {
- background-color: white;
- }
+ background: linear-gradient(45deg, rgba($dropdown-bg, 0) 0%, rgba($dropdown-bg, 0) 48%, $danger 48%, $danger 52%, rgba($dropdown-bg, 0) 52%, rgba($dropdown-bg, 0) 100%);
}
diff --git a/addons/web/static/src/core/colorlist/colorlist.xml b/addons/web/static/src/core/colorlist/colorlist.xml
index 724596e6353..04c7f119063 100644
--- a/addons/web/static/src/core/colorlist/colorlist.xml
+++ b/addons/web/static/src/core/colorlist/colorlist.xml
@@ -4,10 +4,10 @@
-
+
-
+
diff --git a/addons/web/static/src/core/tags_list/tags_list.js b/addons/web/static/src/core/tags_list/tags_list.js
index b939fa8b7d2..61e4b267851 100644
--- a/addons/web/static/src/core/tags_list/tags_list.js
+++ b/addons/web/static/src/core/tags_list/tags_list.js
@@ -9,6 +9,7 @@ export class TagsList extends Component {
displayText: true,
};
static props = {
+ className: { type: String, optional: true },
displayBadge: { type: Boolean, optional: true },
displayText: { type: Boolean, optional: true },
itemsVisible: { type: Number, optional: true },
diff --git a/addons/web/static/src/core/tags_list/tags_list.scss b/addons/web/static/src/core/tags_list/tags_list.scss
index e259b6236e1..a76a4d0f321 100644
--- a/addons/web/static/src/core/tags_list/tags_list.scss
+++ b/addons/web/static/src/core/tags_list/tags_list.scss
@@ -1,63 +1,24 @@
.o_tag {
- user-select: none;
+ font-size: var(--Tag-font-size, #{$font-size-sm});
+ max-width: var(--Tag-max-width, 100%);
.o_badge_text, a {
- color: inherit;
line-height: 1.1;
}
- .o_tag_badge_text {
- font-size: 12px;
- }
-
- img {
- height: 1.6em;
- aspect-ratio: 1/1;
-
- + .o_tag_badge_text {
- padding: 0.25em 0;
- }
+ a {
+ color: inherit;
}
@for $size from 1 through length($o-colors) {
&.o_tag_color_#{$size - 1} {
- @if $size == 1 {
- & {
- background-color: $o-view-background-color;
- color: nth($o-colors, $size);
- box-shadow: inset 0 0 0 1px;
- }
- &:focus-within {
- color: darken(nth($o-colors, $size), 40%) ;
- }
- &::after {
- background-color: nth($o-colors, $size);
- }
- } @else {
- &, &::after {
- background-color: nth($o-colors, $size);
- color: color-contrast(nth($o-colors, $size));
- }
+ $-bg: adjust-color(nth($o-colors, $size), $lightness: 25%, $saturation: 15%);
+ $-color: adjust-color(nth($o-colors, $size), $lightness: -40%, $saturation: -15%);
+
+ &, &::after {
+ @include o-print-color($-bg, background-color, bg-opacity);
+ @include o-print-color($-color, color, text-opacity);
}
}
}
-}
-
-.o_kanban_view .o_kanban_record .o_tag {
- display: inline-block;
- margin-right: 4px;
- font-size: 11px;
- font-weight: 500;
- background-color: transparent;
- color: inherit;
- box-shadow: none;
- @include o-kanban-tag-color;
-
- span {
- display: inline-block;
- width: 6px;
- height: 6px;
- margin-right: 4px;
- border-radius: 100%;
- }
-}
+}
\ No newline at end of file
diff --git a/addons/web/static/src/core/tags_list/tags_list.xml b/addons/web/static/src/core/tags_list/tags_list.xml
index 7e0d688cdfd..3283cd2ced1 100644
--- a/addons/web/static/src/core/tags_list/tags_list.xml
+++ b/addons/web/static/src/core/tags_list/tags_list.xml
@@ -3,15 +3,23 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/addons/web/static/src/legacy/scss/fields.scss b/addons/web/static/src/legacy/scss/fields.scss
index 8cad9875e99..d68b6acea83 100644
--- a/addons/web/static/src/legacy/scss/fields.scss
+++ b/addons/web/static/src/legacy/scss/fields.scss
@@ -153,22 +153,6 @@
padding-bottom: 0;
}
- // Many2OneAvatar
- &.o_field_many2one_avatar {
- .o_m2o_avatar > img, .o_m2o_avatar > .o_m2o_avatar_empty {
- border-radius: 50%;
- width: 19px;
- height: 19px;
- object-fit: cover;
- margin-right: 4px;
- }
- .o_m2o_avatar_empty {
- display: block;
- background: $o-black;
- opacity: .1;
- }
- }
-
// Many2many tags
&.o_field_many2manytags {
flex-flow: row wrap;
diff --git a/addons/web/static/src/legacy/scss/utils.scss b/addons/web/static/src/legacy/scss/utils.scss
index 3be4a4e0473..3b41bed25c2 100644
--- a/addons/web/static/src/legacy/scss/utils.scss
+++ b/addons/web/static/src/legacy/scss/utils.scss
@@ -336,20 +336,8 @@
}
// No Color
- &:first-child > a {
- position: relative;
- &::before {
- content: "";
- @include o-position-absolute(-2px, $left: 10px);
- display: block;
- width: 1px;
- height: 20px;
- transform: rotate(45deg);
- background-color: red;
- }
- &::after {
- background-color: white;
- }
+ &:first-child > a:after {
+ background: linear-gradient(45deg, rgba($dropdown-bg, 0) 0%, rgba($dropdown-bg, 0) 48%, $danger 48%, $danger 52%, rgba($dropdown-bg, 0) 52%, rgba($dropdown-bg, 0) 100%);
}
}
}
diff --git a/addons/web/static/src/scss/bootstrap_overridden.scss b/addons/web/static/src/scss/bootstrap_overridden.scss
index 80661c93a43..c36d9be94c5 100644
--- a/addons/web/static/src/scss/bootstrap_overridden.scss
+++ b/addons/web/static/src/scss/bootstrap_overridden.scss
@@ -281,7 +281,7 @@ $form-range-thumb-bg: $primary !default;
// Badge
$badge-color: inherit !default;
$badge-padding-y: 0.25em !default;
-$badge-padding-x: 0.4em !default;
+$badge-padding-x: 0.82em !default;
// Placeholder color
$input-placeholder-color: $gray-300 !default;
diff --git a/addons/web/static/src/scss/primary_variables.scss b/addons/web/static/src/scss/primary_variables.scss
index 4436bdf9607..f2b747aa934 100644
--- a/addons/web/static/src/scss/primary_variables.scss
+++ b/addons/web/static/src/scss/primary_variables.scss
@@ -200,7 +200,7 @@ $o-list-group-active-bg: lighten(saturate(adjust-hue($o-info, 15), 1.8), 50) !de
// == Badges
// Define a minimum width. This value is arbitrary and strictly font-related.
-$o-badge-min-width: 2.5ch !default;
+$o-badge-min-width: 3ch !default;
$o-nb-calendar-colors: 24 !default;
diff --git a/addons/web/static/src/scss/secondary_variables.scss b/addons/web/static/src/scss/secondary_variables.scss
index 04309feb61d..a636b541526 100644
--- a/addons/web/static/src/scss/secondary_variables.scss
+++ b/addons/web/static/src/scss/secondary_variables.scss
@@ -5,8 +5,8 @@ $o-list-group-header-color: lighten($o-brand-lightsecondary, 10%) !default;
// UI custom colors for tags, kanban records' colors, ...)
// 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 !default;
+$o-colors: #a2a2a2, #ee2d2d, #dc8534, #e8bb1d, #5794dd, #9f628f, #db8865,
+ #41a9a2, #304be0, #ee2f8a, #61c36e, #9872e6 !default;
$o-colors-secondary: #aa4b6b, #30C381, #97743a, #F7CD1F, #4285F4, #8E24AA,
#D6145F, #173e43, #348F50, #AA3A38, #795548, #5e0231,
diff --git a/addons/web/static/src/views/fields/many2many_tags/kanban_many2many_tags_field.xml b/addons/web/static/src/views/fields/many2many_tags/kanban_many2many_tags_field.xml
index c1a1c8faa96..123a2a31b5e 100644
--- a/addons/web/static/src/views/fields/many2many_tags/kanban_many2many_tags_field.xml
+++ b/addons/web/static/src/views/fields/many2many_tags/kanban_many2many_tags_field.xml
@@ -2,6 +2,8 @@
-
+
+
+
diff --git a/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.js b/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.js
index a89b7f5a73d..e93882a9e24 100644
--- a/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.js
+++ b/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.js
@@ -158,7 +158,7 @@ export class Many2ManyTagsField extends Component {
focusTag(index) {
const autoCompleteParent = this.autoCompleteRef.el.parentElement;
- const tags = autoCompleteParent.getElementsByClassName("badge");
+ const tags = autoCompleteParent.getElementsByClassName("o_tag");
if (tags.length) {
if (index === undefined) {
tags[tags.length - 1].focus();
@@ -219,8 +219,8 @@ export class Many2ManyTagsField extends Component {
}
const hotkey = getActiveHotkey(ev);
const autoCompleteParent = this.autoCompleteRef.el.parentElement;
- const tags = [...autoCompleteParent.getElementsByClassName("badge")];
- const closestTag = ev.target.closest(".badge");
+ const tags = [...autoCompleteParent.getElementsByClassName("o_tag")];
+ const closestTag = ev.target.closest(".o_tag");
const tagIndex = tags.indexOf(closestTag);
const input = this.autoCompleteRef.el.querySelector(".o-autocomplete--input");
switch (hotkey) {
diff --git a/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.scss b/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.scss
index 03da097806a..5b275a29794 100644
--- a/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.scss
+++ b/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.scss
@@ -11,11 +11,6 @@
.o_tags_input {
padding: 1px 0;
-
- .o_tag {
- padding-left: 0.6em;
- padding-right: 0.6em;
- }
}
.o_field_many2many_selection {
@@ -29,12 +24,7 @@
.badge {
flex: 0 0 auto;
- margin: 1px 2px 1px 0;
- border: none;
- font-size: 12px;
- user-select: none;
display: flex;
- max-width: 100%;
&.dropdown {
cursor: pointer;
@@ -47,15 +37,6 @@
.o_badge_text, .o_tag_badge_text {
@include o-text-overflow(inline-block);
max-width: 200px;
- color: inherit;
- line-height: 1.1;
- }
-
- .o_delete {
- color: inherit;
- cursor: pointer;
- padding-left: 4px;
- line-height: 1;
}
}
}
diff --git a/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.xml b/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.xml
index 62ea1c44999..1a350617272 100644
--- a/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.xml
+++ b/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.xml
@@ -3,7 +3,7 @@