Aller au contenu

❓ FAQGratuit · 0 NahnahPar NAHNAH

FAQ en carrousel à faire glisser

Une question par carte dans un carrousel horizontal à faire glisser au doigt (scroll-snap), avec flèches et points de navigation, parfait sur mobile.

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-faq-carrousel-swipe.liquid (Liquid, CSS et JS inclus).

{%- comment -%} NAHNAH AI · FAQ en carrousel à faire glisser {%- endcomment -%}
<section class="nn-faq-carrousel-swipe" aria-roledescription="carrousel" style="--nn-fond: {{ section.settings.couleur_fond }}; --nn-carte: {{ section.settings.couleur_carte }}; --nn-accent: {{ section.settings.couleur_accent }}; --nn-texte: {{ section.settings.couleur_texte }};">
  <div class="nn-faq-carrousel-swipe__entete">
    {%- if section.settings.titre != blank -%}<h2>{{ section.settings.titre | escape }}</h2>{%- endif -%}
    <div class="nn-faq-carrousel-swipe__fleches">
      <button type="button" data-nn-dir="-1" aria-label="{{ section.settings.label_precedent | escape }}">←</button>
      <button type="button" data-nn-dir="1" aria-label="{{ section.settings.label_suivant | escape }}">→</button>
    </div>
  </div>
  <div class="nn-faq-carrousel-swipe__piste" tabindex="0">
    {%- for bloc in section.blocks -%}
      <article class="nn-faq-carrousel-swipe__carte" aria-roledescription="diapositive" aria-label="{{ forloop.index }} / {{ forloop.length }}" {{ bloc.shopify_attributes }}>
        <span class="nn-faq-carrousel-swipe__num">{{ forloop.index | prepend: '0' | slice: -2, 2 }}</span>
        <h3>{{ bloc.settings.question | escape }}</h3>
        <div class="nn-faq-carrousel-swipe__reponse">{{ bloc.settings.reponse }}</div>
      </article>
    {%- endfor -%}
  </div>
  <div class="nn-faq-carrousel-swipe__points" aria-hidden="true">
    {%- for bloc in section.blocks -%}<span></span>{%- endfor -%}
  </div>
  <script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{%- for bloc in section.blocks -%}{"@type":"Question","name":{{ bloc.settings.question | json }},"acceptedAnswer":{"@type":"Answer","text":{{ bloc.settings.reponse | strip_html | json }}}}{%- unless forloop.last -%},{%- endunless -%}{%- endfor -%}]}</script>
</section>
{% schema %}
{"name":"FAQ carrousel","settings":[
{"type":"text","id":"titre","label":"Titre","default":"Tes questions, une par une"},
{"type":"text","id":"label_precedent","label":"Libellé flèche précédente","default":"Question précédente"},
{"type":"text","id":"label_suivant","label":"Libellé flèche suivante","default":"Question suivante"},
{"type":"color","id":"couleur_fond","label":"Fond","default":"#0F172A"},
{"type":"color","id":"couleur_carte","label":"Cartes","default":"#1E293B"},
{"type":"color","id":"couleur_accent","label":"Accent","default":"#F59E0B"},
{"type":"color","id":"couleur_texte","label":"Texte","default":"#F8FAFC"}],
"blocks":[{"type":"question","name":"Question","settings":[{"type":"text","id":"question","label":"Question","default":"D'où sont expédiés vos produits ?"},{"type":"richtext","id":"reponse","label":"Réponse","default":"<p>Indique ici l'origine de tes expéditions.</p>"}]}],
"presets":[{"name":"FAQ en carrousel à faire glisser","blocks":[{"type":"question"},{"type":"question","settings":{"question":"Comment utiliser un code promo ?"}},{"type":"question","settings":{"question":"Puis-je offrir un article ?"}},{"type":"question","settings":{"question":"Mes données sont-elles protégées ?"}}]}]}
{% endschema %}

{% stylesheet %}
/* Carrousel horizontal natif avec scroll-snap */
.nn-faq-carrousel-swipe{background:var(--nn-fond);color:var(--nn-texte);padding:56px 0;font-family:system-ui,sans-serif;overflow:hidden}
.nn-faq-carrousel-swipe__entete{display:flex;justify-content:space-between;align-items:end;gap:16px;max-width:1100px;margin:0 auto 24px;padding:0 16px}
.nn-faq-carrousel-swipe h2{margin:0;font-size:clamp(26px,4vw,40px)}
.nn-faq-carrousel-swipe__fleches{display:flex;gap:8px}
.nn-faq-carrousel-swipe__fleches button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:transparent;color:inherit;font-size:18px;cursor:pointer}
.nn-faq-carrousel-swipe__fleches button:hover{background:var(--nn-accent);border-color:var(--nn-accent);color:#000}
.nn-faq-carrousel-swipe button:focus-visible,.nn-faq-carrousel-swipe__piste:focus-visible{outline:2px solid var(--nn-accent);outline-offset:3px}
.nn-faq-carrousel-swipe__piste{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px max(16px,calc((100% - 1100px)/2 + 16px)) 16px;scrollbar-width:none}
.nn-faq-carrousel-swipe__piste::-webkit-scrollbar{display:none}
.nn-faq-carrousel-swipe__carte{flex:0 0 min(82%,360px);scroll-snap-align:start;background:var(--nn-carte);border-radius:24px;padding:28px;display:flex;flex-direction:column;gap:12px;min-height:260px}
.nn-faq-carrousel-swipe__num{font-size:40px;font-weight:800;color:var(--nn-accent);line-height:1}
.nn-faq-carrousel-swipe__carte h3{margin:0;font-size:20px;line-height:1.3}
.nn-faq-carrousel-swipe__reponse{line-height:1.6;opacity:.8}
.nn-faq-carrousel-swipe__points{display:flex;justify-content:center;gap:8px;margin-top:8px}
.nn-faq-carrousel-swipe__points span{width:8px;height:8px;border-radius:8px;background:rgba(255,255,255,.25);transition:width .3s,background .3s}
.nn-faq-carrousel-swipe__points span.est-actif{width:24px;background:var(--nn-accent)}
@media (prefers-reduced-motion: reduce){.nn-faq-carrousel-swipe__piste{scroll-behavior:auto}.nn-faq-carrousel-swipe__points span{transition:none}}
{% endstylesheet %}

{% javascript %}
/* Flèches, clavier et points actifs du carrousel */
(function () {
  document.querySelectorAll('.nn-faq-carrousel-swipe').forEach(function (section) {
    var piste = section.querySelector('.nn-faq-carrousel-swipe__piste');
    var cartes = piste.querySelectorAll('.nn-faq-carrousel-swipe__carte');
    var points = section.querySelectorAll('.nn-faq-carrousel-swipe__points span');
    if (!cartes.length) return;
    // Fait défiler d'une carte dans la direction voulue
    function defiler(dir) {
      piste.scrollBy({ left: dir * (cartes[0].offsetWidth + 16) });
    }
    section.querySelectorAll('[data-nn-dir]').forEach(function (b) {
      b.addEventListener('click', function () { defiler(Number(b.dataset.nnDir)); });
    });
    piste.addEventListener('keydown', function (e) {
      if (e.key === 'ArrowRight') { e.preventDefault(); defiler(1); }
      if (e.key === 'ArrowLeft') { e.preventDefault(); defiler(-1); }
    });
    // Met en avant le point de la carte la plus visible
    function majPoints() {
      var index = Math.round(piste.scrollLeft / (cartes[0].offsetWidth + 16));
      points.forEach(function (p, i) { p.classList.toggle('est-actif', i === Math.min(index, points.length - 1)); });
    }
    piste.addEventListener('scroll', function () { window.requestAnimationFrame(majPoints); }, { passive: true });
    majPoints();
  });
})();
{% endjavascript %}
Télécharger le fichier .liquid

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 : « FAQ en carrousel à faire glisser » (FAQ)
Description : Une question par carte dans un carrousel horizontal à faire glisser au doigt (scroll-snap), avec flèches et points de navigation, parfait sur mobile.
Page de l’élément (aperçu en direct) : https://ai.nahnah.shop/bibliotheque-shopify/faq-carrousel-swipe
Fichier : nahnah-faq-carrousel-swipe.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-faq-carrousel-swipe.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-faq-carrousel-swipe ».
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 : faq-carrousel-swipe).

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

  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-faq-carrousel-swipe ».
  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.

Installer via le MCP

Depuis Claude, Claude Code ou ChatGPT connecté à NAHNAH AI, demande : « Donne-moi le code de l’élément faq-carrousel-swipe 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

Dans la même catégorie