v2026.5.43 — Fix Firefox menu dock position + stabilité popup pin/unpin

Bug Firefox uniquement : positionnement du menu hover des pastilles du
dock (popup réduit) corrigé. La cause était que getBoundingClientRect()
était appelé immédiatement après appendChild sans que Firefox n'ait fini
de calculer la mise en page, combiné à un transform: translateY dans
l'animation d'apparition du menu. Fix : positionnement hors écran initial,
force-layout via offsetHeight, puis pose finale. Animation CSS simplifiée
en opacité-only.

Stabilité popup au pin/unpin (tous navigateurs) : la popup épinglée
bougeait de 16px et changeait légèrement de taille quand on la
dé-épinglait via le bouton 📌. Cause : .pinned-popup avait padding-top
28px + border 2px alors que .soft-unpinned avait padding-top 12px + border
1px. Fix : .soft-unpinned conserve désormais les mêmes dimensions, juste
la couleur de bordure change (--border-strong gris au lieu de --accent
bleu) pour signaler le mode détaché.
This commit is contained in:
Quentin Rouiller
2026-04-27 04:57:03 +02:00
parent 3c7e7c0c25
commit d7b680fb3f
7 changed files with 76 additions and 21 deletions
+14 -8
View File
@@ -1670,7 +1670,7 @@ html.view-horizontal .timeline-noon {
}
/* ─────────────────────────────────────────────────────────────────────────
v4.1.20 : Message d'absence récurrente (Pillonel vendredi)
v4.1.20 : Message d'absence récurrente (configurée par tech)
───────────────────────────────────────────────────────────────────────── */
.tech-absence-recurring {
padding: 14px 12px;
@@ -2013,11 +2013,14 @@ body.modal-open {
z-index: 5 !important;
opacity: 1 !important;
pointer-events: auto !important;
/* Pas de bordure bleue, pas de padding-top (plus de dragbar), juste les
styles de base du tooltip (hérités de .tooltip). */
border: 1px solid var(--border-strong) !important;
/* v2026.5.43 : on conserve les MÊMES dimensions que .pinned-popup
(padding-top 28px, border 2px) pour que la popup ne bouge ni ne change
de taille au softUnpin. La dragbar est juste retirée (l'espace
reste, c'est le tradeoff pour préserver position + taille).
Bordure plus discrète (variable --border-strong au lieu de --accent). */
border: 2px solid var(--border-strong) !important;
box-shadow: var(--shadow-hover) !important;
padding-top: 12px !important;
padding-top: 28px !important;
animation: none !important;
}
@@ -3045,9 +3048,12 @@ body.popup-dragging .pinned-popup {
min-width: 130px;
animation: pill-hover-menu-appear 0.12s ease-out;
}
/* v2026.5.43 : pas de transform dans cette animation — Firefox inclut les
transforms dans getBoundingClientRect ce qui fausse le calcul de position
du menu juste après son insertion dans le DOM. Animation en opacité seule. */
@keyframes pill-hover-menu-appear {
from { opacity: 0; transform: translateY(4px); }
to { opacity: 1; transform: translateY(0); }
from { opacity: 0; }
to { opacity: 1; }
}
.pill-hover-menu-btn {
display: flex;
@@ -3419,7 +3425,7 @@ html.theme-dark .card.absence-cat-conge {
}
/* ==========================================================================
v2026.5.30 : absences récurrentes (Pillonel vendredi) en cyan
v2026.5.30 : absences récurrentes (configurées par tech) en cyan
(même couleur que Congé mais texte distinct "Absent le vendredi")
========================================================================== */