feat: CTAO brand redesign (official tokens, Inter+Space Grotesk, logo), spec-based nav/footer, EN UI, card covers + featured lead, mock badges, Sveltia logo; remove fake demo articles

This commit is contained in:
ctao
2026-07-24 22:09:13 +02:00
parent 778ab25063
commit 02f30af010
11 changed files with 452 additions and 191 deletions
+6 -3
View File
@@ -3,12 +3,15 @@ import Base from '../layouts/Base.astro';
---
<Base title="CTAO Portal — Dashboard" description="Panel z danymi z innych serwisów">
<section class="container page">
<span class="badge-mock">Makieta — dane przykładowe</span>
<div class="placeholder">
<div>
<div class="big">📡</div>
<h1>Dashboard</h1>
<p>Tu trafią dane z innych serwisów (monitoring sieci teleskopów, statusy, wykresy).<br/>
To część <strong>dynamiczna</strong> — utrzymywana osobno od statycznych treści.</p>
<h1>Dashboard użytkownika</h1>
<p>Wg specyfikacji SUSS: status wniosków, harmonogramy, produkty danych i zgłoszenia
helpdesku użytkownika — zbierane z pozostałych serwisów.<br/>
To część <strong>dynamiczna</strong> (nasz zakres, Release 5), utrzymywana osobno od
statycznych treści. Wszystko na tej stronie jest makietą.</p>
</div>
</div>
</section>
+22 -13
View File
@@ -5,23 +5,32 @@ import Base from '../layouts/Base.astro';
const posts = (await getCollection('news', ({ data }) => !data.draft)).sort(
(a, b) => b.data.date.valueOf() - a.data.date.valueOf(),
);
const fmt = (d) => new Intl.DateTimeFormat('pl-PL', { dateStyle: 'long' }).format(d);
const fmt = (d) => new Intl.DateTimeFormat('en-GB', { dateStyle: 'long' }).format(d);
const iso = (d) => d.toISOString().slice(0, 10);
---
<Base title="CTAO Portal — Newsy" description="Aktualności obserwatorium CTAO">
<section class="container hero">
<div class="eyebrow">Cherenkov Telescope Array Observatory</div>
<h1>Aktualności i ogłoszenia</h1>
<p>Najnowsze informacje z sieci teleskopów CTAO. Treść zarządzana przez edytorów w graficznym CMS-ie, publikowana jako statyczna strona.</p>
<Base title="CTAO Science Portal — News" description="News and announcements of the CTAO">
<section class="hero-band">
<span class="flash" aria-hidden="true"></span>
<div class="container hero">
<div class="eyebrow">Cherenkov Telescope Array Observatory</div>
<h1>News &amp; Announcements</h1>
<p>Exploring the Universe at the Highest Energies</p>
</div>
</section>
<section class="container">
<section class="container" aria-label="News list">
<div class="grid">
{posts.map((post) => (
<article class="card">
<span class="cat">{post.data.category}</span>
<h3><a href={`/news/${post.id}`}>{post.data.title}</a></h3>
<p>{post.data.description}</p>
<div class="meta">{post.data.author} · {fmt(post.data.date)}</div>
{posts.map((post, i) => (
<article class={i === 0 ? 'card card--featured' : 'card'}>
{post.data.cover && (
<img class="cover" src={encodeURI(post.data.cover)} alt="" loading={i === 0 ? 'eager' : 'lazy'} />
)}
<div class="body">
<span class="cat">{post.data.category}</span>
<h3><a href={`/news/${post.id}`}>{post.data.title}</a></h3>
<p class="desc">{post.data.description}</p>
<div class="meta">{post.data.author} · <time datetime={iso(post.data.date)}>{fmt(post.data.date)}</time></div>
</div>
</article>
))}
</div>
+8 -4
View File
@@ -2,13 +2,17 @@
import Base from '../layouts/Base.astro';
---
<Base title="CTAO Portal — Teleskopy" description="Rejestracja i rezerwacja czasu obserwacyjnego">
<section class="container hero">
<div class="eyebrow">Rejestracja</div>
<h1>Zgłoszenie obserwacji</h1>
<p>Mockup formularza rejestracji/rezerwacji czasu na teleskopach CTAO. To makieta — bez logiki wysyłki.</p>
<section class="hero-band">
<div class="container hero">
<div class="eyebrow">Proposal Submission</div>
<h1>Zgłoszenie obserwacji</h1>
<p>Składanie wniosków obserwacyjnych (w tym ToO / MWL)</p>
</div>
</section>
<section class="container page">
<span class="badge-mock">Makieta — bez logiki wysyłki</span>
<span class="badge-ext">Docelowo: Proposal Handling System (team APC) zintegrowany w portalu</span>
<div class="panel" style="max-width:640px">
<div class="form-row">
<label for="f-title">Tytuł propozycji</label>