-
-
-
-
-
-
+ class="navbar navbar-light navbar-expand-md p-md-0 navbar-container">
+
-
-
-
-
-
diff --git a/src/app/navbar/navbar.component.scss b/src/app/navbar/navbar.component.scss
index be6e8ac55e..d131bf95bf 100644
--- a/src/app/navbar/navbar.component.scss
+++ b/src/app/navbar/navbar.component.scss
@@ -1,14 +1,12 @@
nav.navbar {
- border-top: 1px var(--ds-header-navbar-border-top-color) solid;
- border-bottom: 1px var(--ds-header-navbar-border-bottom-color) solid;
+ border-bottom: 1px var(--bs-gray-400) solid;
align-items: baseline;
- color: var(--ds-header-icon-color);
}
/** Mobile menu styling **/
@media screen and (max-width: map-get($grid-breakpoints, md)) {
.navbar {
- width: 100%;
+ width: 100vw;
background-color: var(--bs-white);
position: absolute;
overflow: hidden;
@@ -31,20 +29,9 @@ nav.navbar {
@media screen and (max-width: map-get($grid-breakpoints, md)) {
> .container {
padding: 0 var(--bs-spacer);
- a.navbar-brand {
- display: none;
- }
- .navbar-collapsed {
- display: none;
- }
}
padding: 0;
}
- height: 80px;
-}
-
-a.navbar-brand img {
- max-height: var(--ds-header-logo-height);
}
.navbar-nav {
diff --git a/src/app/navbar/navbar.component.ts b/src/app/navbar/navbar.component.ts
index ae5fb262ae..e741cea285 100644
--- a/src/app/navbar/navbar.component.ts
+++ b/src/app/navbar/navbar.component.ts
@@ -46,6 +46,7 @@ export class NavbarComponent extends MenuComponent {
id: `browse_global_communities_and_collections`,
active: false,
visible: true,
+ index: 0,
model: {
type: MenuItemType.LINK,
text: `menu.section.browse_global_communities_and_collections`,
@@ -57,11 +58,11 @@ export class NavbarComponent extends MenuComponent {
id: 'browse_global',
active: false,
visible: true,
+ index: 1,
model: {
type: MenuItemType.TEXT,
text: 'menu.section.browse_global'
} as TextMenuItemModel,
- index: 0
},
];
// Read the different Browse-By types from config and add them to the browse menu
diff --git a/src/app/root/root.component.html b/src/app/root/root.component.html
index aef07d79f4..67d04f999f 100644
--- a/src/app/root/root.component.html
+++ b/src/app/root/root.component.html
@@ -4,7 +4,7 @@
value: (!(sidebarVisible | async) ? 'hidden' : (slideSidebarOver | async) ? 'shown' : 'expanded'),
params: {collapsedSidebarWidth: (collapsedSidebarWidth | async), totalSidebarWidth: (totalSidebarWidth | async)}
}">
-
+
diff --git a/src/styles/_custom_variables.scss b/src/styles/_custom_variables.scss
index 298be09f67..dc76d772d1 100644
--- a/src/styles/_custom_variables.scss
+++ b/src/styles/_custom_variables.scss
@@ -20,7 +20,7 @@
--ds-sidebar-z-index: 20;
--ds-header-bg: #{$white};
- --ds-header-logo-height: 40px;
+ --ds-header-logo-height: 50px;
--ds-header-logo-height-xs: 50px;
--ds-header-icon-color: #{$cyan};
--ds-header-icon-color-hover: #{darken($white, 15%)};
diff --git a/src/themes/custom/app/header-nav-wrapper/header-navbar-wrapper.component.html b/src/themes/custom/app/header-nav-wrapper/header-navbar-wrapper.component.html
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/themes/custom/app/header-nav-wrapper/header-navbar-wrapper.component.scss b/src/themes/custom/app/header-nav-wrapper/header-navbar-wrapper.component.scss
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/themes/custom/app/header-nav-wrapper/header-navbar-wrapper.component.ts b/src/themes/custom/app/header-nav-wrapper/header-navbar-wrapper.component.ts
new file mode 100644
index 0000000000..875b5f69b8
--- /dev/null
+++ b/src/themes/custom/app/header-nav-wrapper/header-navbar-wrapper.component.ts
@@ -0,0 +1,15 @@
+import { Component } from '@angular/core';
+import { HeaderNavbarWrapperComponent as BaseComponent } from '../../../../app/header-nav-wrapper/header-navbar-wrapper.component';
+
+/**
+ * This component represents a wrapper for the horizontal navbar and the header
+ */
+@Component({
+ selector: 'ds-header-navbar-wrapper',
+ // styleUrls: ['header-navbar-wrapper.component.scss'],
+ styleUrls: ['../../../../app/header-nav-wrapper/header-navbar-wrapper.component.scss'],
+ // templateUrl: 'header-navbar-wrapper.component.html',
+ templateUrl: '../../../../app/header-nav-wrapper/header-navbar-wrapper.component.html',
+})
+export class HeaderNavbarWrapperComponent extends BaseComponent {
+}
diff --git a/src/themes/custom/theme.module.ts b/src/themes/custom/theme.module.ts
index 23fcf4c325..49b54cd850 100644
--- a/src/themes/custom/theme.module.ts
+++ b/src/themes/custom/theme.module.ts
@@ -78,6 +78,7 @@ import { NavbarComponent } from './app/navbar/navbar.component';
import { HeaderComponent } from './app/header/header.component';
import { FooterComponent } from './app/footer/footer.component';
import { BreadcrumbsComponent } from './app/breadcrumbs/breadcrumbs.component';
+import { HeaderNavbarWrapperComponent } from './app/header-nav-wrapper/header-navbar-wrapper.component';
const DECLARATIONS = [
HomePageComponent,
@@ -117,6 +118,7 @@ const DECLARATIONS = [
FooterComponent,
HeaderComponent,
NavbarComponent,
+ HeaderNavbarWrapperComponent,
BreadcrumbsComponent
];
diff --git a/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.html b/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.html
new file mode 100644
index 0000000000..091d152258
--- /dev/null
+++ b/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.scss b/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.scss
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.ts b/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.ts
new file mode 100644
index 0000000000..36e23e174a
--- /dev/null
+++ b/src/themes/dspace/app/header-nav-wrapper/header-navbar-wrapper.component.ts
@@ -0,0 +1,13 @@
+import { Component } from '@angular/core';
+import { HeaderNavbarWrapperComponent as BaseComponent } from '../../../../app/header-nav-wrapper/header-navbar-wrapper.component';
+
+/**
+ * This component represents a wrapper for the horizontal navbar and the header
+ */
+@Component({
+ selector: 'ds-header-navbar-wrapper',
+ styleUrls: ['header-navbar-wrapper.component.scss'],
+ templateUrl: 'header-navbar-wrapper.component.html',
+})
+export class HeaderNavbarWrapperComponent extends BaseComponent {
+}
diff --git a/src/themes/dspace/app/header/header.component.html b/src/themes/dspace/app/header/header.component.html
new file mode 100644
index 0000000000..dc0d066a4e
--- /dev/null
+++ b/src/themes/dspace/app/header/header.component.html
@@ -0,0 +1,24 @@
+
diff --git a/src/themes/dspace/app/header/header.component.scss b/src/themes/dspace/app/header/header.component.scss
new file mode 100644
index 0000000000..ab418865f1
--- /dev/null
+++ b/src/themes/dspace/app/header/header.component.scss
@@ -0,0 +1,19 @@
+@media screen and (min-width: map-get($grid-breakpoints, md)) {
+ nav.navbar {
+ display: none;
+ }
+ .header {
+ background-color: var(--ds-header-bg);
+ }
+}
+
+.navbar-brand img {
+ @media screen and (max-width: map-get($grid-breakpoints, md)) {
+ height: var(--ds-header-logo-height-xs);
+ }
+}
+.navbar-toggler .navbar-toggler-icon {
+ background-image: none !important;
+ line-height: 1.5;
+ color: var(--bs-link-color);
+}
diff --git a/src/themes/dspace/app/header/header.component.ts b/src/themes/dspace/app/header/header.component.ts
new file mode 100644
index 0000000000..6da89b47d5
--- /dev/null
+++ b/src/themes/dspace/app/header/header.component.ts
@@ -0,0 +1,13 @@
+import { Component } from '@angular/core';
+import { HeaderComponent as BaseComponent } from '../../../../app/header/header.component';
+
+/**
+ * Represents the header with the logo and simple navigation
+ */
+@Component({
+ selector: 'ds-header',
+ styleUrls: ['header.component.scss'],
+ templateUrl: 'header.component.html',
+})
+export class HeaderComponent extends BaseComponent {
+}
diff --git a/src/themes/dspace/app/navbar/navbar.component.html b/src/themes/dspace/app/navbar/navbar.component.html
new file mode 100644
index 0000000000..50e526b78b
--- /dev/null
+++ b/src/themes/dspace/app/navbar/navbar.component.html
@@ -0,0 +1,24 @@
+
+
diff --git a/src/themes/dspace/app/navbar/navbar.component.scss b/src/themes/dspace/app/navbar/navbar.component.scss
index 463a4269ee..210847c1d9 100644
--- a/src/themes/dspace/app/navbar/navbar.component.scss
+++ b/src/themes/dspace/app/navbar/navbar.component.scss
@@ -1,5 +1,57 @@
-@import 'src/app/navbar/navbar.component.scss';
-
nav.navbar {
+ border-top: 1px var(--ds-header-navbar-border-top-color) solid;
border-bottom: 5px var(--bs-green) solid;
+ align-items: baseline;
+ color: var(--ds-header-icon-color);
+}
+
+/** Mobile menu styling **/
+@media screen and (max-width: map-get($grid-breakpoints, md)) {
+ .navbar {
+ width: 100%;
+ background-color: var(--bs-white);
+ position: absolute;
+ overflow: hidden;
+ height: 0;
+ &.open {
+ height: 100vh; //doesn't matter because wrapper is sticky
+ }
+ }
+}
+
+@media screen and (min-width: map-get($grid-breakpoints, md)) {
+ .reset-padding-md {
+ margin-left: calc(var(--bs-spacer) / -2);
+ margin-right: calc(var(--bs-spacer) / -2);
+ }
+}
+
+/* TODO remove when https://github.com/twbs/bootstrap/issues/24726 is fixed */
+.navbar-expand-md.navbar-container {
+ @media screen and (max-width: map-get($grid-breakpoints, md)) {
+ > .container {
+ padding: 0 var(--bs-spacer);
+ a.navbar-brand {
+ display: none;
+ }
+ .navbar-collapsed {
+ display: none;
+ }
+ }
+ padding: 0;
+ }
+ height: 80px;
+}
+
+a.navbar-brand img {
+ max-height: var(--ds-header-logo-height);
+}
+
+.navbar-nav {
+ ::ng-deep a.nav-link {
+ color: var(--ds-navbar-link-color);
+ }
+ ::ng-deep a.nav-link:hover {
+ color: var(--ds-navbar-link-color-hover);
+ }
}
diff --git a/src/themes/dspace/app/navbar/navbar.component.ts b/src/themes/dspace/app/navbar/navbar.component.ts
index e375011683..321351a933 100644
--- a/src/themes/dspace/app/navbar/navbar.component.ts
+++ b/src/themes/dspace/app/navbar/navbar.component.ts
@@ -8,7 +8,7 @@ import { slideMobileNav } from '../../../../app/shared/animations/slide';
@Component({
selector: 'ds-navbar',
styleUrls: ['./navbar.component.scss'],
- templateUrl: '../../../../app/navbar/navbar.component.html',
+ templateUrl: './navbar.component.html',
animations: [slideMobileNav]
})
export class NavbarComponent extends BaseComponent {
diff --git a/src/themes/dspace/styles/_global-styles.scss b/src/themes/dspace/styles/_global-styles.scss
index 1fb60b64a2..72fac11156 100644
--- a/src/themes/dspace/styles/_global-styles.scss
+++ b/src/themes/dspace/styles/_global-styles.scss
@@ -3,7 +3,7 @@
// imports the base global style
@import '../../../styles/_global-styles.scss';
-.facet-filter,.setting-option {
+.facet-filter, .setting-option {
background-color: var(--bs-light);
border-radius: var(--bs-border-radius);
@@ -21,3 +21,13 @@
font-size: 1.1rem
}
}
+
+header {
+ ds-navbar-section > li,
+ ds-expandable-navbar-section > li {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ height: 100%;
+ }
+}
diff --git a/src/themes/dspace/styles/_theme_css_variable_overrides.scss b/src/themes/dspace/styles/_theme_css_variable_overrides.scss
index 2a61babdb7..e4b4b61f45 100644
--- a/src/themes/dspace/styles/_theme_css_variable_overrides.scss
+++ b/src/themes/dspace/styles/_theme_css_variable_overrides.scss
@@ -1,6 +1,7 @@
// Override or add CSS variables for your theme here
:root {
+ --ds-header-logo-height: 40px;
--ds-banner-text-background: rgba(0, 0, 0, 0.45);
--ds-banner-background-gradient-width: 300px;
--ds-home-news-link-color: #{$green};
diff --git a/src/themes/dspace/theme.module.ts b/src/themes/dspace/theme.module.ts
index ed840c2e25..40138aa490 100644
--- a/src/themes/dspace/theme.module.ts
+++ b/src/themes/dspace/theme.module.ts
@@ -41,9 +41,13 @@ import { CollectionPageModule } from '../../app/+collection-page/collection-page
import { SubmissionModule } from '../../app/submission/submission.module';
import { MyDSpacePageModule } from '../../app/+my-dspace-page/my-dspace-page.module';
import { NavbarComponent } from './app/navbar/navbar.component';
+import { HeaderComponent } from './app/header/header.component';
+import { HeaderNavbarWrapperComponent } from './app/header-nav-wrapper/header-navbar-wrapper.component';
const DECLARATIONS = [
HomeNewsComponent,
+ HeaderComponent,
+ HeaderNavbarWrapperComponent,
NavbarComponent
];