🎠 CarrouselsGratuit · 0 NahnahPar NAHNAH AI
Images défilantes
Bandeau d’images qui défile en continu (tes photos ou des logos que tu as le droit d’utiliser), avec pause au survol, au clavier et par bouton.
Aperçu en direct
Données de démonstration (produits, menus, textes d’exemple) : dans ta boutique, ce sont les tiennes.
Photos : Unsplash / Pexels (exemples de l’aperçu, jamais inclus dans le code).
Code à copier
Fichier complet sections/nahnah-carrousel-images-defilantes.liquid (Liquid, CSS et JS inclus).
{%- comment -%} NAHNAH AI · Images défilantes (bibliothèque Sections & effets). Utilise tes propres images (presse, partenaires avec accord, ateliers…), jamais des logos de marques sans autorisation. {%- endcomment -%}
{%- if section.blocks.size > 0 -%}
<nn-carrousel-images-defilantes class="nn-carrousel-images-defilantes" style="--nn-mh: {{ section.settings.marge_haut }}px; --nn-mb: {{ section.settings.marge_bas }}px; --nn-fond: {{ section.settings.couleur_fond }}; --nn-texte: {{ section.settings.couleur_texte }}; --nn-accent: {{ section.settings.couleur_accent }}; --nn-duree: {{ section.settings.duree }}s; --nn-hauteur: {{ section.settings.hauteur }}px;">
{%- if section.settings.titre != blank -%}
<div class="nn-carrousel-images-defilantes__conteneur"><h2 class="nn-carrousel-images-defilantes__titre">{{ section.settings.titre }}</h2></div>
{%- endif -%}
<div class="nn-carrousel-images-defilantes__fenetre" role="region" aria-roledescription="carrousel" aria-label="{{ section.settings.titre | strip_html | default: 'Images' | escape }}">
<div class="nn-carrousel-images-defilantes__ruban nn-carrousel-images-defilantes__ruban--{{ section.settings.sens }}{% if section.settings.gris %} nn-carrousel-images-defilantes__ruban--gris{% endif %}" data-nn-ruban>
{%- for copie in (1..2) -%}
{%- assign doublon = forloop.last -%}
<ul class="nn-carrousel-images-defilantes__liste" role="list"{% if doublon %} aria-hidden="true"{% endif %}>
{%- for block in section.blocks -%}
<li class="nn-carrousel-images-defilantes__item" {{ block.shopify_attributes }}>
{%- if block.settings.lien != blank -%}<a class="nn-carrousel-images-defilantes__lien" href="{{ block.settings.lien }}"{% if doublon %} tabindex="-1"{% endif %}>{%- endif -%}
{%- if block.settings.image != blank -%}
{{ block.settings.image | image_url: height: 240 | image_tag: loading: 'lazy', class: 'nn-carrousel-images-defilantes__image', alt: block.settings.alt }}
{%- else -%}
{{ 'image' | placeholder_svg_tag: 'nn-carrousel-images-defilantes__image nn-carrousel-images-defilantes__image--vide' }}
{%- endif -%}
{%- if block.settings.lien != blank -%}</a>{%- endif -%}
</li>
{%- endfor -%}
</ul>
{%- endfor -%}
</div>
</div>
<div class="nn-carrousel-images-defilantes__conteneur nn-carrousel-images-defilantes__commandes">
<button type="button" class="nn-carrousel-images-defilantes__pause" data-nn-pause aria-pressed="false">Mettre en pause le défilement</button>
</div>
</nn-carrousel-images-defilantes>
{%- elsif request.design_mode -%}
<p class="nn-carrousel-images-defilantes__vide">Ajoute des images avec « Ajouter un bloc » → Image.</p>
{%- endif -%}
{% schema %}
{
"name": "Images défilantes",
"tag": "section",
"class": "nn-section-carrousel-images-defilantes",
"max_blocks": 16,
"settings": [
{
"type": "inline_richtext",
"id": "titre",
"label": "Titre",
"default": "Vu dans nos ateliers"
},
{
"type": "range",
"id": "duree",
"label": "Durée d’un tour complet",
"min": 10,
"max": 80,
"step": 2,
"default": 30,
"unit": "s"
},
{
"type": "range",
"id": "hauteur",
"label": "Hauteur des images",
"min": 40,
"max": 240,
"step": 8,
"default": 96,
"unit": "px"
},
{
"type": "select",
"id": "sens",
"label": "Sens du défilement",
"options": [
{
"value": "normal",
"label": "Vers la gauche"
},
{
"value": "inverse",
"label": "Vers la droite"
}
],
"default": "normal"
},
{
"type": "checkbox",
"id": "gris",
"label": "Images en niveaux de gris (couleur au survol)",
"default": false
},
{
"type": "header",
"content": "Couleurs"
},
{
"type": "color",
"id": "couleur_fond",
"label": "Fond",
"default": "#FFFFFF"
},
{
"type": "color",
"id": "couleur_texte",
"label": "Texte",
"default": "#111111"
},
{
"type": "color",
"id": "couleur_accent",
"label": "Accent",
"default": "#2EE6A8"
},
{
"type": "header",
"content": "Espacement"
},
{
"type": "range",
"id": "marge_haut",
"label": "Marge haute",
"min": 0,
"max": 120,
"step": 4,
"unit": "px",
"default": 32
},
{
"type": "range",
"id": "marge_bas",
"label": "Marge basse",
"min": 0,
"max": 120,
"step": 4,
"unit": "px",
"default": 32
}
],
"blocks": [
{
"type": "image",
"name": "Image",
"settings": [
{
"type": "image_picker",
"id": "image",
"label": "Image (ta photo, ou un logo que tu as le droit d’utiliser)"
},
{
"type": "text",
"id": "alt",
"label": "Description de l’image (accessibilité)"
},
{
"type": "url",
"id": "lien",
"label": "Lien (facultatif)"
}
]
}
],
"presets": [
{
"name": "Images défilantes"
}
]
}
{% endschema %}
{% stylesheet %}
.nn-carrousel-images-defilantes {
padding: var(--nn-mh) 0 var(--nn-mb);
background: var(--nn-fond);
color: var(--nn-texte);
}
.nn-carrousel-images-defilantes__conteneur {
max-width: 1200px;
margin: 0 auto;
padding: 0 16px;
}
.nn-carrousel-images-defilantes__titre {
margin: 0;
font-size: clamp(24px, 4vw, 36px);
line-height: 1.2;
color: inherit;
}
.nn-carrousel-images-defilantes__cache {
position: absolute !important;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0 0 0 0);
white-space: nowrap;
border: 0;
}
.nn-carrousel-images-defilantes__vide {
margin: 0;
padding: 16px;
border: 1px dashed currentColor;
border-radius: 12px;
font-size: 14px;
opacity: 0.8;
}
nn-carrousel-images-defilantes { display: block; }
.nn-carrousel-images-defilantes__titre { margin-bottom: 20px; text-align: center; }
.nn-carrousel-images-defilantes__fenetre {
overflow: hidden;
-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.nn-carrousel-images-defilantes__ruban {
display: flex;
width: max-content;
animation: nn-carrousel-images-defilantes-ruban var(--nn-duree, 30s) linear infinite;
}
.nn-carrousel-images-defilantes__ruban--inverse { animation-direction: reverse; }
.nn-carrousel-images-defilantes__fenetre:hover .nn-carrousel-images-defilantes__ruban,
.nn-carrousel-images-defilantes__fenetre:focus-within .nn-carrousel-images-defilantes__ruban,
.nn-carrousel-images-defilantes--pause .nn-carrousel-images-defilantes__ruban {
animation-play-state: paused;
}
@keyframes nn-carrousel-images-defilantes-ruban {
from { transform: translateX(0); }
to { transform: translateX(-50%); }
}
.nn-carrousel-images-defilantes__liste {
display: flex;
align-items: center;
justify-content: space-around;
gap: 48px;
min-width: 100vw;
margin: 0;
padding: 8px 24px;
list-style: none;
}
.nn-carrousel-images-defilantes__item { flex: none; }
.nn-carrousel-images-defilantes__lien {
display: block;
border-radius: 8px;
}
.nn-carrousel-images-defilantes__lien:focus-visible {
outline: 3px solid var(--nn-accent);
outline-offset: 4px;
}
.nn-carrousel-images-defilantes__image {
display: block;
width: auto;
height: var(--nn-hauteur, 96px);
max-width: 60vw;
object-fit: contain;
border-radius: 8px;
transition: filter 0.3s ease, opacity 0.3s ease;
}
.nn-carrousel-images-defilantes__image--vide { width: calc(var(--nn-hauteur, 96px) * 1.5); }
.nn-carrousel-images-defilantes__ruban--gris .nn-carrousel-images-defilantes__image {
filter: grayscale(1);
opacity: 0.75;
}
.nn-carrousel-images-defilantes__ruban--gris .nn-carrousel-images-defilantes__item:hover .nn-carrousel-images-defilantes__image {
filter: none;
opacity: 1;
}
.nn-carrousel-images-defilantes__commandes {
display: flex;
justify-content: center;
margin-top: 8px;
}
.nn-carrousel-images-defilantes__pause {
min-height: 44px;
padding: 0 16px;
border: 0;
background: none;
color: inherit;
font: inherit;
font-size: 14px;
text-decoration: underline;
text-underline-offset: 4px;
opacity: 0.75;
cursor: pointer;
}
.nn-carrousel-images-defilantes__pause:focus-visible {
outline: 3px solid var(--nn-accent);
outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
.nn-carrousel-images-defilantes__fenetre {
overflow-x: auto;
-webkit-mask-image: none;
mask-image: none;
}
.nn-carrousel-images-defilantes__liste[aria-hidden="true"],
.nn-carrousel-images-defilantes__commandes {
display: none;
}
.nn-carrousel-images-defilantes__liste { min-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
.nn-carrousel-images-defilantes * {
animation: none !important;
transition: none !important;
}
}
{% endstylesheet %}
{% javascript %}
(function () {
// Bouton pause du bandeau (le défilement s'arrête aussi au survol et au focus clavier)
function nnQuandPret(f) {
if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", f, { once: true });
else f();
}
if (!customElements.get("nn-carrousel-images-defilantes")) {
customElements.define("nn-carrousel-images-defilantes", class extends HTMLElement {
connectedCallback() {
var moi = this;
nnQuandPret(function () {
if (moi.nnPret || !moi.isConnected) return;
moi.nnPret = true;
moi.demarrer();
});
}
demarrer() {
var moi = this;
var bouton = this.querySelector("[data-nn-pause]");
if (!bouton) return;
bouton.addEventListener("click", function () {
var pause = bouton.getAttribute("aria-pressed") !== "true";
bouton.setAttribute("aria-pressed", pause ? "true" : "false");
bouton.textContent = pause ? "Reprendre le défilement" : "Mettre en pause le défilement";
moi.classList.toggle("nn-carrousel-images-defilantes--pause", pause);
});
}
});
}
})();
{% endjavascript %}
Licence NAHNAH AI : utilisation libre dans tes boutiques (y compris commerciales), modification permise, revente de l’élément seul interdite.
Prompt à copier
À coller dans Claude ou ChatGPT avec le fichier téléchargé (ou le code copié) : l’assistant t’aide à l’installer et à l’adapter à ta marque.
Tu es un expert des thèmes Shopify Online Store 2.0. Aide-moi à installer puis à adapter à ma marque cet élément gratuit de la bibliothèque NAHNAH AI.
Élément : « Images défilantes » (Carrousels)
Description : Bandeau d’images qui défile en continu (tes photos ou des logos que tu as le droit d’utiliser), avec pause au survol, au clavier et par bouton.
Page de l’élément (aperçu en direct) : https://ai.nahnah.shop/bibliotheque-shopify/carrousel-images-defilantes
Fichier : nahnah-carrousel-images-defilantes.liquid (bouton « Télécharger » de la page) ou le code copié avec le bouton « Copier » : je te le joins ou je le colle après ce message.
Emplacement dans le thème : sections/nahnah-carrousel-images-defilantes.liquid (Liquid, puis {% stylesheet %} et {% javascript %}, dans ce seul fichier).
Étapes d’installation :
1. Dans Shopify : Boutique en ligne → Thèmes → bouton « … » du thème → Modifier le code.
2. Dossier « sections » → « Ajouter une section » (ou « Nouveau fichier ») → nomme-la « nahnah-carrousel-images-defilantes ».
3. Efface le contenu proposé, colle le code de l’onglet Liquid (fichier complet), puis Enregistrer.
4. Ouvre Personnaliser → Ajouter une section → choisis-la, règle les textes et les couleurs, puis Enregistrer.
Ce que j’attends de toi :
- Guide-moi pas à pas dans Shopify : Boutique en ligne → Thèmes → « … » → Modifier le code → dossier sections → Ajouter une section, puis Personnaliser → Ajouter une section.
- Propose-moi d’adapter les couleurs, les textes et les liens à ma marque : demande d’abord mes couleurs (codes hexadécimaux), mon ton et mes liens.
- Garde le bloc {% schema %} et tous ses réglages (identifiants, types, presets) : je dois pouvoir tout régler ensuite dans l’éditeur de thème.
- Rends-moi le fichier complet modifié, prêt à coller, sans faux avis, fausse urgence ni chiffre inventé.
Si tu as le connecteur NAHNAH AI (MCP), récupère directement le code exact avec l’outil obtenir_code_element (id : carrousel-images-defilantes).Installer dans ma boutique
En un clic, la section est ajoutée à un thème de ta boutique Shopify connectée (un thème non publié par défaut).
Chargement de tes boutiques…
Installer dans Shopify
- Dans Shopify : Boutique en ligne → Thèmes → bouton « … » du thème → Modifier le code.
- Dossier « sections » → « Ajouter une section » (ou « Nouveau fichier ») → nomme-la « nahnah-carrousel-images-defilantes ».
- Efface le contenu proposé, colle le code de l’onglet Liquid (fichier complet), puis Enregistrer.
- Ouvre Personnaliser → Ajouter une section → choisis-la, règle les textes et les couleurs, puis Enregistrer.
Installer via le MCP
Depuis Claude, Claude Code ou ChatGPT connecté à NAHNAH AI, demande : « Donne-moi le code de l’élément carrousel-images-defilantes de la bibliothèque NAHNAH AI et les étapes pour l’installer ». L’assistant récupère le code et les étapes (outil obtenir_code_element), gratuitement.
Boutique connectée à NAHNAH AI : l’assistant peut aussi l’installer directement (outil installer_element).
Connecter le MCP