Restore dashboard footer; show navbar logo over title; enlarge login logo
Build and Deploy Verso / deploy (push) Successful in 9m46s

Three follow-ups after the visual-identity deploy:

- Footer: restore the React <Footer> on the projects dashboard (both
  ProjectListDsNav and the legacy DefaultNavbarAndFooter). Removing it earlier
  was an overcorrection — it now renders the Verso/AGPL thin footer rather than
  the old "Powered by Overleaf" line. Other pages already kept the pug footer.

- Navbar brand: HeaderLogoOrTitle previously hid the logo whenever a nav title
  was set, so on the dashboard only the "Verso" instance-name text showed and
  the wired-up Verso logo never appeared. Make a configured logo (custom logo
  or the Verso brand logo) take precedence over the title text; fall back to the
  title only when no logo is provided (unchanged for other navbars).

- Login: enlarge the hero wordmark (max-width 260px -> 380px, full column width).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
claude
2026-06-02 20:41:18 +00:00
parent 38edd5269c
commit 7a50f42e02
4 changed files with 15 additions and 5 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ block content
img.verso-login-logo(
src=buildImgPath('ol-brand/verso-logo.svg')
alt='Verso'
style='width:260px;max-width:100%;height:auto'
style='width:100%;max-width:380px;height:auto'
)
.page-header
if login_support_title
@@ -16,6 +16,7 @@ import { TableContainer } from '@/shared/components/table'
import DashApiError from '@/features/project-list/components/dash-api-error'
import getMeta from '@/utils/meta'
import DefaultNavbar from '@/shared/components/navbar/default-navbar'
import Footer from '@/shared/components/footer/footer'
import SidebarDsNav from '@/features/project-list/components/sidebar/sidebar-ds-nav'
import SystemMessages from '@/shared/components/system-messages'
import overleafLogo from '@/shared/svgs/verso-logo.svg'
@@ -26,6 +27,7 @@ import { isSplitTestEnabled } from '@/utils/splitTestUtils'
export function ProjectListDsNav() {
const navbarProps = getMeta('ol-navbar')
const footerProps = getMeta('ol-footer')
const { t } = useTranslation()
const {
error,
@@ -164,6 +166,7 @@ export function ProjectListDsNav() {
</div>
</main>
</div>
<Footer {...footerProps} />
</div>
<CookieBanner />
</div>
@@ -14,6 +14,7 @@ import withErrorBoundary from '../../../infrastructure/error-boundary'
import { GenericErrorBoundaryFallback } from '@/shared/components/generic-error-boundary-fallback'
import getMeta from '@/utils/meta'
import DefaultNavbar from '@/shared/components/navbar/default-navbar'
import Footer from '@/shared/components/footer/footer'
import WelcomePageContent from '@/features/project-list/components/welcome-page-content'
import { ProjectListDsNav } from '@/features/project-list/components/project-list-ds-nav'
import { DsNavStyleProvider } from '@/features/project-list/components/use-is-ds-nav'
@@ -50,6 +51,7 @@ export function ProjectListRootInner() {
function DefaultNavbarAndFooter({ children }: { children: ReactNode }) {
const navbarProps = getMeta('ol-navbar')
const footerProps = getMeta('ol-footer')
return (
<>
@@ -60,6 +62,7 @@ function DefaultNavbarAndFooter({ children }: { children: ReactNode }) {
>
{children}
</main>
<Footer {...footerProps} />
</>
)
}
@@ -9,19 +9,23 @@ export default function HeaderLogoOrTitle({
overleafLogo?: string
}) {
const { appName } = getMeta('ol-ExposedSettings')
// A configured logo (custom logo, or the Verso brand logo passed in by a
// page) takes precedence over the text title: the logo already carries the
// brand name, so we don't render the title alongside it.
const logoUrl = customLogo ?? overleafLogo
return (
<a href="/" aria-label={appName} className="navbar-brand">
{(customLogo || !title) && (
{logoUrl ? (
<div
className="navbar-logo"
style={logoUrl ? { backgroundImage: `url("${logoUrl}")` } : {}}
style={{ backgroundImage: `url("${logoUrl}")` }}
/>
)}
{title && (
) : title ? (
<div className="navbar-title">
<span>{title}</span>
</div>
) : (
<div className="navbar-logo" />
)}
</a>
)