@zevra/ui 0.12.1 → 0.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/motion.js CHANGED
@@ -34,9 +34,12 @@
34
34
  io.unobserve(e.target);
35
35
  }
36
36
  },
37
- /* Déclenche un peu AVANT que l'élément soit franchement visible :
38
- * l'entrée accompagne l'arrivée au lieu de la suivre. */
39
- { rootMargin: '0px 0px -8% 0px', threshold: 0.01 }
37
+ /* Marge basse positive : l'entrée se déclenche un peu AVANT le
38
+ * viewport, un saut d'ancre n'atterrit jamais sur un écran vide.
39
+ * Marge haute généreuse : ce que le lecteur a dépassé en volant est
40
+ * déjà posé s'il remonte — remonter ne doit jamais rejouer quoi que
41
+ * ce soit, ni le faire attendre. */
42
+ { rootMargin: '80% 0px 12% 0px', threshold: 0.01 }
40
43
  );
41
44
 
42
45
  for (const el of document.querySelectorAll(ENTREES)) {
package/src/overlays.css CHANGED
@@ -44,6 +44,17 @@
44
44
 
45
45
  /* ─── Tiroir de navigation ──────────────────────────────────────────────*/
46
46
 
47
+ /* Tiroir ou modale ouverts : la page derrière ne défile plus. `:has()` est
48
+ * le seul chemin CSS pour verrouiller le body depuis un état descendant —
49
+ * sans lui, la molette fait défiler le fond sous le voile et le panneau
50
+ * semble dériver. */
51
+ html:has(.zv-drawer[data-open]),
52
+ html:has(.zv-drawer--open),
53
+ html:has(.zv-modal[data-open]),
54
+ html:has(.zv-modal--open) {
55
+ overflow: hidden;
56
+ }
57
+
47
58
  .zv-drawer {
48
59
  display: none;
49
60
  position: fixed;