summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/scss/web_editor.ui.scss
diff options
context:
space:
mode:
authorqsm-odoo <qsm@odoo.com>2018-03-12 16:27:41 +0100
committerqsm-odoo <qsm@odoo.com>2018-04-18 15:59:15 +0200
commitb04dec4025013c60e4857c1e177bb20d811cd41a (patch)
treedb8b38a5e1df34ee6f0402fab9a0bd8b4b769f8e /addons/web_editor/static/src/scss/web_editor.ui.scss
parenta6393130e6fcc4ad706f3df08557e5434416e4ab (diff)
[REF] *: rename all LESS files to SCSS
This is a simple renaming without adaptation.
Diffstat (limited to 'addons/web_editor/static/src/scss/web_editor.ui.scss')
-rw-r--r--addons/web_editor/static/src/scss/web_editor.ui.scss1687
1 files changed, 1687 insertions, 0 deletions
diff --git a/addons/web_editor/static/src/scss/web_editor.ui.scss b/addons/web_editor/static/src/scss/web_editor.ui.scss
new file mode 100644
index 00000000000..76e86b98cb9
--- /dev/null
+++ b/addons/web_editor/static/src/scss/web_editor.ui.scss
@@ -0,0 +1,1687 @@
+
+// TOP BAR (EDIT)
+#web_editor-top-edit {
+ .o-position-absolute(0, 0, auto, 0);
+ position: fixed;
+ height: @odoo-navbar-height;
+ z-index: @zindex-modal - 9;
+
+ background-color: rgba(0,0,0,0);
+ .o-transition(background-color, 400ms, @o-we-md-ease);
+ font-family: @o-we-font-family;
+
+ form.navbar-form {
+ height: 100%;
+ z-index: 1060;
+ margin: 0;
+ padding: 0;
+ .o-position-absolute(@right: -@o-we-sidebar-width);
+ .o-transition(right, 0.4s, @o-we-md-ease);
+ border-left: 1px solid @o-we-color-divider;
+ background-color: inherit;
+
+ .btn-group {
+ height: 100%;
+ }
+
+ .btn {
+ height: 100%;
+ margin: 0;
+ padding: 10px;
+ line-height: 1.2;
+ font-size: 13px;
+ font-family: @o-we-font-family;
+
+ .o-transition(all, 0.3s);
+ border: none;
+ border-radius: 0;
+
+ .fa {
+ margin-right: @grid-gutter-width/4;
+ &.fa-times {
+ color: @o-we-color-danger;
+ }
+ }
+
+ &.btn-primary {
+ .button-variant(white, @odoo-brand-primary, @odoo-brand-primary);
+ }
+ &.btn-default {
+ .button-variant(white, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));
+
+ &:hover {
+ background: fade(black, 50%);
+ }
+ }
+
+ &:focus, &:active, &:focus:active {
+ outline: none;
+ }
+ }
+ .dropdown-menu {
+ left: auto;
+ right: 0;
+ }
+ }
+}
+
+// Translations
+.oe_translate_examples li {
+ margin: 10px;
+ padding: 4px;
+}
+html[lang] > body.editor_enable [data-oe-translation-state] {
+ @o-color-content-to-translate: rgb(255, 255, 90);
+ @o-color-translated-content: rgb(120, 215, 110);
+
+ background: fade(@o-color-content-to-translate, 50%)!important;
+
+ &[data-oe-translation-state="translated"] {
+ background: fade(@o-color-translated-content, 50%)!important;
+ }
+ &.o_dirty {
+ background: fade(@o-color-translated-content, 25%)!important;
+ }
+}
+
+// SNIPPET PANEL
+#oe_snippets {
+ .o-w-preserve-btn();
+
+ .o-flex-display();
+ .o-flex-flow(column, nowrap);
+ .o-position-absolute(0, auto, 0, -@o-we-sidebar-width);
+ position: fixed;
+ width: @o-we-sidebar-width;
+ z-index: @zindex-modal - 9;
+
+ font-family: Roboto, @font-family-sans-serif;
+ border-right: 1px solid @o-we-color-divider;
+ .o-transition(left, 400ms, @o-we-md-ease);
+ .o-linear-gradient(45deg, @o-we-color-normal, darken(@o-we-color-normal, 10%));
+ box-shadow: 0px 10px 10px -10px black inset;
+
+ #snippets_menu {
+ .o-flex(0, 0, auto);
+ height: @odoo-navbar-height;
+ line-height: @odoo-navbar-height;
+ margin: 0;
+ padding: 0;
+ background: @o-we-color-dark;
+ text-align: center;
+ font-weight: normal;
+ font-size: 17px;
+ color: white;
+ font-family: @o-we-font-family;
+ }
+
+ #o_scroll {
+ height: 100%;
+ overflow: auto;
+
+ .o_panel_header {
+ color: #999999;
+ .o-flex-display();
+ .o-align-items(center);
+ .o-justify-content(center);
+ padding: 3%;
+ color: white;
+ margin-bottom: 3%;
+
+ i {
+ margin-right: 5px;
+ }
+ }
+ .o_panel_body {
+ &:after {
+ content: " ";
+ display: table;
+ clear: both;
+ }
+
+ .oe_snippet {
+ float: left;
+ width: 45.5%;
+ margin: 0 0 6% 3%;
+ box-shadow: none;
+ background-color: transparent;
+ .user-select(none);
+
+ cursor: pointer;
+ cursor: copy;
+ cursor: grab;
+
+ .oe_snippet_thumbnail {
+ .oe_snippet_thumbnail_img {
+ border: none;
+ }
+ .oe_snippet_thumbnail_title {
+ border: none;
+ padding: 0px;
+ }
+
+ &:hover .oe_snippet_thumbnail_img {
+ .o-transition(transform, 200ms, ease);
+ .scale(1.05);
+ }
+ }
+
+ &.o_disabled {
+ .oe_snippet_thumbnail {
+ background-color: rgba(255, 0, 0, 0.75);
+ }
+ .oe_snippet_thumbnail_img {
+ opacity: 0.8;
+ }
+ }
+
+ &.o_snippet_install {
+ .oe_snippet_thumbnail_img {
+ opacity: 0.5;
+ }
+ .btn.o_install_btn {
+ display: none;
+ .o-position-absolute(16px, 4px, auto, 4px);
+ }
+ &:hover .btn.o_install_btn {
+ display: block;
+ }
+ }
+
+ &:nth-child(2n+1) {
+ clear: left;
+ }
+ }
+ }
+ }
+}
+.oe_snippet { // No root because can be drag and drop (and the helper is in the body)
+ position: relative;
+ width: 100px;
+ background-color: @o-we-color-normal;
+
+ > :not(.oe_snippet_thumbnail) {
+ display: none!important;
+ }
+
+ .oe_snippet_thumbnail {
+ width: 100%;
+
+ .oe_snippet_thumbnail_img {
+ width: 100%;
+ height: 0;
+ border: 1px solid @o-we-color-normal;
+ padding-bottom: 75%;
+ background-size: cover;
+ background-position: center center;
+ text-align: center;
+ overflow: hidden;
+ }
+ img.oe_snippet_thumbnail_img {
+ height: auto;
+ padding-bottom: 0;
+ }
+ .oe_snippet_thumbnail_title {
+ display: block;
+ border: 1px solid @o-we-color-dark;
+ padding: 5px;
+ font-size: 12px;
+ font-weight: 300;
+ text-shadow: none;
+ color: @o-we-color-text-light;
+ }
+ &:hover .oe_snippet_thumbnail_title {
+ color: white;
+ }
+ }
+}
+
+// DROPZONES
+@keyframes dropZoneInsert {
+ to {
+ background-color: fade(@odoo-brand-primary, 20%);
+ }
+}
+#wrapwrap .oe_drop_zone {
+ background-color: fade(@odoo-brand-primary, 5%);
+ .o-animation(dropZoneInsert, 1s, linear, 0s, infinite, alternate);
+
+ &.oe_insert {
+ @odoo-dropzone-size: 40px;
+ @odoo-dropzone-border-width: 2px;
+ @odoo-dropzone-border: @odoo-dropzone-border-width dashed @odoo-brand-primary;
+
+ z-index: 999;
+
+ border: @odoo-dropzone-border;
+ border-top: none;
+ border-bottom: none;
+
+ position: relative;
+ width: 100%;
+ height: @odoo-dropzone-size;
+ margin: -@odoo-dropzone-size/2 0;
+
+ .o-transition(margin, 400ms, linear);
+
+ &:after {
+ content: "";
+ display: block;
+ width: 100%;
+ height: 50%;
+ border-bottom: @odoo-dropzone-border;
+ box-sizing: content-box;
+ }
+
+ &.oe_vertical {
+ border: 2px dashed @odoo-brand-primary;
+ border-left: none;
+ border-right: none;
+
+ width: @odoo-dropzone-size;
+ float: left;
+ margin: 0 -@odoo-dropzone-size/2;
+
+ &:after {
+ width: 50%;
+ height: 100%;
+ border-bottom: none;
+ border-right: @odoo-dropzone-border;
+ }
+ }
+ }
+}
+
+// MANIPULATORS
+#oe_manipulators {
+ @odoo-handle-edge-size: 1px;
+ @odoo-handle-border-width: 1px;
+
+ position: relative;
+
+ // SNIPPET MANIPULATORS
+ .oe_overlay {
+ .o-position-absolute();
+ z-index: 1002;
+ display: none;
+ height: 0;
+ background: transparent;
+ text-align: center;
+ .o-transition(opacity, 400ms, linear);
+ &.o_keypress {
+ opacity: 0;
+ }
+ &.oe_active {
+ display: block;
+ }
+
+ // OVERLAY OPTIONS
+ > .oe_overlay_options {
+ font-family: @o-we-font-family;
+ .o-position-absolute(@bottom: 0, @left: 0);
+ width: 250px; // the parent oe_overlay has a width equal to the snippet width, the 250px is there to force the options to stay on one line without overriding bootstrap .btn-group
+ text-align: left;
+
+ > .btn-group {
+ white-space: nowrap;
+
+ .btn {
+ @o-overlay-option-size: 25px;
+
+ display: inline-block;
+ width: @o-overlay-option-size;
+ height: @o-overlay-option-size;
+ padding: 0;
+ border: 1px solid @o-we-color-dark;
+ line-height: @o-overlay-option-size;
+ font-size: 11px;
+ border-radius: 0;
+ font-weight: normal;
+
+ .o-transition(all, 400ms);
+ color: @o-we-color-text-light;
+ background-color: @o-we-color-light;
+ &:hover {
+ color: white;
+ background-color: lighten(@o-we-color-dark, 10%);
+
+ > .fa {
+ color: white;
+ }
+ }
+
+ &.oe_snippet_remove {
+ color: white;
+ background-color: @o-we-color-danger;
+ border-color: darken(@o-we-color-danger, 20%);
+
+ > .fa {
+ color: white;
+ }
+
+ &:hover {
+ background-color: darken(@o-we-color-danger, 20%);
+ }
+ }
+ &.oe_snippet_parent > i {
+ .scaleX(-1);
+ font-size: 12px;
+ }
+
+ > .fa {
+ color: @o-we-color-text-light;
+ }
+ }
+
+ // CUSTOMIZE MENU BUTTON
+ > .oe_options {
+ .btn {
+ width: auto;
+ padding: 0 25px 0 5px;
+ background-color: @o-we-color-dark;
+ text-transform: uppercase;
+ &:hover, &:active, &:focus {
+ background-color: lighten(@o-we-color-dark, 5%);
+ border-color: lighten(@o-we-color-dark, 10%);
+ color: white;
+ }
+ &:active, &:focus, &:active:focus {
+ outline: none;
+ }
+ &:before, &:after {
+ content: "";
+ width: 7px;
+ height: 2px;
+ background-color: @o-we-color-text-light;
+ .o-position-absolute(46%);
+ .o-transition(all, 0.3s);
+ }
+ &:before {
+ right: 9px;
+ .rotate(45deg);
+ }
+ &:after {
+ right: 5px;
+ .rotate(-45deg);
+ }
+ }
+ // Open menu
+ &.open .btn {
+ background-color: @o-we-color-light;
+ &:before, &:after {
+ width: 9px;
+ }
+ &:before {
+ right: 10px;
+ transform: translateX(5px) rotate(-45deg);
+ }
+ &:after {
+ .rotate(45deg);
+ }
+ }
+
+ // CUSTOMIZE MENU
+ .dropdown-menu {
+ margin: -1px 0 0 0;
+ padding: 0;
+ border: 1px solid @o-we-color-dark;
+ border-radius: 0;
+ background-color: @o-we-color-light;
+ a {
+ color: @o-we-color-text-light;
+ font-weight: normal;
+ font-size: 12px;
+ padding: 5px 35px 5px 20px;
+ }
+
+ > li {
+ position: relative;
+ &:hover {
+ background-color: fadeOut(@o-we-color-dark, 50%);
+ > a {
+ color: white;
+ background: transparent;
+ cursor: pointer;
+ }
+ > .dropdown-menu {
+ display: block;
+ left: 100%;
+ top: 0;
+
+ &.o_open_to_left {
+ left: auto;
+ right: 100%;
+ }
+ }
+ }
+ &.dropdown-submenu:before {
+ .o-position-absolute(@top: 10px, @right: 10px);
+ .o-caret-right(3px);
+ border-left-color: @o-we-color-text-light;
+ }
+ &.divider {
+ background-color: @o-we-color-divider;
+ margin: 0 8px;
+ }
+ &.active > a {
+ color: white;
+ background-color: fadeOut(@o-we-color-dark, 50%);
+ &:before {
+ .o-position-absolute(@top: 5px, @left: 5px);
+ content: "\f00c";
+ font-family: "FontAwesome";
+ color: @odoo-brand-optional;
+ }
+ }
+ &.dropdown-header {
+ color: white;
+ font-weight: bold;
+ font-size: 12px;
+ margin-top: 2px;
+
+ &:hover {
+ background-color: initial;
+ }
+
+ &.o_main_header {
+ padding-left: 8px;
+ }
+ &.o_parent_editor_header {
+ color: wheat;
+ font-weight: 400;
+ font-size: 10px;
+ margin: 7px 0 4px 4px;
+ &::before {
+ content: "\f148";
+ .o-position-absolute(@top: 2px, @left: 8px);
+ font-family: FontAwesome;
+ .scaleX(-1);
+ }
+ ~ li:not(.dropdown-header) {
+ a {
+ font-size: 11px;
+ padding: 4px 35px 4px 20px;
+ opacity: 0.8;
+ &:hover {
+ opacity: 1;
+ }
+ }
+ }
+ }
+ }
+
+ &.separator {
+ display: block;
+ margin: 4px 35px 4px 20px;
+ height: 1px;
+ background: fade(@o-we-color-text-light, 10%);
+ }
+
+ > a > i {
+ width: 16px;
+ margin-right: 8px;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ &.o_top_cover > .oe_overlay_options {
+ bottom: auto;
+ top: @odoo-handle-border-width;
+ right: @odoo-handle-border-width;
+ }
+
+ // HANDLES
+ > .o_handles {
+ @o-handles-offset-to-hide: 10000px;
+ @o-handless-accent-color: #00e2ff;
+ .o-position-absolute(-@o-handles-offset-to-hide, 0, auto, 0);
+
+ &:hover > .o_handle {
+ background-color: fade(@o-handless-accent-color, 5%);
+ }
+
+ > .o_handle {
+ @o-handle-btn-size: 18px;
+
+ position: relative;
+ border: 0 solid @o-handless-accent-color;
+ .o-transition(background, 300ms);
+
+ &:hover, &.o_active {
+ background-color: fade(@o-handless-accent-color, 20%);
+
+ &:before {
+ content: '';
+ .o-position-absolute(0, @left:50%);
+ width: 1px;
+ height: 100%;
+ margin-left: -1px;
+ background-color: fade(@o-handless-accent-color, 50%);
+ }
+
+ &.w:before {
+ .o-position-absolute(50%, @left: 0);
+ width: 100%;
+ height: 1px;
+ }
+
+ &:after {
+ border-color: darken(@o-handless-accent-color, 10%);
+ background-color: darken(@o-handless-accent-color, 20%);
+ }
+ }
+
+ &:after {
+ display: block;
+ width: @o-handle-btn-size;
+ height: @o-handle-btn-size;
+ border: solid 1px darken(@o-handless-accent-color, 10%);
+ line-height: @o-handle-btn-size - 2;
+ font-size: 14px;
+ font-family: FontAwesome;
+ background-color: darken(@o-handless-accent-color, 20%);
+ color: white;
+ }
+ &.w:after, &.e:after {
+ content: "\f07e";
+ }
+ &.s:after, &.n:after {
+ content: "\f07d";
+ }
+
+ &.o_handle_start {
+ &.w:after, &.e:after {
+ content: '\f061';
+ }
+ &.n:after, &.s:after {
+ content: '\f063';
+ }
+ }
+ &.o_handle_end {
+ &.w:after, &.e:after {
+ content: '\f060';
+ }
+ &.n:after, &.s:after {
+ content: '\f062';
+ }
+ }
+
+ &.w {
+ .o-position-absolute(@o-handles-offset-to-hide, auto, -@o-handles-offset-to-hide, 0);
+ width: @odoo-handle-edge-size;
+ border-width: @odoo-handle-border-width;
+ border-right-width: 0;
+ cursor: e-resize;
+
+ &:after {
+ .o-position-absolute(@top: 50%, @left: 40%);
+ margin-top: -@o-handle-btn-size/2;
+ }
+ }
+ &.e {
+ .o-position-absolute(@o-handles-offset-to-hide, 0, -@o-handles-offset-to-hide, auto);
+ width: @odoo-handle-edge-size;
+ border-right-width: @odoo-handle-border-width;
+ cursor: w-resize;
+
+ &:after {
+ .o-position-absolute(@top: 50%, @right: 40%);
+ margin-top: -@o-handle-btn-size/2;
+ }
+ }
+ &.n {
+ .o-position-absolute(@o-handles-offset-to-hide, 0, auto, 0);
+ border-top-width: @odoo-handle-border-width;
+ cursor: ns-resize;
+
+ &:after {
+ .o-position-absolute(@left: 50%, @top: 40%);
+ margin-left: -@o-handle-btn-size/2;
+ }
+ }
+ &.s {
+ .o-position-absolute(auto, 0, -@o-handles-offset-to-hide, 0);
+ border-bottom-width: @odoo-handle-border-width;
+ cursor: ns-resize;
+
+ &:after {
+ .o-position-absolute(@left: 50%, @bottom: 40%);
+ margin-left: -@o-handle-btn-size/2;
+ }
+ }
+
+ &.readonly {
+ cursor: auto!important;
+
+ &:after {
+ display: none!important;
+ }
+ &:hover {
+ opacity: 0.5;
+ }
+ }
+ }
+ }
+ }
+}
+
+.s-resize-important * {
+ cursor: s-resize !important;
+}
+.n-resize-important * {
+ cursor: n-resize !important;
+}
+.e-resize-important * {
+ cursor: e-resize !important;
+}
+.w-resize-important * {
+ cursor: w-resize !important;
+}
+.move-important * {
+ cursor: move !important;
+}
+
+// NOTE EDITOR
+.note-popover .popover {
+ height: @odoo-navbar-height;
+ top: 0 !important;
+ left: 0 !important;
+ padding: 0;
+ margin: 0 0 0 @o-we-sidebar-width;
+ background-color: @o-we-color-dark;
+ border-radius: 0;
+ border-width: 0 1px;
+ width: auto;
+ text-align: center;
+ box-shadow: none;
+
+ .popover-content {
+ height: @odoo-navbar-height;
+ white-space: nowrap;
+ font-family: @o-we-font-family;
+
+ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
+ font-family: @o-we-font-family;
+ }
+
+ .btn {
+ height: @odoo-navbar-height;
+ border: none;
+ border-radius: 0;
+ padding: @padding-base-vertical @padding-base-horizontal; // force this because of themes
+ background-color: @o-we-color-dark;
+ color: @o-we-color-text-normal;
+ border-top: 2px solid transparent;
+ .o-transition(all, 0.3s);
+
+ > .fa {
+ color: @o-we-color-text-normal;
+ }
+
+ &:hover {
+ border-top: 2px solid @o-we-color-text-normal;
+ color: @o-we-color-text-light;
+
+ > .fa {
+ color: @o-we-color-text-light;
+ }
+ }
+
+ .o_image_alt {
+ .o-text-overflow(inline-block);
+ max-width: 100px;
+ }
+
+ &.active {
+ border-top: 2px solid white;
+ background-color: @o-we-color-dark;
+ color: @o-we-color-text-light;
+ box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.5);
+
+ > .fa {
+ color: @o-we-color-text-light;
+ }
+ }
+ }
+ > .btn-group {
+ margin-top: -2px;
+
+ &.open, .btn-group.open {
+ .dropdown-toggle {
+ border-top: 2px solid white;
+ background-color: @o-we-color-darker;
+ color: white;
+ box-shadow: none;
+
+ > .fa, > span {
+ color: white;
+ }
+ }
+ }
+ }
+ .dropdown-menu {
+ margin: 0;
+ border-radius: 0;
+ background-color: @o-we-color-darker;
+ color: @o-we-color-text-normal;
+ > li > a {
+ width: 100%;
+ color: @o-we-color-text-light;
+
+ > .fa {
+ color: @o-we-color-text-light;
+ }
+
+ &:hover {
+ background-color: @o-we-tab-active-bg;
+ color: white;
+
+ > .fa {
+ color: white;
+ }
+ }
+ }
+ }
+ .note-para .dropdown-menu {
+ min-width: 228px;
+ }
+
+ #colors_preview {
+ padding: 4px;
+ border-radius: 2px;
+ border: 1px solid #989898;
+ border-color: fadeOut(@o-we-color-text-normal, 0.5);
+ }
+ .note-color-palette .note-color-row {
+ height: auto!important;
+
+ &::after {
+ content: "";
+ display: table;
+ clear: both;
+ }
+
+ .note-color-btn {
+ float: left;
+ margin: 1px 1px 0 0;
+ border-color: black;
+ .o_alpha_button_preview();
+
+ &.o_small {
+ width: 16px;
+ height: 16px;
+ margin: 3px 3px 2px 2px;
+ border-radius: 50%;
+ }
+
+ &.o_clear {
+ clear: both;
+ }
+
+ &.o_btn_transparent {
+ display: none;
+ }
+ }
+ }
+ }
+}
+
+.note-popover .popover, .note-editor {
+ .dropdown-menu {
+ > li > a {
+ > i {
+ visibility: hidden;
+ }
+ &.checked > i {
+ visibility: visible;
+ }
+ }
+ }
+
+ .note-color {
+ .dropdown-toggle {
+ width: auto;
+ }
+ .o_foreground_toggle > button:before {
+ font-family: FontAwesome;
+ content: '\f1fc';
+ }
+ .o_background_toggle > button:before {
+ font-family: FontAwesome;
+ content: '\f0c3';
+ }
+ .dropdown-menu {
+ min-width: 353px!important;
+ }
+ }
+}
+
+table.colorpicker {
+ width: 100%;
+ td {
+ padding: 0 2px 2px 0;
+ > button {
+ width: 100%;
+ border: 1px solid black;
+ padding: 0;
+ &::after {
+ content: "A";
+ font-weight: bold;
+ vertical-align: sub;
+ }
+ }
+ }
+}
+.colorpicker {
+ background-color: @o-we-color-dark!important;
+
+ .o_colorpicker_sections {
+ border: 1px solid darken(@o-we-color-dark, 12%);
+ border-width: 1px 0 0;
+ font-size: 14px;
+
+ .o_colorpicker_section_menu {
+ width: 50px;
+ height: 100%;
+ float: left;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ text-align: center;
+
+ > li {
+ display: block;
+ float: none;
+ margin: 0;
+ background-color: transparent;
+ > a {
+ display: block;
+ padding: 5px 10px!important;
+ border-radius: 0;
+ background-color: transparent;
+ color: darken(@o-we-color-text-light, 10%);
+ > i.fa {
+ font-size: 20px;
+ }
+
+ &:focus, &:active, &:focus:active {
+ outline: none;
+ }
+ }
+ &:hover, &.active {
+ > a {
+ color: white;
+ }
+ }
+ &.active > a {
+ background-color: @o-we-tab-active-bg!important;
+ }
+ }
+ }
+ .o_colorpicker_section_tabs {
+ width: 200px;
+ height: 100%;
+ margin-left: 50px;
+ .tab-pane {
+ padding: 5px 10px;
+ background-color: @o-we-tab-active-bg;
+ }
+ &.o_unique_palette {
+ margin-left: 0;
+ }
+ }
+ }
+ .o_colorpicker_section {
+ &:after {
+ content: "";
+ display: table;
+ clear: both;
+ }
+
+ > button {
+ position: relative;
+ display: block;
+ width: 100%;
+ height: 30px;
+ border: 1px solid @o-we-color-dark;
+ border-radius: 3px;
+ margin: 0 0 5px;
+ padding: 0 20px;
+ line-height: 28px;
+ font-size: 12px;
+ font-weight: bold;
+ text-align: left;
+ .o_alpha_button_preview();
+
+ &:hover, &.selected {
+ box-shadow: 0px 0px 2px 2px @o-we-color-light;
+ }
+
+ &:after {
+ content: "A";
+ .o-position-absolute(0, 0);
+ width: 25px;
+ text-align: center;
+ font-size: 13px;
+ line-height: 28px;
+ font-weight: normal;
+ }
+ &.selected:after {
+ content: "\f00c";
+ font-family: "FontAwesome";
+ color: @brand-success;
+ }
+
+ &[data-event="foreColor"] {
+ background-color: @o-we-color-normal;
+ &:after {
+ background-color: fade(white, 30%);
+ }
+ }
+
+ &.o_small {
+ float: left;
+ width: auto;
+ min-width: 27px;
+ padding: 0;
+ margin-right: 5px;
+ }
+
+ &.o_btn_transparent::before {
+ background-color: transparent;
+ }
+ }
+ }
+ .note-palette-title {
+ padding: 10px 0px 10px 10px;
+ color: @o-we-color-text-light;
+ font-weight: bold;
+ }
+ .palette-reset {
+ .o-position-absolute(0, 0);
+ margin: 0;
+ padding: 5px 10px 0;
+ .note-color-reset {
+ font-size: 20px!important;
+ color: desaturate(fade(@o-we-color-danger, 60%), 40%);
+ margin: 1px 0 0;
+ padding: 0;
+ cursor: pointer;
+ &:hover {
+ background: transparent!important;
+ color: @o-we-color-danger;
+ }
+ }
+ }
+}
+
+// ENTER IN EDIT MODE
+body.editor_enable {
+ padding-top: @odoo-navbar-height!important;
+
+ #web_editor-top-edit {
+ background-color: @o-we-color-dark;
+ form.navbar-form {
+ right: 0;
+ }
+ }
+
+ &.editor_has_snippets {
+ .o-transition(padding-left, 400ms, @o-we-md-ease);
+ padding-left: @o-we-sidebar-width!important;
+
+ #oe_snippets {
+ left: 0;
+ }
+ }
+}
+
+#web_editor_inside_iframe {
+ background-color: @odoo-brand-secondary;
+
+ #wrapwrap {
+ position: relative;
+ display: table;
+ table-layout: fixed;
+ width: 100%;
+ height: 100%;
+
+ > * {
+ display: table-row;
+ }
+ > main {
+ height: 100%;
+
+ #editable_area {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ background-color: white;
+ }
+ }
+ }
+}
+
+// Mixins for buttons with alpha bg-color
+.o_alpha_button_preview () {
+ position: relative;
+ background-image: url('/web_editor/static/src/img/transparent.png');
+ background-size: 10px auto;
+ z-index: 1;
+
+ // Place an overlay that inherit the button's bg-color.
+ &::before {
+ content: "";
+ .o-position-absolute(0, 0, 0, 0);
+ z-index: -1;
+ background-color: inherit;
+ }
+}
+
+// Animations
+@keyframes fadeInDownSmall {
+ 0% {
+ opacity: 0;
+ .translate(0, -5px);
+ }
+ 100% {
+ opacity: 1;
+ .translate(0, 0);
+ }
+}
+@keyframes fadeInOut {
+ 0% {
+ opacity: 0;
+ }
+ 25% {
+ opacity: 1;
+ }
+ 75% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+@keyframes inputHighlighter {
+ from { background: @odoo-brand-optional; }
+ to { width: 0; background: transparent; }
+}
+
+// INPUTS
+@o-switch-size: 2ex;
+@o-switch-inactive-color: @gray-lighter;
+
+.o_switch {
+ .o-flex-display();
+ .o-align-items(center);
+ font-weight: normal;
+ cursor: pointer;
+
+ > input {
+ display: none;
+
+ + span {
+ background-color: @o-switch-inactive-color;
+ box-shadow: inset 0 0 0px 1px darken(@o-switch-inactive-color,10%);
+ border-radius: 100rem;
+ height: @o-switch-size;
+ width: @o-switch-size * 1.8;
+ margin-right: 0.5em;
+ display: inline-block;
+ .transition(all 0.3s @o-we-md-ease);
+
+ &:after {
+ content: "";
+ background: @o-we-color-paper;
+ display: block;
+ width: @o-switch-size - 0.2;
+ height: @o-switch-size - 0.2;
+ margin-top: 0.1ex;
+ margin-left: 0.1ex;
+ border-radius: 100rem;
+ .transition(all 0.3s @o-we-md-ease);
+ box-shadow: 0 1px 1px darken(@o-switch-inactive-color,35%), inset 0 0 0 1px lighten(@o-switch-inactive-color,10%);
+ }
+ }
+
+ &:checked + span {
+ box-shadow: none;
+ .o-linear-gradient(0deg, @o-we-color-success, darken(@o-we-color-success, 10%));
+
+ &:after {
+ margin-left: (@o-switch-size*1.8 - @o-switch-size) + 0.1;
+ }
+ }
+ }
+ &.o_switch_danger {
+ > input {
+ &:not(:checked) + span {
+ box-shadow: none;
+ .o-linear-gradient(0deg, lighten(@brand-danger, 5%), darken(@brand-danger, 5%));
+ }
+ }
+ }
+}
+
+.dropdown-menu label .o_switch {
+ margin: 0;
+ padding: 2px 0;
+}
+
+.text-input-group {
+ position: relative;
+ margin-bottom: 45px;
+
+ input {
+ font-size: 18px;
+ padding: 10px 10px 10px 5px;
+ display: block;
+ width: 300px;
+ border: none;
+ border-bottom: 1px solid #757575;
+ }
+ input:focus { outline: none; }
+
+ /* LABEL ======================================= */
+ label {
+ color: #999;
+ font-size: 18px;
+ font-weight: normal;
+ .o-position-absolute(@top: 10px, @left: 5px);
+ pointer-events: none;
+ .transition(0.2s ease all)
+ }
+
+ /* active state */
+ input:focus ~ label, input:valid ~ label {
+ top: -20px;
+ font-size: 14px;
+ color: #5264AE;
+ }
+
+ /* BOTTOM BARS ================================= */
+ .bar { position: relative; display: block; width: 300px; }
+ .bar:before, .bar:after {
+ content: '';
+ height: 2px;
+ width: 0;
+ bottom: 1px;
+ .o-position-absolute();
+ background: #5264AE;
+ .transition(0.2s ease all);
+ }
+ .bar:before {
+ left: 50%;
+ }
+ .bar:after {
+ right: 50%;
+ }
+
+ /* active state */
+ input:focus ~ .bar:before, input:focus ~ .bar:after {
+ width: 50%;
+ }
+
+ /* HIGHLIGHTER ================================== */
+ .highlight {
+ .o-position-absolute(@top: 25%, @left: 0);
+ height: 60%;
+ width: 100px;
+ pointer-events: none;
+ opacity: 0.5;
+ }
+
+ /* active state */
+ input:focus ~ .highlight {
+ .animation(inputHighlighter 0.3s ease);
+ }
+}
+
+// DRAG&DROP ANIMATIONS
+.oe_snippet_body {
+ opacity: 0;
+ .o-animation(fadeInDownSmall, 700ms, @fill-mode: forwards);
+}
+
+// ACE EDITOR
+.o_ace_view_editor {
+ @o-ace-color: #2F3129;
+ background: @o-ace-color;
+ color: white;
+ .o-flex-display();
+ .o-flex-flow(column, nowrap);
+ opacity: 0.97;
+
+ .o_ace_view_editor_title {
+ .o-flex(0, 0, auto);
+ .o-flex-display();
+ .o-align-items(center);
+ padding: @grid-gutter-width/4;
+
+ > .o_ace_type_switcher > button::after {
+ .o-caret-down();
+ margin-left: 4px;
+ }
+
+ > * {
+ .o-flex(0, 0, auto);
+ margin: 0 @grid-gutter-width/4;
+
+ &.o_include_option {
+ .o-flex-display();
+ .o-align-items(center);
+ font-size: 11px;
+
+ > .o_checkbox {
+ margin-right: @grid-gutter-width/4;
+ }
+ }
+
+ &.o_res_list {
+ .o-flex(1, 1, auto);
+ min-width: 60px;
+ }
+ }
+ }
+ #ace-view-id {
+ .o-flex(0, 0, auto);
+ padding: @grid-gutter-width/4 @grid-gutter-width/2;
+ background-color: lighten(@o-ace-color, 10%);
+ }
+ #ace-view-editor {
+ height: 70%; // in case flex is not supported
+ .o-flex(1, 1, auto);
+ .ace_gutter {
+ cursor: ew-resize;
+
+ .ace_gutter-cell.o_error {
+ position: relative;
+ &::after {
+ .o-position-absolute(-100%, 0, -100%, 0);
+ .ace-line-error-mixin();
+ }
+ }
+ }
+ .ace_resize_bar {
+ .o-position-absolute(@right: 0);
+ width: 25px;
+ height: 100%;
+ cursor: ew-resize;
+ }
+ .ace_scroller.o_error::after {
+ .o-position-absolute(0, auto, 0, 0);
+ width: 3px;
+ .ace-line-error-mixin();
+ }
+
+ .ace-line-error-mixin() {
+ content: "";
+ z-index: 1000;
+ display: block;
+ background-color: @brand-danger;
+ opacity: 0.5;
+ pointer-events: none;
+ }
+ }
+}
+.o_ace_select2_dropdown {
+ width: auto!important;
+ padding-top: 4px;
+ font-family: monospace!important;
+
+ > .select2-results {
+ max-height: none;
+ max-height: 70vh;
+
+ .select2-result-label {
+ padding-top: 1px;
+ padding-bottom: 2px;
+
+ >.o_ace_select2_result {
+ padding: 0;
+ font-size: 12px;
+ white-space: nowrap;
+ }
+ }
+ }
+}
+
+// MODALS
+body .modal {
+ // SELECT MEDIA
+ .o_select_media_dialog {
+ width: 80%;
+
+ .modal-body {
+ .nav-tabs .active > a[href="#editor-media-icon"] {
+ background-color: white;
+ }
+
+ li.search {
+ ul.pager li:last-child{
+ margin-left: 2px;
+ }
+ .form-group {
+ position: relative;
+ margin: 0 10px 0 0;
+ > input {
+ padding-right: 30px;
+ }
+ > span {
+ .o-position-absolute(7px, 7px);
+ font-size: 1.3em;
+ }
+ }
+ }
+
+ .well {
+ border-color: @gray-lighter;
+ border-top-width: 0;
+ }
+
+ .o_existing_attachment_cell {
+ @odoo-border-image: 2px;
+
+ .o_existing_attachment_remove {
+ .o-position-absolute(@odoo-border-image, 15px + @odoo-border-image);
+ padding: 3px 5px 5px 5px;
+ background-color: fade(white, 80%);
+ text-shadow: 0 0 1px white;
+ border-radius: 0 0 0 2px;
+ opacity: 0;
+ cursor: pointer;
+
+ &:hover {
+ background-color: white;
+ color: @o-we-color-danger;
+ }
+ }
+ .o_image {
+ border: @odoo-border-image solid transparent;
+ cursor: pointer;
+ .o-transition(opacity, 400ms);
+
+ &.o_webimage {
+ width: 100%;
+ height: auto;
+ background-image: none!important;
+ }
+
+ &.o_image_loading {
+ opacity: 0;
+ }
+ }
+ &.o_selected .o_image {
+ border-color: @odoo-brand-primary;
+ box-shadow: 0px 0px 2px 2px @odoo-brand-secondary;
+ }
+ &:hover .o_existing_attachment_remove {
+ opacity: 1;
+ }
+ }
+ .font-icons-icons {
+ padding: 20px 0;
+
+ > span {
+ text-align: center;
+ font-size: 22px;
+ margin: 5px;
+ width: 50px;
+ height: 50px;
+ padding: 15px;
+ cursor: pointer;
+
+ &.o_selected {
+ cursor: auto;
+ background-color: @o-we-color-paper;
+ box-shadow: 0px 0px 0px 1px @o-we-color-success;
+ }
+ }
+ }
+
+ #editor-media-image, #editor-media-document {
+ .well {
+ label {
+ margin: auto 10px;
+ }
+
+ .btn-group {
+ margin-right: 10px;
+ }
+ }
+ }
+
+ // VIDEO TAB
+ #editor-media-video .well {
+ padding: 0;
+ .o-flex-display();
+ .o-flex-flow(row, wrap);
+
+ .o_video_dialog_form {
+ .o-flex(1, 1, auto);
+ min-width: 0;
+ padding: 20px;
+
+ #o_video_form_group {
+ position: relative;
+ width: 100%;
+
+ > textarea {
+ width: 100%;
+ min-height: 95px;
+ padding-bottom: 25px;
+ overflow-y: scroll;
+ }
+
+ > .o_validate_feedback {
+ .o-position-absolute(auto, 10px, 10px);
+
+ > .fa {
+ display: none;
+ }
+ }
+ &.has-error > .o_validate_feedback > .fa-exclamation-triangle {
+ display: block;
+ }
+ &.has-success > .o_validate_feedback > .fa-check {
+ display: block;
+ }
+ }
+ }
+
+ #video-preview {
+ position: relative;
+ .o-flex(1, 0, 50%);
+ .o-flex-display();
+ .o-flex-flow(column, nowrap);
+ .o-justify-content(center);
+
+ .o-we-preview-box(0 19px);
+ border: none;
+
+ .media_iframe_video {
+ width: 100%;
+ }
+
+ .o_video_dialog_iframe {
+ .o-we-preview-content();
+ max-width: 100%;
+ max-height: 100%;
+
+ &.alert {
+ .o-animation(fadeInDownSmall, 700ms, @fill-mode: forwards);
+ margin: 0 auto;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // BACKGROUND IMAGE OPTIONS
+ .o_bg_img_opt_modal .o_bg_img_opt {
+ margin: 15px 0;
+
+ .help-control {
+ .o-position-absolute(15px, 15px);
+ }
+ .help {
+ margin: 15px 0;
+
+ .simulator {
+ position: relative;
+ float: left;
+ margin-right: 15px;
+ width: 120px;
+ height: 100px;
+ .bg {
+ .o-position-absolute(0, 0, 0, 0);
+ border: 1px dotted #888787;
+ background-image: url(/web/image);
+ background-position: center center;
+ .o-background-size(cover);
+ }
+ .el {
+ .o-position-absolute(10px, 0, 10px, 0);
+ border: 1px solid #222;
+ }
+ &.contain_bg {
+ .bg {
+ .o-position-absolute(0, 12px, 20px, 12px);
+ }
+ .el {
+ .o-position-absolute(0, 0, 20px, 0);
+ }
+ }
+ }
+ + * {
+ clear: left;
+ }
+ }
+
+ .o_bg_img_opt_cover_edition {
+ .o-we-preview-box();
+
+ h6 {
+ color: white;
+ font-weight: bold;
+ }
+ .o_bg_img_opt_object {
+ position: relative;
+ background: white;
+ min-height: 10px;
+ .o-we-preview-content();
+
+ > img {
+ cursor: crosshair;
+ border-top: 1px solid #5A5A5A;
+ border-bottom: 1px solid #111;
+ }
+ &:hover .o_focus_point:before {
+ opacity: 0.5;
+ }
+ }
+ .o_bg_img_opt_ui_info {
+ .animation(fadeInOut 2s ease forwards);
+ .o-position-absolute(@bottom: 1px, @right: 0);
+ display: block;
+ padding: 3px 13px;
+ background-color: rgba(255, 255, 255, 0.8);
+ color: #333;
+ text-align: center;
+ font-weight: bold;
+ pointer-events: none;
+ span {
+ font-weight: normal;
+ }
+ .o_x {
+ margin-right: 10px
+ }
+ }
+ .grid {
+ .o-position-absolute(@top: 33.33%, @left: 0);
+ display: block;
+ width: 100%;
+ height: 1px;
+ background: fadeOut(lighten(@odoo-brand-optional, 30%), 50%);
+ pointer-events: none;
+ &.grid-2 {
+ top: 66.66%
+ }
+ &.grid-3 {
+ top: 0;
+ left: 33.33%;
+ width: 1px;
+ height: 100%
+ }
+ &.grid-4 {
+ top: 0;
+ left: 66.66%;
+ width: 1px;
+ height: 100%
+ }
+ }
+ .o_focus_point {
+ .o-position-absolute(@top: 0, @left: 0);
+ width: 30px;
+ height: 30px;
+ border: 2px solid white;
+ border-radius: 100%;
+ margin-top: -15px;
+ margin-left: -15px;
+ box-shadow: 0 0 1px #333;
+ pointer-events: none;
+ &.o_with_transition {
+ .o-transition(all, 0.2s);
+ }
+ &:before {
+ pointer-events: none;
+ content: "";
+ display: block;
+ width: 100px;
+ height: 100px;
+ margin-top: -37px;
+ margin-left: -37px;
+ border: 1px solid #EAEAEA;
+ background: rgba(247, 76, 76, 0);
+ border-radius: 100em;
+ opacity: 1;
+ box-shadow: 0 0 0 100em rgba(0, 0, 0, 0.33);
+ .o-transition(opacity, 0.2s);
+ }
+ }
+ }
+ }
+
+ // LINK EDITOR DIALOG COLOR SELECTOR
+ .o_link_dialog {
+ .o_link_dialog_color > .o_link_dialog_color_item {
+ position: relative;
+ width: 30px;
+ height: 30px;
+ padding: 0; // Important for themes
+ border: 2px solid rgba(0, 0, 0, 0.25);
+ border-radius: 50%;
+
+ input:checked + i::before {
+ content: "\f00c";
+ .o-position-absolute(@top: 6px, @left: 5px);
+ }
+
+ &.btn-link {
+ padding: 3px 9px;
+
+ > span {
+ text-decoration: underline;
+ }
+ }
+ }
+ .o_link_dialog_preview {
+ border-left: 1px solid @gray-lighter;
+ }
+ }
+}