From 6e4db7d13a926845bf82f5b035afede42d6d5a89 Mon Sep 17 00:00:00 2001 From: qsm-odoo <qsm@odoo.com> Date: Mon, 12 Mar 2018 16:24:31 +0100 Subject: [PATCH] [REF] *: review scss variables handling Unlike LESS, SCSS variables are not lazy loaded. Our system has thus to be updated. This commit creates new templates which are t-called in assets bundles (to replace the old less_helpers template): - web._assets_utils: regroups the mixins and functions which *can* (and so should) be available in every asset bundle - web._assets_primary_variables: regroups the variables (or mixins used as variables) which *can* (and so should) be available in every asset bundle - web._assets_secondary_variables: same as above but provides an environnement where all the 'primary' ones are accessible. This is for example useful to handle the community/enterprise split: // Community primary variables $o-pink-color: pink; // enterprise color $o-brand-primary: blue; // Enterprise primary variables $o-brand-primary: $o-pink-color; // Community secondary variables $o-my-darker-primary: darken($o-brand-primary, 5%); => If there was only one variable template, enterprise edition would have been able to define its primary color at the end but the darker primary would not have been updated. Using the "!default" system and putting enterprise definition above would not have solved the problem as the $o-pink-color would not have been accessible. - web._assets_backend_helpers: regroups the variables, mixins and functions which *can* (and so should) be available in the backend asset bundle only. This is especially (only?) useful for bootstrap variables overriddes. - web._assets_frontend_helpers: regroups the variables, mixins and functions which *can* (and so should) be available in the frontend asset bundle only. This is especially (only?) useful for bootstrap variables overriddes. Note: bootstrap variables are not accessible in any of those anymore. If you have variables that should depend on bootstrap, you have 3 solutions: - Find another way: your variable is probably useless, use bootstrap variables directly or create a variable that will influence the value of bootstrap variables. E.g. instead of declaring: `$myvar: $bootstrapvar * 3` and using $myvar alone, declare: `$myvar: 3` and use `$myvar * $bootstrapvar` where needed. - Declare a copy of the bootstrap variable and use that one. In that case, you should also force-set the real bootstrap one to be sure they match (this should be done in appropriate templates mentioned above). E.g. ``` $o-boostrapvar: 5; ... $boostrapvar: $o-bootstrapvar; ``` - Set your variable to null and set it to your bootstrap expression in the file you will need it (where bootstrap variables are accessible) without forgetting to add the !default flag to allow overriddes. ``` $myvar: null; ... $myvar: $bootstrapvar * 5 !default; ``` This commit also partly changes the variable names to follow the convention: $o-<app_id>-<name> where 'app_id' is the current's app name or a meaningful unique identifier ("theme" for all themes for example, as no multiple themes can be installed). --- .../static/src/scss/account_dashboard.scss | 10 +- .../src/scss/account_journal_dashboard.scss | 22 +- .../src/scss/account_reconciliation.scss | 28 +- addons/account/static/src/scss/variables.scss | 5 + addons/account/views/account.xml | 6 + addons/calendar/static/src/scss/calendar.scss | 4 +- addons/event/static/src/scss/event.scss | 2 +- .../static/src/scss/google_calendar.scss | 2 +- .../static/src/scss/hr_attendance.scss | 2 +- .../static/src/scss/hr_org_chart.scss | 88 ++--- .../static/src/scss/variables.scss | 14 + addons/hr_org_chart/views/hr_templates.xml | 6 + .../static/src/scss/copy_clipboard.scss | 2 +- .../src/scss/im_livechat_bootstrap.scss | 11 +- .../views/im_livechat_channel_templates.xml | 1 - addons/lunch/static/src/scss/lunch.scss | 2 +- addons/mail/static/src/scss/chat_window.scss | 25 +- addons/mail/static/src/scss/chatter.scss | 8 +- addons/mail/static/src/scss/composer.scss | 14 +- addons/mail/static/src/scss/discuss.scss | 45 ++- .../static/src/scss/extended_chat_window.scss | 2 +- addons/mail/static/src/scss/followers.scss | 8 +- .../mail/static/src/scss/mail_activity.scss | 4 +- addons/mail/static/src/scss/systray.scss | 10 +- addons/mail/static/src/scss/thread.scss | 20 +- addons/mail/static/src/scss/variables.scss | 17 +- addons/mail/views/mail_templates.xml | 7 +- .../static/src/scss/mass_mailing.ui.scss | 14 +- .../mrp/static/src/scss/mrp_bom_report.scss | 2 +- addons/portal/static/src/scss/portal.scss | 2 +- .../static/src/scss/project_dashboard.scss | 2 +- .../static/src/scss/sale_timesheet.scss | 6 +- .../static/src/scss/sales_team_dashboard.scss | 5 +- .../src/scss/stock_traceability_report.scss | 6 +- addons/survey/views/survey_templates.xml | 3 +- addons/web/static/src/scss/base_settings.scss | 20 +- .../static/src/scss/bootstrap_overridden.scss | 118 ++----- .../scss/bootstrap_overridden_frontend.scss | 0 addons/web/static/src/scss/control_panel.scss | 9 +- addons/web/static/src/scss/data_export.scss | 6 +- addons/web/static/src/scss/datepicker.scss | 14 +- .../web/static/src/scss/domain_selector.scss | 6 +- addons/web/static/src/scss/dropdown.scss | 8 +- .../web/static/src/scss/dropdown_extra.scss | 7 +- addons/web/static/src/scss/fields.scss | 36 +- addons/web/static/src/scss/fields_extra.scss | 2 +- addons/web/static/src/scss/form_view.scss | 78 ++--- .../web/static/src/scss/form_view_extra.scss | 12 +- addons/web/static/src/scss/graph_view.scss | 2 +- .../src/scss/kanban_column_progressbar.scss | 7 +- .../web/static/src/scss/kanban_dashboard.scss | 173 ---------- .../src/scss/kanban_examples_dialog.scss | 6 +- addons/web/static/src/scss/kanban_view.scss | 6 +- .../static/src/scss/kanban_view_mobile.scss | 4 +- .../static/src/scss/layout_background.scss | 12 +- addons/web/static/src/scss/layout_clean.scss | 18 +- addons/web/static/src/scss/list_view.scss | 19 +- .../static/src/scss/model_field_selector.scss | 4 +- addons/web/static/src/scss/navbar.scss | 46 +-- addons/web/static/src/scss/pivot_view.scss | 10 +- .../static/src/scss/primary_variables.scss | 92 +++++ addons/web/static/src/scss/progress_bar.scss | 6 +- addons/web/static/src/scss/rainbow.scss | 12 +- addons/web/static/src/scss/search_view.scss | 6 +- .../static/src/scss/search_view_extra.scss | 4 +- .../static/src/scss/secondary_variables.scss | 43 +++ addons/web/static/src/scss/tooltip.scss | 16 +- addons/web/static/src/scss/utils.scss | 322 ++++++++++++++---- addons/web/static/src/scss/variables.scss | 82 ----- addons/web/static/src/scss/views.scss | 4 +- addons/web/static/src/scss/web_calendar.scss | 48 ++- addons/web/static/src/scss/webclient.scss | 12 +- .../web/static/src/scss/webclient_extra.scss | 9 +- .../web/static/src/scss/webclient_layout.scss | 13 +- addons/web/views/webclient_templates.xml | 48 ++- .../static/src/scss/web_editor.common.scss | 35 -- .../static/src/scss/web_editor.ui.scss | 161 ++++----- .../static/src/scss/web_editor.variables.scss | 97 ++++-- addons/web_editor/views/editor.xml | 4 +- .../static/src/scss/dashboard.scss | 2 +- addons/web_tour/static/src/scss/tip.scss | 2 +- .../static/src/scss/website.backend.scss | 52 +-- .../static/src/scss/website.edit_mode.scss | 2 +- addons/website/static/src/scss/website.scss | 2 +- .../website/static/src/scss/website.ui.scss | 18 +- addons/website/views/website_templates.xml | 2 +- .../views/website_livechat.xml | 1 - .../static/src/scss/website_quotation.scss | 2 +- .../static/src/scss/website_rating.scss | 6 +- .../static/src/scss/website_sale.scss | 2 +- .../src/scss/website_sale_dashboard.scss | 10 +- .../static/src/scss/website_slides.scss | 25 +- .../src/scss/website_theme_install.scss | 8 +- 93 files changed, 1095 insertions(+), 1081 deletions(-) create mode 100644 addons/account/static/src/scss/variables.scss create mode 100644 addons/hr_org_chart/static/src/scss/variables.scss create mode 100644 addons/web/static/src/scss/bootstrap_overridden_frontend.scss create mode 100644 addons/web/static/src/scss/primary_variables.scss create mode 100644 addons/web/static/src/scss/secondary_variables.scss delete mode 100644 addons/web/static/src/scss/variables.scss diff --git a/addons/account/static/src/scss/account_dashboard.scss b/addons/account/static/src/scss/account_dashboard.scss index de562759e11d..938bc058af27 100644 --- a/addons/account/static/src/scss/account_dashboard.scss +++ b/addons/account/static/src/scss/account_dashboard.scss @@ -1,7 +1,7 @@ .o_kanban_view.o_kanban_dashboard.o_account_kanban { &.o_kanban_ungrouped .o_account_dashboard_header { - margin: (0 - $o-kanban-record-margin) ($o-kanban-record-margin - $odoo-horizontal-padding) $o-kanban-record-margin; + margin: (0 - $o-kanban-record-margin) ($o-kanban-record-margin - $o-horizontal-padding) $o-kanban-record-margin; } .o_account_dashboard_header { @@ -11,10 +11,10 @@ width: 100%; height: auto; // cancel o_form_view height 100%, which hides the help tip message at the bottom of the screen min-height: 0%; // cancel o_form_view min-height 100%, which hides the help tip message at the bottom of the screen - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; .o_form_statusbar { - padding-right: $odoo-horizontal-padding; + padding-right: $o-horizontal-padding; } h4 { @@ -52,8 +52,8 @@ } &:last-of-type { - margin-left: $odoo-horizontal-padding; - padding-left: $odoo-horizontal-padding*.5; + margin-left: $o-horizontal-padding; + padding-left: $o-horizontal-padding*.5; border-left: 1px solid $gray-lighter-dark; } } diff --git a/addons/account/static/src/scss/account_journal_dashboard.scss b/addons/account/static/src/scss/account_journal_dashboard.scss index e068040784d6..1b87a6363a62 100644 --- a/addons/account/static/src/scss/account_journal_dashboard.scss +++ b/addons/account/static/src/scss/account_journal_dashboard.scss @@ -6,17 +6,17 @@ } .o_kanban_card_settings { - padding-top: $odoo-horizontal-padding/2; - padding-bottom: $odoo-horizontal-padding/2; + padding-top: $o-horizontal-padding/2; + padding-bottom: $o-horizontal-padding/2; border-top: 1px solid; - border-color: $odoo-brand-lightsecondary; + border-color: $o-brand-lightsecondary; } .o_dashboard_star { font-size: 12px; &.fa-star-o { - color: $odoo-main-color-muted; + color: $o-main-color-muted; &:hover { color: gold; } @@ -27,7 +27,7 @@ } .o_dashboard_graph { - margin-bottom: -$odoo-horizontal-padding/2; + margin-bottom: -$o-horizontal-padding/2; } } @@ -58,7 +58,7 @@ } g.tick.major { // Don't know why, but leads to strange bold text - // stroke: $odoo-brand-primary; + // stroke: $o-brand-primary; line { display: none; @@ -72,13 +72,13 @@ g.nv-linesWrap { g.nv-group.nv-series-0 { fill-opacity: 0.3 !important; - fill: $odoo-brand-primary !important; - stroke: $odoo-brand-primary !important; + fill: $o-brand-primary !important; + stroke: $o-brand-primary !important; .nv-point { visibility: hidden; r: 3; - stroke: $odoo-brand-primary !important; + stroke: $o-brand-primary !important; fill: white; stroke-width: 2; } @@ -99,11 +99,11 @@ g.nv-group.nv-series-0 { g.past { opacity: 0.5; - fill: $odoo-brand-primary !important; + fill: $o-brand-primary !important; } g.future { opacity: 0.5; - fill: $odoo-brand-optional !important; + fill: $o-brand-optional !important; } } } diff --git a/addons/account/static/src/scss/account_reconciliation.scss b/addons/account/static/src/scss/account_reconciliation.scss index 5d3e8ec38109..204337c58084 100644 --- a/addons/account/static/src/scss/account_reconciliation.scss +++ b/addons/account/static/src/scss/account_reconciliation.scss @@ -1,11 +1,3 @@ -$actionColWidth: 15px; -$mainTableBordersPadding: 3px; -$lightBorder: 1px solid #bbb; -$accountingBorder: 1px solid #000; -$initialLineBackground: #f0f0f0; -$infoColor: #44c; - - .o_reconciliation { h1 { width: 48%; @@ -18,7 +10,7 @@ $infoColor: #44c; &.statement_name { @include o-text-overflow; &.editable:hover { - outline: 1px dashed $odoo-brand-optional; + outline: 1px dashed $o-brand-optional; outline-offset: -1px; cursor: pointer; } @@ -51,7 +43,7 @@ $infoColor: #44c; .o_view_noreconciliation { max-width: none; padding: 0 10%; - color: $odoo-main-color-muted; + color: $o-main-color-muted; font-size: 125%; } @@ -110,16 +102,16 @@ $infoColor: #44c; cursor: pointer; } tr.already_reconciled { - color: $infoColor; + color: $o-account-info-color; } tr.invalid { text-decoration: line-through; } thead td { - border-top: $lightBorder; + border-top: $o-account-light-border; padding-top: 4px; padding-bottom: 5px; - background-color: $initialLineBackground; + background-color: $o-account-initial-line-background; } tfoot td { color: #bbb; @@ -182,7 +174,7 @@ $infoColor: #44c; td { padding-top: 10px; text-align: center; - color: $infoColor; + color: $o-account-info-color; } } @@ -231,7 +223,7 @@ $infoColor: #44c; content: "\f067"; } .match_controls { - padding: 0 0 5px ($actionColWidth+$mainTableBordersPadding); + padding: 0 0 5px ($o-account-action-col-width+$o-account-main-table-borders-padding); .filter { width: 240px; @@ -254,7 +246,7 @@ $infoColor: #44c; } .show_more { display: inline-block; - margin-left: ($actionColWidth+$mainTableBordersPadding); + margin-left: ($o-account-action-col-width+$o-account-main-table-borders-padding); margin-top: 5px; } } @@ -262,7 +254,7 @@ $infoColor: #44c; /* Create view */ .create { > div { - margin: 0 $actionColWidth; + margin: 0 $o-account-action-col-width; padding: 10px; overflow: auto; border: 1px solid #ddd; @@ -294,7 +286,7 @@ $infoColor: #44c; .add_line_container { text-align: center; clear: both; - color: $infoColor; + color: $o-account-info-color; cursor: pointer; } } diff --git a/addons/account/static/src/scss/variables.scss b/addons/account/static/src/scss/variables.scss new file mode 100644 index 000000000000..b83890b01a14 --- /dev/null +++ b/addons/account/static/src/scss/variables.scss @@ -0,0 +1,5 @@ +$o-account-action-col-width: 15px !default; +$o-account-main-table-borders-padding: 3px !default; +$o-account-light-border: 1px solid #bbb !default; +$o-account-initial-line-background: #f0f0f0 !default; +$o-account-info-color: #44c !default; diff --git a/addons/account/views/account.xml b/addons/account/views/account.xml index 45ca15f14bd9..d8153c828714 100644 --- a/addons/account/views/account.xml +++ b/addons/account/views/account.xml @@ -1,5 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> + <template id="_assets_backend_helpers" inherit_id="web._assets_backend_helpers"> + <xpath expr="//link" position="before"> + <link rel="stylesheet" type="text/scss" href="/account/static/src/scss/variables.scss"/> + </xpath> + </template> + <template id="assets_backend" name="account assets" inherit_id="web.assets_backend"> <xpath expr="." position="inside"> <link rel="stylesheet" href="/account/static/src/css/account_bank_and_cash.css"/> diff --git a/addons/calendar/static/src/scss/calendar.scss b/addons/calendar/static/src/scss/calendar.scss index defbd1efbd6d..a74eec477dba 100644 --- a/addons/calendar/static/src/scss/calendar.scss +++ b/addons/calendar/static/src/scss/calendar.scss @@ -9,7 +9,7 @@ } &.needsAction { - background-color: $odoo-brand-secondary; + background-color: $o-brand-secondary; } &.declined { @@ -46,7 +46,7 @@ width: 50%; margin: 30px auto 0; @include o-webclient-padding($top: 10px, $bottom: 10px); - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; .o_logo { width: 15%; diff --git a/addons/event/static/src/scss/event.scss b/addons/event/static/src/scss/event.scss index df173a9ab709..46cf2e629ccf 100644 --- a/addons/event/static/src/scss/event.scss +++ b/addons/event/static/src/scss/event.scss @@ -10,7 +10,7 @@ @include o-flex(1, 1, 25%); text-align: center; color: white; - background-color: $odoo-brand-optional; + background-color: $o-brand-optional; padding: 8px; .o_day { diff --git a/addons/google_calendar/static/src/scss/google_calendar.scss b/addons/google_calendar/static/src/scss/google_calendar.scss index 2f7346ec29cc..1ee8feef473d 100644 --- a/addons/google_calendar/static/src/scss/google_calendar.scss +++ b/addons/google_calendar/static/src/scss/google_calendar.scss @@ -8,5 +8,5 @@ img.calendar_img_tuto { margin: 0 0 10px 50px; - border: 2px solid $odoo-brand-secondary; + border: 2px solid $o-brand-secondary; } diff --git a/addons/hr_attendance/static/src/scss/hr_attendance.scss b/addons/hr_attendance/static/src/scss/hr_attendance.scss index 8473920ea659..d54b105ca1c4 100644 --- a/addons/hr_attendance/static/src/scss/hr_attendance.scss +++ b/addons/hr_attendance/static/src/scss/hr_attendance.scss @@ -14,7 +14,7 @@ } #oe_hr_attendance_status { - color: $odoo-brand-secondary; + color: $o-brand-secondary; &.oe_hr_attendance_status_green { color: $brand-success; } diff --git a/addons/hr_org_chart/static/src/scss/hr_org_chart.scss b/addons/hr_org_chart/static/src/scss/hr_org_chart.scss index c1b2f4b7d51e..e211654d5e02 100644 --- a/addons/hr_org_chart/static/src/scss/hr_org_chart.scss +++ b/addons/hr_org_chart/static/src/scss/hr_org_chart.scss @@ -1,26 +1,10 @@ -$o-org-chart-bg: white; -$o-org-chart-border-color: $odoo-brand-secondary; - -$o-org-chart-entry-v-gap: 6px; -$o-org-chart-entry-pic-size: 46px; -$o-org-chart-entry-line-w: 1px; -$o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); - - -// MIXINS -@mixin o-org-chart-line { - content: ''; - background-color: $o-org-chart-bg; - border: 0px solid $o-org-chart-entry-border-color; -} - // MOBILE LAYOUT CUSTOMIZATIONS @media screen and (max-width: $screen-xs-max) { #o_employee_right { .o_org_chart_title { font-size: 20px; padding: 5px 0; - border-bottom: 1px solid $o-org-chart-border-color; + border-bottom: 1px solid $o-hr-org-chart-border-color; } } } @@ -38,7 +22,7 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); @include o-flex(0, 1, 35%); margin-left: 2%; padding-left: 2%; - border-left: 1px solid $o-org-chart-border-color; + border-left: 1px solid $o-hr-org-chart-border-color; .o_org_chart_title { color: $gray-light @@ -61,7 +45,7 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); } #o_employee_right { - $tmp-gap-base: $o-org-chart-entry-pic-size*0.7; + $tmp-gap-base: $o-hr-org-chart-entry-pic-size*0.7; // ORGANIGRAM LINES .o_field_widget, .o_org_chart_group_up, .o_org_chart_group_down { @@ -70,21 +54,21 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); .o_org_chart_group_up { &:before { - @include o-org-chart-line; - border-left-width: $o-org-chart-entry-line-w; - height: calc(100% + #{$o-org-chart-entry-pic-size*0.5}) ; + @include o-hr-org-chart-line; + border-left-width: $o-hr-org-chart-entry-line-w; + height: calc(100% + #{$o-hr-org-chart-entry-pic-size*0.5}) ; @include o-position-absolute( - $top: $o-org-chart-entry-pic-size*0.1 + 5px, - $left: $o-org-chart-entry-pic-size*0.5 - $o-org-chart-entry-line-w*0.5 + $top: $o-hr-org-chart-entry-pic-size*0.1 + 5px, + $left: $o-hr-org-chart-entry-pic-size*0.5 - $o-hr-org-chart-entry-line-w*0.5 ); } .o_org_chart_entry:last-of-type { &:before { - @include o-org-chart-line; - border-width: 0 0 $o-org-chart-entry-line-w $o-org-chart-entry-line-w; - @include size(($o-org-chart-entry-pic-size*0.5) - ($o-org-chart-entry-v-gap*2), $o-org-chart-entry-pic-size*0.5 + $o-org-chart-entry-v-gap*2 ); + @include o-hr-org-chart-line; + border-width: 0 0 $o-hr-org-chart-entry-line-w $o-hr-org-chart-entry-line-w; + @include size(($o-hr-org-chart-entry-pic-size*0.5) - ($o-hr-org-chart-entry-v-gap*2), $o-hr-org-chart-entry-pic-size*0.5 + $o-hr-org-chart-entry-v-gap*2 ); @include o-position-absolute( - $left: $o-org-chart-entry-pic-size*0.5 - $o-org-chart-entry-line-w*0.5, + $left: $o-hr-org-chart-entry-pic-size*0.5 - $o-hr-org-chart-entry-line-w*0.5, $top: 100% ); } @@ -103,23 +87,23 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); margin-left: $tmp-gap-base; &:before { - @include o-org-chart-line; - border-left-width: $o-org-chart-entry-line-w; + @include o-hr-org-chart-line; + border-left-width: $o-hr-org-chart-entry-line-w; height: 100%; @include o-position-absolute( - $top: $o-org-chart-entry-v-gap*-1, - $left: $tmp-gap-base*-0.5 + $o-org-chart-entry-pic-size*0.1 + $o-org-chart-entry-line-w*0.5 + $top: $o-hr-org-chart-entry-v-gap*-1, + $left: $tmp-gap-base*-0.5 + $o-hr-org-chart-entry-pic-size*0.1 + $o-hr-org-chart-entry-line-w*0.5 ); } .o_org_chart_entry { &:before { - @include o-org-chart-line; - border-top-width: $o-org-chart-entry-line-w; + @include o-hr-org-chart-line; + border-top-width: $o-hr-org-chart-entry-line-w; @include size($tmp-gap-base, 0); @include o-position-absolute( - $left: $tmp-gap-base*-0.5 + $o-org-chart-entry-pic-size*0.1 + $o-org-chart-entry-line-w*0.5, - $top: $o-org-chart-entry-pic-size*0.5 + $left: $tmp-gap-base*-0.5 + $o-hr-org-chart-entry-pic-size*0.1 + $o-hr-org-chart-entry-line-w*0.5, + $top: $o-hr-org-chart-entry-pic-size*0.5 ); } @@ -131,7 +115,7 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); } &.o_org_chart_more { - margin-top: $o-org-chart-entry-v-gap; + margin-top: $o-hr-org-chart-entry-v-gap; &:before { top: 15px; @@ -142,7 +126,7 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); // ORGANIGRAM DESIGN .o_org_chart_entry { - margin-bottom: $o-org-chart-entry-v-gap; + margin-bottom: $o-hr-org-chart-entry-v-gap; overflow: visible; margin-top: 0; @@ -158,11 +142,11 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); cursor: pointer; margin-right: 5px; color: $gray-light; - background: $o-org-chart-bg; + background: $o-hr-org-chart-bg; border: 1px solid $gray-light; &:hover { - color: $odoo-brand-optional; - border-color: $odoo-brand-optional; + color: $o-brand-optional; + border-color: $o-brand-optional; } &:focus { outline: none; @@ -178,9 +162,9 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); } .media-object { - @include square($o-org-chart-entry-pic-size*0.8); - margin: $o-org-chart-entry-pic-size*0.1; - box-shadow: 0 0 0 $o-org-chart-entry-line-w darken($o-org-chart-bg, 20%); + @include square($o-hr-org-chart-entry-pic-size*0.8); + margin: $o-hr-org-chart-entry-pic-size*0.1; + box-shadow: 0 0 0 $o-hr-org-chart-entry-line-w darken($o-hr-org-chart-bg, 20%); background-size: cover; background-position: center center; @@ -197,8 +181,8 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); } &:hover { - border-color: $o-org-chart-entry-border-color; - color:$odoo-brand-optional; + border-color: $o-hr-org-chart-entry-border-color; + color:$o-brand-optional; } } } @@ -220,11 +204,11 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); &:hover { .media-object { - box-shadow: 0 0 0 $o-org-chart-entry-line-w*2 rgba($odoo-brand-optional, 0.6); + box-shadow: 0 0 0 $o-hr-org-chart-entry-line-w*2 rgba($o-brand-optional, 0.6); } .media-body > a { .media-heading { - color: $odoo-brand-optional; + color: $o-brand-optional; } strong { color: lighten($gray-light, 5%); @@ -235,7 +219,7 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); &.o_org_chart_entry_self { &:not(:first-child) { - margin-top: $o-org-chart-entry-v-gap*1.5; + margin-top: $o-hr-org-chart-entry-v-gap*1.5; } strong { @@ -243,10 +227,10 @@ $o-org-chart-entry-border-color: darken($o-org-chart-bg, 25%); } .media-object { - @include square($o-org-chart-entry-pic-size); + @include square($o-hr-org-chart-entry-pic-size); margin: 0; - border: $o-org-chart-entry-line-w*2 solid $odoo-brand-optional; - box-shadow: inset 0 0 0 $o-org-chart-entry-line-w*2 white; + border: $o-hr-org-chart-entry-line-w*2 solid $o-brand-optional; + box-shadow: inset 0 0 0 $o-hr-org-chart-entry-line-w*2 white; } .media-body { diff --git a/addons/hr_org_chart/static/src/scss/variables.scss b/addons/hr_org_chart/static/src/scss/variables.scss new file mode 100644 index 000000000000..9abf85776b3f --- /dev/null +++ b/addons/hr_org_chart/static/src/scss/variables.scss @@ -0,0 +1,14 @@ +$o-hr-org-chart-bg: white !default; +$o-hr-org-chart-border-color: $o-brand-secondary !default; + +$o-hr-org-chart-entry-v-gap: 6px !default; +$o-hr-org-chart-entry-pic-size: 46px !default; +$o-hr-org-chart-entry-line-w: 1px !default; +$o-hr-org-chart-entry-border-color: darken($o-hr-org-chart-bg, 25%) !default; + +// MIXINS +@mixin o-hr-org-chart-line { + content: ''; + background-color: $o-hr-org-chart-bg; + border: 0px solid $o-hr-org-chart-entry-border-color; +} diff --git a/addons/hr_org_chart/views/hr_templates.xml b/addons/hr_org_chart/views/hr_templates.xml index 50b6087e4ecb..b7ed3215ae82 100644 --- a/addons/hr_org_chart/views/hr_templates.xml +++ b/addons/hr_org_chart/views/hr_templates.xml @@ -1,5 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> + <template id="_assets_backend_helpers" inherit_id="web._assets_backend_helpers"> + <xpath expr="//link" position="before"> + <link rel="stylesheet" type="text/scss" href="/hr_org_chart/static/src/scss/variables.scss"/> + </xpath> + </template> + <template id="assets_backend" name="hr_org_chart_assets_backend" inherit_id="web.assets_backend"> <xpath expr="." position="inside"> <link rel="stylesheet" type="text/scss" href="/hr_org_chart/static/src/scss/hr_org_chart.scss"/> diff --git a/addons/im_livechat/static/src/scss/copy_clipboard.scss b/addons/im_livechat/static/src/scss/copy_clipboard.scss index db206941685c..13bbef7b2564 100644 --- a/addons/im_livechat/static/src/scss/copy_clipboard.scss +++ b/addons/im_livechat/static/src/scss/copy_clipboard.scss @@ -4,7 +4,7 @@ border-radius: 5px; border: 1px solid $btn-primary-border; font-size: $font-size-small; - color: $odoo-brand-optional; + color: $o-brand-optional; font-weight: $badge-font-weight; text-align: center; .o_clipboard_button { diff --git a/addons/im_livechat/static/src/scss/im_livechat_bootstrap.scss b/addons/im_livechat/static/src/scss/im_livechat_bootstrap.scss index b9d31dc05b86..18ab6c31ef80 100644 --- a/addons/im_livechat/static/src/scss/im_livechat_bootstrap.scss +++ b/addons/im_livechat/static/src/scss/im_livechat_bootstrap.scss @@ -1,16 +1,7 @@ -// bootstrap variables and vendor prefixes needed to embed im_livechat in external pages -$gray-light: lighten(#000, 46.7%); // #777 -$gray-lighter: lighten(#000, 93.5%); // #eee -$screen-xs-max: 767px; -$navbar-height: 44px; + .text-muted { color: $gray-light; } -@mixin box-sizing($boxmodel) { - -webkit-box-sizing: $boxmodel; - -moz-box-sizing: $boxmodel; - box-sizing: $boxmodel; -} .o_chat_window { &,* { diff --git a/addons/im_livechat/views/im_livechat_channel_templates.xml b/addons/im_livechat/views/im_livechat_channel_templates.xml index 54c7c7319f24..e85293c943ae 100644 --- a/addons/im_livechat/views/im_livechat_channel_templates.xml +++ b/addons/im_livechat/views/im_livechat_channel_templates.xml @@ -149,7 +149,6 @@ <script type="text/javascript" src="/mail/static/src/js/document_viewer.js"></script> <script type="text/javascript" src="/im_livechat/static/src/js/im_livechat.js"></script> <t t-call="web._assets_helpers"/> - <link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/variables.scss"></link> <link rel="stylesheet" type="text/scss" href="/im_livechat/static/src/scss/im_livechat_bootstrap.scss"/> <link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/chat_window.scss"></link> <link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/thread.scss"></link> diff --git a/addons/lunch/static/src/scss/lunch.scss b/addons/lunch/static/src/scss/lunch.scss index 2e4fc9b22a53..9e36f20dbd89 100644 --- a/addons/lunch/static/src/scss/lunch.scss +++ b/addons/lunch/static/src/scss/lunch.scss @@ -7,7 +7,7 @@ padding: 5px 0; + .o_lunch_vignette { - border-top: 1px solid $odoo-brand-lightsecondary; + border-top: 1px solid $o-brand-lightsecondary; } } } diff --git a/addons/mail/static/src/scss/chat_window.scss b/addons/mail/static/src/scss/chat_window.scss index 8d43b2b9013f..93ab8248b6b4 100644 --- a/addons/mail/static/src/scss/chat_window.scss +++ b/addons/mail/static/src/scss/chat_window.scss @@ -1,22 +1,17 @@ -$o-chat-window-bg: #FAFAFA; -$o-chat-window-width: 325px; -$o-mail-chatter-gap: 10px; // has to be defined here as this file is both in - // backend and other assets (livechat) -$o-chat-header-height: 46px; -$o-chat-window-zindex: $zindex-modal + 1; +$o-mail-chat-window-zindex: $zindex-modal + 1 !default; .o_chat_window { @include o-flex-display; @include o-flex-flow(column, nowrap); position: fixed; - width: $o-chat-window-width; + width: $o-mail-chat-window-width; max-width: 100%; height: 400px; max-height: 100%; font-size: 12px; - background-color: $o-chat-window-bg; + background-color: $o-mail-chat-window-bg; border-radius: 6px 6px 0 0; - z-index: $o-chat-window-zindex; + z-index: $o-mail-chat-window-zindex; box-shadow: -5px -5px 10px rgba(black, 0.18); @media (max-width: $screen-xs-max) { @@ -39,11 +34,11 @@ $o-chat-window-zindex: $zindex-modal + 1; padding: $o-mail-chatter-gap*0.5 $o-mail-chatter-gap; border-radius: 3px 3px 0 0; border-bottom: 1px solid $gray-lighter-dark; - background-color: $odoo-brand-primary; + background-color: $o-brand-primary; padding: 8px; @media (max-width: $screen-xs-max) { - height: $o-chat-header-height; + height: $o-mail-chat-header-height; padding-top: 12px; border-radius: 0px; .o_chat_title { @@ -82,7 +77,7 @@ $o-chat-window-zindex: $zindex-modal + 1; .o_thread_date_separator { margin: 0px 0px 15px 0px; .o_thread_date { - background-color: $o-chat-window-bg; + background-color: $o-mail-chat-window-bg; } } .o_thread_message { @@ -119,7 +114,7 @@ $o-chat-window-zindex: $zindex-modal + 1; .o_total_unread_counter { @include o-position-absolute(-10px, 0, auto, auto); - background-color: $odoo-brand-optional; + background-color: $o-brand-optional; padding: 0 2px; font-size: smaller; } @@ -129,7 +124,7 @@ $o-chat-window-zindex: $zindex-modal + 1; } > ul { - max-width: $o-chat-window-width; + max-width: $o-mail-chat-window-width; padding: 0; > li.o_chat_header { @@ -139,7 +134,7 @@ $o-chat-window-zindex: $zindex-modal + 1; border-top: 1px solid white; } &:hover { - background-color: darken($odoo-brand-primary, 10%); + background-color: darken($o-brand-primary, 10%); } } } diff --git a/addons/mail/static/src/scss/chatter.scss b/addons/mail/static/src/scss/chatter.scss index ba863a5c6643..314eb9b8bacc 100644 --- a/addons/mail/static/src/scss/chatter.scss +++ b/addons/mail/static/src/scss/chatter.scss @@ -10,19 +10,19 @@ } .o_chatter_topbar { - height: $odoo-statusbar-height; + height: $o-statusbar-height; position: relative; margin: $grid-gutter-width*0.5 0 0; padding: 0; @include o-flex-display; > .btn { - height: $odoo-statusbar-height + 1; + height: $o-statusbar-height + 1; border: 1px solid transparent; } > .o_followers { - height: $odoo-statusbar-height + 1; + height: $o-statusbar-height + 1; border-bottom: 1px solid transparent; @include o-flex(1,1,auto); } @@ -35,7 +35,7 @@ border-bottom-color: $gray-lighter-dark; &.o_active { - color: $odoo-brand-primary; + color: $o-brand-primary; background-color: $gray-lighter; border-color: $gray-lighter-dark; border-width: 1px 1px 0; diff --git a/addons/mail/static/src/scss/composer.scss b/addons/mail/static/src/scss/composer.scss index b19cde9fb2c7..477a7e536e17 100644 --- a/addons/mail/static/src/scss/composer.scss +++ b/addons/mail/static/src/scss/composer.scss @@ -75,7 +75,7 @@ } @media (max-width: $screen-xs-max) { .o_composer_button_send { - color: $odoo-brand-optional; + color: $o-brand-optional; } } } @@ -95,13 +95,13 @@ // Both inline and not-inline design. Mini-composer disabled. &:not(.o_chat_mini_composer) { - padding: $mail-thread-avatar-size*0.5; - padding-left: $grid-gutter-width*0.5 + $mail-thread-avatar-size + $o-mail-chatter-gap; + padding: $o-mail-thread-avatar-size*0.5; + padding-left: $grid-gutter-width*0.5 + $o-mail-thread-avatar-size + $o-mail-chatter-gap; border: 1px solid $gray-lighter-dark; border-top: none; .o_chatter_avatar { - @include o-position-absolute(0, $left: -$mail-thread-avatar-size - $o-mail-chatter-gap); + @include o-position-absolute(0, $left: -$o-mail-thread-avatar-size - $o-mail-chatter-gap); } .o_chatter_composer_info, .o_composer_suggested_partners { @@ -193,7 +193,7 @@ border-radius: 0 3px 3px 0; // Make the button appear as the same size as the subject input padding: 10px $padding-base-horizontal; - border: 1px solid darken($odoo-brand-optional, 5%); + border: 1px solid darken($o-brand-optional, 5%); border-left-width: 0; } } @@ -296,7 +296,7 @@ $o-mail-attachment-margin: 5px; @include o-text-overflow(block); a { - @include o-hover-text-color($default-color: $odoo-main-text-color, $hover-color: $headings-color); + @include o-hover-text-color($default-color: $o-main-text-color, $hover-color: $headings-color); } } @@ -423,7 +423,7 @@ $o-mail-attachment-margin: 5px; } } .o_modal_fullscreen { - z-index: $o-chat-window-zindex + 1; + z-index: $o-mail-chat-window-zindex + 1; .o_viewer_content { position: relative; diff --git a/addons/mail/static/src/scss/discuss.scss b/addons/mail/static/src/scss/discuss.scss index 58473d6ad405..de129eaee4cf 100644 --- a/addons/mail/static/src/scss/discuss.scss +++ b/addons/mail/static/src/scss/discuss.scss @@ -1,7 +1,6 @@ // ------------------------------------------------------------------ // Layout // ------------------------------------------------------------------ -$mail-chat-sidebar-width: 250px; .o_mail_chat { @include o-position-absolute(0, 0, 0, 0); @@ -14,7 +13,7 @@ $mail-chat-sidebar-width: 250px; color: white; text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.25); @include o-flex-display; - border-bottom: 1px solid $odoo-main-color-muted; + border-bottom: 1px solid $o-main-color-muted; .o_mail_request_permission { @include o-flex-display; @@ -38,19 +37,19 @@ $mail-chat-sidebar-width: 250px; } .o_mail_chat_sidebar { - width: $mail-chat-sidebar-width; + width: $o-mail-chat-sidebar-width; height: 100%; float: left; overflow: auto; - padding: $odoo-horizontal-padding 0; + padding: $o-horizontal-padding 0; @media (min-width: $screen-lg-min) { - width: $mail-chat-sidebar-width + 50px; + width: $o-mail-chat-sidebar-width + 50px; } .o_mail_sidebar_title { @include o-flex-display; - padding: 6px $odoo-horizontal-padding 0 $odoo-horizontal-padding; + padding: 6px $o-horizontal-padding 0 $o-horizontal-padding; align-items: center; justify-content: space-between; h4 { @@ -67,7 +66,7 @@ $mail-chat-sidebar-width: 250px; .o_mail_chat_channel_item { @include o-flex-display; width: 100%; - padding: 2px $odoo-horizontal-padding 2px ($odoo-horizontal-padding + 12px); // compensate icon + padding: 2px $o-horizontal-padding 2px ($o-horizontal-padding + 12px); // compensate icon .o_channel_name { @include o-flex(1, 1, auto); @@ -87,7 +86,7 @@ $mail-chat-sidebar-width: 250px; } &.o_mail_chat_title_main { - padding: $padding-base-vertical $odoo-horizontal-padding; + padding: $padding-base-vertical $o-horizontal-padding; margin-bottom: 2px; } } @@ -98,7 +97,7 @@ $mail-chat-sidebar-width: 250px; .o_mail_add_channel { width: 100%; - padding: 5px ($odoo-horizontal-padding + 23px); // compensate icon + padding: 5px ($o-horizontal-padding + 23px); // compensate icon position: relative; > input { @@ -115,14 +114,14 @@ $mail-chat-sidebar-width: 250px; @include o-flex-display; @include o-flex-flow(column, nowrap); height: 100%; - margin-left: $mail-chat-sidebar-width; + margin-left: $o-mail-chat-sidebar-width; position: relative; @media (min-width: $screen-sm-min) { overflow: auto; } @media (min-width: $screen-lg-min) { - margin-left: $mail-chat-sidebar-width + 50px; + margin-left: $o-mail-chat-sidebar-width + 50px; } .o_mail_thread { @@ -151,7 +150,6 @@ $mail-chat-sidebar-width: 250px; // ------------------------------------------------------------------ // Style // ------------------------------------------------------------------ -$sidebar-icon-opacity: 0.7; .o_mail_chat { .o_mail_chat_sidebar { @@ -165,13 +163,13 @@ $sidebar-icon-opacity: 0.7; background-color: darken($gray-dark,2%); .o_mail_partner_unpin, .o_mail_channel_settings { - opacity: $sidebar-icon-opacity; + opacity: $o-mail-sidebar-icon-opacity; } } &.o_active { background-color: $gray-darker; - box-shadow: inset 3px 0 0 $odoo-brand-optional; + box-shadow: inset 3px 0 0 $o-brand-optional; } .o_mail_hash { @@ -188,7 +186,7 @@ $sidebar-icon-opacity: 0.7; > .badge { color: white; - background-color: $odoo-brand-optional; + background-color: $o-brand-optional; font-size: 10px; line-height: 16px; height: 18px; @@ -230,7 +228,7 @@ $sidebar-icon-opacity: 0.7; } .o_add { cursor: pointer; - @include o-hover-opacity($sidebar-icon-opacity, 1); + @include o-hover-opacity($o-mail-sidebar-icon-opacity, 1); @include o-hover-text-color($gray-light, white); } } @@ -244,7 +242,7 @@ $sidebar-icon-opacity: 0.7; .o_thread_message { opacity: 0.5; &.o_thread_selected_message { - padding: 4px $odoo-horizontal-padding; + padding: 4px $o-horizontal-padding; opacity: 1; background-color: lightgray; } @@ -256,7 +254,7 @@ $sidebar-icon-opacity: 0.7; font-size: 1em; position: relative; &.o_user_online { - color: $odoo-brand-optional; + color: $o-brand-optional; } &.o_user_idle { color: $brand-warning; @@ -358,7 +356,7 @@ $sidebar-icon-opacity: 0.7; .o_mail_channel_preview { @include o-flex-display; background-color: $gray-lighter; - color: $odoo-main-text-color; + color: $o-main-text-color; cursor: pointer; overflow: hidden; position: relative; @@ -399,14 +397,14 @@ $sidebar-icon-opacity: 0.7; } .o_last_message_date { @include o-flex(0, 0, auto); - color: $odoo-main-color-muted; + color: $o-main-color-muted; font-weight: 500; } } .o_last_message_preview { width: 100%; max-height: 20px; - color: $odoo-main-color-muted; + color: $o-main-color-muted; @include o-text-overflow; } } @@ -421,7 +419,7 @@ $sidebar-icon-opacity: 0.7; font-weight: 700; } .o_last_message_date { - color: $odoo-brand-optional; + color: $o-brand-optional; } } } @@ -429,7 +427,6 @@ $sidebar-icon-opacity: 0.7; } @media (max-width: $screen-xs-max) { - $o-mail-chatter-mobile-gap: 2%; .o_main_navbar > ul.o_menu_systray > li.open .dropdown-menu { border: none; @@ -485,7 +482,7 @@ $sidebar-icon-opacity: 0.7; } &.active > span { - color: $odoo-brand-optional; + color: $o-brand-optional; } } } diff --git a/addons/mail/static/src/scss/extended_chat_window.scss b/addons/mail/static/src/scss/extended_chat_window.scss index 9e0174654b1b..774a37c6120b 100644 --- a/addons/mail/static/src/scss/extended_chat_window.scss +++ b/addons/mail/static/src/scss/extended_chat_window.scss @@ -17,7 +17,7 @@ } .o_mail_thread { - background-color: $odoo-webclient-background-color; + background-color: $o-webclient-background-color; } .o_chat_composer { diff --git a/addons/mail/static/src/scss/followers.scss b/addons/mail/static/src/scss/followers.scss index 5b7ff2b886f4..573f13e35b20 100644 --- a/addons/mail/static/src/scss/followers.scss +++ b/addons/mail/static/src/scss/followers.scss @@ -91,19 +91,19 @@ font-size: small; .o_partner { - $partner-avatar-size: 24px; position: relative; // required for old design compatibility + > a { max-width: 160px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; - height: $partner-avatar-size; - padding: 3px $partner-avatar-size + 8px; + height: $o-mail-partner-avatar-size; + padding: 3px $o-mail-partner-avatar-size + 8px; } > img { @include o-position-absolute; - width: $partner-avatar-size; + width: $o-mail-partner-avatar-size; } .o_remove_follower { @include o-position-absolute(6px, 5px); diff --git a/addons/mail/static/src/scss/mail_activity.scss b/addons/mail/static/src/scss/mail_activity.scss index 58f00c1f4e52..f835275e8733 100644 --- a/addons/mail/static/src/scss/mail_activity.scss +++ b/addons/mail/static/src/scss/mail_activity.scss @@ -150,7 +150,7 @@ padding: 0px 0px; & > li:last-child { - background-color: $odoo-brand-lightsecondary; + background-color: $o-brand-lightsecondary; color: $gray-dark; line-height: 3em; } @@ -166,7 +166,7 @@ &.o_activity_label { line-height: 2.5em; padding: 0px 5px; - background-color: $odoo-brand-lightsecondary; + background-color: $o-brand-lightsecondary; } &.o_schedule_activity { diff --git a/addons/mail/static/src/scss/systray.scss b/addons/mail/static/src/scss/systray.scss index c06bde1d3f13..fd799cb9cc7d 100644 --- a/addons/mail/static/src/scss/systray.scss +++ b/addons/mail/static/src/scss/systray.scss @@ -21,7 +21,7 @@ } .o_notification_counter { @include o-position-absolute($top: 20%, $right: 1px); - background: $odoo-brand-optional; + background: $o-brand-optional; color: white; padding: 0em 0.3em; font-size: 0.7em; @@ -34,7 +34,7 @@ @include o-flex-display; @include o-align-items(center); @include o-justify-content(center); - color: $odoo-main-text-color; + color: $o-main-text-color; height: 50px; } @@ -48,9 +48,9 @@ padding: 5px; } .o_filter_button { - color: $odoo-main-color-muted; + color: $o-main-color-muted; &:hover, &.active { - color: $odoo-brand-optional; + color: $o-brand-optional; } &.active { cursor: default; @@ -130,7 +130,7 @@ left: 0px; right: 0px; background-color: white; - color: $odoo-main-text-color; + color: $o-main-text-color; } } } diff --git a/addons/mail/static/src/scss/thread.scss b/addons/mail/static/src/scss/thread.scss index 4a2edb68913a..0529238a36e8 100644 --- a/addons/mail/static/src/scss/thread.scss +++ b/addons/mail/static/src/scss/thread.scss @@ -25,30 +25,30 @@ .o_thread_new_messages_separator { margin-bottom: 15px; - border-bottom: solid lighten($odoo-brand-primary, 15%) 1px; + border-bottom: solid lighten($o-brand-primary, 15%) 1px; text-align: right; .o_thread_separator_label { position: relative; top: 8px; padding: 0 10px; background: white; - color: lighten($odoo-brand-primary, 15%); + color: lighten($o-brand-primary, 15%); font-size: smaller; } } .o_thread_message { @include o-flex-display; - padding: 4px $odoo-horizontal-padding; + padding: 4px $o-horizontal-padding; margin-bottom: 0px; &.o_mail_not_discussion { - background-color: $mail-thread-note; + background-color: rgba($gray-lighter-dark, 0.5); border-bottom: 1px solid $gray-lighter-darker; } .o_thread_message_sidebar { - @include o-flex(0, 0, $mail-thread-avatar-size); + @include o-flex(0, 0, $o-mail-thread-avatar-size); margin-right: 10px; margin-top: 2px; text-align: center; @@ -60,7 +60,7 @@ } .o_thread_message_avatar { - max-width: $mail-thread-avatar-size; + max-width: $o-mail-thread-avatar-size; } .o_thread_message_side_date { margin-left: -5px; @@ -77,17 +77,17 @@ cursor: pointer; opacity: 0; &.fa-star { - opacity: $mail-thread-icon-opacity; + opacity: $o-mail-thread-icon-opacity; color: gold; } } &:hover, &.o_thread_selected_message { .o_thread_message_side_date { - opacity: $mail-thread-side-date-opacity; + opacity: $o-mail-thread-side-date-opacity; } .o_thread_icon { - opacity: $mail-thread-icon-opacity; + opacity: $o-mail-thread-icon-opacity; &:hover { opacity: 1; } @@ -222,6 +222,6 @@ .o_web_client.o_touch_device { .o_mail_thread .o_thread_icon { - opacity: $mail-thread-icon-opacity; + opacity: $o-mail-thread-icon-opacity; } } diff --git a/addons/mail/static/src/scss/variables.scss b/addons/mail/static/src/scss/variables.scss index ce498f2d03e6..c3086ce579d4 100644 --- a/addons/mail/static/src/scss/variables.scss +++ b/addons/mail/static/src/scss/variables.scss @@ -1,5 +1,12 @@ -// FIXME moved here since scss convertion -$mail-thread-avatar-size: 36px; -$mail-thread-icon-opacity: 0.6; -$mail-thread-side-date-opacity: 0.6; -$mail-thread-note: rgba($gray-lighter-dark, 0.5); +$o-mail-thread-avatar-size: 36px !default; +$o-mail-thread-icon-opacity: 0.6 !default; +$o-mail-thread-side-date-opacity: 0.6 !default; +$o-mail-chat-window-bg: #FAFAFA !default; +$o-mail-chat-window-width: 325px !default; +$o-mail-chatter-gap: 10px !default; +$o-mail-chatter-mobile-gap: 2% !default; +$o-mail-chat-header-height: 46px !default; +$o-mail-attachment-image-size: 100px !default; +$o-mail-sidebar-icon-opacity: 0.7 !default; +$o-mail-chat-sidebar-width: 250px !default; +$o-mail-partner-avatar-size: 24px !default; diff --git a/addons/mail/views/mail_templates.xml b/addons/mail/views/mail_templates.xml index 9c1cb7cddf5b..af2bc8b3b75b 100644 --- a/addons/mail/views/mail_templates.xml +++ b/addons/mail/views/mail_templates.xml @@ -1,6 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> <data> + <template id="_assets_primary_variables" inherit_id="web._assets_primary_variables"> + <xpath expr="//link[last()]" position="after"> + <link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/variables.scss"/> + </xpath> + </template> + <template id="assets_backend" name="mail assets" inherit_id="web.assets_backend"> <xpath expr="." position="inside"> <script type="text/javascript" src="/mail/static/src/js/many2many_tags_email.js"></script> @@ -27,7 +33,6 @@ <script type="text/javascript" src="/mail/static/src/js/utils.js"></script> <script type="text/javascript" src="/mail/static/src/js/activity.js"></script> - <link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/variables.scss"></link> <link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/announcement.scss"/> <link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/discuss.scss"/> <link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/chat_window.scss"/> diff --git a/addons/mass_mailing/static/src/scss/mass_mailing.ui.scss b/addons/mass_mailing/static/src/scss/mass_mailing.ui.scss index 0854637a003c..eaac6c4d2dd6 100644 --- a/addons/mass_mailing/static/src/scss/mass_mailing.ui.scss +++ b/addons/mass_mailing/static/src/scss/mass_mailing.ui.scss @@ -1,15 +1,15 @@ .o_form_view .o_form_sheet .o_notebook .tab-content .tab-pane .o_mail_body { // cancel padding of form_sheet - margin-top: -$odoo-sheet-cancel-tpadding; - margin-left: -$odoo-sheet-cancel-hpadding; - margin-right: -$odoo-sheet-cancel-hpadding; - margin-bottom: -$odoo-sheet-cancel-bpadding; + margin-top: -$o-sheet-cancel-tpadding; + margin-left: -$o-sheet-cancel-hpadding; + margin-right: -$o-sheet-cancel-hpadding; + margin-bottom: -$o-sheet-cancel-bpadding; } .o_mail_theme_selector { > a { @include o-position-absolute(0, 0, auto, 0); - height: $odoo-navbar-height; + height: $o-navbar-height; line-height: 31px; border-radius: 0; background-color: $o-we-color-darker; @@ -33,7 +33,7 @@ } .dropdown-menu { - @include o-position-absolute($odoo-navbar-height - 1, -1px, -1px, -1px); + @include o-position-absolute($o-navbar-height - 1, -1px, -1px, -1px); margin: 0; border-radius: 0; overflow: auto; @@ -67,7 +67,7 @@ } &.selected > a .o_thumb { - border: 2px solid $odoo-brand-primary; + border: 2px solid $o-brand-primary; background-color: $o-we-color-dark; } } diff --git a/addons/mrp/static/src/scss/mrp_bom_report.scss b/addons/mrp/static/src/scss/mrp_bom_report.scss index b72e7697a895..095d6e05846e 100644 --- a/addons/mrp/static/src/scss/mrp_bom_report.scss +++ b/addons/mrp/static/src/scss/mrp_bom_report.scss @@ -1,5 +1,5 @@ .o_mrp_bom_report_page { - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; margin: 16px auto; padding: 24px 16px; .o_mrp_bom_action { diff --git a/addons/portal/static/src/scss/portal.scss b/addons/portal/static/src/scss/portal.scss index a34693ef5ac3..9eeb6a538b5d 100644 --- a/addons/portal/static/src/scss/portal.scss +++ b/addons/portal/static/src/scss/portal.scss @@ -328,7 +328,7 @@ img { .o_portal_chatter_message_title { p { font-size:85%; - color:$odoo-main-color-muted; + color:$o-main-color-muted; margin: 0px; } } diff --git a/addons/project/static/src/scss/project_dashboard.scss b/addons/project/static/src/scss/project_dashboard.scss index 50cbb7b4ac95..919da241023b 100644 --- a/addons/project/static/src/scss/project_dashboard.scss +++ b/addons/project/static/src/scss/project_dashboard.scss @@ -66,7 +66,7 @@ outline: 2px solid transparent; box-shadow: 0px 0px 1px 1px #ccc; &.o_selected { - outline-color: $odoo-brand-optional; + outline-color: $o-brand-optional; } > img { @include o-position-absolute($top: 0, $left: 0, $right: 0, $bottom: 0); diff --git a/addons/sale_timesheet/static/src/scss/sale_timesheet.scss b/addons/sale_timesheet/static/src/scss/sale_timesheet.scss index 0e2caa12f72f..00d16e8e3250 100644 --- a/addons/sale_timesheet/static/src/scss/sale_timesheet.scss +++ b/addons/sale_timesheet/static/src/scss/sale_timesheet.scss @@ -2,7 +2,7 @@ .o_timesheet_plan_sale_timesheet { [type='action'] { - color: $odoo-brand-optional; + color: $o-brand-optional; cursor: pointer; } @@ -82,14 +82,14 @@ text-align: center; } th.o_right_bordered, td.o_right_bordered { - border-right: 2px solid $odoo-brand-optional; + border-right: 2px solid $o-brand-optional; text-align: center; } .o_timesheet_forecast_sale_order{ font-weight: bold; & > td:first-child { - color: $odoo-brand-optional; + color: $o-brand-optional; } } .o_timesheet_forecast_sale_order_line{ diff --git a/addons/sales_team/static/src/scss/sales_team_dashboard.scss b/addons/sales_team/static/src/scss/sales_team_dashboard.scss index ac72624b83a8..a57003b8285d 100644 --- a/addons/sales_team/static/src/scss/sales_team_dashboard.scss +++ b/addons/sales_team/static/src/scss/sales_team_dashboard.scss @@ -1,8 +1,5 @@ -$dashboard-bg-color: white; .o_kanban_view.o_kanban_dashboard.o_salesteam_kanban { - $sale-table-spacing: 10px; - .o_kanban_record { .o_sales_team_kanban_graph_section { .o_graph_linechart { @@ -27,7 +24,7 @@ $dashboard-bg-color: white; } g.tick.major { // Don't know why, but leads to strange bold text - // stroke: $odoo-brand-primary; + // stroke: $o-brand-primary; line { display: none; diff --git a/addons/stock/static/src/scss/stock_traceability_report.scss b/addons/stock/static/src/scss/stock_traceability_report.scss index 0d144dec6dce..7480521026f1 100644 --- a/addons/stock/static/src/scss/stock_traceability_report.scss +++ b/addons/stock/static/src/scss/stock_traceability_report.scss @@ -23,11 +23,11 @@ @media (max-width: $screen-md-min) { overflow-x:scroll; } - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; &.o_stock_reports_no_print { padding-bottom: 125px; - margin: $odoo-horizontal-padding auto; - @include o-webclient-padding($top: $odoo-sheet-vpadding, $bottom: $odoo-sheet-vpadding); + margin: $o-horizontal-padding auto; + @include o-webclient-padding($top: $o-sheet-vpadding, $bottom: $o-sheet-vpadding); .o_stock_reports_level0 { @include o-stock-reports-lines($border-width: 1px, $font-weight: normal, $border-top-style: solid, $border-bottom-style: groove); } diff --git a/addons/survey/views/survey_templates.xml b/addons/survey/views/survey_templates.xml index 61eb600204c9..a8f0574b68a9 100644 --- a/addons/survey/views/survey_templates.xml +++ b/addons/survey/views/survey_templates.xml @@ -10,11 +10,12 @@ <script type="text/javascript" src="/survey/static/src/js/survey.js" /> <script type="text/javascript" src="/survey/static/src/js/tour_test_survey.js"></script> <script type="text/javascript" src="/web/static/src/js/fields/field_utils.js"></script> + + <t t-call="web._assets_frontend_helpers"/> <link href="/web/static/lib/nvd3/nv.d3.css" rel="stylesheet" type="text/css"></link> <link rel="stylesheet" type="text/less" href="/web/static/src/scss/import_bootstrap.scss"/> <link rel="stylesheet" type="text/less" href="/web/static/src/scss/fonts.scss" /> <!-- Some helper classes (like mt- mb-) are required for survey templates --> - <link rel="stylesheet" type="text/less" href="/web/static/src/scss/utils.scss"/> <link rel="stylesheet" type="text/less" href="/web_editor/static/src/scss/web_editor.common.scss"/> <link href="/survey/static/src/css/survey_print.css" rel="stylesheet" type="text/css"/> <link href="/survey/static/src/css/survey_result.css" rel="stylesheet" type="text/css"></link> diff --git a/addons/web/static/src/scss/base_settings.scss b/addons/web/static/src/scss/base_settings.scss index 7904e6143e77..7cd25c7e5789 100644 --- a/addons/web/static/src/scss/base_settings.scss +++ b/addons/web/static/src/scss/base_settings.scss @@ -1,13 +1,9 @@ -// VARIABLES -$o-base-settings-mobile-tabs-height: 40px; -$o-base-settings-mobile-tabs-overflow-gap: 3%; - // MIXINS @mixin o-base-settings-horizontal-padding($padding-base: $padding-small-vertical) { - padding: $padding-base $odoo-horizontal-padding; + padding: $padding-base $o-horizontal-padding; @media (min-width: $screen-lg-min) { - padding-left: $odoo-horizontal-padding*2;; + padding-left: $o-horizontal-padding*2;; } } @@ -30,7 +26,7 @@ $o-base-settings-mobile-tabs-overflow-gap: 3%; .o_panel { @include o-flex-display; @include o-flex-flow(row, wrap); - margin-bottom: $odoo-sheet-vpadding*0.5; + margin-bottom: $o-sheet-vpadding*0.5; width: 100%; .title, .o_setting_search { @@ -89,7 +85,7 @@ $o-base-settings-mobile-tabs-overflow-gap: 3%; @include o-flex-flow(column, nowrap); background: $gray-dark; overflow: auto; - padding-top: $odoo-horizontal-padding*0.5; + padding-top: $o-horizontal-padding*0.5; @media (max-width: $screen-xs-max) { @include o-flex(0, 0, $o-base-settings-mobile-tabs-height); @@ -101,7 +97,7 @@ $o-base-settings-mobile-tabs-overflow-gap: 3%; .selected { background-color: $gray-darker; - box-shadow: inset 3px 0 0 $odoo-brand-optional; + box-shadow: inset 3px 0 0 $o-brand-optional; .app_name { color: white; @@ -110,7 +106,7 @@ $o-base-settings-mobile-tabs-overflow-gap: 3%; .tab { @include o-flex-display; - padding: 0 $odoo-horizontal-padding*2 0 $odoo-horizontal-padding; + padding: 0 $o-horizontal-padding*2 0 $o-horizontal-padding; height: 40px; color: $gray-lighter-darker; font-size: 13px; @@ -142,7 +138,7 @@ $o-base-settings-mobile-tabs-overflow-gap: 3%; &:after { content: ''; - background: $odoo-brand-optional; + background: $o-brand-optional; opacity: 0; @include o-position-absolute(auto, 0, 0, 0); @include size(100%, 3px); @@ -176,7 +172,7 @@ $o-base-settings-mobile-tabs-overflow-gap: 3%; .settings { position: relative; @include o-flex(1, 1, 100%); - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; overflow: auto; > .app_settings_block { diff --git a/addons/web/static/src/scss/bootstrap_overridden.scss b/addons/web/static/src/scss/bootstrap_overridden.scss index 9a3642314156..9701ead0539d 100644 --- a/addons/web/static/src/scss/bootstrap_overridden.scss +++ b/addons/web/static/src/scss/bootstrap_overridden.scss @@ -3,44 +3,53 @@ // ------------------------------------------------------------------ //== Grid -$grid-gutter-width: $odoo-horizontal-padding*2; +$grid-gutter-width: $o-horizontal-padding*2; //== Colors -$brand-primary: $odoo-brand-primary; -$gray-lighter: $odoo-color-silver; +$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: $odoo-font-size-base + 13px; -$font-size-h2: $odoo-font-size-base + 7px; -$font-size-h3: $odoo-font-size-base + 3px; -$font-size-h4: $odoo-font-size-base + 2px; -$font-size-h5: $odoo-font-size-base + 1px; -$font-size-h6: $odoo-font-size-base; +$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 -$body-bg: $odoo-brand-secondary; -$text-color: $odoo-main-text-color; -$link-color: $odoo-brand-optional; +$body-bg: $o-brand-secondary; +$text-color: $o-main-text-color; +$link-color: $o-brand-optional; $link-hover-decoration: none; //== Typography $font-family-sans-serif: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif; -$font-size-base: $odoo-font-size-base; +$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: $odoo-brand-optional; +$component-active-color: $o-brand-optional; //== Badges -$badge-bg: $odoo-brand-optional; +$badge-bg: $o-brand-optional; $badge-color: white; -$badge-line-height: $line-height-base; +$badge-line-height: $o-line-height-base; $badge-font-weight: normal; //== Breadcrumbs $breadcrumb-active-color: #777777; -$breadcrumb-bg: $odoo-control-panel-background-color; +$breadcrumb-bg: $o-control-panel-background-color; $breadcrumb-color: #777777; $breadcrumb-padding-horizontal: 0; $breadcrumb-padding-vertical: 0; @@ -48,16 +57,16 @@ $breadcrumb-padding-vertical: 0; //== Buttons $btn-default-bg: white; $btn-default-border: #cccccc; -$btn-default-color: $odoo-main-text-color; -$btn-primary-bg: $odoo-brand-optional; -$btn-primary-border: $odoo-brand-optional; +$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: $odoo-main-text-color; +$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; @@ -69,8 +78,8 @@ $dropdown-header-color: $gray-light; $modal-sm: 300px; $modal-md: 650px; $modal-lg: 980px; -$modal-inner-padding: $odoo-horizontal-padding; -$modal-title-padding: $odoo-horizontal-padding; +$modal-inner-padding: $o-horizontal-padding; +$modal-title-padding: $o-horizontal-padding; // 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 @@ -92,11 +101,11 @@ $modal-title-padding: $odoo-horizontal-padding; $nav-link-padding: 10px 15px; $nav-pills-border-radius: 0; $nav-pills-active-link-hover-color: white; -$nav-pills-active-link-hover-bg: $odoo-brand-optional; +$nav-pills-active-link-hover-bg: $o-brand-optional; $nav-tabs-active-link-hover-bg: white; //== Navbar -$navbar-height: $odoo-navbar-height - 2; +$navbar-height: $o-navbar-height - 2; $navbar-margin-bottom: 0; $navbar-inverse-bg: #222222; $navbar-inverse-link-color: #9d9d9d; @@ -108,61 +117,4 @@ $navbar-border-radius: 0; $table-bg-accent: #efeff8; // FIXME: expose $table-bg-hover: darken($table-bg-accent,5%); -// ------------------------------------------------------------------ -// Bootstrap components rules (non exposed features variables) -// ------------------------------------------------------------------ - -//== Badges -.badge { - margin: 1px 2px 1px 0; - padding-top: 0; - padding-bottom: 0; -} - -//== Buttons -// Mixin to define variations for btn-links and muted btn-links -@mixin o-btn-link-variant($color, $color-active) { - text-transform: none; - @include o-hover-text-color($default-color: $color, $hover-color: $color-active); - - &, &:hover, &:focus, &:active, &.active { - border-color: transparent; - background-color: transparent - } - - &.text-muted, .text-muted { - @include o-hover-opacity; - @include o-hover-text-color($default-color: $text-muted, $hover-color: $color-active); - } -} -.btn-icon { - @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); -} -.btn-link { - font-weight: $btn-font-weight; - - &.btn-default { - @include o-btn-link-variant($text-color, $headings-color); - } - &.btn-success, &.text-success { - @include o-btn-link-variant($text-color, $brand-success); - } - &.btn-warning, &.text-warning { - @include o-btn-link-variant($text-color, $brand-warning); - } - &.btn-danger, &.text-danger { - @include o-btn-link-variant($text-color, $brand-danger); - } - &.btn-info, &.text-info { - @include o-btn-link-variant($text-color, darken($brand-info, 20%)); - } -} - -//== Printing improvements -@media print { - .table-responsive { - overflow-x: initial; - } -} - -@icon-font-path: "/web/static/lib/bootstrap/fonts/"; +$icon-font-path: "/web/static/lib/bootstrap/fonts/"; diff --git a/addons/web/static/src/scss/bootstrap_overridden_frontend.scss b/addons/web/static/src/scss/bootstrap_overridden_frontend.scss new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/addons/web/static/src/scss/control_panel.scss b/addons/web/static/src/scss/control_panel.scss index 4174db62c6a8..447a1a587cc7 100644 --- a/addons/web/static/src/scss/control_panel.scss +++ b/addons/web/static/src/scss/control_panel.scss @@ -1,11 +1,10 @@ -$breadcrumb-height: 30px; .o_control_panel { @include o-flex-display; @include o-flex-flow(row, wrap); - border-bottom: 1px solid darken($odoo-control-panel-background-color, 20%); + border-bottom: 1px solid darken($o-control-panel-background-color, 20%); @include o-webclient-padding($top: 10px, $bottom: 10px); - background-color: $odoo-control-panel-background-color; + background-color: $o-control-panel-background-color; > .breadcrumb { width: 50%; @@ -27,7 +26,7 @@ $breadcrumb-height: 30px; > .o_cp_searchview { width: 50%; - min-height: $breadcrumb-height; + min-height: $o-cp-breadcrumb-height; } .btn.o_enable_searchview { @@ -93,7 +92,7 @@ $breadcrumb-height: 30px; } > .o_cp_switch_buttons > .btn:first-child { - margin-left: $odoo-horizontal-padding; + margin-left: $o-horizontal-padding; } } } diff --git a/addons/web/static/src/scss/data_export.scss b/addons/web/static/src/scss/data_export.scss index 3ce97ea1c8b0..aa690cfdb743 100644 --- a/addons/web/static/src/scss/data_export.scss +++ b/addons/web/static/src/scss/data_export.scss @@ -58,7 +58,7 @@ } .o_left_field_panel, .o_fields_list { - border: 1px solid $odoo-brand-lightsecondary; + border: 1px solid $o-brand-lightsecondary; overflow: auto; @include o-flex(1, 1, auto); min-height: 0; @@ -71,7 +71,7 @@ @include user-select(none); &.o_selected > .o_tree_column { - background-color: $odoo-brand-primary; + background-color: $o-brand-primary; color: white; } @@ -82,7 +82,7 @@ display: block; &.o_required { - border-bottom: 2px solid $odoo-main-text-color; + border-bottom: 2px solid $o-main-text-color; } } diff --git a/addons/web/static/src/scss/datepicker.scss b/addons/web/static/src/scss/datepicker.scss index d8650b6b409d..d8d4ba1d5204 100644 --- a/addons/web/static/src/scss/datepicker.scss +++ b/addons/web/static/src/scss/datepicker.scss @@ -1,5 +1,3 @@ -$odoo-datepicker-week-color: #8f8f8f; -$odoo-datepicker-week-bg-color: lighten($odoo-datepicker-week-color, 30%); .sr-only { position: absolute; @@ -40,19 +38,19 @@ $odoo-datepicker-week-bg-color: lighten($odoo-datepicker-week-color, 30%); .table-condensed { > thead { color: white; - background-color: $odoo-brand-primary; + background-color: $o-brand-primary; > tr { &:first-child { th:hover { color: white; - background-color: darken($odoo-brand-primary, 10%); + background-color: darken($o-brand-primary, 10%); } } &:last-child { - color: $odoo-datepicker-week-color; - background-color: $odoo-datepicker-week-bg-color; + color: $o-datepicker-week-color; + background-color: $o-datepicker-week-bg-color; } > th { border-radius: 0; @@ -64,12 +62,12 @@ $odoo-datepicker-week-bg-color: lighten($odoo-datepicker-week-color, 30%); > tr { > td { &.active, .active { - background-color: $odoo-brand-optional; + background-color: $o-brand-optional; border-radius: 100px; } &.today:before { - border-bottom-color: $odoo-brand-optional; + border-bottom-color: $o-brand-optional; } } } diff --git a/addons/web/static/src/scss/domain_selector.scss b/addons/web/static/src/scss/domain_selector.scss index 1fde477164d4..6755bed49e91 100644 --- a/addons/web/static/src/scss/domain_selector.scss +++ b/addons/web/static/src/scss/domain_selector.scss @@ -97,8 +97,8 @@ } > .o_domain_leaf_info { - background: $odoo-brand-lightsecondary; - border: 1px solid darken($odoo-brand-lightsecondary, 10%); + background: $o-brand-lightsecondary; + border: 1px solid darken($o-brand-lightsecondary, 10%); padding: 2px 4px; > .o_field_selector { @@ -172,7 +172,7 @@ display: block; height: $o-domain-animation-bar-height; max-height: 0; - @include o-linear-gradient(45deg, rgba($odoo-brand-optional, 0.4), rgba($odoo-brand-optional, 0.1)); + @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); } diff --git a/addons/web/static/src/scss/dropdown.scss b/addons/web/static/src/scss/dropdown.scss index ed979ae3a008..d0bfd1d2586a 100644 --- a/addons/web/static/src/scss/dropdown.scss +++ b/addons/web/static/src/scss/dropdown.scss @@ -1,5 +1,5 @@ %dropdown-li-a-padding { - padding: 3px $odoo-dropdown-hpadding; + padding: 3px $o-dropdown-hpadding; } .ui-autocomplete { // Copy style of bootstrap dropdown @@ -21,7 +21,7 @@ &.ui-state-focus { background-image: none; - background-color: $odoo-brand-primary; + background-color: $o-brand-primary; border: none; font-weight: normal; margin: 0; @@ -29,7 +29,7 @@ &.o_m2o_dropdown_option { padding-left: 20px; > a { - color: $odoo-brand-primary; + color: $o-brand-primary; } } } @@ -64,7 +64,7 @@ &.dropdown-header { @extend %dropdown-li-a-padding; - color: $odoo-main-text-color; + color: $o-main-text-color; @media (max-width: $screen-xs-max) { color: white; diff --git a/addons/web/static/src/scss/dropdown_extra.scss b/addons/web/static/src/scss/dropdown_extra.scss index d15496fe0c94..c14144e02d34 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: $odoo-brand-primary; + background-color: $o-brand-primary; } &.o_m2o_dropdown_option > a { - color: $odoo-brand-primary; + color: $o-brand-primary; } &.ui-state-focus > a, &.ui-state-focus.o_m2o_dropdown_option > a { @@ -11,7 +11,6 @@ } } -$tag-border: #afafb6; .oe_dropdown, .oe_dropdown_toggle { position: relative; cursor: pointer; @@ -25,7 +24,7 @@ $tag-border: #afafb6; position: absolute; z-index: 3; margin: 0; - border: 1px solid $tag-border; + border: 1px solid #afafb6; background: white; padding: 4px 0; min-width: 140px; diff --git a/addons/web/static/src/scss/fields.scss b/addons/web/static/src/scss/fields.scss index f28e3ba349ce..04c81dab96cb 100644 --- a/addons/web/static/src/scss/fields.scss +++ b/addons/web/static/src/scss/fields.scss @@ -112,10 +112,10 @@ // o-kanban-colorpicker without customizing // '&:first-child > a::before' (transparent red-crossed colorpick) @mixin o-tag-colorpicker { - $o-tag-colorpicker-padding-right: $odoo-dropdown-hpadding - 2 * 5px; // FIXME was $o-kanban-inner-hmargin before scss convertion + $o-tag-colorpicker-padding-right: $o-dropdown-hpadding - 2 * 5px; // FIXME was $o-kanban-inner-hmargin before scss convertion max-width: 100%; - padding: 3px $o-tag-colorpicker-padding-right 3px $odoo-dropdown-hpadding; + padding: 3px $o-tag-colorpicker-padding-right 3px $o-dropdown-hpadding; > li { display: inline-block; @@ -136,7 +136,7 @@ &:last-of-type { box-shadow: 0 0 0 0px white; // remove grey border on hide in kanban - color: $odoo-main-text-color; + color: $o-main-text-color; } } } @@ -156,20 +156,20 @@ } } - @for $size from 1 through $odoo-nb-ui-color { + @for $size from 1 through length($o-colors) { .o_tag_color_#{$size - 1} { @if $size == 1 { & { background-color: white; - color: nth($odoo-colors, $size); - box-shadow: inset 0 0 0 2px nth($odoo-colors, $size); + color: nth($o-colors, $size); + box-shadow: inset 0 0 0 2px nth($o-colors, $size); } &::after { - background-color: nth($odoo-colors, $size); + background-color: nth($o-colors, $size); } } @else { &, &::after { - background-color: nth($odoo-colors, $size); + background-color: nth($o-colors, $size); } } } @@ -195,7 +195,7 @@ } &.fa-star-o { - color: $odoo-main-color-muted; + color: $o-main-color-muted; } &.fa-star { color: gold; @@ -209,7 +209,7 @@ font-size: 16px; } i.fa-star-o { - color: $odoo-main-color-muted; + color: $o-main-color-muted; &:hover { color: gold; } @@ -242,7 +242,7 @@ > input { @include o-flex(0, 0, auto); - margin: 0 $odoo-form-spacing-unit 0 0; + margin: 0 $o-form-spacing-unit 0 0; } > label { margin: 0; @@ -251,14 +251,14 @@ &.o_horizontal { .o_radio_item { - margin-right: $odoo-form-spacing-unit * 2; + margin-right: $o-form-spacing-unit * 2; } } &.o_vertical { @include o-flex-flow(column, nowrap); .o_radio_item { - margin-bottom: $odoo-form-spacing-unit; + margin-bottom: $o-form-spacing-unit; } } } @@ -274,7 +274,7 @@ margin-right: 10px; border-radius: 100%; overflow: hidden; - background-color: $odoo-brand-optional; + background-color: $o-brand-optional; &:after { // Outside pie border to go over border-radius irregularities content: " "; @@ -289,7 +289,7 @@ @include o-transform-origin(0); width: 50%; height: 100%; - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; &.o_full { background-color: inherit; } @@ -303,7 +303,7 @@ border-radius: 100%; font-weight: 700; - color: $odoo-brand-primary; + color: $o-brand-primary; } } } @@ -326,7 +326,7 @@ width: 100%; color: white; - background-color: $odoo-brand-optional; + background-color: $o-brand-optional; opacity: 0; transition: opacity ease 400ms; @@ -345,7 +345,7 @@ margin: 0px; text-align: center; &.o_select_file_button{ - background: $odoo-brand-optional; + background: $o-brand-optional; } &.o_clear_file_button{ background: $brand-danger; diff --git a/addons/web/static/src/scss/fields_extra.scss b/addons/web/static/src/scss/fields_extra.scss index dd441c07710d..7e45291305f5 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 $odoo-brand-primary; + border: 1px solid $o-brand-primary; } .o_pie_value { diff --git a/addons/web/static/src/scss/form_view.scss b/addons/web/static/src/scss/form_view.scss index c5e0207022d9..e4dfdca3811c 100644 --- a/addons/web/static/src/scss/form_view.scss +++ b/addons/web/static/src/scss/form_view.scss @@ -1,5 +1,5 @@ .o_form_view { - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; // Utility classes .oe_form_box_info { @@ -40,13 +40,13 @@ @include o-align-items(baseline); min-width: 50px; - margin: 0 -$odoo-form-spacing-unit/2; + 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); width: auto!important; - margin-right: $odoo-form-spacing-unit/2; - margin-left: $odoo-form-spacing-unit/2; + margin-right: $o-form-spacing-unit/2; + margin-left: $o-form-spacing-unit/2; } > .o_row { @@ -81,12 +81,12 @@ .o_form_uri { display: inline-block; - color: $odoo-main-text-color; + color: $o-main-text-color; &:first-line { color: $link-color; } &:hover { - color: darken($odoo-main-text-color, 1%); // hack required on chrome + color: darken($o-main-text-color, 1%); // hack required on chrome &:first-line { color: darken($link-color, 15%); } @@ -100,7 +100,7 @@ } .oe_title { - max-width: $container-sm - (2 * $odoo-horizontal-padding); + max-width: $container-sm - (2 * $o-horizontal-padding); } @media (min-width: $screen-xs-min) { @@ -121,10 +121,10 @@ // No sheet &.o_form_nosheet { display: block; - @include o-webclient-padding($top: $odoo-sheet-vpadding, $bottom: $odoo-sheet-vpadding); + @include o-webclient-padding($top: $o-sheet-vpadding, $bottom: $o-sheet-vpadding); .o_form_statusbar { - margin: -$odoo-sheet-vpadding -$odoo-horizontal-padding $odoo-sheet-vpadding -$odoo-horizontal-padding; + margin: -$o-sheet-vpadding -$o-horizontal-padding $o-sheet-vpadding -$o-horizontal-padding; } } @@ -133,7 +133,7 @@ position: relative; > .o_form_sheet { - margin: $odoo-sheet-vpadding auto; + margin: $o-sheet-vpadding auto; } } @@ -142,9 +142,9 @@ position: relative; // Needed for the "More" dropdown @include o-flex-display; @include o-justify-content(space-between); - padding-left: $odoo-horizontal-padding; + padding-left: $o-horizontal-padding; border-bottom: 1px solid $gray-lighter-darker; - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; > .o_statusbar_buttons, > .o_statusbar_status { @include o-flex-display; @@ -162,7 +162,7 @@ > .btn { $o-statusbar-buttons-vmargin: 4px; - min-height: $odoo-statusbar-height - 2 * $o-statusbar-buttons-vmargin; + min-height: $o-statusbar-height - 2 * $o-statusbar-buttons-vmargin; margin: $o-statusbar-buttons-vmargin 3px $o-statusbar-buttons-vmargin 0; padding-top: 2px; padding-bottom: 2px; @@ -177,21 +177,21 @@ overflow-x: hidden; // to prevent horizontal scroll due to last arrow > .o_arrow_button { - min-height: $odoo-statusbar-height; + min-height: $o-statusbar-height; font-size: 11px; font-weight: bold; position: relative; - padding-left: $odoo-statusbar-arrow-width*2; + padding-left: $o-statusbar-arrow-width*2; color: $gray; border-width: 0 0 0; border-radius: 0; @include o-transition(all, 0.1s); &:first-child { - padding-right: $odoo-horizontal-padding; // Compensate container padding + padding-right: $o-horizontal-padding; // Compensate container padding } &:last-child { - padding-left: $odoo-horizontal-padding - 1; + padding-left: $o-horizontal-padding - 1; border-left: 1px solid $gray-lighter-darker; } @@ -209,19 +209,19 @@ &:before, &:after { content: " "; display: block; - @include o-position-absolute(0, -$odoo-statusbar-arrow-width + 1); + @include o-position-absolute(0, -$o-statusbar-arrow-width + 1); - border-top: floor($odoo-statusbar-height/2) solid transparent; - border-bottom: ceil($odoo-statusbar-height/2) solid transparent; + border-top: floor($o-statusbar-height/2) solid transparent; + border-bottom: ceil($o-statusbar-height/2) solid transparent; border-right: none; - border-left: $odoo-statusbar-arrow-width solid $odoo-view-background-color; + border-left: $o-statusbar-arrow-width solid $o-view-background-color; @include o-transition(border, 0.2s); -moz-transform: scale(0.9999); // Smooth the triangle on firefox } &:not(.disabled) { &:hover, &:active, &:focus { - color: $odoo-brand-optional; + color: $o-brand-optional; background-color: $gray-lighter; &:after { @@ -231,12 +231,12 @@ } &:before { - right: -$odoo-statusbar-arrow-width; + right: -$o-statusbar-arrow-width; border-left-color: $gray-lighter-dark; } &.btn-primary.disabled { - color: $odoo-brand-primary; + color: $o-brand-primary; font-size: 11px; background-color: $gray-lighter; cursor: default; @@ -266,7 +266,7 @@ > .dropdown-toggle { &:after { @include o-caret-down; - margin-left: $odoo-form-spacing-unit; + margin-left: $o-form-spacing-unit; } } @@ -314,7 +314,7 @@ margin: 10px 0; // o_group contains nested groups - @for $i from 1 through $odoo-form-group-cols { + @for $i from 1 through $o-form-group-cols { .o_group_col_#{$i} { display: inline-block; width: floor(100% / 12 * $i); @@ -378,16 +378,16 @@ // Separators .o_horizontal_separator { font-size: $font-size-h2; - margin: $odoo-form-spacing-unit 0; + margin: $o-form-spacing-unit 0; &:empty { - height: $odoo-form-spacing-unit * 2; + height: $o-form-spacing-unit * 2; } } // Notebooks .o_notebook { clear: both; // For the notebook not to have alongside floating elements - margin-top: $odoo-form-spacing-unit * 2; + margin-top: $o-form-spacing-unit * 2; .nav-tabs > .tab-pane { min-height: 100px; @@ -396,14 +396,14 @@ // Labels .o_form_label { - margin: 0 $odoo-form-spacing-unit 0 0; + margin: 0 $o-form-spacing-unit 0 0; font-size: $font-size-base; // The label muse have the same size whatever their position line-height: $line-height-base; } // Form fields .o_field_widget { - margin-bottom: $odoo-form-spacing-unit; + margin-bottom: $o-form-spacing-unit; } .o_field_widget, .btn { .o_field_widget { @@ -554,7 +554,7 @@ // Boolean .o_field_boolean { - margin: 0 $odoo-form-spacing-unit 0 0; + margin: 0 $o-form-spacing-unit 0 0; } // Timezone widget warning @@ -580,7 +580,7 @@ > tfoot > tr > td { padding: 3px; - color: $odoo-main-text-color; + color: $o-main-text-color; } } &.o_form_readonly .o_field_widget .o_list_view .o_row_handle { @@ -590,9 +590,9 @@ // Attachments .oe_attachment { display: inline-block; - border: 1px solid $odoo-brand-lightsecondary; - margin: 0 $odoo-form-spacing-unit $odoo-form-spacing-unit 0; - padding: $odoo-form-spacing-unit; + border: 1px solid $o-brand-lightsecondary; + margin: 0 $o-form-spacing-unit $o-form-spacing-unit 0; + padding: $o-form-spacing-unit; } &.oe_form_configuration { @@ -653,7 +653,7 @@ label.o_light_label, .o_light_label label { // XXS form view specific rules @mixin form-break-table { display: block; - margin-bottom: $odoo-form-spacing-unit * 4; + margin-bottom: $o-form-spacing-unit * 4; > tbody { display: block; @@ -671,11 +671,11 @@ label.o_light_label, .o_light_label label { width: auto!important; // !important is required to override the width computed in JS &.o_td_label { width: 94%!important; // The label must be on its own line except if the form field is small enough (checkbox) - line-height: $odoo-label-font-size-factor; + line-height: $o-label-font-size-factor; } .o_field_widget { - margin-bottom: $odoo-form-spacing-unit * 2; + margin-bottom: $o-form-spacing-unit * 2; &.o_field_boolean { margin-right: 0; } diff --git a/addons/web/static/src/scss/form_view_extra.scss b/addons/web/static/src/scss/form_view_extra.scss index f401ecdda561..29c2512c1ab7 100644 --- a/addons/web/static/src/scss/form_view_extra.scss +++ b/addons/web/static/src/scss/form_view_extra.scss @@ -1,8 +1,8 @@ -$sheet-max-width: 860px; -$sheet-min-width: 650px; -$sheet-padding: 16px; - .o_form_view { + $sheet-max-width: 860px; + $sheet-min-width: 650px; + $sheet-padding: 16px; + &.o_form_nosheet.oe_form_nomargin { margin: 0; } @@ -75,7 +75,7 @@ $sheet-padding: 16px; .o_stat_value { @include o-text-overflow(block); font-weight: 700; - color: $odoo-brand-primary; + color: $o-brand-primary; } .o_stat_text { @include o-text-overflow(block); @@ -144,7 +144,7 @@ $sheet-padding: 16px; // Separators .o_horizontal_separator { - color: $odoo-brand-optional; + color: $o-brand-optional; font-weight: bold; } diff --git a/addons/web/static/src/scss/graph_view.scss b/addons/web/static/src/scss/graph_view.scss index 62e94e926ce6..4666d68ae619 100644 --- a/addons/web/static/src/scss/graph_view.scss +++ b/addons/web/static/src/scss/graph_view.scss @@ -3,7 +3,7 @@ height: 100%; overflow: auto; svg { - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; } } } diff --git a/addons/web/static/src/scss/kanban_column_progressbar.scss b/addons/web/static/src/scss/kanban_column_progressbar.scss index 9a54bbd80671..2cb35d33a2e3 100644 --- a/addons/web/static/src/scss/kanban_column_progressbar.scss +++ b/addons/web/static/src/scss/kanban_column_progressbar.scss @@ -1,10 +1,9 @@ -$o-kanban-counter-header-height: $o-kanban-header-title-height*0.6; @mixin o-kanban-css-filter($class, $accent-color) { // Provide CSS reordering and highlight &.o_kanban_group_show_#{$class} { - $mix-soft: mix($accent-color, $odoo-webclient-background-color, 5%); - $mix-full: mix($accent-color, $odoo-webclient-background-color); + $mix-soft: mix($accent-color, $o-webclient-background-color, 5%); + $mix-full: mix($accent-color, $o-webclient-background-color); &, .o_kanban_header { background-color: $mix-soft; @@ -44,7 +43,7 @@ $o-kanban-counter-header-height: $o-kanban-header-title-height*0.6; // If columns has the progressbar, adapt the layout .o_kanban_view .o_kanban_group.o_kanban_has_progressbar { > .o_kanban_header .o_kanban_header_title { - height: $o-kanban-counter-header-height; + height: $o-kanban-header-title-height*0.6; margin-top: 5px; } diff --git a/addons/web/static/src/scss/kanban_dashboard.scss b/addons/web/static/src/scss/kanban_dashboard.scss index 791b582efd1e..3f3b2185b58d 100644 --- a/addons/web/static/src/scss/kanban_dashboard.scss +++ b/addons/web/static/src/scss/kanban_dashboard.scss @@ -1,176 +1,3 @@ -// FIXME variables and mixins were moved from kanban_view.scss to here as this -// file is placed before in the assets template (and changing file order may -// break selector priorities). - -$o-kanban-record-margin: $odoo-horizontal-padding/2; -$o-kanban-group-padding: $odoo-horizontal-padding; // Cannot be higher than this - -$o-kanban-default-record-width: 300px; -$o-kanban-small-record-width: 240px; - -$o-kanban-header-title-height: 50px; - -$o-kanban-image-width: 64px; -$o-kanban-inside-vgutter: 8px; -$o-kanban-inside-hgutter: 8px; -$o-kanban-color-border-width: 3px; -$o-kanban-inside-hgutter-mobile: $odoo-horizontal-padding; -$o-kanban-inner-hmargin: 5px; -$o-kanban-progressbar-height: 20px; - -// ------- Kanban grouped mixins ------- -@mixin o-kanban-icon($base-opacity: 0.5) { - display: block; - text-align: center; - color: $odoo-main-text-color; - font-size: $font-size-small; - cursor: pointer; - @include o-hover-opacity($base-opacity); -} -@mixin o-kanban-tag-color { - @for $size from 1 through $odoo-nb-ui-color { - // Note: the first color is supposed to be invisible if there is a color - // field but it is used as a default color when there is no color field - &.o_tag_color_#{$size - 1} span { - background-color: nth($odoo-colors, $size); - } - } -} -@mixin o-kanban-record-color { - @for $size from 2 through $odoo-nb-ui-color { - // Note: the first color is not defined as it is the 'no color' for kanban - .oe_kanban_color_#{$size - 1}::after { - background-color: nth($odoo-colors, $size); - } - } -} -@mixin o-kanban-slim-col { - position: relative; - @include o-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); - 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)); - overflow: visible; - white-space: nowrap; - font-size: 15px; -} - -// ------- Kanban records mixins ------- -@mixin o-kanban-record-title($font-size) { - color: $headings-color; - font-size: $font-size; - font-weight: 500; - margin-bottom: 0; - margin-top: 0; -} -@mixin o-kanban-dropdown($padding-base: $o-kanban-inside-vgutter) { - margin: -1px -1px auto auto; // compensate border - padding: $padding-base/2 $padding-base; - border: 1px solid transparent; - border-bottom: none; - vertical-align: top; - color: $text-color; - - &:hover { - color: $headings-color; - } - &:focus, &:active, &:focus:active { - outline: none; - } -} -@mixin o-kanban-dropdown-open { - position: relative; - background: white; - border-color: $gray-lighter-darker; - z-index: $zindex-dropdown + 1; -} -@mixin o-kanban-dropdown-menu { - @include o-position-absolute($right: -1px); - margin-top: -1px; - border-color: $gray-lighter-darker; -} -@mixin o-kanban-colorpicker { - max-width: 150px; - padding: 3px ($odoo-dropdown-hpadding - $o-kanban-inner-hmargin) 3px $odoo-dropdown-hpadding; - - > li { - 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; - - > a { - display: block; - - &::after { - content: ""; - display: block; - width: 20px; - height: 15px; - } - } - - // No Color - &:first-child > a { - position: relative; - &::before { - content: ""; - @include o-position-absolute(-2px, $left: 10px); - display: block; - width: 1px; - height: 20px; - @include rotate(45deg); - background-color: red; - } - &::after { - background-color: white; - } - } - } -} - - -// ------- Kanban dashboard variables ------- - -// Since rows and containers are used inside cards, we're -// forced to set the padding relative to the grid system. -$o-kanban-dashboard-hpadding: $grid-gutter-width*0.5; -$o-kanban-dashboard-vpadding: $grid-gutter-width*0.25; - -// Used to manage spacing in complex dropdown menu -$o-kanban-dashboard-dropdown-complex-gap: 5px; - -// Emulate dropdown links -@mixin o-kanban-dashboard-dropdown-link($link-padding-gap: $odoo-dropdown-hpadding) { - padding: 0; - - > a { - margin: auto auto auto -$link-padding-gap; - padding: 3px $link-padding-gap; - color: $text-color; - display: block; - - &:hover { - background-color: $gray-lighter-dark; - color: $headings-color; - } - } - &:last-child { - margin-bottom: 5px; - } -} .o_kanban_view.o_kanban_dashboard { // correctly display the no_content_helper in dashboards diff --git a/addons/web/static/src/scss/kanban_examples_dialog.scss b/addons/web/static/src/scss/kanban_examples_dialog.scss index 2a27d2500b91..a42962ed8f0d 100644 --- a/addons/web/static/src/scss/kanban_examples_dialog.scss +++ b/addons/web/static/src/scss/kanban_examples_dialog.scss @@ -1,7 +1,7 @@ .o_kanban_examples_dialog { @include o-flex-display; padding: 0px; - background: $odoo-color-silver; + background: $o-color-silver; // sidebar .o_kanban_examples_dialog_nav { @@ -15,7 +15,7 @@ > a { padding: 12px 15px; - color: $odoo-main-text-color; + color: $o-main-text-color; border-left: 3px solid transparent; &:focus { outline: none; @@ -23,7 +23,7 @@ } &.active > a { color: $headings-color; - border-left-color: $odoo-brand-optional; + border-left-color: $o-brand-optional; font-weight: bold; } } diff --git a/addons/web/static/src/scss/kanban_view.scss b/addons/web/static/src/scss/kanban_view.scss index 0f7432cfae48..de9ea9a8411c 100644 --- a/addons/web/static/src/scss/kanban_view.scss +++ b/addons/web/static/src/scss/kanban_view.scss @@ -372,7 +372,7 @@ } &.o_kanban_dragged { - background-color: $odoo-main-text-color; + background-color: $o-main-text-color; .o_kanban_record { visibility: hidden; @@ -431,7 +431,7 @@ .o_kanban_add_column { display: inline-block; padding: 10px 14px; - background-color: $odoo-color-silver-dark; + background-color: $o-color-silver-dark; } .o_kanban_title { margin-left: 10px; @@ -478,7 +478,7 @@ @include o-flex-flow(row, wrap); @include o-justify-content(flex-start); - padding: $o-kanban-record-margin ($odoo-horizontal-padding - $o-kanban-record-margin); + padding: $o-kanban-record-margin ($o-horizontal-padding - $o-kanban-record-margin); .o_kanban_record { @include o-flex(1, 1, auto); diff --git a/addons/web/static/src/scss/kanban_view_mobile.scss b/addons/web/static/src/scss/kanban_view_mobile.scss index ebb5db45457f..ed4e6ad84364 100644 --- a/addons/web/static/src/scss/kanban_view_mobile.scss +++ b/addons/web/static/src/scss/kanban_view_mobile.scss @@ -1,5 +1,3 @@ -$o-kanban-mobile-tabs-height: 40px; - @media (max-width: $screen-xs-max) { .o_kanban_view.o_kanban_grouped { display: block; @@ -21,7 +19,7 @@ $o-kanban-mobile-tabs-height: 40px; &.o_current { font-weight: bold; - border-bottom: 3px solid $odoo-brand-optional; + border-bottom: 3px solid $o-brand-optional; } .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 b51cff845997..e23b2585b505 100644 --- a/addons/web/static/src/scss/layout_background.scss +++ b/addons/web/static/src/scss/layout_background.scss @@ -13,19 +13,19 @@ margin-right: 16px; } h3 { - color: $odoo-brand-primary; + color: $o-brand-primary; font-weight: 700; max-width: 300px; } } .o_background_footer { ul { - border-top: 1px solid $odoo-brand-primary; - border-bottom: 1px solid $odoo-brand-primary; + border-top: 1px solid $o-brand-primary; + border-bottom: 1px solid $o-brand-primary; padding: 4px 0; margin: 0 0 4px 0; li { - color: $odoo-brand-primary; + color: $o-brand-primary; } } } @@ -36,7 +36,7 @@ background-repeat: no-repeat; min-height: 900px; thead tr th, h2 { - color: $odoo-brand-primary; + color: $o-brand-primary; } tbody { color: $gray; @@ -57,7 +57,7 @@ border-top: none !important; } tr:last-child td { - color: $odoo-brand-primary; + color: $o-brand-primary; } } #total { diff --git a/addons/web/static/src/scss/layout_clean.scss b/addons/web/static/src/scss/layout_clean.scss index 190e5c6862a9..ecbdb02153fd 100644 --- a/addons/web/static/src/scss/layout_clean.scss +++ b/addons/web/static/src/scss/layout_clean.scss @@ -10,16 +10,16 @@ } .o_clean_footer { margin: 0 3px; - border-top: 3px solid $odoo-brand-primary; + border-top: 3px solid $o-brand-primary; h4 { - color: $odoo-brand-primary; + color: $o-brand-primary; font-weight: bolder; } .pagenumber { width: 35px; height: 35px; - border: 3px solid $odoo-brand-primary; - background-color: $odoo-brand-optional; + border: 3px solid $o-brand-primary; + background-color: $o-brand-optional; color: white; padding-top: 6px; text-align: center; @@ -27,18 +27,18 @@ } .o_report_layout_clean { h1, h2, h3 { - color: $odoo-brand-optional; + color: $o-brand-optional; font-weight: bolder; } strong { - color: $odoo-brand-primary; + color: $o-brand-primary; } table { thead { - color: $odoo-brand-primary; + color: $o-brand-primary; tr th { text-align: left !important; - border-top: 3px solid $odoo-brand-primary !important; + border-top: 3px solid $o-brand-primary !important; text-transform: uppercase; } tr th:last-child { @@ -54,7 +54,7 @@ border-top: none; } tr:last-child td { - border-bottom: 3px solid $odoo-brand-primary; + border-bottom: 3px solid $o-brand-primary; } tr { td { diff --git a/addons/web/static/src/scss/list_view.scss b/addons/web/static/src/scss/list_view.scss index 2c69f00e429d..36bee4439c6c 100644 --- a/addons/web/static/src/scss/list_view.scss +++ b/addons/web/static/src/scss/list_view.scss @@ -1,9 +1,8 @@ -$odoo-list-group-header-color: lighten($odoo-brand-lightsecondary, 10%); .o_list_view { position: relative; cursor: pointer; - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; margin-bottom: 0px; &.table { @@ -13,7 +12,7 @@ $odoo-list-group-header-color: lighten($odoo-brand-lightsecondary, 10%); } thead { - color: $odoo-main-text-color; + color: $o-main-text-color; border-bottom: 1px solid #cacaca; > tr > th { border-left: 1px solid #dfdfdf; @@ -25,9 +24,9 @@ $odoo-list-group-header-color: lighten($odoo-brand-lightsecondary, 10%); tfoot { cursor: default; - color: $odoo-list-footer-color; - background-color: $odoo-list-footer-bg-color; - font-weight: $odoo-list-footer-font-weight; + color: $o-list-footer-color; + background-color: $o-list-footer-bg-color; + font-weight: $o-list-footer-font-weight; border-top: 2px solid #cacaca; border-bottom: 1px solid #cacaca; } @@ -105,9 +104,9 @@ $odoo-list-group-header-color: lighten($odoo-brand-lightsecondary, 10%); padding-top: 0; padding-bottom: 0; .o_pager_previous, .o_pager_next { - background-color: $odoo-list-group-header-color; + background-color: $o-list-group-header-color; &:hover { - background-color: darken($odoo-list-group-header-color, 10%); + background-color: darken($o-list-group-header-color, 10%); } } } @@ -118,11 +117,11 @@ $odoo-list-group-header-color: lighten($odoo-brand-lightsecondary, 10%); tbody { tr:focus-within { - background-color: $odoo-form-lightsecondary; + background-color: $o-form-lightsecondary; } tr{ .focussed { - background-color: $odoo-form-lightsecondary; + background-color: $o-form-lightsecondary; } } } diff --git a/addons/web/static/src/scss/model_field_selector.scss b/addons/web/static/src/scss/model_field_selector.scss index e75204f6098f..0eec3e60049c 100644 --- a/addons/web/static/src/scss/model_field_selector.scss +++ b/addons/web/static/src/scss/model_field_selector.scss @@ -14,8 +14,8 @@ > .o_field_selector_chain_part { padding: 0px 1px; - border: 1px solid darken($odoo-brand-lightsecondary, 10%); - background: $odoo-brand-lightsecondary; + border: 1px solid darken($o-brand-lightsecondary, 10%); + background: $o-brand-lightsecondary; margin-bottom: 1px; } > i { diff --git a/addons/web/static/src/scss/navbar.scss b/addons/web/static/src/scss/navbar.scss index 8273c30182da..0c3d46945c9a 100644 --- a/addons/web/static/src/scss/navbar.scss +++ b/addons/web/static/src/scss/navbar.scss @@ -1,17 +1,17 @@ .o_main_navbar { position: relative; - height: $odoo-navbar-height; - border-bottom: 1px solid $odoo-navbar-inverse-link-hover-bg; - background-color: $odoo-brand-primary; + height: $o-navbar-height; + border-bottom: 1px solid $o-navbar-inverse-link-hover-bg; + background-color: $o-brand-primary; color: white; > a, > button { float: left; - height: $odoo-navbar-height; + height: $o-navbar-height; border: none; - padding: 0 $odoo-horizontal-padding - 4px 0 $odoo-horizontal-padding; - line-height: $odoo-navbar-height; + padding: 0 $o-horizontal-padding - 4px 0 $o-horizontal-padding; + line-height: $o-navbar-height; background-color: transparent; text-align: center; color: inherit; @@ -20,7 +20,7 @@ @include user-select(none); &:hover, &:focus { - background-color: $odoo-navbar-inverse-link-hover-bg; + background-color: $o-navbar-inverse-link-hover-bg; color: inherit; } &:focus, &:active, &:focus:active { @@ -36,12 +36,12 @@ color: white; font-size: 22px; font-weight: 500; - line-height: $odoo-navbar-height; + line-height: $o-navbar-height; @media (max-width: $screen-xs-max) { float: none; margin: 0; - border-bottom: 1px solid $odoo-navbar-inverse-link-hover-bg; + border-bottom: 1px solid $o-navbar-inverse-link-hover-bg; color: transparent; } } @@ -64,13 +64,13 @@ > a { display: block; - height: $odoo-navbar-height; + height: $o-navbar-height; padding: 0 10px; color: white; - line-height: $odoo-navbar-height; + line-height: $o-navbar-height; &:hover { - background-color: $odoo-navbar-inverse-link-hover-bg; + background-color: $o-navbar-inverse-link-hover-bg; } &:focus, &:active, &:focus:active { @@ -80,7 +80,7 @@ &.o_extra_menu_items { > a { - width: $odoo-navbar-height; + width: $o-navbar-height; text-align: center; } &.open > ul { @@ -88,12 +88,12 @@ > li { > a { - background-color: $odoo-brand-primary; + background-color: $o-brand-primary; color: white; - border-bottom: 1px solid $odoo-brand-lightsecondary; + border-bottom: 1px solid $o-brand-lightsecondary; &.dropdown-toggle { - background-color: lighten($odoo-brand-primary, 15%); + background-color: lighten($o-brand-primary, 15%); pointer-events: none; // hack to prevent clicking on it because dropdown always opened } } @@ -127,19 +127,19 @@ @for $index from 3 through 5 { > li.o_menu_header_lvl_#{$index}, > li .o_menu_entry_lvl_#{$index} { - padding-left: $odoo-dropdown-hpadding + ($index - 2)*12px; + padding-left: $o-dropdown-hpadding + ($index - 2)*12px; } } } .open .dropdown-toggle { - background-color: $odoo-navbar-inverse-link-hover-bg; + background-color: $o-navbar-inverse-link-hover-bg; } .o_user_menu { margin-left: 6px; > a { - padding-right: $odoo-horizontal-padding; + padding-right: $o-horizontal-padding; } .oe_topbar_avatar { @@ -152,7 +152,7 @@ @include o-transition(height, 200ms, linear); position: relative; - height: $odoo-navbar-height; + height: $o-navbar-height; overflow: hidden; > ul { @@ -186,15 +186,15 @@ } &.o_menu_systray { - @include o-position-absolute(0px, $odoo-navbar-height, auto, $odoo-navbar-height); - height: $odoo-navbar-height; + @include o-position-absolute(0px, $o-navbar-height, auto, $o-navbar-height); + height: $o-navbar-height; text-align: right; > li { display: inline-block; &.open .dropdown-menu { - @include o-position-absolute($odoo-navbar-height, 0, 0, 0); + @include o-position-absolute($o-navbar-height, 0, 0, 0); position: fixed; width: auto; } diff --git a/addons/web/static/src/scss/pivot_view.scss b/addons/web/static/src/scss/pivot_view.scss index 83b17a4e751f..3efddd8eab21 100644 --- a/addons/web/static/src/scss/pivot_view.scss +++ b/addons/web/static/src/scss/pivot_view.scss @@ -5,27 +5,27 @@ // items corresponding to the clicked cell &.o_enable_linking { .o_pivot_cell_value:hover { - color: $odoo-brand-optional; + color: $o-brand-optional; cursor: pointer; } } table { - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; width: auto; // bootstrap override th { font-weight: normal; // bootstrap override - background-color: lighten($odoo-brand-secondary, 40%); + background-color: lighten($o-brand-secondary, 40%); } @mixin o-pivot-header-cell { - background-color: lighten($odoo-brand-secondary, 40%); + background-color: lighten($o-brand-secondary, 40%); cursor: pointer; white-space: nowrap; @include user-select(none); &:hover { - background-color: lighten($odoo-brand-secondary, 30%); + 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 new file mode 100644 index 000000000000..b394aeafe269 --- /dev/null +++ b/addons/web/static/src/scss/primary_variables.scss @@ -0,0 +1,92 @@ +/// +/// This file regroups the variables that style odoo components. +/// They are available in every asset bundle. +/// + +// Font sizes +$o-font-size-base: 13px; +$o-line-height-base: 1.428571429; // This is BS default + +// Colors +$o-brand-primary: #7c7bad; +$o-brand-optional: #7c7bad; +$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-color-pink: #875A7B; // Enterprise $o-brand-primary +$o-main-color-muted: #a8a8a8; +$o-main-text-color: #4c4c4c; + +$o-view-background-color: white; +$o-shadow-color: #303030; + +$o-form-lightsecondary: #ccc; + +$o-list-footer-bg-color: #eee; +$o-list-footer-font-weight: bold; + +$o-tooltip-background-color: black; +$o-tooltip-color: white; +$o-tooltip-arrow-color: black; +$o-tooltip-text-color: #777777; +$o-tooltip-title-text-color: #4c4c4c; + +// Layout +$screen-xs-min: 475px; +$screen-xl-min: 1534px; + +$o-form-group-cols: 12; +$o-form-spacing-unit: 5px; +$o-horizontal-padding: 16px; +$o-innergroup-rpadding: 45px; +$o-dropdown-hpadding: 20px; + +$o-sheet-vpadding: 24px; + +$o-notification-error-bg-color: #F16567; +$o-notification-info-bg-color: #FCFBEA; + +// Needed for having no spacing between sheet and mail body in mass_mailing: +// Different required cancel paddings between web and web_enterprise +$o-sheet-cancel-tpadding: 0px; + +$o-avatar-size: 90px; + +$o-statusbar-height: 33px; + +$o-label-font-size-factor: 0.8; +$o-navbar-height: 34px; + +$o-nb-calendar-colors: 24; + +$o-base-settings-mobile-tabs-height: 40px; +$o-base-settings-mobile-tabs-overflow-gap: 3%; + +$o-cp-breadcrumb-height: 30px; + +$o-datepicker-week-color: #8f8f8f; + +// Kanban + +$o-kanban-default-record-width: 300px; +$o-kanban-small-record-width: 240px; + +$o-kanban-header-title-height: 50px; + +$o-kanban-image-width: 64px; +$o-kanban-inside-vgutter: 8px; +$o-kanban-inside-hgutter: 8px; +$o-kanban-color-border-width: 3px; +$o-kanban-inner-hmargin: 5px; +$o-kanban-progressbar-height: 20px; + +$o-kanban-mobile-tabs-height: 40px; + +// ------- Kanban dashboard variables ------- + +// Used to manage spacing in complex dropdown menu +$o-kanban-dashboard-dropdown-complex-gap: 5px; diff --git a/addons/web/static/src/scss/progress_bar.scss b/addons/web/static/src/scss/progress_bar.scss index e4322845c455..8aaade8812f1 100644 --- a/addons/web/static/src/scss/progress_bar.scss +++ b/addons/web/static/src/scss/progress_bar.scss @@ -14,16 +14,16 @@ height: 15px; vertical-align: middle; - border: 1px solid lighten($odoo-brand-secondary, 25%); + border: 1px solid lighten($o-brand-secondary, 25%); overflow: hidden; background-color: white; &.o_progress_overflow { - background-color: $odoo-brand-secondary; + background-color: $o-brand-secondary; } .o_progressbar_complete { - background-color: $odoo-brand-optional; + background-color: $o-brand-optional; height: 100%; } } diff --git a/addons/web/static/src/scss/rainbow.scss b/addons/web/static/src/scss/rainbow.scss index 102b76f02f89..eb6f4ce3c595 100644 --- a/addons/web/static/src/scss/rainbow.scss +++ b/addons/web/static/src/scss/rainbow.scss @@ -1,13 +1,11 @@ /************** rainbow *****************/ -// Variables -$reward-size: 400px; -$reward-size-mobile: 300px; -$reward-text-color: #727880; -$reward-base-time: 1.4s; - -// o_reward .o_reward { + $reward-size: 400px; + $reward-size-mobile: 300px; + $reward-text-color: #727880; + $reward-base-time: 1.4s; + will-change: transform; z-index: $zindex-modal; padding: 50px; diff --git a/addons/web/static/src/scss/search_view.scss b/addons/web/static/src/scss/search_view.scss index 5f40760c2c62..f2b0f7fd14f5 100644 --- a/addons/web/static/src/scss/search_view.scss +++ b/addons/web/static/src/scss/search_view.scss @@ -103,16 +103,16 @@ cursor: pointer; @include user-select(none); // Prevent text selection when toggling the dropdowns > a { // dropdown togglers - color: $odoo-main-text-color; + color: $o-main-text-color; &:hover { text-decoration: none; font-weight: bold; - color: darken($odoo-main-text-color, 10%); + color: darken($o-main-text-color, 10%); } } &.open > a { font-weight: bold; - color: darken($odoo-main-text-color, 10%); + color: darken($o-main-text-color, 10%); } } diff --git a/addons/web/static/src/scss/search_view_extra.scss b/addons/web/static/src/scss/search_view_extra.scss index 247b188c396f..d2098a5f9c3d 100644 --- a/addons/web/static/src/scss/search_view_extra.scss +++ b/addons/web/static/src/scss/search_view_extra.scss @@ -6,7 +6,7 @@ .o_searchview_facet { border: 1px solid $gray-light; - background: lighten($odoo-brand-primary, 35%); + background: lighten($o-brand-primary, 35%); .o_searchview_facet_label { background-color: $gray-light; @@ -28,7 +28,7 @@ @include o-position-absolute($top: 6px, $right: 5px); } .o_searchview_autocomplete li.o-selection-focus { - background-color: $odoo-brand-primary; + background-color: $o-brand-primary; > a { color: white; } diff --git a/addons/web/static/src/scss/secondary_variables.scss b/addons/web/static/src/scss/secondary_variables.scss new file mode 100644 index 000000000000..8ab2d5bc322e --- /dev/null +++ b/addons/web/static/src/scss/secondary_variables.scss @@ -0,0 +1,43 @@ +// 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-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, + #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-datepicker-week-bg-color: lighten($o-datepicker-week-color, 30%); + +// Kanban + +$o-kanban-record-margin: $o-horizontal-padding / 2; +$o-kanban-group-padding: $o-horizontal-padding; // Cannot be higher than this + +$o-kanban-inside-hgutter-mobile: $o-horizontal-padding; + +// ------- Kanban dashboard variables ------- + +// Since rows and containers are used inside cards, we're +// forced to set the padding relative to the grid system. +$o-kanban-dashboard-hpadding: $o-horizontal-padding; +$o-kanban-dashboard-vpadding: $o-horizontal-padding / 2; diff --git a/addons/web/static/src/scss/tooltip.scss b/addons/web/static/src/scss/tooltip.scss index 79fb0b60fb74..765db1292da0 100644 --- a/addons/web/static/src/scss/tooltip.scss +++ b/addons/web/static/src/scss/tooltip.scss @@ -7,17 +7,17 @@ .tooltip-inner { max-width: 300px; // fallback for browsers which do not support "vw" unit max-width: 100vw; - background-color: $odoo-tooltip-background-color; - color: $odoo-tooltip-color; + background-color: $o-tooltip-background-color; + color: $o-tooltip-color; border-radius: $border-radius-base; - box-shadow: 0px 0px 1px 1px $odoo-brand-secondary; + box-shadow: 0px 0px 1px 1px $o-brand-secondary; padding: 5px; text-align: left; .oe_tooltip_string { - background-color: $odoo-brand-primary; + background-color: $o-brand-primary; color: white; font-weight: bold; padding: 5px; @@ -42,18 +42,18 @@ } &.top, &.top-left, &.top-right { .tooltip-arrow { - border-top-color: $odoo-tooltip-arrow-color!important; + border-top-color: $o-tooltip-arrow-color!important; } } &.bottom, &.bottom-left, &.bottom-right { .tooltip-arrow { - border-bottom-color: $odoo-tooltip-arrow-color!important; + border-bottom-color: $o-tooltip-arrow-color!important; } } &.left .tooltip-arrow { - border-left-color: $odoo-tooltip-arrow-color!important; + border-left-color: $o-tooltip-arrow-color!important; } &.right .tooltip-arrow { - border-right-color: $odoo-tooltip-arrow-color!important; + border-right-color: $o-tooltip-arrow-color!important; } } diff --git a/addons/web/static/src/scss/utils.scss b/addons/web/static/src/scss/utils.scss index 6db15976bd5f..f64d50fd2406 100644 --- a/addons/web/static/src/scss/utils.scss +++ b/addons/web/static/src/scss/utils.scss @@ -2,16 +2,6 @@ /// This file regroups the odoo mixins. They are available in every asset bundle. /// -// ------------------------------------------------------------------ -// Padding -// ------------------------------------------------------------------ -@mixin o-webclient-padding($top: 0px, $right: $odoo-horizontal-padding, $bottom: 0px, $left: $odoo-horizontal-padding) { - padding-top: $top; - padding-right: $right; - padding-bottom: $bottom; - padding-left: $left; -} - // ------------------------------------------------------------------ // Caret // ------------------------------------------------------------------ @@ -22,38 +12,6 @@ height: 0; vertical-align: middle; } -@mixin o-caret-down($caret-width: $caret-width-base) { - @include utils-caret-boilerplate; - border-bottom: 0; - border-left: $caret-width solid transparent; - border-right: $caret-width solid transparent; - border-top: $caret-width solid; - -moz-transform: scale(0.9999); // Smooth the caret on firefox -} -@mixin o-caret-up($caret-width: $caret-width-base) { - @include utils-caret-boilerplate; - border-bottom: $caret-width solid; - border-left: $caret-width solid transparent; - border-right: $caret-width solid transparent; - border-top: 0; - -moz-transform: scale(0.9999); // Smooth the caret on firefox -} -@mixin o-caret-left($caret-width: $caret-width-base) { - @include utils-caret-boilerplate; - border-bottom: $caret-width solid transparent; - border-left: 0; - border-right: $caret-width solid; - 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) { - @include utils-caret-boilerplate; - border-bottom: $caret-width solid transparent; - border-left: $caret-width solid; - border-right: 0; - border-top: $caret-width solid transparent; - -moz-transform: scale(0.9999); // Smooth the caret on firefox -} // ------------------------------------------------------------------ // Vendor prefixes @@ -120,33 +78,6 @@ background-size: $size; } -// ------------------------------------------------------------------ -// Dropdowns -// ------------------------------------------------------------------ -@mixin o-selected-li { - li { - position: relative; - > a { - color: $odoo-main-text-color; - &:hover { - color: darken($odoo-main-text-color, 10%); - } - } - &.selected { - > a { - color: darken($odoo-main-text-color, 10%); - font-weight: bold; - &:before { - font-family: FontAwesome; - position: absolute; - left: 6px; - content: "\f00c"; - } - } - } - } -} - // ------------------------------------------------------------------ // Select Appearance // ------------------------------------------------------------------ @@ -265,6 +196,95 @@ opacity: $hover-opacity; } } + +//------------------------------------------------------------------------------ +// Colors +//------------------------------------------------------------------------------ + +@function luma($color) { + @return ((red($color) * .299) + (green($color) * .587) + (blue($color) * .114)) / 255 * 100%; +} +@function o-get-most-contrast($color, $c1, $c2) { + $luma: luma($color); + @return if(abs($luma - luma($c1)) > abs($luma - luma($c2)), $c1, $c2); +} + +// ------------------------------------------------------------------ +// Padding +// ------------------------------------------------------------------ +@mixin o-webclient-padding($top: 0px, $right: $o-horizontal-padding, $bottom: 0px, $left: $o-horizontal-padding) { + padding-top: $top; + padding-right: $right; + padding-bottom: $bottom; + padding-left: $left; +} + +// ------------------------------------------------------------------ +// Caret +// ------------------------------------------------------------------ +@mixin o-caret-down($caret-width: $caret-width-base) { + @include utils-caret-boilerplate; + border-bottom: 0; + border-left: $caret-width solid transparent; + border-right: $caret-width solid transparent; + border-top: $caret-width solid; + -moz-transform: scale(0.9999); // Smooth the caret on firefox +} +@mixin o-caret-up($caret-width: $caret-width-base) { + @include utils-caret-boilerplate; + border-bottom: $caret-width solid; + border-left: $caret-width solid transparent; + border-right: $caret-width solid transparent; + border-top: 0; + -moz-transform: scale(0.9999); // Smooth the caret on firefox +} +@mixin o-caret-left($caret-width: $caret-width-base) { + @include utils-caret-boilerplate; + border-bottom: $caret-width solid transparent; + border-left: 0; + border-right: $caret-width solid; + 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) { + @include utils-caret-boilerplate; + border-bottom: $caret-width solid transparent; + border-left: $caret-width solid; + border-right: 0; + border-top: $caret-width solid transparent; + -moz-transform: scale(0.9999); // Smooth the caret on firefox +} + +// ------------------------------------------------------------------ +// Dropdowns +// ------------------------------------------------------------------ +@mixin o-selected-li { + li { + position: relative; + > a { + 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"; + } + } + } + } +} + +// ------------------------------------------------------------------ +// Hovering effects +// ------------------------------------------------------------------ @mixin o-hover-text-color($default-color: $text-color, $hover-color: $link-color) { color: $default-color; @@ -273,11 +293,163 @@ } } -//------------------------------------------------------------------------------ -// Colors -//------------------------------------------------------------------------------ +// ------------------------------------------------------------------ +// Mixin to define variations for btn-links and muted btn-links +// ------------------------------------------------------------------ +@mixin o-btn-link-variant($color, $color-active) { + text-transform: none; + @include o-hover-text-color($default-color: $color, $hover-color: $color-active); -@function o-get-most-contrast($color, $c1, $c2) { - $brightness: brightness($color); - @return if(abs($brightness - brightness($c1)) > abs($brightness - brightness($c2)), $c1, $c2); + &, &:hover, &:focus, &:active, &.active { + border-color: transparent; + background-color: transparent + } + + &.text-muted, .text-muted { + @include o-hover-opacity; + @include o-hover-text-color($default-color: $text-muted, $hover-color: $color-active); + } +} + +// ------- Kanban grouped mixins ------- +@mixin o-kanban-icon($base-opacity: 0.5) { + display: block; + text-align: center; + color: $o-main-text-color; + font-size: $font-size-small; + cursor: pointer; + @include o-hover-opacity($base-opacity); +} +@mixin o-kanban-tag-color { + @for $size from 1 through length($o-colors) { + // Note: the first color is supposed to be invisible if there is a color + // field but it is used as a default color when there is no color field + &.o_tag_color_#{$size - 1} span { + background-color: nth($o-colors, $size); + } + } +} +@mixin o-kanban-record-color { + @for $size from 2 through length($o-colors) { + // Note: the first color is not defined as it is the 'no color' for kanban + .oe_kanban_color_#{$size - 1}::after { + background-color: nth($o-colors, $size); + } + } +} +@mixin o-kanban-slim-col { + position: relative; + @include o-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); + 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)); + overflow: visible; + white-space: nowrap; + font-size: 15px; +} + +// ------- Kanban records mixins ------- +@mixin o-kanban-record-title($font-size) { + color: $headings-color; + font-size: $font-size; + font-weight: 500; + margin-bottom: 0; + margin-top: 0; +} +@mixin o-kanban-dropdown($padding-base: $o-kanban-inside-vgutter) { + margin: -1px -1px auto auto; // compensate border + padding: $padding-base/2 $padding-base; + border: 1px solid transparent; + border-bottom: none; + vertical-align: top; + color: $text-color; + + &:hover { + color: $headings-color; + } + &:focus, &:active, &:focus:active { + outline: none; + } +} +@mixin o-kanban-dropdown-open { + position: relative; + background: white; + border-color: $gray-lighter-darker; + z-index: $zindex-dropdown + 1; +} +@mixin o-kanban-dropdown-menu { + @include o-position-absolute($right: -1px); + margin-top: -1px; + border-color: $gray-lighter-darker; +} +@mixin o-kanban-colorpicker { + max-width: 150px; + padding: 3px ($o-dropdown-hpadding - $o-kanban-inner-hmargin) 3px $o-dropdown-hpadding; + + > li { + 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; + + > a { + display: block; + + &::after { + content: ""; + display: block; + width: 20px; + height: 15px; + } + } + + // No Color + &:first-child > a { + position: relative; + &::before { + content: ""; + @include o-position-absolute(-2px, $left: 10px); + display: block; + width: 1px; + height: 20px; + @include rotate(45deg); + background-color: red; + } + &::after { + background-color: white; + } + } + } +} + +// Emulate dropdown links +@mixin o-kanban-dashboard-dropdown-link($link-padding-gap: $o-dropdown-hpadding) { + padding: 0; + + > a { + margin: auto auto auto -$link-padding-gap; + padding: 3px $link-padding-gap; + color: $text-color; + display: block; + + &:hover { + background-color: $gray-lighter-dark; + color: $headings-color; + } + } + &:last-child { + margin-bottom: 5px; + } } diff --git a/addons/web/static/src/scss/variables.scss b/addons/web/static/src/scss/variables.scss deleted file mode 100644 index 201804880426..000000000000 --- a/addons/web/static/src/scss/variables.scss +++ /dev/null @@ -1,82 +0,0 @@ -/// -/// This file regroups the variables that style odoo components. -/// They are available in every asset bundle. -/// - -// Font sizes -$odoo-font-size-base: 13px; - -// Colors -$odoo-brand-primary: #7c7bad; -$odoo-brand-optional: #7c7bad; -$odoo-brand-secondary: #f0eeee; -$odoo-brand-lightsecondary: #e2e2e0; -$odoo-color-silver: #F9F9F9; -$odoo-color-silver-dark: #E5E5E5; -$odoo-color-silver-darker: #d9d7d7; - -// 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: $odoo-color-silver-dark; -$gray-lighter-darker: $odoo-color-silver-darker; - -$odoo-color-pink: #875A7B; // Enterprise $odoo-brand-primary -$odoo-main-color-muted: #a8a8a8; -$odoo-main-text-color: #4c4c4c; - -$odoo-view-background-color: white; -$odoo-shadow-color: #303030; - -$odoo-webclient-background-color: $odoo-color-silver; -$odoo-control-panel-background-color: $odoo-color-silver; -$odoo-form-lightsecondary: #ccc; - -$odoo-list-footer-color: $odoo-main-text-color; -$odoo-list-footer-bg-color: #eee; -$odoo-list-footer-font-weight: bold; - -$odoo-tooltip-background-color: black; -$odoo-tooltip-color: white; -$odoo-tooltip-arrow-color: black; -$odoo-tooltip-text-color: #777777; -$odoo-tooltip-title-text-color: #4c4c4c; - -// UI custom colors for tags, kanban records' colors, ...) -$odoo-nb-ui-color: 12; -$odoo-colors: $gray-light, #F06050, #F4A460, #F7CD1F, #6CC1ED, #814968, - #EB7E7F, #2C8397, #475577, #D6145F, #30C381, #9365B8; - -// Layout -$screen-xs-min: 475px; -$screen-xxs-max: ($screen-xs-min - 1); - -$screen-xl-min: 1534px; -$screen-lg-max: ($screen-xl-min - 1); - -$odoo-form-group-cols: 12; -$odoo-form-spacing-unit: 5px; -$odoo-horizontal-padding: 16px; -$odoo-innergroup-rpadding: 45px; -$odoo-dropdown-hpadding: 20px; - -$border-radius-base: 3px; - -$odoo-sheet-vpadding: 24px; - -// Needed for having no spacing between sheet and mail body in mass_mailing: -// Different required cancel paddings between web and web_enterprise -$odoo-sheet-cancel-tpadding: 0px; -$odoo-sheet-cancel-hpadding: $odoo-horizontal-padding; -$odoo-sheet-cancel-bpadding: $odoo-horizontal-padding; - -$odoo-avatar-size: 90px; - -$odoo-statusbar-height: 33px; -$odoo-statusbar-arrow-width: $odoo-statusbar-height/3; -$odoo-statusbar-disabled-bg: lighten($odoo-brand-lightsecondary, 7%); - -$odoo-label-font-size-factor: 0.8; -$odoo-navbar-height: 34px; -$odoo-navbar-inverse-link-hover-bg: $navbar-inverse-link-active-bg; diff --git a/addons/web/static/src/scss/views.scss b/addons/web/static/src/scss/views.scss index 790cec7746d4..e3562026ffe4 100644 --- a/addons/web/static/src/scss/views.scss +++ b/addons/web/static/src/scss/views.scss @@ -51,12 +51,12 @@ padding: 15px; z-index: 1000; text-align: center; - color: $odoo-tooltip-text-color; + color: $o-tooltip-text-color; font-size: 115%; > p:first-of-type { margin-top: 0; - color: $odoo-tooltip-title-text-color; + color: $o-tooltip-title-text-color; font-weight: bold; font-size: 125%; } diff --git a/addons/web/static/src/scss/web_calendar.scss b/addons/web/static/src/scss/web_calendar.scss index 257e81bc89a7..7091cbc3c98c 100644 --- a/addons/web/static/src/scss/web_calendar.scss +++ b/addons/web/static/src/scss/web_calendar.scss @@ -1,20 +1,18 @@ -$nb-calendar-colors: 24; - @keyframes backgroundfade { - from {background-color: rgba($odoo-brand-primary, 0.5);} + from {background-color: rgba($o-brand-primary, 0.5);} to {background-color: #f5f5f5;} } .o_calendar_container { height: 100%; - @include o-webclient-padding($top: $odoo-horizontal-padding/2, $bottom: $odoo-horizontal-padding/2); + @include o-webclient-padding($top: $o-horizontal-padding/2, $bottom: $o-horizontal-padding/2); @include o-flex-display; - @for $index from 1 through $nb-calendar-colors { + @for $index from 1 through $o-nb-calendar-colors { .o_calendar_color_#{$index} { color: #0D0D0D; - background-color: adjust-hue(rgb(255, 192, 192), (360/($nb-calendar-colors+1) * $index) * 1deg); - border-color: adjust-hue(rgb(255, 192, 192), (360/($nb-calendar-colors+1) * $index) * 1deg); + background-color: adjust-hue(rgb(255, 192, 192), (360/($o-nb-calendar-colors+1) * $index) * 1deg); + border-color: adjust-hue(rgb(255, 192, 192), (360/($o-nb-calendar-colors+1) * $index) * 1deg); opacity: 0.7; &.o_event_hightlight { font-weight: bold; @@ -25,7 +23,7 @@ $nb-calendar-colors: 24; } } .o_underline_color_#{$index} { - border-bottom: 4px solid adjust-hue(rgba(255, 192, 192, 0.7), (360/($nb-calendar-colors+1) * $index) * 1deg); + border-bottom: 4px solid adjust-hue(rgba(255, 192, 192, 0.7), (360/($o-nb-calendar-colors+1) * $index) * 1deg); } } @@ -35,12 +33,12 @@ $nb-calendar-colors: 24; .o_calendar_widget { height: 100%; - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; * { z-index: 0; // FIXME } .fc-week-number, .fc-widget-header { - background-color: lighten($odoo-brand-secondary, 30%); + background-color: lighten($o-brand-secondary, 30%); } .o_avatar_square { border-radius: 5px; @@ -64,14 +62,14 @@ $nb-calendar-colors: 24; } .o_calendar_sidebar_container { - @include o-flex(0, 0, $odoo-horizontal-padding); + @include o-flex(0, 0, $o-horizontal-padding); position: relative; &.o_sidebar_hidden { - margin-right: -$odoo-horizontal-padding; // hack to display the toggler in the gutter + margin-right: -$o-horizontal-padding; // hack to display the toggler in the gutter .o_calendar_sidebar_toggler { padding: 4px; - color: darken($odoo-webclient-background-color, 30%); + color: darken($o-webclient-background-color, 30%); } } @@ -88,7 +86,7 @@ $nb-calendar-colors: 24; .o_calendar_sidebar { width: 250px; margin-left: 8px; - background: $odoo-view-background-color; + background: $o-view-background-color; } .ui-datepicker { @@ -101,7 +99,7 @@ $nb-calendar-colors: 24; .ui-widget-header { @include o-flex-display; background: none; - background-color: lighten($odoo-brand-secondary, 30%); + background-color: lighten($o-brand-secondary, 30%); border-radius: 0; .ui-datepicker-prev, .ui-datepicker-next { @@ -110,7 +108,7 @@ $nb-calendar-colors: 24; cursor: pointer; padding: 2px; text-align: center; - color: $odoo-main-text-color; + color: $o-main-text-color; &.ui-state-hover { background: none; border: none; @@ -144,31 +142,31 @@ $nb-calendar-colors: 24; table { td { padding: 0 2px 2px 0; - background-color: $odoo-view-background-color; + background-color: $o-view-background-color; a { border: none; background: none; - background-color: lighten($odoo-brand-secondary, 40%); + background-color: lighten($o-brand-secondary, 40%); text-align: center; } } .ui-state-default { - color: $odoo-brand-primary; + color: $o-brand-primary; &:hover { background: none; - background-color: rgba($odoo-brand-primary, 0.5); - border-color: $odoo-brand-primary; - color: $odoo-view-background-color; + background-color: rgba($o-brand-primary, 0.5); + border-color: $o-brand-primary; + color: $o-view-background-color; }; } .ui-state-active { background: none; - background-color: $odoo-brand-primary; - color: $odoo-view-background-color; + background-color: $o-brand-primary; + color: $o-view-background-color; } .o_selected_range.o_color { background: none; - background-color: $odoo-brand-primary; + background-color: $o-brand-primary; animation: backgroundfade 3s forwards; } } diff --git a/addons/web/static/src/scss/webclient.scss b/addons/web/static/src/scss/webclient.scss index d4bd0b4e0f26..b0f38b37fea2 100644 --- a/addons/web/static/src/scss/webclient.scss +++ b/addons/web/static/src/scss/webclient.scss @@ -3,14 +3,12 @@ // ------------------------------------------------------------------ .o_web_client { position: relative; // normally useless but required by bootstrap-datepicker - background-color: $odoo-webclient-background-color; + background-color: $o-webclient-background-color; } // ------------------------------------------------------------------ // Misc. widgets // ------------------------------------------------------------------ -$notification-error-bg-color: #F16567; -$notification-info-bg-color: #FCFBEA; .o_notification_manager { width: 300px; max-width: 100%; @@ -24,8 +22,8 @@ $notification-info-bg-color: #FCFBEA; opacity: 0; - background-color: $notification-info-bg-color; - box-shadow: 0px 0px 5px 1px $odoo-main-text-color; + background-color: $o-notification-info-bg-color; + box-shadow: 0px 0px 5px 1px $o-main-text-color; position: relative; .o_close { @@ -56,7 +54,7 @@ $notification-info-bg-color: #FCFBEA; &.o_error { color: white; - background-color: $notification-error-bg-color; + background-color: $o-notification-error-bg-color; } } } @@ -103,7 +101,7 @@ div.o_boolean_toggle { } > input:checked + .slider { - background-color: $odoo-brand-optional; + background-color: $o-brand-optional; &:before { @include translate(14px, 0px); diff --git a/addons/web/static/src/scss/webclient_extra.scss b/addons/web/static/src/scss/webclient_extra.scss index 701cfe2a9b34..cc87e526f8d1 100644 --- a/addons/web/static/src/scss/webclient_extra.scss +++ b/addons/web/static/src/scss/webclient_extra.scss @@ -7,7 +7,7 @@ outline: none; } .o_input { - border: 1px solid $odoo-form-lightsecondary; + border: 1px solid $o-form-lightsecondary; border-radius: $border-radius-base; padding: 2px 4px; color: #1f1f1f; @@ -29,7 +29,7 @@ select { top: 0; right: 50%; padding: 4px 12px; - background-color: $odoo-color-pink; + background-color: $o-color-pink; color: white; text-align: center; border-top: none; @@ -44,3 +44,8 @@ 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 14892617b5e6..f811df488023 100644 --- a/addons/web/static/src/scss/webclient_layout.scss +++ b/addons/web/static/src/scss/webclient_layout.scss @@ -1,4 +1,3 @@ -$odoo-submenu-width: 220px; .o_web_client { @include o-flex-display; @@ -37,11 +36,11 @@ $odoo-submenu-width: 220px; height: 100%; .o_sub_menu { - @include o-flex(0, 0, $odoo-submenu-width); + @include o-flex(0, 0, 220px); @include o-flex-display; @include o-flex-flow(column, nowrap); - border-right: 1px solid darken($odoo-control-panel-background-color, 20%); - background-color: $odoo-control-panel-background-color; + 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); @@ -75,13 +74,13 @@ $odoo-submenu-width: 220px; .oe_secondary_menu_section { font-weight: bold; margin-left: 8px; - color: $odoo-brand-optional; + color: $o-brand-optional; } .oe_secondary_submenu { margin: 3px 0px 10px; line-height: 1.1em; >li:not(.active) > a { - color: $odoo-main-text-color; + color: $o-main-text-color; } > li > a { padding: 4px 4px 4px 18px; @@ -135,7 +134,7 @@ $odoo-submenu-width: 220px; > a { font-weight: bold; > span { - color: $odoo-color-pink; + color: $o-color-pink; } } } diff --git a/addons/web/views/webclient_templates.xml b/addons/web/views/webclient_templates.xml index 76a1e197373e..ae3b882e7649 100644 --- a/addons/web/views/webclient_templates.xml +++ b/addons/web/views/webclient_templates.xml @@ -1,17 +1,40 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <template id="web._assets_helpers"> - <link rel="stylesheet" type="text/scss" href="/web/static/lib/bootstrap/scss/bootstrap/_variables.scss"/> - <link rel="stylesheet" type="text/scss" href="/web/static/lib/bootstrap/scss/bootstrap/mixins/_vendor-prefixes.scss"/> - <link rel="stylesheet" type="text/scss" href="/web/static/lib/bootstrap/scss/bootstrap/mixins/_buttons.scss"/> - <link rel="stylesheet" type="text/scss" href="/web/static/lib/bootstrap/scss/bootstrap/mixins/_clearfix.scss"/> - <link rel="stylesheet" type="text/scss" href="/web/static/lib/bootstrap/scss/bootstrap/mixins/_size.scss"/> - - <link rel="stylesheet" type="text/scss" href="/web/static/src/scss/variables.scss"/> + <template id="_assets_utils"> + <link rel="stylesheet" type="text/scss" href="/web/static/lib/bootstrap/scss/bootstrap/_mixins.scss"/> <link rel="stylesheet" type="text/scss" href="/web/static/src/scss/utils.scss"/> </template> - <template id="web.assets_common" name="Common Assets (used in backend interface and website)"> + <template id="_assets_primary_variables"> + <link rel="stylesheet" type="text/scss" href="/web/static/src/scss/primary_variables.scss"/> + </template> + + <template id="_assets_secondary_variables"> + <link rel="stylesheet" type="text/scss" href="/web/static/src/scss/secondary_variables.scss"/> + </template> + + <template id="_assets_helpers"> + <t t-call="web._assets_utils"/> + <t t-call="web._assets_primary_variables"/> + <t t-call="web._assets_secondary_variables"/> + + <!-- Bootstrap variables should not be necessary, all pages come with bootstrap in at least one of their --> + <!-- bundle and, ideally, these should be available in all assets... with their odoo override. This system --> + <!-- however works for now as non-backend and non-frontend assets do not need overriden BS variables yet. --> + <link t-if="not no_bs_vars" rel="stylesheet" type="text/scss" href="/web/static/lib/bootstrap/scss/bootstrap/_variables.scss"/> + </template> + + <template id="_assets_backend_helpers"> + <t t-call="web._assets_helpers"><t t-set="no_bs_vars" t-value="True"/></t> + <link rel="stylesheet" type="text/scss" href="/web/static/src/scss/bootstrap_overridden.scss"/> + </template> + + <template id="_assets_frontend_helpers"> + <t t-call="web._assets_helpers"><t t-set="no_bs_vars" t-value="True"/></t> + <link rel="stylesheet" type="text/scss" href="/web/static/src/scss/bootstrap_overridden_frontend.scss"/> + </template> + + <template id="assets_common" name="Common Assets (used in backend interface and website)"> <t t-call="web._assets_helpers"/> <link rel="stylesheet" type="text/css" href="/web/static/lib/jquery.ui/jquery-ui.css"/> @@ -97,14 +120,13 @@ <script type="text/javascript" src="/web/static/src/js/widgets/rainbow_man.js"></script> </template> - <template id="web.assets_backend" name="Backend Assets (used in backend interface)"> - <t t-call="web._assets_helpers"/> + <template id="assets_backend" name="Backend Assets (used in backend interface)"> + <t t-call="web._assets_backend_helpers"/> <link rel="stylesheet" type="text/scss" href="/web/static/src/scss/import_bootstrap.scss"/> <link rel="stylesheet" type="text/css" href="/base/static/src/css/modules.css"/> - <link rel="stylesheet" type="text/scss" href="/web/static/src/scss/bootstrap_overridden.scss"/> <link rel="stylesheet" type="text/scss" href="/web/static/src/scss/webclient_extra.scss"/> <link rel="stylesheet" type="text/scss" href="/web/static/src/scss/webclient_layout.scss"/> @@ -256,7 +278,7 @@ </template> <template id="web.assets_frontend" name="Website Assets"> - <t t-call="web._assets_helpers"/> + <t t-call="web._assets_frontend_helpers"/> <link rel="stylesheet" type="text/scss" href="/web/static/src/scss/import_bootstrap.scss"/> diff --git a/addons/web_editor/static/src/scss/web_editor.common.scss b/addons/web_editor/static/src/scss/web_editor.common.scss index 577e2e568b33..2d760ff31937 100644 --- a/addons/web_editor/static/src/scss/web_editor.common.scss +++ b/addons/web_editor/static/src/scss/web_editor.common.scss @@ -232,41 +232,6 @@ a.o_underline { } } -// Colors -$gray-white: #fff; - -$color-alpha: #1cc1a9; -$color-beta: #875A7B; -$color-gamma: #BA3C3D; -$color-delta: #0D6759; -$color-epsilon: #0B2E59; - -// Greyscale transparent colours -$color-black-25: rgba(black, 0.25); -$color-black-50: rgba(black, 0.5); -$color-black-75: rgba(black, 0.75); -$color-white-25: rgba(white, 0.25); -$color-white-50: rgba(white, 0.5); -$color-white-75: rgba(white, 0.75); - -@mixin o-create-color-classes($name, $color, $complementary: o-get-most-contrast($color, $text-color, #FFF), $content-color: $color) { - .bg-#{$name} { - background-color: $color; - color: $complementary; - .text-muted { - color: rgba($complementary, 0.4); - } - } - body .text-#{$name} { // body to make the rules more important that bg-* ones - color: $content-color; - } -} -@mixin o-create-color-btn-classes($name, $color, $complementary: o-get-most-contrast($color, $text-color, #FFF), $border-color: darken($color, 5%)) { - .btn-#{$name} { - @include button-variant($complementary, $color, $border-color); - } -} - // Create classes for theme colors... @include o-create-color-classes(alpha, $color-alpha); @include o-create-color-classes(beta, $color-beta); diff --git a/addons/web_editor/static/src/scss/web_editor.ui.scss b/addons/web_editor/static/src/scss/web_editor.ui.scss index 5d848a481e47..0208a43509ca 100644 --- a/addons/web_editor/static/src/scss/web_editor.ui.scss +++ b/addons/web_editor/static/src/scss/web_editor.ui.scss @@ -18,7 +18,7 @@ #web_editor-top-edit { @include o-position-absolute(0, 0, auto, 0); position: fixed; - height: $odoo-navbar-height; + height: $o-navbar-height; z-index: $zindex-modal - 9; background-color: rgba(0,0,0,0); @@ -59,7 +59,7 @@ } &.btn-primary { - @include button-variant(white, $odoo-brand-primary, $odoo-brand-primary); + @include button-variant(white, $o-brand-primary, $o-brand-primary); } &.btn-default { @include button-variant(white, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0)); @@ -86,16 +86,13 @@ 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: rgba($o-color-content-to-translate, 0.5)!important; + background: rgba($o-we-content-to-translate-color, 0.5)!important; &[data-oe-translation-state="translated"] { - background: rgba($o-color-translated-content, 0.5)!important; + background: rgba($o-we-translated-content-color, 0.5)!important; } &.o_dirty { - background: rgba($o-color-translated-content, 0.25)!important; + background: rgba($o-we-translated-content-color, 0.25)!important; } } @@ -118,8 +115,8 @@ html[lang] > body.editor_enable [data-oe-translation-state] { #snippets_menu { @include o-flex(0, 0, auto); - height: $odoo-navbar-height; - line-height: $odoo-navbar-height; + height: $o-navbar-height; + line-height: $o-navbar-height; margin: 0; padding: 0; background: $o-we-color-dark; @@ -254,28 +251,24 @@ html[lang] > body.editor_enable [data-oe-translation-state] { // DROPZONES @keyframes dropZoneInsert { to { - background-color: rgba($odoo-brand-primary, 0.2); + background-color: rgba($o-brand-primary, 0.2); } } #wrapwrap .oe_drop_zone { - background-color: rgba($odoo-brand-primary, 0.05); + background-color: rgba($o-brand-primary, 0.05); @include 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: $o-we-dropzone-border; border-top: none; border-bottom: none; position: relative; width: 100%; - height: $odoo-dropzone-size; - margin: -$odoo-dropzone-size/2 0; + height: $o-we-dropzone-size; + margin: -$o-we-dropzone-size/2 0; @include o-transition(margin, 400ms, linear); @@ -284,24 +277,24 @@ html[lang] > body.editor_enable [data-oe-translation-state] { display: block; width: 100%; height: 50%; - border-bottom: $odoo-dropzone-border; + border-bottom: $o-we-dropzone-border; box-sizing: content-box; } &.oe_vertical { - border: 2px dashed $odoo-brand-primary; + border: 2px dashed $o-brand-primary; border-left: none; border-right: none; - width: $odoo-dropzone-size; + width: $o-we-dropzone-size; float: left; - margin: 0 -$odoo-dropzone-size/2; + margin: 0 -$o-we-dropzone-size/2; &:after { width: 50%; height: 100%; border-bottom: none; - border-right: $odoo-dropzone-border; + border-right: $o-we-dropzone-border; } } } @@ -309,9 +302,6 @@ html[lang] > body.editor_enable [data-oe-translation-state] { // MANIPULATORS #oe_manipulators { - $odoo-handle-edge-size: 1px; - $odoo-handle-border-width: 1px; - position: relative; // SNIPPET MANIPULATORS @@ -341,14 +331,12 @@ html[lang] > body.editor_enable [data-oe-translation-state] { white-space: nowrap; .btn { - $o-overlay-option-size: 25px; - display: inline-block; - width: $o-overlay-option-size; - height: $o-overlay-option-size; + width: $o-we-overlay-option-size; + height: $o-we-overlay-option-size; padding: 0; border: 1px solid $o-we-color-dark; - line-height: $o-overlay-option-size; + line-height: $o-we-overlay-option-size; font-size: 11px; border-radius: 0; font-weight: normal; @@ -485,7 +473,7 @@ html[lang] > body.editor_enable [data-oe-translation-state] { @include o-position-absolute($top: 5px, $left: 5px); content: "\f00c"; font-family: "FontAwesome"; - color: $odoo-brand-optional; + color: $o-brand-optional; } } &.dropdown-header { @@ -544,29 +532,26 @@ html[lang] > body.editor_enable [data-oe-translation-state] { &.o_top_cover > .oe_overlay_options { bottom: auto; - top: $odoo-handle-border-width; - right: $odoo-handle-border-width; + top: $o-we-handle-border-width; + right: $o-we-handle-border-width; } // HANDLES > .o_handles { - $o-handles-offset-to-hide: 10000px; - $o-handless-accent-color: #00e2ff; - @include o-position-absolute(-$o-handles-offset-to-hide, 0, auto, 0); + @include o-position-absolute(-$o-we-handles-offset-to-hide, 0, auto, 0); &:hover > .o_handle { - background-color: rgba($o-handless-accent-color, 0.05); + background-color: rgba($o-we-handles-accent-color, 0.05); } > .o_handle { - $o-handle-btn-size: 18px; position: relative; - border: 0 solid $o-handless-accent-color; + border: 0 solid $o-we-handles-accent-color; @include o-transition(background, 300ms); &:hover, &.o_active { - background-color: rgba($o-handless-accent-color, 0.2); + background-color: rgba($o-we-handles-accent-color, 0.2); &:before { content: ''; @@ -574,7 +559,7 @@ html[lang] > body.editor_enable [data-oe-translation-state] { width: 1px; height: 100%; margin-left: -1px; - background-color: rgba($o-handless-accent-color, 0.5); + background-color: rgba($o-we-handles-accent-color, 0.5); } &.w:before { @@ -584,20 +569,20 @@ html[lang] > body.editor_enable [data-oe-translation-state] { } &:after { - border-color: darken($o-handless-accent-color, 10%); - background-color: darken($o-handless-accent-color, 20%); + border-color: darken($o-we-handles-accent-color, 10%); + background-color: darken($o-we-handles-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; + width: $o-we-handles-btn-size; + height: $o-we-handles-btn-size; + border: solid 1px darken($o-we-handles-accent-color, 10%); + line-height: $o-we-handles-btn-size - 2; font-size: 14px; font-family: FontAwesome; - background-color: darken($o-handless-accent-color, 20%); + background-color: darken($o-we-handles-accent-color, 20%); color: white; } &.w:after, &.e:after { @@ -625,46 +610,46 @@ html[lang] > body.editor_enable [data-oe-translation-state] { } &.w { - @include 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; + @include o-position-absolute($o-we-handles-offset-to-hide, auto, -$o-we-handles-offset-to-hide, 0); + width: $o-we-handle-edge-size; + border-width: $o-we-handle-border-width; border-right-width: 0; cursor: e-resize; &:after { @include o-position-absolute($top: 50%, $left: 40%); - margin-top: -$o-handle-btn-size/2; + margin-top: -$o-we-handles-btn-size/2; } } &.e { - @include 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; + @include o-position-absolute($o-we-handles-offset-to-hide, 0, -$o-we-handles-offset-to-hide, auto); + width: $o-we-handle-edge-size; + border-right-width: $o-we-handle-border-width; cursor: w-resize; &:after { @include o-position-absolute($top: 50%, $right: 40%); - margin-top: -$o-handle-btn-size/2; + margin-top: -$o-we-handles-btn-size/2; } } &.n { - @include o-position-absolute($o-handles-offset-to-hide, 0, auto, 0); - border-top-width: $odoo-handle-border-width; + @include o-position-absolute($o-we-handles-offset-to-hide, 0, auto, 0); + border-top-width: $o-we-handle-border-width; cursor: ns-resize; &:after { @include o-position-absolute($left: 50%, $top: 40%); - margin-left: -$o-handle-btn-size/2; + margin-left: -$o-we-handles-btn-size/2; } } &.s { - @include o-position-absolute(auto, 0, -$o-handles-offset-to-hide, 0); - border-bottom-width: $odoo-handle-border-width; + @include o-position-absolute(auto, 0, -$o-we-handles-offset-to-hide, 0); + border-bottom-width: $o-we-handle-border-width; cursor: ns-resize; &:after { @include o-position-absolute($left: 50%, $bottom: 40%); - margin-left: -$o-handle-btn-size/2; + margin-left: -$o-we-handles-btn-size/2; } } @@ -701,7 +686,7 @@ html[lang] > body.editor_enable [data-oe-translation-state] { // NOTE EDITOR .note-popover .popover { - height: $odoo-navbar-height; + height: $o-navbar-height; top: 0 !important; left: 0 !important; padding: 0; @@ -714,7 +699,7 @@ html[lang] > body.editor_enable [data-oe-translation-state] { box-shadow: none; .popover-content { - height: $odoo-navbar-height; + height: $o-navbar-height; white-space: nowrap; font-family: $o-we-font-family; @@ -723,7 +708,7 @@ html[lang] > body.editor_enable [data-oe-translation-state] { } .btn { - height: $odoo-navbar-height; + height: $o-navbar-height; border: none; border-radius: 0; padding: $padding-base-vertical $padding-base-horizontal; // force this because of themes @@ -1035,7 +1020,7 @@ table.colorpicker { // ENTER IN EDIT MODE body.editor_enable { - padding-top: $odoo-navbar-height!important; + padding-top: $o-navbar-height!important; #web_editor-top-edit { background-color: $o-we-color-dark; @@ -1055,7 +1040,7 @@ body.editor_enable { } #web_editor_inside_iframe { - background-color: $odoo-brand-secondary; + background-color: $o-brand-secondary; #wrapwrap { position: relative; @@ -1106,14 +1091,11 @@ body.editor_enable { } } @keyframes inputHighlighter { - from { background: $odoo-brand-optional; } + from { background: $o-brand-optional; } to { width: 0; background: transparent; } } // INPUTS -$o-switch-size: 2ex; -$o-switch-inactive-color: $gray-lighter; - .o_switch { @include o-flex-display; @include o-align-items(center); @@ -1124,11 +1106,11 @@ $o-switch-inactive-color: $gray-lighter; display: none; + span { - background-color: $o-switch-inactive-color; - box-shadow: inset 0 0 0px 1px darken($o-switch-inactive-color,10%); + background-color: $o-we-switch-inactive-color; + box-shadow: inset 0 0 0px 1px darken($o-we-switch-inactive-color,10%); border-radius: 100rem; - height: $o-switch-size; - width: $o-switch-size * 1.8; + height: $o-we-switch-size; + width: $o-we-switch-size * 1.8; margin-right: 0.5em; display: inline-block; @include transition(all 0.3s $o-we-md-ease); @@ -1137,13 +1119,13 @@ $o-switch-inactive-color: $gray-lighter; content: ""; background: $o-we-color-paper; display: block; - width: $o-switch-size - 0.2; - height: $o-switch-size - 0.2; + width: $o-we-switch-size - 0.2; + height: $o-we-switch-size - 0.2; margin-top: 0.1ex; margin-left: 0.1ex; border-radius: 100rem; @include 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%); + box-shadow: 0 1px 1px darken($o-we-switch-inactive-color,35%), inset 0 0 0 1px lighten($o-we-switch-inactive-color,10%); } } @@ -1152,7 +1134,7 @@ $o-switch-inactive-color: $gray-lighter; @include 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; + margin-left: ($o-we-switch-size*1.8 - $o-we-switch-size) + 0.1; } } } @@ -1248,8 +1230,7 @@ $o-switch-inactive-color: $gray-lighter; // ACE EDITOR .o_ace_view_editor { - $o-ace-color: #2F3129; - background: $o-ace-color; + background: $o-we-ace-color; color: white; @include o-flex-display; @include o-flex-flow(column, nowrap); @@ -1289,7 +1270,7 @@ $o-switch-inactive-color: $gray-lighter; #ace-view-id { @include o-flex(0, 0, auto); padding: $grid-gutter-width/4 $grid-gutter-width/2; - background-color: lighten($o-ace-color, 10%); + background-color: lighten($o-we-ace-color, 10%); } #ace-view-editor { @mixin ace-line-error-mixin { @@ -1383,10 +1364,10 @@ body .modal { } .o_existing_attachment_cell { - $odoo-border-image: 2px; + $o-border-image: 2px; .o_existing_attachment_remove { - @include o-position-absolute($odoo-border-image, 15px + $odoo-border-image); + @include o-position-absolute($o-border-image, 15px + $o-border-image); padding: 3px 5px 5px 5px; background-color: rgba(white, 0.8); text-shadow: 0 0 1px white; @@ -1400,7 +1381,7 @@ body .modal { } } .o_image { - border: $odoo-border-image solid transparent; + border: $o-border-image solid transparent; cursor: pointer; @include o-transition(opacity, 400ms); @@ -1415,8 +1396,8 @@ body .modal { } } &.o_selected .o_image { - border-color: $odoo-brand-primary; - box-shadow: 0px 0px 2px 2px $odoo-brand-secondary; + border-color: $o-brand-primary; + box-shadow: 0px 0px 2px 2px $o-brand-secondary; } &:hover .o_existing_attachment_remove { opacity: 1; @@ -1606,7 +1587,7 @@ body .modal { display: block; width: 100%; height: 1px; - background: fadeOut(lighten($odoo-brand-optional, 30%), 50%); + background: fadeOut(lighten($o-brand-optional, 30%), 50%); pointer-events: none; &.grid-2 { top: 66.66% diff --git a/addons/web_editor/static/src/scss/web_editor.variables.scss b/addons/web_editor/static/src/scss/web_editor.variables.scss index 08c67c9c7f67..2d36b3e97569 100644 --- a/addons/web_editor/static/src/scss/web_editor.variables.scss +++ b/addons/web_editor/static/src/scss/web_editor.variables.scss @@ -2,27 +2,45 @@ /// This files regroups the variables and mixins which are specific to the editor. /// -$o-we-font-family: Roboto, 'Montserrat', "Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif; +$o-we-font-family: Roboto, 'Montserrat', "Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif !default; -$o-we-color-dark: #2c2c36; -$o-we-color-darker: darken($o-we-color-dark, 2%); -$o-we-color-divider: #33363e; -$o-we-color-light: #4e525b; -$o-we-color-normal: #50545d; -$o-we-color-paper: #fcfcfc; -$o-we-color-text-normal: #999999; -$o-we-color-text-light: #d4d5d7; -$o-we-color-danger: #e6586c; -$o-we-color-warning: #f0ad4e; -$o-we-color-success: #40ad67; -$o-we-color-info: #6999a8; +$o-we-color-dark: #2c2c36 !default; +$o-we-color-darker: darken($o-we-color-dark, 2%) !default; +$o-we-color-divider: #33363e !default; +$o-we-color-light: #4e525b !default; +$o-we-color-normal: #50545d !default; +$o-we-color-paper: #fcfcfc !default; +$o-we-color-text-normal: #999999 !default; +$o-we-color-text-light: #d4d5d7 !default; +$o-we-color-danger: #e6586c !default; +$o-we-color-warning: #f0ad4e !default; +$o-we-color-success: #40ad67 !default; +$o-we-color-info: #6999a8 !default; -$o-we-sidebar-width: 210px; +$o-we-sidebar-width: 210px !default; -$o-we-tab-active-bg: #3D4048; +$o-we-tab-active-bg: #3D4048 !default; // Transitions -$o-we-md-ease: cubic-bezier(0.19, 1, 0.22, 1); +$o-we-md-ease: cubic-bezier(0.19, 1, 0.22, 1) !default; + +// Editor +$o-we-dropzone-size: 40px !default; +$o-we-dropzone-border-width: 2px !default; +$o-we-dropzone-border: $o-we-dropzone-border-width dashed $o-brand-primary !default; + +$o-we-handle-edge-size: 1px !default; +$o-we-handle-border-width: 1px !default; +$o-we-handles-offset-to-hide: 10000px !default; +$o-we-handles-accent-color: #00e2ff !default; +$o-we-handles-btn-size: 18px !default; + +$o-we-overlay-option-size: 25px !default; + +$o-we-ace-color: #2F3129 !default; + +$o-we-switch-size: 2ex !default; +$o-we-switch-inactive-color: $o-we-color-paper !default; // ============ 'Preview' component Mixins =============== // Create a "preview" work-area to edit/customize specific elements @@ -68,7 +86,7 @@ $o-we-md-ease: cubic-bezier(0.19, 1, 0.22, 1); @mixin o-w-preserve-links { a:not(.o_btn_preview) { - color: $odoo-brand-optional; + color: $o-brand-optional; &:focus, &:active, &:focus:active { outline: none!important; @@ -157,13 +175,13 @@ $o-we-md-ease: cubic-bezier(0.19, 1, 0.22, 1); @include button-size(6px, 12px, 14px, 1.42857143, 0); &.btn-primary { - @include button-variant(white, $odoo-brand-optional, darken($odoo-brand-optional,5%)); + @include button-variant(white, $o-brand-optional, darken($o-brand-optional,5%)); } &.btn-default { @include button-variant($o-we-color-normal, white, $o-we-color-text-light); } &.btn-link { - @include button-variant($odoo-brand-optional, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0)); + @include button-variant($o-brand-optional, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0)); } &.btn-success { @include button-variant(white, $o-we-color-success, darken($o-we-color-success, 5%)); @@ -200,3 +218,44 @@ $o-we-md-ease: cubic-bezier(0.19, 1, 0.22, 1); @include box-shadow(none); } } + +// Edition colors + +// Colors +$gray-white: #fff !default; + +$color-alpha: #1cc1a9 !default; +$color-beta: #875A7B !default; +$color-gamma: #BA3C3D !default; +$color-delta: #0D6759 !default; +$color-epsilon: #0B2E59 !default; + +// Greyscale transparent colours +$color-black-25: rgba(black, 0.25) !default; +$color-black-50: rgba(black, 0.5) !default; +$color-black-75: rgba(black, 0.75) !default; +$color-white-25: rgba(white, 0.25) !default; +$color-white-50: rgba(white, 0.5) !default; +$color-white-75: rgba(white, 0.75) !default; + +@mixin o-create-color-classes($name, $color, $complementary: o-get-most-contrast($color, $text-color, #FFF), $content-color: $color) { + .bg-#{$name} { + background-color: $color; + color: $complementary; + .text-muted { + color: rgba($complementary, 0.4); + } + } + body .text-#{$name} { // body to make the rules more important that bg-* ones + color: $content-color; + } +} +@mixin o-create-color-btn-classes($name, $color, $complementary: o-get-most-contrast($color, $text-color, #FFF), $border-color: darken($color, 5%)) { + .btn-#{$name} { + @include button-variant($complementary, $color, $border-color); + } +} + +// Translations +$o-we-content-to-translate-color: rgb(255, 255, 90) !default; +$o-we-translated-content-color: rgb(120, 215, 110) !default; diff --git a/addons/web_editor/views/editor.xml b/addons/web_editor/views/editor.xml index 1f87db93fe7b..3d7d36f18a97 100644 --- a/addons/web_editor/views/editor.xml +++ b/addons/web_editor/views/editor.xml @@ -52,8 +52,8 @@ <link rel="stylesheet" type="text/css" href="/web_editor/static/lib/summernote/src/css/summernote.css"/> </template> -<template id="_assets_helpers" inherit_id="web._assets_helpers"> - <xpath expr="link[last()]" position="after"> +<template id="_assets_primary_variables" inherit_id="web._assets_primary_variables"> + <xpath expr="//link[last()]" position="after"> <link rel="stylesheet" type="text/scss" href="/web_editor/static/src/scss/web_editor.variables.scss"/> </xpath> </template> diff --git a/addons/web_settings_dashboard/static/src/scss/dashboard.scss b/addons/web_settings_dashboard/static/src/scss/dashboard.scss index 3b3ea30d02a8..4e9ee93a4764 100644 --- a/addons/web_settings_dashboard/static/src/scss/dashboard.scss +++ b/addons/web_settings_dashboard/static/src/scss/dashboard.scss @@ -87,7 +87,7 @@ .o_web_settings_dashboard_progress_title { font-weight: bold; cursor: pointer; - color: $odoo-brand-optional; + color: $o-brand-optional; } } } diff --git a/addons/web_tour/static/src/scss/tip.scss b/addons/web_tour/static/src/scss/tip.scss index f09ed1852cec..2cb72fcd9f85 100644 --- a/addons/web_tour/static/src/scss/tip.scss +++ b/addons/web_tour/static/src/scss/tip.scss @@ -26,7 +26,7 @@ } .o_tooltip { - $o-tip-color: $odoo-brand-primary; + $o-tip-color: $o-brand-primary; $o-tip-size: 24px; $o-tip-border-width: 2px; $o-tip-arrow-length: 10px; diff --git a/addons/website/static/src/scss/website.backend.scss b/addons/website/static/src/scss/website.backend.scss index 254e90f39575..373af1ec6479 100644 --- a/addons/website/static/src/scss/website.backend.scss +++ b/addons/website/static/src/scss/website.backend.scss @@ -5,17 +5,17 @@ background-color: #ececec; div.o_box { @include clearfix; - color: $odoo-main-color-muted; - background-color: $odoo-view-background-color; + color: $o-main-color-muted; + background-color: $o-view-background-color; background-size: cover; - margin-top: $odoo-horizontal-padding; + margin-top: $o-horizontal-padding; position: static; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3); h2, h4 { text-transform: uppercase; margin-top: 0; - color: $odoo-brand-primary; + color: $o-brand-primary; } h4 { margin: 0 0 0 8px; } @@ -46,7 +46,7 @@ th { text-transform: uppercase; - color: $odoo-main-text-color; + color: $o-main-text-color; border-top-width: 0px; } td, th { @@ -67,7 +67,7 @@ /*------------------------------------------*/ .gapi-analytics-data-chart svg g path, svg [class*="nv-series-"] { - stroke: $odoo-main-color-muted !important; + stroke: $o-main-color-muted !important; } svg { @@ -86,19 +86,19 @@ .nv-series-0 { stroke-width: 3 !important; .nv-point { - stroke: $odoo-brand-optional; + stroke: $o-brand-optional; stroke-opacity: 1 !important; &.hover { - stroke: darken($odoo-brand-optional, 10%); + stroke: darken($o-brand-optional, 10%); } } } .nv-series-1 { .nv-point { - stroke: $odoo-main-color-muted !important; + stroke: $o-main-color-muted !important; stroke-opacity: 1 !important; &.hover { - stroke: darken($odoo-main-color-muted, 10%); + stroke: darken($o-main-color-muted, 10%); } } } @@ -114,10 +114,10 @@ border: none; } tr:first-child .legend-color-guide > div { - background-color: $odoo-brand-optional !important; + background-color: $o-brand-optional !important; } tr:last-child .legend-color-guide > div { - background-color: darken($odoo-brand-lightsecondary, 10%) !important; + background-color: darken($o-brand-lightsecondary, 10%) !important; } } } @@ -141,22 +141,22 @@ .o_inner_box { padding-top: 10px; text-align: center; - border: 1px solid $odoo-view-background-color; + border: 1px solid $o-view-background-color; height: 80px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; color: white; - background-color: $odoo-brand-optional; + background-color: $o-brand-optional; &:hover { - background-color: darken($odoo-brand-optional, 10%); + background-color: darken($o-brand-optional, 10%); } &.o_primary { - background-color: $odoo-brand-primary; + background-color: $o-brand-primary; color: white; &:hover { - background-color: darken($odoo-brand-primary, 10%); + background-color: darken($o-brand-primary, 10%); } } .o_highlight { @@ -167,10 +167,10 @@ .o_graph_sales { .o_legend0 { - background-color: $odoo-brand-optional; + background-color: $o-brand-optional; } .o_legend1 { - background-color: $odoo-main-color-muted; + background-color: $o-main-color-muted; } } @@ -249,24 +249,24 @@ @keyframes increase { 10% { - background-color: lighten($odoo-brand-optional, 30%); - border-color: $odoo-brand-optional; - color: $odoo-brand-optional; + background-color: lighten($o-brand-optional, 30%); + border-color: $o-brand-optional; + color: $o-brand-optional; } } @keyframes decrease { 10% { - background-color: lighten($odoo-brand-optional, 30%); - border-color: $odoo-brand-optional; - color: $odoo-brand-optional; + background-color: lighten($o-brand-optional, 30%); + border-color: $o-brand-optional; + color: $o-brand-optional; } } } tr.o_product_template { cursor: pointer; - color: $odoo-main-text-color; + color: $o-main-text-color; } .o_loader { diff --git a/addons/website/static/src/scss/website.edit_mode.scss b/addons/website/static/src/scss/website.edit_mode.scss index 2bc24d4b69db..c315e493e08c 100644 --- a/addons/website/static/src/scss/website.edit_mode.scss +++ b/addons/website/static/src/scss/website.edit_mode.scss @@ -22,7 +22,7 @@ .o_editable { &:not(:empty), &[data-oe-type] { &:not([data-oe-model="ir.ui.view"]):not([data-oe-type="html"]):hover { - box-shadow: $odoo-brand-primary 0 0 5px 2px inset; + box-shadow: $o-brand-primary 0 0 5px 2px inset; } } &:focus, &[data-oe-type] { diff --git a/addons/website/static/src/scss/website.scss b/addons/website/static/src/scss/website.scss index ee2fb57228f1..aa267460bc25 100644 --- a/addons/website/static/src/scss/website.scss +++ b/addons/website/static/src/scss/website.scss @@ -515,7 +515,7 @@ div.carousel { } } #oe_main_menu_navbar + #wrapwrap .o_header_affix { - top: $odoo-navbar-height; + top: $o-navbar-height; } .navbar .o_extra_menu_items.open > ul { diff --git a/addons/website/static/src/scss/website.ui.scss b/addons/website/static/src/scss/website.ui.scss index 5ad2f5ba40fc..a87be36a855b 100644 --- a/addons/website/static/src/scss/website.ui.scss +++ b/addons/website/static/src/scss/website.ui.scss @@ -5,7 +5,7 @@ // LAYOUTING body.o_connected_user { - padding-top: $odoo-navbar-height!important; + padding-top: $o-navbar-height!important; } // MAIN MENU STYLE (added above navbar.scss) @@ -15,7 +15,7 @@ body.o_connected_user { z-index: $zindex-modal - 10; font-family: $o-we-font-family; - font-size: $odoo-font-size-base; + font-size: $o-font-size-base; a:hover, a:focus { text-decoration: none; } @@ -45,7 +45,7 @@ body.o_connected_user { } &[data-action="edit"], &[data-action="translate"], &.css_edit_dynamic { - @include button-variant(white, $odoo-brand-optional, $odoo-brand-optional); + @include button-variant(white, $o-brand-optional, $o-brand-optional); } > .fa-plus, > .fa-pencil { @@ -352,7 +352,7 @@ body .modal { // ADD NEW PAGE MODAL #o_new_content_menu_choices { - @include o-position-absolute($odoo-navbar-height, 0, 0, 0); + @include o-position-absolute($o-navbar-height, 0, 0, 0); position: fixed; @include o-flex-display; @include o-justify-content(center); @@ -436,7 +436,7 @@ body .modal { overflow: visible; display: block; .modal-dialog { - @include o-position-absolute($odoo-navbar-height + 10, 10px); + @include o-position-absolute($o-navbar-height + 10, 10px); width: auto; margin: 0; font-family: Roboto; @@ -482,7 +482,7 @@ body .modal { @include o-w-preserve-btn; @include o-w-preserve-forms; - @include o-position-absolute($odoo-navbar-height, 0, 0); + @include o-position-absolute($o-navbar-height, 0, 0); position: fixed; z-index: 1001; } @@ -523,15 +523,15 @@ body .modal { } #edit_website_pages { th { - background-color: $odoo-brand-primary; + background-color: $o-brand-primary; color: white; } td > a.fa { margin-left: 5px; - color: $odoo-brand-primary; + color: $o-brand-primary; } .fa-check, .fa-eye-slash { - color: $odoo-brand-optional; + color: $o-brand-optional; } } diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index 7be2b375e859..a0d404be3959 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -574,7 +574,7 @@ <template id="default_less"> <style type="text/less"> div#wrap div > h1 { - color: @odoo-brand-primary; + color: @o-brand-primary; } </style> </template> diff --git a/addons/website_livechat/views/website_livechat.xml b/addons/website_livechat/views/website_livechat.xml index 25592403b9c3..265b8741cd91 100644 --- a/addons/website_livechat/views/website_livechat.xml +++ b/addons/website_livechat/views/website_livechat.xml @@ -13,7 +13,6 @@ <script type="text/javascript" src="/mail/static/src/js/document_viewer.js"></script> <script type="text/javascript" src="/mail/static/src/js/thread.js"></script> <script type="text/javascript" src="/im_livechat/static/src/js/im_livechat.js"></script> - <link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/variables.scss"></link> <link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/chat_window.scss"></link> <link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/thread.scss"></link> <link rel="stylesheet" type="text/scss" href="/im_livechat/static/src/scss/im_livechat.scss"/> diff --git a/addons/website_quote/static/src/scss/website_quotation.scss b/addons/website_quote/static/src/scss/website_quotation.scss index c372164a5df2..26ba0eaef64e 100644 --- a/addons/website_quote/static/src/scss/website_quotation.scss +++ b/addons/website_quote/static/src/scss/website_quotation.scss @@ -1,6 +1,6 @@ .o_website_quote{ h1[id],h2[id]{ margin-top: 0px; - padding-top: $odoo-navbar-height; + padding-top: $o-navbar-height; } } diff --git a/addons/website_rating/static/src/scss/website_rating.scss b/addons/website_rating/static/src/scss/website_rating.scss index b44da995762d..23befcee851f 100644 --- a/addons/website_rating/static/src/scss/website_rating.scss +++ b/addons/website_rating/static/src/scss/website_rating.scss @@ -1,7 +1,7 @@ /* static stars */ -$rating-star-color: #FACC2E; +$o-w-rating-star-color: #FACC2E; .o_website_rating_static{ - color: $rating-star-color; + color: $o-w-rating-star-color; } .o_website_rating_card_container { @@ -29,7 +29,7 @@ $rating-star-color: #FACC2E; margin-right: 5px; } .o_rating_progressbar{ - background-color: $rating-star-color; + background-color: $o-w-rating-star-color; } } .o_website_rating_table_percent { diff --git a/addons/website_sale/static/src/scss/website_sale.scss b/addons/website_sale/static/src/scss/website_sale.scss index 308a3fc56efd..f6b3cbcaa28e 100644 --- a/addons/website_sale/static/src/scss/website_sale.scss +++ b/addons/website_sale/static/src/scss/website_sale.scss @@ -773,7 +773,7 @@ td.noborder { } .border_primary { - border: 1px solid $odoo-brand-primary; + border: 1px solid $o-brand-primary; } .js_change_shipping { diff --git a/addons/website_sale/static/src/scss/website_sale_dashboard.scss b/addons/website_sale/static/src/scss/website_sale_dashboard.scss index 35bb6a0469cb..00549094a6fd 100644 --- a/addons/website_sale/static/src/scss/website_sale_dashboard.scss +++ b/addons/website_sale/static/src/scss/website_sale_dashboard.scss @@ -13,7 +13,7 @@ opacity: 0.2; } .o_demo_message { - color: $odoo-main-color-muted; + color: $o-main-color-muted; width: 100%; @include o-position-absolute($left: 0, $top: 12%); @include o-flex-display; @@ -29,13 +29,13 @@ overflow: hidden; text-overflow: ellipsis; a { - color: darken($odoo-brand-lightsecondary, 40%); + color: darken($o-brand-lightsecondary, 40%); } &:hover { - background-color: $odoo-brand-lightsecondary; + background-color: $o-brand-lightsecondary; } .o_highlight { - color: $odoo-brand-optional; + color: $o-brand-optional; font-size: 20px; font-weight: bold; } @@ -50,7 +50,7 @@ overflow: hidden; text-overflow: ellipsis; margin: 10px 0px; - color: darken($odoo-brand-lightsecondary, 40%); + color: darken($o-brand-lightsecondary, 40%); .o_highlight { font-size: 20px; font-weight: bold; diff --git a/addons/website_slides/static/src/scss/website_slides.scss b/addons/website_slides/static/src/scss/website_slides.scss index 6cf36c1c4a0b..2bc4681d451a 100644 --- a/addons/website_slides/static/src/scss/website_slides.scss +++ b/addons/website_slides/static/src/scss/website_slides.scss @@ -1,16 +1,15 @@ -@mixin define-color-if-not-defined { - $nav-tabs-border-color: #dddddd; - $brand-info: #dddddd; - $body-bg: #FFFFFF; - $brand-primary: #428bca; - $link-color: $brand-primary; - $panel-footer-bg: #f5f5f5; - $nav-link-hover-bg: #FFFFFF; - $navbar-default-link-color: #777; - $navbar-default-link-hover-color: #333; - $navbar-default-bg: #f8f8f8; - $MAX-Z-INDEX : 2147483647; -} @include define-color-if-not-defined; +// FIXME may be useless (check initial code here: https://github.com/odoo/odoo/blob/51be5bbfb38db784cb3406877cc0e8806b1bf55a/addons/website_slides/static/src/less/website_slides.less#L1) +$nav-tabs-border-color: #dddddd !default; +$brand-info: #dddddd !default; +$body-bg: #FFFFFF !default; +$brand-primary: #428bca !default; +$link-color: $brand-primary !default; +$panel-footer-bg: #f5f5f5 !default; +$nav-link-hover-bg: #FFFFFF !default; +$navbar-default-link-color: #777 !default; +$navbar-default-link-hover-color: #333 !default; +$navbar-default-bg: #f8f8f8 !default; +$MAX-Z-INDEX : 2147483647 !default; @mixin top-covered-image { object-fit: cover; diff --git a/addons/website_theme_install/static/src/scss/website_theme_install.scss b/addons/website_theme_install/static/src/scss/website_theme_install.scss index bf278d0886e0..47399f98ea6d 100644 --- a/addons/website_theme_install/static/src/scss/website_theme_install.scss +++ b/addons/website_theme_install/static/src/scss/website_theme_install.scss @@ -1,6 +1,6 @@ -$o-theme-kanban-gray: #fcfcfc; .o_kanban_view.o_theme_kanban { + $o-theme-kanban-gray: #fcfcfc; background-color: $o-theme-kanban-gray; /// Un-grouped Layout (default) @@ -9,8 +9,8 @@ $o-theme-kanban-gray: #fcfcfc; margin: 0 0 0 ($o-kanban-record-margin - 2 * $grid-gutter-width); @media (max-width: $screen-xs-max) { - padding-left: $odoo-horizontal-padding - $o-kanban-record-margin; - padding-right: $odoo-horizontal-padding; + padding-left: $o-horizontal-padding - $o-kanban-record-margin; + padding-right: $o-horizontal-padding; } .o_kanban_record { @@ -35,7 +35,7 @@ $o-theme-kanban-gray: #fcfcfc; } &.o_theme_installed .o_theme_preview_top { - border-color: $odoo-brand-optional; + border-color: $o-brand-optional; > .fa-check-circle { @include o-position-absolute(10px, 10px); -- GitLab