From 5fd06f5ae18559b45fcdd75245358ebf2bf41d54 Mon Sep 17 00:00:00 2001 From: mrtoine Date: Tue, 16 Dec 2025 13:14:15 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20la=20feuille=20de=20style=20`chris?= =?UTF-8?q?tmas.css`=20pour=20les=20d=C3=A9corations=20festives=20et=20ani?= =?UTF-8?q?mations=20de=20neige,=20charg=C3=A9es=20conditionnellement=20en?= =?UTF-8?q?=20d=C3=A9cembre.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/css/christmas.css | 99 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 static/css/christmas.css diff --git a/static/css/christmas.css b/static/css/christmas.css new file mode 100644 index 0000000..19cf591 --- /dev/null +++ b/static/css/christmas.css @@ -0,0 +1,99 @@ +/* PartirDeZero — Décos de Noël (chargées uniquement en décembre) */ + +/* Barre festive discrète sous la navbar */ +.site-nav { position: relative; } +.site-nav::after { + content: ""; + position: absolute; + left: 0; right: 0; bottom: -1px; + height: 4px; + background: repeating-linear-gradient(45deg, + #d61c4e 0 12px, + #1b8f3a 12px 24px, + #ffffff 24px 36px); + opacity: .55; + pointer-events: none; +} + +/* Emoji sapin à côté du titre */ +.pdz-festive-emoji { + margin-left: .35rem; + filter: drop-shadow(0 1px 0 rgba(0,0,0,.2)); +} + +/* Overlay neige — ultra léger, non bloquant */ +.pdz-snow { + position: fixed; + inset: 0; + pointer-events: none; + z-index: 5; /* au-dessus du fond, sous les modales si existantes */ + background-image: + radial-gradient(2px 2px at 20px 30px, rgba(255,255,255,.9) 50%, rgba(255,255,255,0) 51%), + radial-gradient(3px 3px at 80px 120px, rgba(255,255,255,.8) 50%, rgba(255,255,255,0) 51%), + radial-gradient(2px 2px at 150px 80px, rgba(255,255,255,.85) 50%, rgba(255,255,255,0) 51%), + radial-gradient(3px 3px at 250px 20px, rgba(255,255,255,.8) 50%, rgba(255,255,255,0) 51%); + background-repeat: repeat; + background-size: 300px 200px, 400px 300px, 350px 250px, 500px 400px; + animation: pdzSnowFall 18s linear infinite; +} + +/* Plusieurs couches pour un effet de profondeur via parallax */ +.pdz-snow::before, +.pdz-snow::after { + content: ""; + position: absolute; inset: 0; + background-image: + radial-gradient(2px 2px at 40px 60px, rgba(255,255,255,.8) 50%, rgba(255,255,255,0) 51%), + radial-gradient(3px 3px at 120px 200px, rgba(255,255,255,.75) 50%, rgba(255,255,255,0) 51%), + radial-gradient(2px 2px at 220px 160px, rgba(255,255,255,.8) 50%, rgba(255,255,255,0) 51%); + background-repeat: repeat; +} +.pdz-snow::before { + background-size: 260px 180px, 380px 280px, 320px 220px; + animation: pdzSnowFallSlow 28s linear infinite; +} +.pdz-snow::after { + background-size: 200px 140px, 300px 220px, 260px 200px; + animation: pdzSnowFallFast 12s linear infinite; +} + +@keyframes pdzSnowFall { + from { transform: translateY(-10%); } + to { transform: translateY(100%); } +} +@keyframes pdzSnowFallSlow { + from { transform: translateY(-10%); } + to { transform: translateY(100%); } +} +@keyframes pdzSnowFallFast { + from { transform: translateY(-10%); } + to { transform: translateY(100%); } +} + +/* Respect des préférences d'accessibilité */ +@media (prefers-reduced-motion: reduce) { + .pdz-snow, .pdz-snow::before, .pdz-snow::after { animation: none; } +} + +/* ——— Footer: petite touche festive discrète ——— */ +footer.pdz-xmas { position: relative; } +footer.pdz-xmas::before { + content: ""; + position: absolute; + left: 0; right: 0; top: 0; + height: 4px; + background: repeating-linear-gradient(45deg, + #d61c4e 0 12px, + #1b8f3a 12px 24px, + #ffffff 24px 36px); + opacity: .55; + pointer-events: none; +} + +.footer-legal .pdz-holiday-greeting { + display: inline-flex; + align-items: center; + gap: .35rem; + color: var(--fg); + font-weight: 500; +}