fix: final-review findings — own-lead descriptions, PHS integration landing, planned tiles, 404, sitemap math, cleanups

This commit is contained in:
ctao
2026-07-25 13:13:27 +02:00
parent ffe54bc766
commit 3362b214c3
36 changed files with 107 additions and 75 deletions
+7 -3
View File
@@ -27,6 +27,8 @@ label carries the meaning, not the chrome.
|---|---|---| |---|---|---|
| h1, h2 | Space Grotesk (`--font-display`) | Headlines ONLY (brand D.3.2), weight **500** (D.3.4 regular/medium), letter-spacing −0.025em, line-height 1.1 | | h1, h2 | Space Grotesk (`--font-display`) | Headlines ONLY (brand D.3.2), weight **500** (D.3.4 regular/medium), letter-spacing −0.025em, line-height 1.1 |
| Everything else | Inter (`--font-body`) | Includes h3+ (weight 600), cards, UI | | Everything else | Inter (`--font-body`) | Includes h3+ (weight 600), cards, UI |
| Exception: `.card--featured h3` | Space Grotesk | The news-lead card IS a communicative headline (D.3.2 role, not outline level) — weight 500, `--fs-xl` |
| Exception: `.panel-title` (h2) | Inter | Panel titles are UI labels, not headlines — weight 600, `--fs-l`. These are the ONLY two exceptions |
Type scale — the ONLY font sizes in the codebase (no ad-hoc rem values): Type scale — the ONLY font sizes in the codebase (no ad-hoc rem values):
@@ -247,9 +249,10 @@ editor" utility link in the footer; /admin keeps working as the direct URL.
| Pagination | Newer/Older + windowed numbers, 44px targets, aria-current, Moon hover fill. Page 1 holds 25 items (featured lead + 24 = even 3-col rows), later pages 24 — custom slicing, paginate() can't vary size | NN/g pagination | | Pagination | Newer/Older + windowed numbers, 44px targets, aria-current, Moon hover fill. Page 1 holds 25 items (featured lead + 24 = even 3-col rows), later pages 24 — custom slicing, paginate() can't vary size | NN/g pagination |
| Article | Back "← All news"; h1 → standfirst → muted meta line → borderless breakout cover → inline TOC → prose → post-nav | Guardian/BBC anatomy | | Article | Back "← All news"; h1 → standfirst → muted meta line → borderless breakout cover → inline TOC → prose → post-nav | Guardian/BBC anatomy |
| Forms | Visible labels above fields; placeholders are examples only; buttons start with a verb | GOV.UK forms, NN/g | | Forms | Visible labels above fields; placeholders are examples only; buttons start with a verb | GOV.UK forms, NN/g |
| Proposals | Integration landing, NOT a submission form — PHS is APC's product, the portal only integrates it: intro + bullets of the portal's contributions (menu entry + AAI single sign-on hand-off, Dashboard status feedback, news notifications) + disabled primary CTA ("… — integration planned", real `disabled` semantics, Moon fill); whisper badges stay | SPEC §3.3.3 |
| Login | One line + Cherenkov primary CTA + one small-print line; whisper badge top-right of the card (in flow ≤480px); no reassurance prose | auth brevity | | Login | One line + Cherenkov primary CTA + one small-print line; whisper badge top-right of the card (in flow ≤480px); no reassurance prose | auth brevity |
| Footer | Identity line → Contact · Search · Disclaimer · Privacy · Site settings · Content editor → © line | NN/g footers, SPEC §3.3.1 | | Footer | Identity line → Contact · Search · RSS · Disclaimer · Privacy · Site settings · Content editor → © line | NN/g footers, SPEC §3.3.1 |
| Search results | Links lay out as flowing text (mark-safe); plain muted date; "Press Enter for all results" hint | — | | Search results | Links lay out as flowing text (mark-safe); plain muted date; "Press Enter for all results" as a real list row (aria-hidden like group labels — the status line announces) | — |
## Page composition (archetypes) ## Page composition (archetypes)
@@ -276,7 +279,8 @@ inventing a section order. The navy band is reserved for `/` and `/login`.
## Do not ## Do not
- No new hues, tints, or grays — derive via `color-mix` from brand tokens only. - No new hues, tints, or grays — derive via `color-mix` from brand tokens only.
- No Space Grotesk outside h1/h2; headline weight stays 500 (brand D.3.4). - No Space Grotesk outside h1/h2 (sole exception: `.card--featured h3` — see
Typography); headline weight stays 500 (brand D.3.4).
- No font sizes outside the type-scale tokens; no ad-hoc spacing/shadow/radius. - No font sizes outside the type-scale tokens; no ad-hoc spacing/shadow/radius.
- No animation/transition outside the `no-preference` block; no JS motion; - No animation/transition outside the `no-preference` block; no JS motion;
no transition durations/easings outside `--dur`/`--ease`. no transition durations/easings outside `--dur`/`--ease`.
-1
View File
@@ -11,7 +11,6 @@ export default defineConfig({
// cost of 'viewport' on a 24-card grid; auto-falls back to 'tap' on // cost of 'viewport' on a 24-card grid; auto-falls back to 'tap' on
// data-saver / slow connections (Astro handles that). // data-saver / slow connections (Astro handles that).
prefetch: { prefetchAll: true }, prefetch: { prefetchAll: true },
redirects: { '/telescopes': '/proposals' },
server: { port: 4321, host: true }, server: { port: 4321, host: true },
vite: { vite: {
server: { server: {
+13
View File
@@ -54,6 +54,17 @@
li.append(a); li.append(a);
return li; return li;
} }
// Dropdowns close with a "Press Enter for all results" row — a real list
// element (was a CSS ::after), aria-hidden like the group labels so
// screen-reader exposure stays consistent (the status line announces).
function hint() {
if (!opts.dismiss || !list.firstChild) return;
const li = document.createElement('li');
li.className = 'suggest-hint';
li.setAttribute('aria-hidden', 'true');
li.textContent = 'Press Enter for all results';
list.append(li);
}
// Focused-empty state: up to 4 recent queries, topped up to 5 rows with // Focused-empty state: up to 4 recent queries, topped up to 5 rows with
// the newest articles from the same index. // the newest articles from the same index.
async function idle() { async function idle() {
@@ -74,6 +85,7 @@
li.append(small); li.append(small);
list.append(li); list.append(li);
} }
hint();
status.textContent = opts.hint || (r.length ? 'Showing recent searches and latest news' : 'Showing latest news'); status.textContent = opts.hint || (r.length ? 'Showing recent searches and latest news' : 'Showing latest news');
} }
async function run() { async function run() {
@@ -95,6 +107,7 @@
li.append(small); li.append(small);
list.append(li); list.append(li);
} }
hint();
} }
input.addEventListener('input', () => { clearTimeout(timer); timer = setTimeout(run, 150); }); input.addEventListener('input', () => { clearTimeout(timer); timer = setTimeout(run, 150); });
input.addEventListener('focus', () => { if (input.value.trim().length < 2) idle(); }); input.addEventListener('focus', () => { if (input.value.trim().length < 2) idle(); });
Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

@@ -1,6 +1,6 @@
--- ---
title: "15th CTAO Council Meeting Report from the Managing Director" title: "15th CTAO Council Meeting Report from the Managing Director"
description: "On 19 December 2018, the Cherenkov Telescope Array Observatory (CTAO) and the European Southern Observatory (ESO) will sign the final agreements needed for CTA’s southern hemisphere array to be hosted near ESO’s Paranal Observatory in…" description: "The 15th meeting of the CTAO Council was held 13-14 November in La Palma, shortly after the LST telescope prototype was inaugurated on the Observatorio del Roque de los Muchachos, the northern hemisphere site of the CTA Observatory."
date: 2018-12-18 date: 2018-12-18
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "Chile Site Instruments Continue to Multiply" title: "Chile Site Instruments Continue to Multiply"
description: "On 13 June 2016, the governing body of the Cherenkov Telescope Array Observatory gGmbH (CTAO gGmbH), the CTA Council, selected Bologna as the host site of the CTA Headquarters and Berlin – Zeuthen for the Science Data Management Centre…" description: "The number of site characterization instruments on the Armazones 2K site in Chile has grown significantly over the past few months as the start of construction draws closer."
date: 2016-03-26 date: 2016-03-26
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "CTA Prototype Telescope Achieves First Light" title: "CTA Prototype Telescope Achieves First Light"
description: "On 13 June 2016, the governing body of the Cherenkov Telescope Array Observatory gGmbH (CTAO gGmbH), the CTA Council, selected Bologna as the host site of the CTA Headquarters and Berlin – Zeuthen for the Science Data Management Centre…" description: "On 26 November 2015, a prototype telescope proposed for the Cherenkov Telescope Array, the Gamma-ray Cherenkov Telescope (GCT), recorded CTA’s first ever Cherenkov light while undergoing testing at l’Observatoire de Paris in Meudon, France."
date: 2015-11-26 date: 2015-11-26
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "CTA Telescope Prototype, the Gamma-Ray Cherenkov Telescope, Inaugurated on 1 December" title: "CTA Telescope Prototype, the Gamma-Ray Cherenkov Telescope, Inaugurated on 1 December"
description: "On 13 June 2016, the governing body of the Cherenkov Telescope Array Observatory gGmbH (CTAO gGmbH), the CTA Council, selected Bologna as the host site of the CTA Headquarters and Berlin – Zeuthen for the Science Data Management Centre…" description: "On 1 December 2015, l’Observatoire de Paris hosted the inauguration of the Gamma-ray Cherenkov Telescope (GCT) prototype, which will detect very high-energy gamma rays for the world’s largest gamma ray observatory, the Cherenkov Telescope Array (CTA)."
date: 2015-12-01 date: 2015-12-01
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "CTAO Science Data Management Centre Inauguration on 14 October 2024, Zeuthen (Germany)" title: "CTAO Science Data Management Centre Inauguration on 14 October 2024, Zeuthen (Germany)"
description: "On September 23, the CTAO ACADA Collaboration achieved yet another milestone when the CTAO Central Organisation officially approved and closed out the Critical Design Review (CDR) of the Array Control and Data Acquisition (ACADA) system.…" description: "On 14 October 2024, more than 250 guests from around the world will gather in Zeuthen, Germany, to celebrate the inauguration of the CTAO Science Data Management Centre (SDMC) building, one of the Observatory’s four core facilities."
date: 2024-10-08 date: 2024-10-08
category: news category: news
author: CTAO author: CTAO
+1 -1
View File
@@ -1,6 +1,6 @@
--- ---
title: "New Hub for High-Energy Astrophysics – CTAO Science Data Management Centre Opens at DESY in Zeuthen" title: "New Hub for High-Energy Astrophysics – CTAO Science Data Management Centre Opens at DESY in Zeuthen"
description: "On September 23, the CTAO ACADA Collaboration achieved yet another milestone when the CTAO Central Organisation officially approved and closed out the Critical Design Review (CDR) of the Array Control and Data Acquisition (ACADA) system.…" description: "On October 14, the CTAO, along with hosting partners and shareholders Deutsches Elektronen-Synchrotron DESY, celebrated the official inauguration of the Science Data Management Centre (SDMC) on the DESY campus in Zeuthen."
date: 2024-10-14 date: 2024-10-14
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "DESY Hosts Thai Royalty at DESY-NARIT Cooperation Agreement Signing" title: "DESY Hosts Thai Royalty at DESY-NARIT Cooperation Agreement Signing"
description: "On 26 November 2015, a prototype telescope proposed for the Cherenkov Telescope Array, the Gamma-ray Cherenkov Telescope (GCT), recorded CTA’s first ever Cherenkov light while undergoing testing at l’Observatoire de Paris in Meudon,…" description: "On 18 November 2015, Her Royal Highness Princess Maha Chakri Sirindhorn of Thailand attended the signature ceremony of the DESY-NARIT Cooperation Agreement on Astroparticle Physics at DESY Hamburg."
date: 2015-11-18 date: 2015-11-18
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "ESO Becomes Shareholder of Cherenkov Telescope Array Observatory" title: "ESO Becomes Shareholder of Cherenkov Telescope Array Observatory"
description: "Effective 1 March 2019, Stefan Schlenstedt will join the CTA Observatory (CTAO) as its Computing Coordinator. As a member of the CTA Project Office and part of the construction project, he will play a key role in coordinating software…" description: "On 7 March 2019, ESO officially became a shareholder of the Cherenkov Telescope Array Observatory gGmbH (CTAO). The formal steps were concluded during the meeting of the CTA Council on 7–8 March at ESO’s headquarters in Garching bei München, Germany."
date: 2019-03-07 date: 2019-03-07
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "La Palma Consortium Meeting Wrap-up" title: "La Palma Consortium Meeting Wrap-up"
description: "During the week of 24 October 2016, nearly 250 CTA Consortium members from 25 of its 32 member countries from around the world came together in Bologna, Italy to discuss the science and construction of CTA." description: "During the week of 6 November, 230 CTA Consortium members gathered on the beautiful island of La Palma (Spain) for its bi-annual, in-person meeting."
date: 2017-11-30 date: 2017-11-30
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "Update from the Managing Director: Turning the Page" title: "Update from the Managing Director: Turning the Page"
description: "While the summer is traditionally characterized as a period of slower rhythms and some relaxation, the CTAO management took advantage of this lull in activity to continue the development of the concepts and documents that will drive a…" description: "The 2019-2020 biennium is without a doubt a crucial period for the CTA project: the final legal framework (the fabled ERIC) is expected to be in place this year thanks to the official commitment of the members."
date: 2020-03-20 date: 2020-03-20
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "Meet the CTA-North Site Manager, Paolo Calisse" title: "Meet the CTA-North Site Manager, Paolo Calisse"
description: "On 1 July 2019, Volker Heinz joined the CTAO as the CTA-South Site Manager. As a member of the CTA construction project, and later CTA operations, based in Chile, Volker has a key role in building up the CTA-South site team and leading and…" description: "Paolo Calisse joined the CTAO in January 2019 as the CTA-North Site Manager, after a career participating in leading-edge projects for astronomy and atmospheric science in Antarctica, the Atacama Desert and other remote sites all over the world."
date: 2019-01-30 date: 2019-01-30
category: news category: news
author: CTAO author: CTAO
@@ -10,4 +10,4 @@ draft: false
We are deeply saddened to hear of the untimely death of Professor Nicolò D’Amico, President of the Istituto Nazionale di Astrofisica (INAF). Professor D’Amico has left behind a profound legacy in the fields of astronomy and astrophysics. It was his interest in high-energy astrophysics that led to his strong support of the Italian participation in CTA, pushing to establish the future headquarters of the CTA Observatory ERIC at the new INAF building in Bologna. We are grateful for his contributions and will miss his support and leadership. Our sincerest condolences to his family, friends and colleagues. We are deeply saddened to hear of the untimely death of Professor Nicolò D’Amico, President of the Istituto Nazionale di Astrofisica (INAF). Professor D’Amico has left behind a profound legacy in the fields of astronomy and astrophysics. It was his interest in high-energy astrophysics that led to his strong support of the Italian participation in CTA, pushing to establish the future headquarters of the CTA Observatory ERIC at the new INAF building in Bologna. We are grateful for his contributions and will miss his support and leadership. Our sincerest condolences to his family, friends and colleagues.
[Read the INAF dedication.](https://www.media.inaf.it/2020/09/16/ricordo-nichi/?fbclid=IwAR1DJyvSpdkTk3L7VT58JbrdXZV3stOqZXjfWnJShVt-PMndHMqxyx7oIPg) [Read the INAF dedication.](https://www.media.inaf.it/2020/09/16/ricordo-nichi/)
@@ -1,6 +1,6 @@
--- ---
title: "Microquasars: The “Elusive” Gamma-Ray Emitters" title: "Microquasars: The “Elusive” Gamma-Ray Emitters"
description: "Understanding the origin of cosmic rays using direct measurements is an impossible task due to the presence of interstellar magnetic fields that deviate the path of these charged particles before they reach Earth. Neutral messengers…" description: "Microquasars are Galactic binary systems composed of a star and a compact object (a black hole or a neutron star) that eats up matter from its companion, giving rise to relativistic jets, i.e. beams of particles moving almost at the speed of light."
date: 2021-01-08 date: 2021-01-08
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "Medium-Sized Telescope Prototype Records First Cherenkov Light with the FlashCam Camera" title: "Medium-Sized Telescope Prototype Records First Cherenkov Light with the FlashCam Camera"
description: "On Thursday, 31 August, 2017, a prototype telescope proposed for the Cherenkov Telescope Array (CTA), the SST-1M, recorded its first events while undergoing testing at the Institute of Nuclear Physics Polish Academy of Sciences (IFJ-PAN)…" description: "In September 2018, the Medium-Sized Telescope structure (MST-STR) and FlashCam teams started a joint test campaign in Berlin-Adlershof that resulted in the capture of the MST prototype’s first Cherenkov light."
date: 2017-10-27 date: 2017-10-27
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "Paranal and La Palma Sites Chosen for Final Negotiations to Host World’s Largest Array of Gamma-Ray Telescopes" title: "Paranal and La Palma Sites Chosen for Final Negotiations to Host World’s Largest Array of Gamma-Ray Telescopes"
description: "On 13 June 2016, the governing body of the Cherenkov Telescope Array Observatory gGmbH (CTAO gGmbH), the CTA Council, selected Bologna as the host site of the CTA Headquarters and Berlin – Zeuthen for the Science Data Management Centre…" description: "On 15 and 16 July 2015, the CTA Resource Board decided to enter into detailed contract negotiations for hosting CTA on the ESO Paranal grounds in Chile and at the Roque de los Muchachos Observatory in La Palma, Spain."
date: 2015-07-16 date: 2015-07-16
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "Final Preparations Begin for CTA-North Site Construction" title: "Final Preparations Begin for CTA-North Site Construction"
description: "The latest news from the project office…" description: "The first phase of the CTA-North site’s infrastructure design commenced in August 2019 as the Instituto de Astrofisica de Canarias (IAC) initiated a contract for the design and planning of the remaining LST foundations, one MST and the site’s auxiliary instrumentation."
date: 2019-10-08 date: 2019-10-08
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "Q&A with Off-Site ICT Infrastructure Lead Nadine Neyroud" title: "Q&A with Off-Site ICT Infrastructure Lead Nadine Neyroud"
description: "Meet George Pruteanu, the CTA Observatory’s (CTAO) RAM (reliability, availability, maintainability) Engineer. We asked him a few questions to learn a bit about him and the work he is doing to ensure the long-term performance of CTA." description: "We asked the CTA Observatory (CTAO) Computing team’s Information and Computing Technology (ICT) Infrastructure lead, Nadine Neyroud, about the work she is doing to prepare the CTAO’s off-site data management and storage system."
date: 2021-05-21 date: 2021-05-21
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "Dr. Roberta Zanin Joins the CTAO as its New Project Scientist" title: "Dr. Roberta Zanin Joins the CTAO as its New Project Scientist"
description: "Effective 1 March 2019, Stefan Schlenstedt will join the CTA Observatory (CTAO) as its Computing Coordinator. As a member of the CTA Project Office and part of the construction project, he will play a key role in coordinating software…" description: "On 1 June 2019, Dr. Roberta Zanin joined the CTAO as the new CTA Project Scientist. She follows Prof. Jim Hinton, who, as CTA’s first Project Scientist, filled this position since 2012."
date: 2019-06-01 date: 2019-06-01
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "Site Negotiations for Cherenkov Telescope Array Started" title: "Site Negotiations for Cherenkov Telescope Array Started"
description: "On 13 June 2016, the governing body of the Cherenkov Telescope Array Observatory gGmbH (CTAO gGmbH), the CTA Council, selected Bologna as the host site of the CTA Headquarters and Berlin – Zeuthen for the Science Data Management Centre…" description: "On 10 April 2014, the 12 country delegates mandated by their governments to decide about the start of site negotiations for CTA met in Munich, taking note of the report of the international Site Selection Committee."
date: 2014-04-10 date: 2014-04-10
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "Start of Negotiations for CTA North" title: "Start of Negotiations for CTA North"
description: "On 13 June 2016, the governing body of the Cherenkov Telescope Array Observatory gGmbH (CTAO gGmbH), the CTA Council, selected Bologna as the host site of the CTA Headquarters and Berlin – Zeuthen for the Science Data Management Centre…" description: "On 26 March 2015, the CTA Resource Board met in Heidelberg to determine with whom to begin site negotiations for the location of the telescope array in the northern hemisphere, considering five candidate sites in the USA, Mexico and Spain’s Canary Islands."
date: 2015-03-26 date: 2015-03-26
category: news category: news
author: CTAO author: CTAO
@@ -21,7 +21,7 @@ Tras el período de luna llena, durante el cual los telescopios Cherenkov no ope
Estamos en contacto con el ORM, el Instituto de Astrofísica de Canarias (IAC) y las autoridades locales para seguir monitoreando la situación de este evento que, lamentablemente, ya ha causado graves daños materiales a los residentes de la isla. Más de 6000 personas han sido evacuadas, muchas de las cuales han perdido sus hogares y pertenencias. Por ello, en nombre de CTAO y del LST-1, queremos animar a los miembros de CTA y a todas aquellas personas que quieran ayudar a los ciudadanos de La Palma en estos momentos tan difíciles a hacerlo a través de las plataformas facilitadas por las autoridades públicas locales. Más información sobre cómo ayudar a las personas afectadas por la erupción volcánica: Estamos en contacto con el ORM, el Instituto de Astrofísica de Canarias (IAC) y las autoridades locales para seguir monitoreando la situación de este evento que, lamentablemente, ya ha causado graves daños materiales a los residentes de la isla. Más de 6000 personas han sido evacuadas, muchas de las cuales han perdido sus hogares y pertenencias. Por ello, en nombre de CTAO y del LST-1, queremos animar a los miembros de CTA y a todas aquellas personas que quieran ayudar a los ciudadanos de La Palma en estos momentos tan difíciles a hacerlo a través de las plataformas facilitadas por las autoridades públicas locales. Más información sobre cómo ayudar a las personas afectadas por la erupción volcánica:
- [Cabildo de La Palma](https://www.cabildodelapalma.es/es/como-ayudar-afectados-volcan-de-la-palma) - [Cabildo de La Palma](https://www.cabildodelapalma.es/es/como-ayudar-afectados-volcan-de-la-palma)
- [Ayuntamiento El Paso](https://elpaso.es/donaciones-damnificados-por-la-erupcion-volcanica/?fbclid=IwAR0W0kFd-7X-MIj1Zcvi4X_T82sP5mgERarlfqu0IWehBjut68Yu-d1vti4#iLightbox[gallery144457]/0) - [Ayuntamiento El Paso](https://elpaso.es/donaciones-damnificados-por-la-erupcion-volcanica/)
- [Ayuntamiento Los Llanos de Aridane](https://www.facebook.com/aytoAridane/posts/4728570020500334) - [Ayuntamiento Los Llanos de Aridane](https://www.facebook.com/aytoAridane/posts/4728570020500334)
## English version ## English version
@@ -37,5 +37,5 @@ After the moon break during which the Cherenkov telescopes do not operate, the o
We are in touch with the ORM, the Instituto de Astrofísica de Canarias (IAC) and local authorities to keep monitoring the situation of this event that, unfortunately, has already caused serious material damages to the residents at the southern region of the island. More than 6,000 people have been evacuated, many of whom have lost their homes and belongings. Therefore, on behalf of CTAO and LST-1, we would like to encourage CTA members and everyone that would like to help La Palma residents in these difficult times to support with donations through the platforms open by the public administrations. More information to help people affected by the volcanic eruption: We are in touch with the ORM, the Instituto de Astrofísica de Canarias (IAC) and local authorities to keep monitoring the situation of this event that, unfortunately, has already caused serious material damages to the residents at the southern region of the island. More than 6,000 people have been evacuated, many of whom have lost their homes and belongings. Therefore, on behalf of CTAO and LST-1, we would like to encourage CTA members and everyone that would like to help La Palma residents in these difficult times to support with donations through the platforms open by the public administrations. More information to help people affected by the volcanic eruption:
- [Cabildo de La Palma](https://www.cabildodelapalma.es/es/como-ayudar-afectados-volcan-de-la-palma) - [Cabildo de La Palma](https://www.cabildodelapalma.es/es/como-ayudar-afectados-volcan-de-la-palma)
- [Ayuntamiento El Paso](https://elpaso.es/donaciones-damnificados-por-la-erupcion-volcanica/?fbclid=IwAR0W0kFd-7X-MIj1Zcvi4X_T82sP5mgERarlfqu0IWehBjut68Yu-d1vti4#iLightbox[gallery144457]/0) - [Ayuntamiento El Paso](https://elpaso.es/donaciones-damnificados-por-la-erupcion-volcanica/)
- [Ayuntamiento Los Llanos de Aridane](https://www.facebook.com/aytoAridane/posts/4728570020500334) - [Ayuntamiento Los Llanos de Aridane](https://www.facebook.com/aytoAridane/posts/4728570020500334)
@@ -1,6 +1,6 @@
--- ---
title: "Stephan Haid Joins the CTAO as Director of Administration" title: "Stephan Haid Joins the CTAO as Director of Administration"
description: "Effective 1 March 2019, Stefan Schlenstedt will join the CTA Observatory (CTAO) as its Computing Coordinator. As a member of the CTA Project Office and part of the construction project, he will play a key role in coordinating software…" description: "On 1 March, Stephan Haid joined the CTAO as its Director of Administration, responsible for a broad range of administrative activities such as Human Resources, Finances, Procurement or Legal Services."
date: 2020-03-01 date: 2020-03-01
category: news category: news
author: CTAO author: CTAO
@@ -1,6 +1,6 @@
--- ---
title: "Jacco Vink awarded with a NWO Grant allocated for the production of SST cameras" title: "Jacco Vink awarded with a NWO Grant allocated for the production of SST cameras"
description: "On the evening of the 25 March, the Barcelona Raman LIDAR Pathfinder installed on the CTA-North site at the Roque de los Muchachos Observatory on La Palma (Spain) achieved first light." description: "On 21 May 2021, CTA Consortium member Jacco Vink (University of Amsterdam) was awarded a 1.5 million euro grant from the Netherlands Organisation for Scientific Research (NWO), allocated for the production of Small-Sized Telescope cameras for the CTA-South array in Chile."
date: 2021-05-28 date: 2021-05-28
category: news category: news
author: CTAO author: CTAO
+1
View File
@@ -157,6 +157,7 @@ const links = [
<nav class="foot-links" aria-label="Footer"> <nav class="foot-links" aria-label="Footer">
<a href="/pages/contact">Contact</a> <a href="/pages/contact">Contact</a>
<a href="/search">Search</a> <a href="/search">Search</a>
<a href="/rss.xml">RSS</a>
<a href="/pages/disclaimer">Disclaimer</a> <a href="/pages/disclaimer">Disclaimer</a>
<a href="/pages/privacy">Privacy</a> <a href="/pages/privacy">Privacy</a>
<a>Site settings</a> <a>Site settings</a>
+20
View File
@@ -0,0 +1,20 @@
---
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,
recovery links, and a real GET search form as the way forward. */}
<article class="container article">
<h1>Page not found</h1>
<div class="prose">
<p>The address may be mistyped or the page may have moved — go to the
<a href="/">home page</a> or browse <a href="/news">all news</a>.</p>
</div>
<form class="search-form" role="search" action="/search" method="get">
<label class="sr-only" for="nf-q">Search news</label>
<svg class="ico search-ico" aria-hidden="true" viewBox="0 0 24 24"><circle cx="11" cy="11" r="7" /><path d="m20 20-4.3-4.3" /></svg>
<input id="nf-q" name="q" type="search" placeholder="Search news…" autocomplete="off" />
<button class="btn" type="submit">Search</button>
</form>
</article>
</Base>
+1 -1
View File
@@ -14,7 +14,7 @@ const products = [
]; ];
const fmt = (iso) => new Intl.DateTimeFormat('en-GB', { dateStyle: 'medium' }).format(new Date(iso)); const fmt = (iso) => new Intl.DateTimeFormat('en-GB', { dateStyle: 'medium' }).format(new Date(iso));
const tickets = [ const tickets = [
{ id: '#4821', subject: 'Proposal form: co-I affiliation not saved', status: 'Answered', kind: 'ok' }, { id: '#4821', subject: 'Question about co-investigator roles', status: 'Answered', kind: 'ok' },
{ id: '#4711', subject: 'Data download quota question', status: 'Open', kind: 'review' }, { id: '#4711', subject: 'Data download quota question', status: 'Open', kind: 'review' },
]; ];
--- ---
+4
View File
@@ -31,6 +31,10 @@ const services = [
icon: '<rect x="3" y="4.5" width="18" height="15" rx="2"/><path d="m7 9.5 3 2.5-3 2.5M12.5 15H17"/>' }, icon: '<rect x="3" y="4.5" width="18" height="15" rx="2"/><path d="m7 9.5 3 2.5-3 2.5M12.5 15H17"/>' },
{ title: 'Documentation', planned: true, desc: 'User guides and technical documentation — planned.', { title: 'Documentation', planned: true, desc: 'User guides and technical documentation — planned.',
icon: '<path d="M12 6.7C10.6 5.2 8.6 4.5 5.7 4.5H4v13.6h1.7c2.9 0 4.9.7 6.3 2.2 1.4-1.5 3.4-2.2 6.3-2.2H20V4.5h-1.7c-2.9 0-4.9.7-6.3 2.2z"/><path d="M12 6.7v13.6"/>' }, icon: '<path d="M12 6.7C10.6 5.2 8.6 4.5 5.7 4.5H4v13.6h1.7c2.9 0 4.9.7 6.3 2.2 1.4-1.5 3.4-2.2 6.3-2.2H20V4.5h-1.7c-2.9 0-4.9.7-6.3 2.2z"/><path d="M12 6.7v13.6"/>' },
{ title: 'Scheduling', planned: true, desc: 'Public mid- and long-term scheduling information — planned.',
icon: '<rect x="3.5" y="5" width="17" height="15" rx="2"/><path d="M3.5 9.5h17M8 3v4M16 3v4"/>' },
{ title: 'Science alerts', planned: true, desc: 'Public science alert information — planned.',
icon: '<path d="M12 4.5a5.5 5.5 0 0 0-5.5 5.5c0 3.6-1.2 5-1.9 5.7h14.8c-.7-.7-1.9-2.1-1.9-5.7A5.5 5.5 0 0 0 12 4.5z"/><path d="M10 19a2 2 0 0 0 4 0"/>' },
]; ];
--- ---
<Base title="CTAO Science Portal" description="News, observation proposals, data and user services of the Cherenkov Telescope Array Observatory" ambient> <Base title="CTAO Science Portal" description="News, observation proposals, data and user services of the Cherenkov Telescope Array Observatory" ambient>
+16 -32
View File
@@ -1,46 +1,30 @@
--- ---
import Base from '../layouts/Base.astro'; import Base from '../layouts/Base.astro';
--- ---
<Base title="CTAO Science Portal — Proposals" description="Observation proposal submission (mock)"> <Base title="CTAO Science Portal — Proposals" description="Observation proposals — Proposal Handling System integration (planned)">
<section class="band--moon"> <section class="band--moon">
<header class="container page-head"> <header class="container page-head">
<h1>Observation proposals</h1> <h1>Observation proposals</h1>
<p class="standfirst">Submit observation proposals, including ToO and MWL requests.</p> <p class="standfirst">Submit observation proposals, including ToO and MWL requests.</p>
</header> </header>
<div class="container page"> <div class="container page">
<span class="badge-mock">Mock — no submission logic</span> <span class="badge-mock">Mock — PHS not yet connected</span>
<span class="badge-ext">Planned integration: Proposal Handling System (APC team)</span> <span class="badge-ext">Planned integration: Proposal Handling System (APC team)</span>
{/* Integration landing, not a form: the PHS is APC's product — the spec
(§3.3.3) scopes this portal to integrating it, so we describe the
hand-off instead of imitating their submission UI. */}
<div class="panel panel--narrow"> <div class="panel panel--narrow">
<div class="form-row"> <h2 class="panel-title">Proposal Handling System</h2>
<label for="f-title">Proposal title</label> <p>Submitting observation proposals — including Target of Opportunity (ToO)
<input id="f-title" type="text" placeholder="e.g. AGN flare observations" /> and multi-wavelength (MWL) requests — happens in the Proposal Handling
</div> System, built by the APC team and integrated into this portal.</p>
<div class="form-row"> <p>What the portal contributes:</p>
<label for="f-scope">Telescope</label> <ul class="panel-list">
<select id="f-scope"> <li>This menu entry, with a single sign-on hand-off (CTAO AAI).</li>
<option>LST-1 (Large-Sized Telescope)</option> <li>Proposal status feedback in your <a href="/dashboard">Dashboard</a>.</li>
<option>MST (Medium-Sized Telescope)</option> <li>Notifications via news and announcements.</li>
<option>SST (Small-Sized Telescope)</option> </ul>
</select> <button class="btn" type="button" disabled>Open the Proposal Handling System — integration planned</button>
</div>
<div class="form-row">
<label for="f-energy">Energy range</label>
<select id="f-energy">
<option>20 GeV – 3 TeV</option>
<option>80 GeV – 50 TeV</option>
<option>1 TeV – 300 TeV</option>
</select>
</div>
<div class="form-row">
<label for="f-hours">Requested time (hours)</label>
<input id="f-hours" type="number" min="1" placeholder="e.g. 25" />
</div>
<div class="form-row">
<label for="f-just">Scientific justification</label>
<textarea id="f-just" rows="4" placeholder="Brief description of the observation goal…"></textarea>
</div>
<button class="btn" type="button">Submit proposal</button>
<p class="notice">Demonstration mock — the form does not store any data.</p>
</div> </div>
</div> </div>
</section> </section>
+6 -2
View File
@@ -2,7 +2,11 @@
// set is fully known at build time). /admin is intentionally excluded. // set is fully known at build time). /admin is intentionally excluded.
import { getCollection } from 'astro:content'; import { getCollection } from 'astro:content';
const PAGE_SIZE = 24; // keep in sync with src/pages/news/[...page].astro // Same chunk math as src/pages/news/[...page].astro (keep in sync): page 1
// holds 25 items (featured lead + 24), later pages 24 — so the page count
// here can never drift from the archive's.
const FIRST = 25, REST = 24;
const newsPageCount = (n) => (n <= FIRST ? 1 : 1 + Math.ceil((n - FIRST) / REST));
export async function GET(context) { export async function GET(context) {
const site = context.site ?? new URL('https://portal.ctao.org'); const site = context.site ?? new URL('https://portal.ctao.org');
@@ -12,7 +16,7 @@ export async function GET(context) {
const urls = [ const urls = [
'/', '/news', '/proposals', '/dashboard', '/support', '/search', '/login', '/', '/news', '/proposals', '/dashboard', '/support', '/search', '/login',
...Array.from({ length: Math.ceil(news.length / PAGE_SIZE) - 1 }, (_, i) => `/news/${i + 2}`), ...Array.from({ length: newsPageCount(news.length) - 1 }, (_, i) => `/news/${i + 2}`),
...pages.map((p) => `/pages/${p.id}`), ...pages.map((p) => `/pages/${p.id}`),
].map((path) => ` <url><loc>${new URL(path, site).href}</loc></url>`); ].map((path) => ` <url><loc>${new URL(path, site).href}</loc></url>`);
const articles = news.map( const articles = news.map(
+1 -1
View File
@@ -17,7 +17,7 @@ const channels = [
<div class="container page"> <div class="container page">
{/* One page-level whisper badge — the tiles below stay clean (they are {/* One page-level whisper badge — the tiles below stay clean (they are
not interactive; honesty lives here, at the point users arrive). */} not interactive; honesty lives here, at the point users arrive). */}
<span class="badge-mock">Mock — support services not yet connected</span> <span class="badge-mock">Mock — target: SUSS User Support system</span>
<div class="grid"> <div class="grid">
{channels.map((c) => ( {channels.map((c) => (
<article class="card tile"> <article class="card tile">
+14 -11
View File
@@ -369,11 +369,13 @@ li.suggest-label {
overflow-wrap: break-word; overflow-wrap: break-word;
} }
.suggest small { margin-top: 14px; } /* date tracks the first title line */ .suggest small { margin-top: 14px; } /* date tracks the first title line */
.suggest::after { /* "Press Enter for all results" — a real list row (built by search-client.js,
content: "Press Enter for all results"; display: block; margin-top: 4px; aria-hidden like the group labels so screen-reader exposure is consistent) */
padding: 8px 12px 2px; border-top: 1px solid var(--border); .suggest li.suggest-hint {
color: var(--muted); font-size: var(--fs-xs); margin-top: 4px; padding: 8px 12px 2px; border-top: 1px solid var(--border);
border-radius: 0; color: var(--muted); font-size: var(--fs-xs);
} }
.suggest li.suggest-hint:hover { background: none; }
/* Section header row (h2 + optional "All news →" link) */ /* Section header row (h2 + optional "All news →" link) */
.section-head { .section-head {
@@ -567,19 +569,19 @@ span.page-step { color: var(--muted); } /* disabled end stop — non-interactive
padding: var(--space-m); box-shadow: var(--shadow-ambient); padding: var(--space-m); box-shadow: var(--shadow-ambient);
} }
.panel--narrow { max-width: 640px; } .panel--narrow { max-width: 640px; }
.form-row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; } /* Bulleted content inside a panel (/proposals integration landing) */
.form-row label { font-size: var(--fs-s); font-weight: 500; } .panel-list { margin: 0 0 var(--space-m); padding-left: 1.25em; }
.form-row input, .form-row select, .form-row textarea { .panel-list li + li { margin-top: 6px; }
background: #fff; border: 1px solid var(--border); border-radius: calc(var(--radius) - 4px);
color: var(--text); padding: 11px 12px; font: inherit;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus { border-color: var(--azure); }
.btn { .btn {
background: var(--cherenkov); color: var(--galaxy); border: 0; background: var(--cherenkov); color: var(--galaxy); border: 0;
padding: 12px 24px; border-radius: var(--radius-pill); padding: 12px 24px; border-radius: var(--radius-pill);
font: inherit; font-weight: 600; cursor: pointer; font: inherit; font-weight: 600; cursor: pointer;
} }
.btn:hover { background: var(--cherenkov-hover); } .btn:hover { background: var(--cherenkov-hover); }
/* Non-interactive placeholder CTA (planned integrations) — quiet Moon fill,
real disabled semantics; Cherenkov stays reserved for live primary actions */
.btn:disabled { background: var(--moon); color: var(--muted); cursor: not-allowed; }
.btn:disabled:hover { background: var(--moon); }
.notice { color: var(--muted); font-size: var(--fs-s); margin-top: 10px; } .notice { color: var(--muted); font-size: var(--fs-s); margin-top: 10px; }
/* Search results (list built by the inline script on /search) — card-like rows; /* Search results (list built by the inline script on /search) — card-like rows;
@@ -723,6 +725,7 @@ mark { background: var(--tint-cherenkov); color: inherit; border-radius: calc(va
border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease); border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
} }
.card, .search-results li { transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease); } .card, .search-results li { transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease); }
.suggest li { transition: background-color var(--dur) var(--ease); } /* same quiet fade as every hover */
.card:hover, .search-results li:hover { transform: translateY(-2px); } /* the one elevate gesture (no cover zoom) */ .card:hover, .search-results li:hover { transform: translateY(-2px); } /* the one elevate gesture (no cover zoom) */
} }
@keyframes nebula { /* inert unless applied inside the block above */ @keyframes nebula { /* inert unless applied inside the block above */