@bebranded/bb-contents 1.0.108 → 1.0.109

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.
Files changed (2) hide show
  1. package/bb-contents.js +32 -4
  2. package/package.json +1 -1
package/bb-contents.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * BeBranded Contents
3
3
  * Contenus additionnels français pour Webflow
4
- * @version 1.0.108
4
+ * @version 1.0.109
5
5
  * @author BeBranded
6
6
  * @license MIT
7
7
  * @website https://www.bebranded.xyz
@@ -32,11 +32,11 @@
32
32
  window._bbContentsInitialized = true;
33
33
 
34
34
  // Log de démarrage simple (une seule fois)
35
- console.log('bb-contents | v1.0.108');
35
+ console.log('bb-contents | v1.0.109');
36
36
 
37
37
  // Configuration
38
38
  const config = {
39
- version: '1.0.108',
39
+ version: '1.0.109',
40
40
  debug: false, // Debug désactivé pour rendu propre
41
41
  prefix: 'bb-', // utilisé pour générer les sélecteurs (data-bb-*)
42
42
  youtubeEndpoint: null, // URL du worker YouTube (à définir par l'utilisateur)
@@ -475,6 +475,24 @@
475
475
  // pour éviter les images floues ou mal cadrées
476
476
  const allImages = scrollContainer.querySelectorAll('img');
477
477
  allImages.forEach(img => {
478
+ // Détecter si c'est un SVG (par l'extension du src ou le type)
479
+ const isSVG = img.src && (img.src.toLowerCase().endsWith('.svg') || img.src.includes('data:image/svg+xml'));
480
+
481
+ // Pour les SVG, optimiser le rendu sur Safari mobile
482
+ if (isSVG) {
483
+ // Forcer le GPU rendering pour améliorer la netteté
484
+ img.style.webkitTransform = 'translate3d(0, 0, 0)';
485
+ img.style.transform = 'translate3d(0, 0, 0)';
486
+
487
+ // Améliorer le rendu des SVG sur Safari
488
+ img.style.imageRendering = '-webkit-optimize-contrast';
489
+ img.style.imageRendering = 'crisp-edges';
490
+ img.style.imageRendering = 'auto'; // Fallback si crisp-edges n'est pas supporté
491
+
492
+ // Forcer un reflow pour stabiliser le rendu
493
+ void img.offsetHeight;
494
+ }
495
+
478
496
  // Vérifier si l'image a déjà des styles inline
479
497
  if (!img.style.objectFit) {
480
498
  const computedStyle = getComputedStyle(img);
@@ -482,14 +500,24 @@
482
500
  const objectPosition = computedStyle.objectPosition;
483
501
 
484
502
  // Appliquer object-fit si défini dans le CSS
503
+ // Pour les SVG, être plus prudent avec object-fit
485
504
  if (objectFit && objectFit !== 'none' && objectFit !== 'fill') {
486
- img.style.objectFit = objectFit;
505
+ if (!isSVG || objectFit === 'contain' || objectFit === 'scale-down') {
506
+ img.style.objectFit = objectFit;
507
+ }
487
508
  }
488
509
  // Appliquer object-position si défini dans le CSS
489
510
  if (objectPosition && objectPosition !== 'initial' && objectPosition !== '50% 50%') {
490
511
  img.style.objectPosition = objectPosition;
491
512
  }
492
513
  }
514
+
515
+ // Pour les SVG, forcer un re-render après application des styles
516
+ if (isSVG) {
517
+ requestAnimationFrame(() => {
518
+ void img.offsetHeight;
519
+ });
520
+ }
493
521
  });
494
522
 
495
523
  // Vérifier que les images ont une taille visible
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bebranded/bb-contents",
3
- "version": "1.0.108",
3
+ "version": "1.0.109",
4
4
  "description": "Contenus additionnels français pour Webflow",
5
5
  "main": "bb-contents.js",
6
6
  "scripts": {