diff --git a/services/web/frontend/js/features/project-list/components/project-list-ds-nav.tsx b/services/web/frontend/js/features/project-list/components/project-list-ds-nav.tsx index 20072fbbb3..7a999a8aa5 100644 --- a/services/web/frontend/js/features/project-list/components/project-list-ds-nav.tsx +++ b/services/web/frontend/js/features/project-list/components/project-list-ds-nav.tsx @@ -63,60 +63,62 @@ export function ProjectListDsNav() {
- {error ? : ''} - -
- -
-
- {selectedProjects.length === 0 ? ( +
+ {error ? : ''} + +
+ +
+
+ {selectedProjects.length === 0 ? ( + + ) : ( + + )} +
+
- ) : ( - - )} -
-
- +
-
-
- - - - - -
- -
-
-
- - +
+ + + + + +
+ +
+
+
+ + +
+
+
+ + {tableTopArea} + + +
+
+
-
-
- - {tableTopArea} - - -
-
-
diff --git a/services/web/frontend/stylesheets/bootstrap-5/components/footer.scss b/services/web/frontend/stylesheets/bootstrap-5/components/footer.scss index 20a41f97c8..4c72cd283c 100644 --- a/services/web/frontend/stylesheets/bootstrap-5/components/footer.scss +++ b/services/web/frontend/stylesheets/bootstrap-5/components/footer.scss @@ -1,5 +1,60 @@ @use 'sass:map'; +// Max width of the sidebar +$footer-width-delta: 320px; + +@mixin footer-container-up($bp) { + $size: map.get($grid-breakpoints, $bp); + + @supports (container-type: inline-size) { + @container fatfooter (width >= #{$size}) { + @content; + } + } + + @supports not (container-type: inline-size) { + @at-root { + .project-ds-nav-page & { + @media (min-width: #{$size + $footer-width-delta}) { + @content; + } + } + + :not(.project-ds-nav-page *) & { + @media (min-width: #{$size}) { + @content; + } + } + } + } +} + +@mixin footer-container-down($bp) { + $size: map.get($grid-breakpoints, $bp); + + @supports (container-type: inline-size) { + @container fatfooter (width < #{$size}) { + @content; + } + } + + @supports not (container-type: inline-size) { + @at-root { + .project-ds-nav-page & { + @media (max-width: #{$size + $footer-width-delta}) { + @content; + } + } + + :not(.project-ds-nav-page *) & { + @media (max-width: #{$size}) { + @content; + } + } + } + } +} + footer.site-footer { background-color: var(--bg-light-primary); border-top: 1px solid var(--border-primary-dark); @@ -63,6 +118,8 @@ footer.site-footer { } .fat-footer { + container-name: fatfooter; + container-type: inline-size; background: var(--bg-dark-primary); color: var(--content-secondary-dark); display: flex; @@ -71,7 +128,7 @@ footer.site-footer { .fat-footer-container { margin: var(--spacing-11) auto; - @include media-breakpoint-down(sm) { + @include footer-container-down(sm) { margin: var(--spacing-11) 0; } } @@ -177,7 +234,7 @@ footer.site-footer { white-space: nowrap; } - @include media-breakpoint-down(md) { + @include footer-container-down(md) { .fat-footer-sections { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(4, auto); @@ -214,7 +271,7 @@ footer.site-footer { gap: var(--spacing-09); justify-content: center; - @include media-breakpoint-down(sm) { + @include footer-container-down(sm) { gap: var(--spacing-06); } } @@ -234,7 +291,7 @@ footer.site-footer { } } - @include media-breakpoint-up(md) { + @include footer-container-up(md) { .fat-footer-container { width: (map.get($grid-breakpoints, 'md') - ($spacing-04 * 2)); } @@ -280,7 +337,7 @@ footer.site-footer { } } - @include media-breakpoint-up(lg) { + @include footer-container-up(lg) { .fat-footer-container { width: (map.get($grid-breakpoints, 'lg') - $spacing-07); } @@ -290,7 +347,7 @@ footer.site-footer { } } - @include media-breakpoint-up(xl) { + @include footer-container-up(xl) { .fat-footer-container { width: (map.get($grid-breakpoints, 'xl') - $spacing-09); } @@ -343,7 +400,7 @@ footer.site-footer { .website-redesign-fat-footer, .website-redesign .fat-footer { .fat-footer-container { - @include media-breakpoint-down(sm) { + @include footer-container-down(sm) { margin: var(--spacing-11) 0; } } @@ -381,7 +438,7 @@ footer.site-footer { background-image: url('../../../../public/img/ol-brand/overleaf-black.svg'); } - @include media-breakpoint-down(sm) { + @include footer-container-down(sm) { .fat-footer-sections { grid-template-columns: repeat(1, 1fr); grid-template-rows: repeat(6, auto); diff --git a/services/web/frontend/stylesheets/bootstrap-5/pages/project-list-ds-nav.scss b/services/web/frontend/stylesheets/bootstrap-5/pages/project-list-ds-nav.scss index 59832353de..d7faf7099a 100644 --- a/services/web/frontend/stylesheets/bootstrap-5/pages/project-list-ds-nav.scss +++ b/services/web/frontend/stylesheets/bootstrap-5/pages/project-list-ds-nav.scss @@ -133,17 +133,11 @@ overflow-y: auto; position: relative; background-color: var(--bg-light-secondary); - padding: var(--spacing-08) var(--spacing-06); - @include media-breakpoint-up(md) { - padding: var(--spacing-08); + @media (width >= 768px) { border-top-left-radius: var(--border-radius-large); } } - - .fat-footer-container { - width: 100% !important; - } } .ds-nav-icon-dropdown {