From 0d89ffe0ef3dd5d42c2562234c7ba3c767063c41 Mon Sep 17 00:00:00 2001 From: Deyan Ginev Date: Tue, 7 Jul 2026 12:26:41 -0400 Subject: [PATCH] ARXIVCE-4458: add Simons Foundation International to footer funders Update the shared spinout footer's funder row from two logos to three: Simons Foundation, Simons Foundation International (new), Schmidt Sciences, in that order of support. Each logo is now a link to the funder's own site (new tab, rel="noopener noreferrer") with a visible keyboard-focus outline and a link-blue border on hover. Row height 40px -> 48px so the text-dense three-line SFI lockup stays legible alongside the other two wordmarks. The white card is defined once on .ds-funder-link (an inline-flex wrapper), so it is identical whether the logo is content-sized (desktop) or fixed-width. Below 720px the cards take a uniform 220px width and the logo shrinks to 44px, so the wrapped logos align into a tidy centred column (phones) / even row (tablets) instead of a ragged stack of differently-sized boxes. The new asset lives only here (static/images/funders/simons-foundation-international.png); browse and auth inherit it via base/footer.html + base.static with no per-app edit. shared-chrome.md refreshed to document the three-logo markup and the single base-static consumption approach for vendored consumers. --- arxiv/base/static/css/arxiv-header-footer.css | 38 +++++++++++++++--- .../simons-foundation-international.png | Bin 0 -> 33443 bytes arxiv/base/templates/base/footer.html | 11 ++++- docs/shared-chrome.md | 38 ++++++++++++++---- 4 files changed, 72 insertions(+), 15 deletions(-) create mode 100644 arxiv/base/static/images/funders/simons-foundation-international.png diff --git a/arxiv/base/static/css/arxiv-header-footer.css b/arxiv/base/static/css/arxiv-header-footer.css index 959f00e5..48175761 100644 --- a/arxiv/base/static/css/arxiv-header-footer.css +++ b/arxiv/base/static/css/arxiv-header-footer.css @@ -53,6 +53,10 @@ margin: 0; font-family: var(--arxiv-font-sans); } +/* Neutralise host-page footer-link underline styling (e.g. browse arXiv.css's + `footer a:hover { border-bottom: 1px dotted }`) on all footer links. The funder + logo cards re-assert their own border at a higher specificity (below), so this + reset does not strip their bottom edge. */ .ds-site-footer a, .ds-site-footer a:hover, .ds-site-footer a:active { @@ -125,19 +129,41 @@ justify-content: center; flex-wrap: wrap; } -.ds-funder-logo { - box-sizing: content-box; - display: block; - height: 40px; - width: auto; - flex-shrink: 0; +/* The white card lives on the link wrapper (one place), identical whether the logo is + content-sized (desktop) or fixed-width (mobile, below). Scoped to `.ds-site-footer a` + (specificity 0-2-1) so the full four-side border out-specifies the footer-link + underline reset above and any host-page `footer a` border styling — otherwise those + win on the bottom edge only, leaving a stray dotted/absent bottom border. */ +.ds-site-footer a.ds-funder-link { + display: inline-flex; + align-items: center; + justify-content: center; padding: 4px 8px; border: 1px solid var(--arxiv-pill-border); border-radius: 3px; background: #fff; + transition: border-color 0.15s ease; +} +.ds-site-footer a.ds-funder-link:hover { border-color: var(--arxiv-link-blue); } +.ds-site-footer a.ds-funder-link:focus-visible { + outline: 2px solid var(--arxiv-link-blue); + outline-offset: 2px; +} +.ds-funder-logo { + display: block; + height: 48px; + width: auto; + flex-shrink: 0; } @media (max-width: 720px) { + /* Mobile/tablet: fixed-width cards so the wrapped logos align into a tidy centred + column (phones) / even row (tablets) instead of a ragged stack of different-width + boxes. Card styling is inherited from .ds-funder-link; only the width and logo + height change here. */ .ds-site-footer-funders { width: 100%; margin-top: 8px; } + .ds-site-footer-funders-logos { gap: 10px; } + .ds-site-footer a.ds-funder-link { width: 220px; max-width: 100%; padding: 10px 14px; } + .ds-funder-logo { height: 44px; max-width: 100%; } } @media print { .ds-site-footer { display: none !important; } diff --git a/arxiv/base/static/images/funders/simons-foundation-international.png b/arxiv/base/static/images/funders/simons-foundation-international.png new file mode 100644 index 0000000000000000000000000000000000000000..bcb3d8147c57c876914a599255779e966e218f89 GIT binary patch literal 33443 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 U(yhN+X%HzXs6Q)vY8v?e0N8{R#sB~S literal 0 HcmV?d00001 diff --git a/arxiv/base/templates/base/footer.html b/arxiv/base/templates/base/footer.html index 98858846..08da42ec 100644 --- a/arxiv/base/templates/base/footer.html +++ b/arxiv/base/templates/base/footer.html @@ -33,8 +33,15 @@ diff --git a/docs/shared-chrome.md b/docs/shared-chrome.md index 46c5e221..7947500e 100644 --- a/docs/shared-chrome.md +++ b/docs/shared-chrome.md @@ -66,8 +66,10 @@ Three pieces: institutional mention (IP-matched) follows "member institutions". 2. **Footer nav** — About · Help · Contact · Subscribe · Copyright · Privacy · Accessibility · Operational Status, dot-separated. -3. **Funders column** — "Major funding support from" + Simons + Schmidt wordmark - logos, right-aligned; drops below the main column at narrow widths. +3. **Funders column** — "Major funding support from" + Simons Foundation, Simons + Foundation International, and Schmidt Sciences logos (in that order of support), + each linked to the funder's own site; right-aligned, drops below the main column + at narrow widths. Markup contract: @@ -85,26 +87,48 @@ Markup contract: ``` +**Asset SSOT / single consistent approach.** The funder images live in **only one +place** — arxiv-base `static/images/funders/*.png` — and every consumer references +them through the base-static root, never a local copy: + +- Apps that run the base blueprint (**browse**, **auth**) `{% include "base/footer.html" %}` + and get the logos via `url_for('base.static', …)`. They hold no funder markup and no + funder asset, so a change here (e.g. adding a third funder) reaches them with **zero + per-app edits**. +- Vendored consumers that can't inherit (**search**, **submit**, **docs**, **status**) + copy this markup but point every logo at their configured base-static root + (`config.BASE_STATIC` / `c.config.base_static` / `config.extra.base_static`) — the only + per-repo difference is that root value. Prefer the config root over a hard-coded + `static.arxiv.org/static/base//…` path so a version bump is a one-line change. + Accessibility notes (the behavior contract travels with the pattern): - Real `