diff --git a/CHANGELOG.md b/CHANGELOG.md index 60e45f6..6de9112 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,46 @@ # CHANGELOG — Set-OPS +## 2026-07-21 (suite) + +### Modifié +- **Palette aurore enrichie sur les quatre pages `promo/`** — ajout de deux teintes, + `--rose:#ff6fc4` (frange magenta) et `--vert:#5cff9d` (vert fluo), présentes uniquement + dans les **dégradés foncés** : fond fixe du corps, nappe `.aurora` dérivante, et filets + de séparation `.rule`. Opacités de 5,5 % à 8,5 % — une teinte, pas un motif. Les + dégradés de texte et de boutons (`--aurora`) sont **inchangés** : l'identité de marque + ne bouge pas. Appliqué identiquement aux quatre fichiers (0 conflit CSS après coup). +- **Thème Forgejo étendu au wiki** (`roles/serveur_forgejo/files/custom/public/assets/css/alliance.css`, + 29 → 118 lignes). La feuille étant injectée par `templates/custom/header.tmpl` sur toutes + les pages, le wiki est couvert **sans feuille distincte**. Réorganisée en deux sections + de risque explicite : **§1 Variables** (surcharge des variables de couleur officielles, + sûr, résiste aux mises à jour) et **§2 Décor** (fond aurore, filet sous les titres, + citations, tableaux et code en ligne de `.markup` — sélecteurs internes, à revérifier à + chaque montée de version majeure). Supprimer §2 ramène au thème sobre d'origine. Le ciel + nocturne ne s'applique qu'aux thèmes sombres, pour ne pas casser le thème clair. + `roles/serveur_forgejo/README.md` documente le tout. + +### Ajouté +- **`docs/theme-forgejo-hors-flotte.md`** — pose **manuelle** du thème sur une instance + Forgejo **non gérée par Set-OPS** (la forge historique qui héberge ce dépôt et son wiki). + Forgejo n'ayant aucun réglage web pour le CSS, il faut déposer la feuille et référencer + `header.tmpl` sur le serveur. La procédure **ne duplique aucun fichier** : elle pointe + vers ceux de `roles/serveur_forgejo/files/custom/`. Comprend la détection du répertoire + `custom`, un garde-fou pour ne pas écraser un `header.tmpl` existant (ajout de ligne, pas + remplacement), la vérification par `curl`, et la marche arrière. + +### Corrigé +- **Contradiction sur l'état de forge-01, consignée.** `roles/serveur_forgejo/README.md` + affirmait « non testé live » alors que `CHANGELOG.md` (2026-07-03) affirme le branding + « prouvé sur forge-01 » et que le plan la déclare `etat: planifie`. Les trois ne peuvent + pas être vrais ensemble. Le README porte désormais l'écart explicitement, à trancher. +- **Statut du thème précisé, section par section** : §1 (variables) est **éprouvée** sur + forge-01 ; §2 (décor), ajoutée aujourd'hui, n'a **jamais été rendue** par un Forgejo réel. + L'affirmation précédente (« non rendu par un Forgejo réel », tous les cas confondus) était + fausse pour §1. + +Validé : équilibre des accolades et parenthèses du CSS, 0 conflit CSS entre les quatre +pages promo, `ansible-lint` 0 échec, `prouver.py --verifier` → CONFORME 16/16. + ## 2026-07-21 ### Ajouté diff --git a/docs/theme-forgejo-hors-flotte.md b/docs/theme-forgejo-hors-flotte.md new file mode 100644 index 0000000..687c20b --- /dev/null +++ b/docs/theme-forgejo-hors-flotte.md @@ -0,0 +1,123 @@ +# Appliquer le thème Alliance Boréale à une forge Forgejo hors flotte + +Procédure **manuelle**, pour une instance Forgejo qui n'est **pas** gérée par Set-OPS — +typiquement la forge historique qui héberge ce dépôt et son wiki. + +> Pour une forge de la flotte (`forge-01`), ne rien faire à la main : passer +> `serveur_forgejo_branding: true` et déployer le groupe `serveur_forgejo`. Le rôle copie +> exactement les mêmes fichiers. + +## Ce que ça couvre + +Forgejo n'offre **aucun réglage web** pour le CSS personnalisé : il faut déposer un fichier +sur le serveur. Une fois en place, la feuille est injectée sur **toutes** les pages — +dépôts, tickets, code, README et **wiki**. Le wiki n'a pas de thème distinct, il hérite du +même habillage. + +## Prérequis + +- accès **root** (ou `sudo`) sur la machine qui exécute Forgejo ; +- connaître le **répertoire `custom`** de l'instance ; +- une fenêtre où redémarrer le service est acceptable (quelques secondes d'indisponibilité). + +Trouver le répertoire `custom` : + +```bash +# 1. déclaré explicitement ? +grep -iE '^\s*(CUSTOM_PATH|ROOT)\s*=' /etc/forgejo/app.ini + +# 2. ou par la variable d'environnement du service +systemctl show forgejo -p Environment | tr ' ' '\n' | grep -i custom + +# 3. défaut usuel des paquets / installs binaires +ls -d /var/lib/forgejo/custom 2>/dev/null +``` + +## Les fichiers + +Les deux fichiers vivent déjà dans ce dépôt — **ne pas en faire de copie** : + +| Fichier du dépôt | Destination sur la forge | +|---|---| +| `roles/serveur_forgejo/files/custom/public/assets/css/alliance.css` | `/public/assets/css/alliance.css` | +| `roles/serveur_forgejo/files/custom/templates/custom/header.tmpl` | `/templates/custom/header.tmpl` | + +Optionnels, si l'on veut aussi le logo et la favicon étoile : +`files/custom/public/assets/img/{logo,favicon}.svg` → `/public/assets/img/`. + +## Pose + +Depuis une copie locale du dépôt, en remplaçant `FORGE` et `CUSTOM` : + +```bash +FORGE=root@forge.exemple.ca # hôte de la forge +CUSTOM=/var/lib/forgejo/custom # répertoire custom trouvé plus haut +SRC=roles/serveur_forgejo/files/custom + +scp "$SRC/public/assets/css/alliance.css" "$FORGE:/tmp/alliance.css" +``` + +Puis **sur la forge** : + +```bash +CUSTOM=/var/lib/forgejo/custom +OWNER=git:git # utilisateur du service (souvent git ou forgejo) + +install -D -o $OWNER -m 0644 /tmp/alliance.css "$CUSTOM/public/assets/css/alliance.css" +``` + +### Injecter la feuille — l'étape à ne pas rater + +`header.tmpl` est injecté dans le `` de **toutes** les pages. + +> ⚠️ **Si le fichier existe déjà, ne pas l'écraser** : une autre personnalisation y vit +> peut-être. Y **ajouter** la ligne. + +```bash +CUSTOM=/var/lib/forgejo/custom +LINK='' +TPL="$CUSTOM/templates/custom/header.tmpl" + +if [ -f "$TPL" ]; then + grep -qF 'alliance.css' "$TPL" || printf '%s\n' "$LINK" >> "$TPL" +else + install -D -o git:git -m 0644 /dev/null "$TPL" + printf '%s\n' "$LINK" > "$TPL" +fi + +systemctl restart forgejo +``` + +## Vérifier + +```bash +# la feuille est servie (200, type CSS) +curl -sI https://forge.exemple.ca/assets/css/alliance.css | head -3 + +# elle est bien référencée dans le d'une page de wiki +curl -s https://forge.exemple.ca///wiki | grep -o 'alliance\.css[^"]*' +``` + +À l'œil, sur une page de wiki en thème sombre : fond bleu nuit avec une nappe magenta à +droite et verte en bas à gauche, filet d'aurore sous les titres, code en ligne en teal. + +Le ciel nocturne ne s'applique **qu'aux thèmes sombres** (`forgejo-dark`, `forgejo-auto`). +En thème clair, seules les couleurs d'accent changent — c'est voulu. + +## Revenir en arrière + +```bash +CUSTOM=/var/lib/forgejo/custom +sed -i '/alliance\.css/d' "$CUSTOM/templates/custom/header.tmpl" +rm -f "$CUSTOM/public/assets/css/alliance.css" +systemctl restart forgejo +``` + +## Après une mise à jour de Forgejo + +`alliance.css` est en deux sections (cf. `roles/serveur_forgejo/README.md`) : + +- **§1 Variables** — surcharge de variables de couleur officielles. Ne casse pas. +- **§2 Décor** — s'appuie sur des classes internes (`.markup h1`, `.markup blockquote`…). + **À revérifier après chaque montée de version majeure.** Si quelque chose déraille, + supprimer §2 ramène au thème sobre sans rien perdre d'essentiel. diff --git a/promo/index.html b/promo/index.html index 5d19e03..676c013 100644 --- a/promo/index.html +++ b/promo/index.html @@ -15,6 +15,7 @@ --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.06); --panel:rgba(255,255,255,.045); --panel-2:rgba(255,255,255,.03); --teal:#4fe3c1; --cyan:#56c2ff; --violet:#a98bff; --amber:#ffc46b; + --rose:#ff6fc4; --vert:#5cff9d; /* frange magenta + vert fluo de l'aurore */ --aurora:linear-gradient(100deg,var(--teal) 0%,var(--cyan) 46%,var(--violet) 100%); --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Noto Sans","Helvetica Neue",Arial,sans-serif; --mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,"Liberation Mono",monospace; @@ -27,6 +28,9 @@ background: radial-gradient(1200px 760px at 82% -8%,#141c4c 0%,transparent 58%), radial-gradient(900px 620px at 8% -2%,#0e1640 0%,transparent 55%), + radial-gradient(780px 540px at 97% 38%,rgba(255,111,196,.085) 0%,transparent 62%), + radial-gradient(840px 580px at 3% 72%,rgba(92,255,157,.065) 0%,transparent 62%), + radial-gradient(700px 500px at 50% 112%,rgba(169,139,255,.07) 0%,transparent 60%), linear-gradient(180deg,var(--night-2) 0%,var(--night) 62%) fixed; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; @@ -38,9 +42,11 @@ position:fixed;left:-10%;right:-10%;top:-22%;height:74vh;z-index:-1;pointer-events:none; filter:blur(64px) saturate(140%);opacity:.42; background: + radial-gradient(34% 52% at 6% 52%,var(--vert) 0%,transparent 66%), radial-gradient(40% 60% at 20% 30%,var(--teal) 0%,transparent 70%), radial-gradient(45% 70% at 55% 20%,var(--cyan) 0%,transparent 70%), - radial-gradient(40% 65% at 82% 35%,var(--violet) 0%,transparent 70%); + radial-gradient(40% 65% at 82% 35%,var(--violet) 0%,transparent 70%), + radial-gradient(32% 48% at 95% 62%,var(--rose) 0%,transparent 66%); animation:drift 24s ease-in-out infinite alternate; } @keyframes drift{from{transform:translate(-3%,0) scale(1)}to{transform:translate(3%,2%) scale(1.08)}} @@ -86,7 +92,7 @@ .sec-head{max-width:68ch;margin-bottom:42px} .sec-head h2{font-size:clamp(1.75rem,3.4vw,2.6rem);font-weight:750;letter-spacing:-.015em;margin-top:14px} .sec-head p{margin-top:16px;color:var(--dim);font-size:1.07rem} - .rule{height:1px;background:linear-gradient(90deg,var(--line),transparent);border:0;margin:0} + .rule{height:1px;border:0;margin:0;background:linear-gradient(90deg,rgba(92,255,157,.28),rgba(86,194,255,.22) 34%,rgba(255,111,196,.24) 68%,transparent)} /* ---- méthode : 4 temps ---- */ .beats{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px} .beat{background:var(--panel-2);border:1px solid var(--line-2);border-radius:15px;padding:22px} diff --git a/promo/offres.html b/promo/offres.html index 48fcc4c..d5f45cb 100644 --- a/promo/offres.html +++ b/promo/offres.html @@ -15,6 +15,7 @@ --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.06); --panel:rgba(255,255,255,.045); --panel-2:rgba(255,255,255,.03); --teal:#4fe3c1; --cyan:#56c2ff; --violet:#a98bff; --amber:#ffc46b; + --rose:#ff6fc4; --vert:#5cff9d; /* frange magenta + vert fluo de l'aurore */ --aurora:linear-gradient(100deg,var(--teal) 0%,var(--cyan) 46%,var(--violet) 100%); --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Noto Sans","Helvetica Neue",Arial,sans-serif; --mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,"Liberation Mono",monospace; @@ -27,6 +28,9 @@ background: radial-gradient(1200px 760px at 82% -8%,#141c4c 0%,transparent 58%), radial-gradient(900px 620px at 8% -2%,#0e1640 0%,transparent 55%), + radial-gradient(780px 540px at 97% 38%,rgba(255,111,196,.085) 0%,transparent 62%), + radial-gradient(840px 580px at 3% 72%,rgba(92,255,157,.065) 0%,transparent 62%), + radial-gradient(700px 500px at 50% 112%,rgba(169,139,255,.07) 0%,transparent 60%), linear-gradient(180deg,var(--night-2) 0%,var(--night) 62%) fixed; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; @@ -37,9 +41,11 @@ position:fixed;left:-10%;right:-10%;top:-22%;height:74vh;z-index:-1;pointer-events:none; filter:blur(64px) saturate(140%);opacity:.42; background: + radial-gradient(34% 52% at 6% 52%,var(--vert) 0%,transparent 66%), radial-gradient(40% 60% at 20% 30%,var(--teal) 0%,transparent 70%), radial-gradient(45% 70% at 55% 20%,var(--cyan) 0%,transparent 70%), - radial-gradient(40% 65% at 82% 35%,var(--violet) 0%,transparent 70%); + radial-gradient(40% 65% at 82% 35%,var(--violet) 0%,transparent 70%), + radial-gradient(32% 48% at 95% 62%,var(--rose) 0%,transparent 66%); animation:drift 24s ease-in-out infinite alternate; } @keyframes drift{from{transform:translate(-3%,0) scale(1)}to{transform:translate(3%,2%) scale(1.08)}} @@ -78,7 +84,7 @@ .sec-head{max-width:68ch;margin-bottom:42px} .sec-head h2{font-size:clamp(1.75rem,3.4vw,2.6rem);font-weight:750;letter-spacing:-.015em;margin-top:14px} .sec-head p{margin-top:16px;color:var(--dim);font-size:1.07rem} - .rule{height:1px;background:linear-gradient(90deg,var(--line),transparent);border:0;margin:0} + .rule{height:1px;border:0;margin:0;background:linear-gradient(90deg,rgba(92,255,157,.28),rgba(86,194,255,.22) 34%,rgba(255,111,196,.24) 68%,transparent)} /* ---- principe modulaire ---- */ .beats{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px} .beat{background:var(--panel-2);border:1px solid var(--line-2);border-radius:15px;padding:22px} diff --git a/promo/tarifs.html b/promo/tarifs.html index 99f52ff..30c36d0 100644 --- a/promo/tarifs.html +++ b/promo/tarifs.html @@ -15,6 +15,7 @@ --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.06); --panel:rgba(255,255,255,.045); --panel-2:rgba(255,255,255,.03); --teal:#4fe3c1; --cyan:#56c2ff; --violet:#a98bff; --amber:#ffc46b; + --rose:#ff6fc4; --vert:#5cff9d; /* frange magenta + vert fluo de l'aurore */ --aurora:linear-gradient(100deg,var(--teal) 0%,var(--cyan) 46%,var(--violet) 100%); --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Noto Sans","Helvetica Neue",Arial,sans-serif; --mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,"Liberation Mono",monospace; @@ -27,6 +28,9 @@ background: radial-gradient(1200px 760px at 82% -8%,#141c4c 0%,transparent 58%), radial-gradient(900px 620px at 8% -2%,#0e1640 0%,transparent 55%), + radial-gradient(780px 540px at 97% 38%,rgba(255,111,196,.085) 0%,transparent 62%), + radial-gradient(840px 580px at 3% 72%,rgba(92,255,157,.065) 0%,transparent 62%), + radial-gradient(700px 500px at 50% 112%,rgba(169,139,255,.07) 0%,transparent 60%), linear-gradient(180deg,var(--night-2) 0%,var(--night) 62%) fixed; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; @@ -37,9 +41,11 @@ position:fixed;left:-10%;right:-10%;top:-22%;height:74vh;z-index:-1;pointer-events:none; filter:blur(64px) saturate(140%);opacity:.42; background: + radial-gradient(34% 52% at 6% 52%,var(--vert) 0%,transparent 66%), radial-gradient(40% 60% at 20% 30%,var(--teal) 0%,transparent 70%), radial-gradient(45% 70% at 55% 20%,var(--cyan) 0%,transparent 70%), - radial-gradient(40% 65% at 82% 35%,var(--violet) 0%,transparent 70%); + radial-gradient(40% 65% at 82% 35%,var(--violet) 0%,transparent 70%), + radial-gradient(32% 48% at 95% 62%,var(--rose) 0%,transparent 66%); animation:drift 24s ease-in-out infinite alternate; } @keyframes drift{from{transform:translate(-3%,0) scale(1)}to{transform:translate(3%,2%) scale(1.08)}} @@ -78,7 +84,7 @@ .sec-head{max-width:68ch;margin-bottom:42px} .sec-head h2{font-size:clamp(1.75rem,3.4vw,2.6rem);font-weight:750;letter-spacing:-.015em;margin-top:14px} .sec-head p{margin-top:16px;color:var(--dim);font-size:1.07rem} - .rule{height:1px;background:linear-gradient(90deg,var(--line),transparent);border:0;margin:0} + .rule{height:1px;border:0;margin:0;background:linear-gradient(90deg,rgba(92,255,157,.28),rgba(86,194,255,.22) 34%,rgba(255,111,196,.24) 68%,transparent)} /* ---- 3 postes ---- */ .beats{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px} .beat{background:var(--panel-2);border:1px solid var(--line-2);border-radius:15px;padding:22px} diff --git a/promo/valeur.html b/promo/valeur.html index cb2a1d9..fe3d068 100644 --- a/promo/valeur.html +++ b/promo/valeur.html @@ -15,6 +15,7 @@ --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.06); --panel:rgba(255,255,255,.045); --panel-2:rgba(255,255,255,.03); --teal:#4fe3c1; --cyan:#56c2ff; --violet:#a98bff; --amber:#ffc46b; + --rose:#ff6fc4; --vert:#5cff9d; /* frange magenta + vert fluo de l'aurore */ --aurora:linear-gradient(100deg,var(--teal) 0%,var(--cyan) 46%,var(--violet) 100%); --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Noto Sans","Helvetica Neue",Arial,sans-serif; --mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,"Liberation Mono",monospace; @@ -27,6 +28,9 @@ background: radial-gradient(1200px 760px at 82% -8%,#141c4c 0%,transparent 58%), radial-gradient(900px 620px at 8% -2%,#0e1640 0%,transparent 55%), + radial-gradient(780px 540px at 97% 38%,rgba(255,111,196,.085) 0%,transparent 62%), + radial-gradient(840px 580px at 3% 72%,rgba(92,255,157,.065) 0%,transparent 62%), + radial-gradient(700px 500px at 50% 112%,rgba(169,139,255,.07) 0%,transparent 60%), linear-gradient(180deg,var(--night-2) 0%,var(--night) 62%) fixed; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; @@ -37,9 +41,11 @@ position:fixed;left:-10%;right:-10%;top:-22%;height:74vh;z-index:-1;pointer-events:none; filter:blur(64px) saturate(140%);opacity:.42; background: + radial-gradient(34% 52% at 6% 52%,var(--vert) 0%,transparent 66%), radial-gradient(40% 60% at 20% 30%,var(--teal) 0%,transparent 70%), radial-gradient(45% 70% at 55% 20%,var(--cyan) 0%,transparent 70%), - radial-gradient(40% 65% at 82% 35%,var(--violet) 0%,transparent 70%); + radial-gradient(40% 65% at 82% 35%,var(--violet) 0%,transparent 70%), + radial-gradient(32% 48% at 95% 62%,var(--rose) 0%,transparent 66%); animation:drift 24s ease-in-out infinite alternate; } @keyframes drift{from{transform:translate(-3%,0) scale(1)}to{transform:translate(3%,2%) scale(1.08)}} @@ -78,7 +84,7 @@ .sec-head{max-width:68ch;margin-bottom:42px} .sec-head h2{font-size:clamp(1.75rem,3.4vw,2.6rem);font-weight:750;letter-spacing:-.015em;margin-top:14px} .sec-head p{margin-top:16px;color:var(--dim);font-size:1.07rem} - .rule{height:1px;background:linear-gradient(90deg,var(--line),transparent);border:0;margin:0} + .rule{height:1px;border:0;margin:0;background:linear-gradient(90deg,rgba(92,255,157,.28),rgba(86,194,255,.22) 34%,rgba(255,111,196,.24) 68%,transparent)} /* ---- calculateur ---- */ .calc{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:26px;align-items:start} @media(max-width:900px){.calc{grid-template-columns:1fr}} diff --git a/roles/serveur_forgejo/README.md b/roles/serveur_forgejo/README.md index 4b54fa9..dfbb1f6 100644 --- a/roles/serveur_forgejo/README.md +++ b/roles/serveur_forgejo/README.md @@ -24,11 +24,40 @@ vault_bd_forgejo: "..." # mot de passe BD (partage avec serveur_postgresql) | `serveur_forgejo_hostname` | `forge.exemple.internal` | Domaine (via nginx) | | `serveur_forgejo_db_host` | `10.0.13.11` | data-01 | +## Identité visuelle (thème Alliance Boréale) + +Désactivée par défaut : `serveur_forgejo_branding: false`. À `true`, le rôle copie +`files/custom/` vers `{{ serveur_forgejo_data }}/custom/` — logo, favicon, page +d'accueil et la feuille `public/assets/css/alliance.css`, injectée sur **toutes** les +pages par `templates/custom/header.tmpl`. + +Le **wiki n'a donc pas de thème distinct** : Forgejo le rend avec le même habillage, +et la feuille le couvre au même titre que les dépôts, les tickets et les README. + +`alliance.css` est en **deux sections, de risque différent** : + +| Section | Contenu | Risque | État | +|---|---|---|---| +| **§1 Variables** | surcharge des variables de couleur officielles (`--color-primary`, `--color-body`…) | **Sûr** — aucune classe interne touchée, résiste aux mises à jour | **Éprouvé** sur forge-01 (CHANGELOG 2026-07-03 : `alliance.css` servi, cyan aurore rendu) | +| **§2 Décor** | fond aurore (`body`), filet sous les titres, citations, tableaux et code en ligne du contenu rendu (`.markup`) | **Fragile** — sélecteurs internes de Forgejo, à revérifier après chaque montée de version majeure | **Jamais rendu** — ajouté le 2026-07-21, validé en syntaxe CSS seulement | + +> Supprimer §2 ramène au thème sobre d'origine : §1 se suffit à elle-même. + +Le ciel nocturne ne s'applique qu'aux thèmes **sombres** (`theme-forgejo-dark`, +`theme-forgejo-auto`) pour ne pas casser le thème clair. + +Pour une forge **hors flotte** (instance Forgejo non gérée par Set-OPS), la pose manuelle +des mêmes fichiers est décrite dans [`docs/theme-forgejo-hors-flotte.md`](../../docs/theme-forgejo-hors-flotte.md). + ## Notes / limites - **Version** à confirmer sur forgejo.org/download ; l'URL suit le motif officiel des releases. - Le **site nginx** publiant Forgejo se déclare côté `serveur_nginx`. - Mailer en SMTP simple vers le relais interne (sans TLS pour l'instant). -- Non testé live (forge-01 planifié). +- **État de forge-01 à clarifier** : `instance/plan/serveurs.yml` la déclare `etat: planifie`, + alors que `CHANGELOG.md` (2026-07-03) affirme le branding « **prouvé** sur forge-01 » + (accueil 200, `alliance.css` servi). Les deux ne peuvent pas être vrais simultanément — + soit l'hôte a été déployé puis remis à `planifie`, soit la preuve visait autre chose. + À trancher, puis corriger la source fautive. ## Prérequis - Dépendances `serveur_postgresql`, `serveur_nginx`, `serveur_postfix` (cf. `docs/dependances-groupes.yml`). diff --git a/roles/serveur_forgejo/files/custom/public/assets/css/alliance.css b/roles/serveur_forgejo/files/custom/public/assets/css/alliance.css index c9b153f..d592d70 100644 --- a/roles/serveur_forgejo/files/custom/public/assets/css/alliance.css +++ b/roles/serveur_forgejo/files/custom/public/assets/css/alliance.css @@ -1,8 +1,23 @@ /* ========================================================================= - Alliance Boréale — accent aurore pour Forgejo. - Surcharge UNIQUEMENT les variables de couleur (mécanisme officiel Forgejo) : - léger, et résistant aux mises à jour (on ne touche à aucune classe interne). + Alliance Boréale — thème aurore pour Forgejo (dépôts, wiki, issues, code). + + DEUX SECTIONS, deux niveaux de risque assumés : + + §1 VARIABLES (sûr) — surcharge les variables de couleur officielles de + Forgejo. Aucune classe interne touchée : résiste aux mises à jour. + + §2 DÉCOR (fragile) — quelques règles décoratives sur des sélecteurs + stables (`body`, `.markup h1`…). À revérifier après chaque montée de + version majeure de Forgejo. Supprimer §2 suffit à revenir au thème + sobre d'origine : §1 se suffit à elle-même. + + Le wiki n'a pas de feuille distincte : Forgejo le rend avec le même + habillage, et `templates/custom/header.tmpl` injecte ce fichier sur + toutes les pages. ========================================================================= */ + +/* ============================ §1 — VARIABLES ============================ */ + html.theme-forgejo-dark, html.theme-forgejo-light, html.theme-forgejo-auto, @@ -23,7 +38,81 @@ html.theme-forgejo-auto, --color-primary-alpha-50: rgba(86, 194, 255, 0.50) !important; /* Accent = teal d'aurore */ --color-accent: #4fe3c1 !important; + + /* Palette Alliance Boréale, réutilisée en §2 */ + --ab-teal: #4fe3c1; + --ab-cyan: #56c2ff; + --ab-violet: #a98bff; + --ab-rose: #ff6fc4; + --ab-vert: #5cff9d; } -/* Petit halo aurore derrière le logo du bandeau (touche discrète) */ +/* Ciel nocturne : thème sombre uniquement, pour ne pas casser le clair. */ +html.theme-forgejo-dark, +html.theme-forgejo-auto { + --color-body: #070a19 !important; + --color-box-body: #0b0f26 !important; + --color-box-header: #0d1230 !important; + --color-secondary: #1b2350 !important; + --color-secondary-dark-1: #232c60 !important; +} + +/* ============================== §2 — DÉCOR ============================== */ + +/* Aurore fixe derrière le contenu : magenta à droite, vert fluo à gauche, + violet en bas. Très basse opacité — une teinte, pas un motif. */ +html.theme-forgejo-dark body, +html.theme-forgejo-auto body { + background-image: + radial-gradient(1100px 700px at 84% -6%, #141c4c 0%, transparent 58%), + radial-gradient(860px 600px at 6% 0%, #0e1640 0%, transparent 55%), + radial-gradient(760px 520px at 97% 34%, rgba(255, 111, 196, 0.075) 0%, transparent 62%), + radial-gradient(820px 560px at 3% 70%, rgba(92, 255, 157, 0.055) 0%, transparent 62%), + radial-gradient(700px 500px at 50% 108%, rgba(169, 139, 255, 0.06) 0%, transparent 60%); + background-attachment: fixed; + background-repeat: no-repeat; +} + +/* Halo aurore derrière le logo du bandeau (touche discrète) */ .navbar .brand img { filter: drop-shadow(0 0 8px rgba(86, 194, 255, 0.45)); } + +/* ---- Contenu rendu : wiki, README, issues, commentaires (`.markup`) ---- */ + +/* Titres : filet d'aurore sous les H1/H2, comme les séparateurs du site. */ +.markup h1, +.markup h2 { + border-bottom: 0 !important; + padding-bottom: 0.34em; + position: relative; +} +.markup h1::after, +.markup h2::after { + content: ""; + position: absolute; + left: 0; right: 0; bottom: 0; + height: 1px; + background: linear-gradient(90deg, + rgba(92, 255, 157, 0.30), + rgba(86, 194, 255, 0.24) 34%, + rgba(255, 111, 196, 0.26) 68%, + transparent); +} + +/* Citations : liseré aurore plutôt que le gris par défaut. */ +.markup blockquote { + border-left: 3px solid transparent !important; + border-image: linear-gradient(180deg, var(--ab-vert), var(--ab-cyan), var(--ab-rose)) 1 !important; +} + +/* Tableaux du wiki : en-tête légèrement teinté. */ +html.theme-forgejo-dark .markup table thead th, +html.theme-forgejo-auto .markup table thead th { + background: rgba(86, 194, 255, 0.07); +} + +/* Code en ligne : teal, comme les commandes des pages de présentation. */ +html.theme-forgejo-dark .markup code:not(pre code), +html.theme-forgejo-auto .markup code:not(pre code) { + color: var(--ab-teal); + background: rgba(79, 227, 193, 0.08); +}