alpinux-www/site/commun.css
Cédrix d740c2c900 Publier toutes les pages du wiki, et une vraie page d'erreur
L'accueil n'annonçait que six pages du wiki, et rien ne menait au reste :
qui voulait savoir ce qui avait bougé depuis sa dernière visite n'avait
nulle part où aller. modifications.html liste tout ce que le wiki publie,
du plus récemment retouché au plus ancien, avec un filtre par titre ou
par rubrique. Elle lit toutes-les-pages.json, que le build du wiki écrit
à côté de derniers-articles.json ; tant que ce fichier n'existe pas, elle
se rabat sur celui de l'accueil et le dit plutôt que de rester vide.

404.html reprend la charte et propose l'accueil, le wiki, les mises à
jour et les listes. Elle attend encore sa directive Apache : le site
répond aujourd'hui 200 et l'accueil à toute adresse inconnue, ce qui
trompe le visiteur comme le moteur de recherche. Le README dit quoi
poser dans le .htaccess du serveur.

Les deux pages partagent commun.css plutôt que de recopier le style de
l'accueil, qui garde le sien en ligne — une page, une requête. Et le
garde-fou du déploiement, qui ne regardait que l'accueil, refuse
désormais de mettre en ligne n'importe quelle page tronquée : une 404
servie à moitié serait aussi laide qu'une erreur.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JYfYUZRcJmmEWJwAxZb4o2
2026-09-23 12:42:03 +02:00

128 lines
3.1 KiB
CSS

/* Charte partagée par les pages secondaires — 404, mises à jour du wiki.
L'accueil garde son style en ligne : une page, une requête, rien à attendre. */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
background: #f3f6fb;
color: #1a1a2e;
min-height: 100vh;
display: flex;
flex-direction: column;
}
/* ── En-tête ──────────────────────────────────────────────────────── */
header {
background: #1a6bbf;
color: #fff;
padding: 2.2rem 1.5rem 1.8rem;
text-align: center;
}
.logo-wrap {
display: flex;
align-items: center;
justify-content: center;
gap: 1.1rem;
flex-wrap: wrap;
text-decoration: none;
}
.logo-img { width: 66px; height: 66px; border-radius: 10px; }
.logo-text { text-align: left; }
.brand {
display: block;
font-size: 2.1rem;
line-height: 1;
color: #fff;
letter-spacing: -.02em;
}
.brand .light { font-weight: 300; }
.brand .bold { font-weight: 800; }
.tagline {
display: block;
font-size: .82rem;
font-weight: 300;
letter-spacing: .18em;
color: rgba(255,255,255,.8);
margin-top: .25rem;
text-transform: lowercase;
}
/* ── Navigation ───────────────────────────────────────────────────── */
nav {
background: #0f4e8f;
display: flex;
justify-content: center;
gap: .2rem;
flex-wrap: wrap;
padding: .4rem 1rem;
}
nav a {
color: rgba(255,255,255,.85);
text-decoration: none;
font-size: .88rem;
padding: .45rem .9rem;
border-radius: 4px;
transition: background .15s;
}
nav a:hover { background: rgba(255,255,255,.15); color: #fff; }
nav a[aria-current="page"] { background: rgba(255,255,255,.18); color: #fff; }
/* ── Corps ────────────────────────────────────────────────────────── */
main {
max-width: 860px;
width: 100%;
margin: 0 auto;
padding: 3rem 1.5rem;
flex: 1;
}
h1 {
font-size: 1.6rem;
color: #0f4e8f;
line-height: 1.25;
margin-bottom: .8rem;
}
.chapeau {
font-size: 1rem;
line-height: 1.7;
color: #4a5a6a;
max-width: 62ch;
}
.chapeau a { color: #1a6bbf; }
.bouton {
display: inline-block;
background: #1a6bbf;
color: #fff;
text-decoration: none;
font-weight: 600;
font-size: .95rem;
padding: .7rem 1.4rem;
border-radius: 8px;
transition: background .15s, transform .15s;
}
.bouton:hover { background: #0f4e8f; transform: translateY(-2px); }
/* ── Pied de page ─────────────────────────────────────────────────── */
footer {
background: #0f4e8f;
color: rgba(255,255,255,.75);
text-align: center;
padding: 1.6rem 1.5rem;
font-size: .85rem;
}
footer a { color: rgba(255,255,255,.9); text-decoration: none; }
footer a:hover { text-decoration: underline; }