handoff review fixes: deploy log removed from the repo (internal infra notes do not belong in the handover), diagrams moved to the content repo, pages glob non-recursive, dead badge/pill css and stale design-system pointers removed, node engines declared, README states access and node prerequisites, demo-only dev server settings dropped, audit clean

This commit is contained in:
2026-09-06 15:36:06 +02:00
parent bd95bacfc5
commit ab9e4857a4
21 changed files with 51 additions and 692 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
import Base from '../layouts/Base.astro';
---
<Base title="CTAO Science Portal - Page not found" description="This page does not exist">
{/* Document archetype (DESIGN.md): the document IS the page — h1, one line,
{/* Document archetype: the document IS the page — h1, one line,
recovery links, and a real GET search form as the way forward. */}
<div class="container article-layout">
<article class="article">
+6 -6
View File
@@ -6,10 +6,10 @@ import NewsCard from '../components/NewsCard.astro';
const posts = (await getCollection('news', ({ data }) => !data.draft))
.sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf())
.slice(0, 3);
// Services per the Science Portal spec. Tiles carry no status chrome — honesty
// lives at the interaction point (REQUIREMENTS §5): each target page opens with
// its own whisper badge. Planned services stay in the grid but subdued (muted,
// no link) with availability folded into the description text.
// Services per the Science Portal spec (REQUIREMENTS §5). Tiles carry no
// status chrome; the footer's demo note is the single mock disclosure.
// Planned services stay in the grid but subdued (muted, no link) with
// availability folded into the description text.
// Tile icons: hand-drawn stroke glyphs in the header-icon family (.ico —
// currentColor, round caps), aria-hidden. NN/g icon research: icons alone are
// ambiguous, but NEXT TO an always-visible label they differentiate otherwise
@@ -35,7 +35,7 @@ const planned = ['Scheduling', 'Science alerts'];
<Base title="CTAO Science Portal" description="News, observation proposals, data and user services of the Cherenkov Telescope Array Observatory" ambient>
{/* Photographic hero: LST-1 under the La Palma night sky (copied from the
content library to /brand/hero.jpg) beneath the Galaxy scrim — text
contrast computed worst-case in DESIGN.md. Three elements only:
contrast computed worst-case at design time. Three elements only:
headline, brand subtitle, CTA pair (Apple hero restraint). */}
<section class="hero-band">
<div class="band-bg" aria-hidden="true"></div>
@@ -60,7 +60,7 @@ const planned = ['Scheduling', 'Science alerts'];
for the user's top tasks; for scientists that is proposals/data/support,
not reading news. Freshness is still signalled above the fold by the
one-line hero teaser, so the 3-card news section can sit below.
Surface rhythm (DESIGN.md): services on Moon Gray, editorial news on white. */}
Surface rhythm: services on Moon Gray, editorial news on white. */}
<section class="band--moon">
<div class="container page">
<div class="section-head"><h2>Services</h2></div>
+1 -1
View File
@@ -49,7 +49,7 @@ const hrefFor = (n: number) => (n === 1 ? '/news' : `/news/${n}`);
description={first ? 'News and announcements of the CTAO' : `News and announcements of the CTAO, page ${page.currentPage} of ${page.lastPage}`}
>
{/* Section-landing archetype: white head, display Galaxy h1 + standfirst
(the navy band is reserved for / and /login — DESIGN.md). */}
(the navy band is reserved for / and /login). */}
<header class="container page-head">
<h1>News &amp; Announcements</h1>
<p class="standfirst">Science highlights and updates from the observatory and its partners.</p>
+1 -1
View File
@@ -25,7 +25,7 @@ const readMin = readMinOf(post);
animation-timeline is supported; elsewhere it stays an empty div. */}
<div class="read-progress" aria-hidden="true"></div>
{/* TOC pattern (MDN/Stripe/NN-g): sticky right rail ≥1200px, collapsed <details>
under the title below that. CSS shows exactly one of the two (DESIGN.md). */}
under the title below that. CSS shows exactly one of the two. */}
{/* lang sits on the article, not <html>: the chrome (nav/footer) stays
English for screen readers even when the article body is not. */}
<div class="container article-layout">
+1 -1
View File
@@ -4,7 +4,7 @@ import Base from '../layouts/Base.astro';
<Base title="CTAO Science Portal - Search" description="Search CTAO news and announcements">
{/* Utility archetype: ONE surface per page — Moon canvas from the landing
head down (borderless cards/panels pop against it); editorial pages stay
all-white. No mid-page surface seams (DESIGN.md). */}
all-white. No mid-page surface seams. */}
<section class="band--moon">
<header class="container page-head">
<h1>Search</h1>