@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.
- package/bb-contents.js +32 -4
- 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.
|
|
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.
|
|
35
|
+
console.log('bb-contents | v1.0.109');
|
|
36
36
|
|
|
37
37
|
// Configuration
|
|
38
38
|
const config = {
|
|
39
|
-
version: '1.0.
|
|
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
|
-
|
|
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
|