@bebranded/bb-contents 1.0.109 → 1.0.110

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 +35 -33
  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.109
4
+ * @version 1.0.110
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.109');
35
+ console.log('bb-contents | v1.0.110');
36
36
 
37
37
  // Configuration
38
38
  const config = {
39
- version: '1.0.109',
39
+ version: '1.0.110',
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)
@@ -478,46 +478,48 @@
478
478
  // Détecter si c'est un SVG (par l'extension du src ou le type)
479
479
  const isSVG = img.src && (img.src.toLowerCase().endsWith('.svg') || img.src.includes('data:image/svg+xml'));
480
480
 
481
- // Pour les SVG, optimiser le rendu sur Safari mobile
482
- if (isSVG) {
483
- // Forcer le GPU rendering pour améliorer la netteté
481
+ // SOLUTION MOBILE SAFARI : Pour les SVG sur mobile, éviter object-fit qui cause du flou
482
+ if (isSVG && isMobile) {
483
+ // Sur mobile, NE PAS appliquer object-fit aux SVG (c'est ce qui cause le flou)
484
+ // Le SVG utilisera ses dimensions naturelles ou celles du conteneur
485
+ img.style.objectFit = 'none';
486
+ img.style.objectPosition = 'center';
487
+
488
+ // Forcer le GPU rendering
484
489
  img.style.webkitTransform = 'translate3d(0, 0, 0)';
485
490
  img.style.transform = 'translate3d(0, 0, 0)';
486
491
 
487
- // Améliorer le rendu des SVG sur Safari
488
- img.style.imageRendering = '-webkit-optimize-contrast';
492
+ // Améliorer le rendu des SVG
489
493
  img.style.imageRendering = 'crisp-edges';
490
- img.style.imageRendering = 'auto'; // Fallback si crisp-edges n'est pas supporté
491
494
 
492
- // Forcer un reflow pour stabiliser le rendu
493
- void img.offsetHeight;
494
- }
495
-
496
- // Vérifier si l'image a déjà des styles inline
497
- if (!img.style.objectFit) {
498
- const computedStyle = getComputedStyle(img);
499
- const objectFit = computedStyle.objectFit;
500
- const objectPosition = computedStyle.objectPosition;
501
-
502
- // Appliquer object-fit si défini dans le CSS
503
- // Pour les SVG, être plus prudent avec object-fit
504
- if (objectFit && objectFit !== 'none' && objectFit !== 'fill') {
505
- if (!isSVG || objectFit === 'contain' || objectFit === 'scale-down') {
495
+ // S'assurer que le conteneur parent permet au SVG de s'afficher correctement
496
+ const parent = img.parentElement;
497
+ if (parent) {
498
+ parent.style.display = 'flex';
499
+ parent.style.alignItems = 'center';
500
+ parent.style.justifyContent = 'center';
501
+ }
502
+ } else {
503
+ // Pour les images non-SVG ou sur desktop, appliquer les styles normaux
504
+ // Vérifier si l'image a déjà des styles inline
505
+ if (!img.style.objectFit) {
506
+ const computedStyle = getComputedStyle(img);
507
+ const objectFit = computedStyle.objectFit;
508
+ const objectPosition = computedStyle.objectPosition;
509
+
510
+ // Appliquer object-fit si défini dans le CSS
511
+ if (objectFit && objectFit !== 'none' && objectFit !== 'fill') {
506
512
  img.style.objectFit = objectFit;
507
513
  }
508
- }
509
- // Appliquer object-position si défini dans le CSS
510
- if (objectPosition && objectPosition !== 'initial' && objectPosition !== '50% 50%') {
511
- img.style.objectPosition = objectPosition;
514
+ // Appliquer object-position si défini dans le CSS
515
+ if (objectPosition && objectPosition !== 'initial' && objectPosition !== '50% 50%') {
516
+ img.style.objectPosition = objectPosition;
517
+ }
512
518
  }
513
519
  }
514
520
 
515
- // Pour les SVG, forcer un re-render après application des styles
516
- if (isSVG) {
517
- requestAnimationFrame(() => {
518
- void img.offsetHeight;
519
- });
520
- }
521
+ // Forcer un reflow pour stabiliser le rendu
522
+ void img.offsetHeight;
521
523
  });
522
524
 
523
525
  // 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.109",
3
+ "version": "1.0.110",
4
4
  "description": "Contenus additionnels français pour Webflow",
5
5
  "main": "bb-contents.js",
6
6
  "scripts": {