diff --git a/addons/website/models/theme_models.py b/addons/website/models/theme_models.py
index ec0baef02ff..0733d6f68a3 100644
--- a/addons/website/models/theme_models.py
+++ b/addons/website/models/theme_models.py
@@ -186,6 +186,7 @@ class Theme(models.AbstractModel):
self.enable_view('website.template_header_default')
self.disable_view('website.template_header_hamburger')
self.disable_view('website.template_header_vertical')
+ self.disable_view('website.template_header_sidebar')
# Reinitialize footer templates
self.enable_view('website.footer_custom')
diff --git a/addons/website/static/src/scss/primary_variables.scss b/addons/website/static/src/scss/primary_variables.scss
index f0463e8cc26..be6fa5fd575 100644
--- a/addons/website/static/src/scss/primary_variables.scss
+++ b/addons/website/static/src/scss/primary_variables.scss
@@ -260,12 +260,13 @@ $o-base-website-values-palette: (
'navbar-font': null,
'buttons-font': null,
- 'header-template': 'default', // 'default' / 'hamburger' / 'vertical'
+ 'header-template': 'default', // 'default' / 'hamburger' / 'vertical' / 'sidebar'
'header-font-size': null, // Default to BS (normal font-size)
'header-links-style': 'default', // 'default' / 'fill' / 'outline' / 'pills' / 'block' / 'border-bottom'
'logo-height': null, // Default to navbar height (see portal)
'hamburger-type': 'default', // 'default' / 'off-canvas'
'hamburger-position': 'left', // 'left' / 'center' / 'right'
+ 'sidebar-width': 18.75rem, // 300px
'footer-template': 'default',
'footer-effect': null, // null / 'slideout_slide_hover' / 'slideout_shadow'
diff --git a/addons/website/static/src/scss/website.edit_mode.scss b/addons/website/static/src/scss/website.edit_mode.scss
index a5763900af2..f99c95ea822 100644
--- a/addons/website/static/src/scss/website.edit_mode.scss
+++ b/addons/website/static/src/scss/website.edit_mode.scss
@@ -173,6 +173,13 @@ body.editor_enable.editor_has_snippets {
}
.editor_enable {
+ @if o-website-value('header-template') == 'sidebar' {
+ #wrapwrap > header {
+ @if o-website-value('hamburger-position') != 'right' {
+ left: $o-we-sidebar-width;
+ }
+ }
+ }
@if o-website-value('hamburger-type') == 'off-canvas' {
#top_menu_collapse {
&.collapsing, &.show {
diff --git a/addons/website/static/src/scss/website.scss b/addons/website/static/src/scss/website.scss
index 90a090df4f6..b818c72abd8 100644
--- a/addons/website/static/src/scss/website.scss
+++ b/addons/website/static/src/scss/website.scss
@@ -931,6 +931,62 @@ header {
}
}
+@if o-website-value('header-template') == 'sidebar' {
+ @include media-breakpoint-up(lg) {
+ #wrapwrap {
+ // Hack: padding is used by layout option (boxed, etc) so use
+ // border here to be able to combine the effect.
+ @if $-hamburger-right {
+ border-right: o-website-value('sidebar-width') solid transparent;
+ } @else {
+ border-left: o-website-value('sidebar-width') solid transparent;
+ }
+
+ > header {
+ @if $-hamburger-right {
+ @include o-position-absolute(0, 0, 0, auto);
+ } @else {
+ @include o-position-absolute(0, auto, 0, 0);
+ }
+ position: fixed;
+ z-index: $zindex-fixed;
+ display: flex;
+ width: o-website-value('sidebar-width');
+ transform: none !important;
+
+ .navbar {
+ width: 100%;
+ align-items: start;
+ padding: $spacer;
+
+ .navbar-brand {
+ max-width: 100%;
+ padding: 0 0 $spacer 0;
+ }
+ #top_menu_container {
+ flex-direction: column;
+ align-items: start;
+ padding: 0;
+ }
+ .navbar-nav {
+ flex-direction: column;
+ }
+ .nav-link,
+ .dropdown-item {
+ white-space: initial;
+ }
+ .dropdown-menu {
+ position: relative;
+ }
+ }
+ }
+ }
+ body.o_connected_user #wrapwrap > header {
+ top: $o-navbar-height;
+ }
+ }
+}
+
// Mega menu
.o_mega_menu {
width: 100%;
diff --git a/addons/website/views/snippets/snippets.xml b/addons/website/views/snippets/snippets.xml
index e63bc6807a1..374291310bd 100644
--- a/addons/website/views/snippets/snippets.xml
+++ b/addons/website/views/snippets/snippets.xml
@@ -577,8 +577,19 @@
data-customize-website-views="website.template_header_vertical"
data-customize-website-variable="'vertical'"
data-img="/website/static/src/img/snippets_options/header_template_vertical.png"/>
+ Sidebar
+
+
+
@@ -600,14 +611,14 @@
data-customize-website-views="">Default
Off-Canvas
+ data-customize-website-views="website.option_header_off_canvas, website.option_header_off_canvas_template_header_hamburger, website.option_header_off_canvas_template_header_sidebar">Off-Canvas
Text
Image
-