Aller au contenu

🎨 Thèmes completsGratuit · 0 NahnahPar NAHNAH

Thème Pénombre

Thème complet pour la maison et la déco, ambiance intérieur au crépuscule : fond brun profond, serif crème, halo de lampe qui suit le curseur et cartes produits inclinables en 3D.

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/nn-th-penombre.liquid (Liquid, CSS et JS inclus).

{%- comment -%} NAHNAH AI · Thème Pénombre {%- endcomment -%}
<div class="nn-themes-penombre" style="--nn-fond: {{ section.settings.couleur_fond }}; --nn-texte: {{ section.settings.couleur_texte }}; --nn-accent: {{ section.settings.couleur_accent }};">
  <header class="nn-themes-penombre__entete" data-nn-sticky>
    <a class="nn-themes-penombre__marque" href="{{ routes.root_url }}">{{ shop.name | escape }}</a>
    <nav class="nn-themes-penombre__nav">{%- for l in linklists[section.settings.menu].links limit: 5 -%}<a href="{{ l.url }}">{{ l.title | escape }}</a>{%- endfor -%}</nav>
    <a class="nn-themes-penombre__panier" href="{{ routes.cart_url }}">Panier ({{ cart.item_count }})</a>
  </header>
  <section class="nn-themes-penombre__heros" data-nn-spot>
    <div class="nn-themes-penombre__halo" aria-hidden="true"></div>
    {%- if section.settings.image_heros -%}<div class="nn-themes-penombre__visuel" data-nn-parallaxe="0.18">{{ section.settings.image_heros | image_url: width: 1800 | image_tag: loading: 'eager', alt: section.settings.titre }}</div>{%- endif -%}
    <div class="nn-themes-penombre__heros-txt" data-nn-reveal>
      <p class="nn-themes-penombre__surtitre">{{ section.settings.surtitre | escape }}</p>
      <h1>{{ section.settings.titre | escape }}</h1>
      {%- if section.settings.texte != blank -%}<p class="nn-themes-penombre__chapo">{{ section.settings.texte | escape }}</p>{%- endif -%}
      <a class="nn-themes-penombre__btn" href="{{ section.settings.lien_bouton | default: routes.all_products_collection_url }}">{{ section.settings.bouton | escape }}</a>
    </div>
  </section>
  {%- if section.settings.bandeau != blank -%}<div class="nn-themes-penombre__bandeau" aria-hidden="true"><div class="nn-themes-penombre__piste">{%- for i in (1..6) -%}<span>{{ section.settings.bandeau | escape }}</span>{%- endfor -%}</div></div>{%- endif -%}
  <section class="nn-themes-penombre__collections">
    <h2 data-nn-reveal>{{ section.settings.titre_collections | escape }}</h2>
    <div class="nn-themes-penombre__grille">
      {%- for c in section.settings.collections -%}<a class="nn-themes-penombre__col" href="{{ c.url }}" data-nn-reveal data-nn-tilt>{%- if c.featured_image -%}{{ c.featured_image | image_url: width: 900 | image_tag: loading: 'lazy', alt: c.title }}{%- else -%}{{ 'collection-1' | placeholder_svg_tag }}{%- endif -%}<span>{{ c.title | escape }}</span></a>{%- else -%}{%- for i in (1..3) -%}<div class="nn-themes-penombre__col" data-nn-reveal>{{ 'collection-1' | placeholder_svg_tag }}<span>Choisis tes collections</span></div>{%- endfor -%}{%- endfor -%}
    </div>
  </section>
  <section class="nn-themes-penombre__vedettes">
    <div class="nn-themes-penombre__tete"><h2 data-nn-reveal>{{ section.settings.titre_produits | escape }}</h2><div class="nn-themes-penombre__fleches"><button type="button" data-nn-prec aria-label="Produits précédents">←</button><button type="button" data-nn-suiv aria-label="Produits suivants">→</button></div></div>
    <div class="nn-themes-penombre__carrousel" data-nn-carrousel>
      {%- for p in section.settings.collection_vedette.products limit: section.settings.nb_produits -%}<a class="nn-themes-penombre__produit" href="{{ p.url }}" data-nn-tilt><span class="nn-themes-penombre__img">{%- if p.featured_image -%}{{ p.featured_image | image_url: width: 700 | image_tag: loading: 'lazy', alt: p.title }}{%- else -%}{{ 'product-1' | placeholder_svg_tag }}{%- endif -%}</span><span class="nn-themes-penombre__nom">{{ p.title | escape }}</span><span class="nn-themes-penombre__prix">{{ p.price | money }}</span></a>{%- else -%}{%- for i in (1..4) -%}<div class="nn-themes-penombre__produit"><span class="nn-themes-penombre__img">{{ 'product-1' | placeholder_svg_tag }}</span><span class="nn-themes-penombre__nom">Choisis une collection vedette</span></div>{%- endfor -%}{%- endfor -%}
    </div>
  </section>
  <section class="nn-themes-penombre__histoire">
    <div class="nn-themes-penombre__recit" data-nn-reveal><h2>{{ section.settings.titre_histoire | escape }}</h2>{{ section.settings.texte_histoire }}</div>
    <div class="nn-themes-penombre__chiffres">
      {%- if section.settings.chiffre_1 != blank -%}<p data-nn-reveal><strong data-nn-compte="{{ section.settings.chiffre_1 }}">{{ section.settings.chiffre_1 }}</strong><span>{{ section.settings.legende_1 | escape }}</span></p>{%- endif -%}
      {%- if section.settings.chiffre_2 != blank -%}<p data-nn-reveal><strong data-nn-compte="{{ section.settings.chiffre_2 }}">{{ section.settings.chiffre_2 }}</strong><span>{{ section.settings.legende_2 | escape }}</span></p>{%- endif -%}
      {%- if section.settings.chiffre_3 != blank -%}<p data-nn-reveal><strong data-nn-compte="{{ section.settings.chiffre_3 }}">{{ section.settings.chiffre_3 }}</strong><span>{{ section.settings.legende_3 | escape }}</span></p>{%- endif -%}
    </div>
  </section>
  {%- assign avis = section.blocks | where: 'type', 'avis' -%}
  {%- if avis.size > 0 or request.design_mode -%}
  <section class="nn-themes-penombre__avis">
    <h2 data-nn-reveal>{{ section.settings.titre_avis | escape }}</h2>
    <div class="nn-themes-penombre__liste-avis">
      {%- for b in avis -%}{%- if b.settings.texte != blank -%}<figure class="nn-themes-penombre__carte-avis" data-nn-reveal {{ b.shopify_attributes }}><blockquote>{{ b.settings.texte | escape }}</blockquote><figcaption>{{ b.settings.auteur | escape }}</figcaption></figure>{%- endif -%}{%- endfor -%}
      {%- if avis.size == 0 -%}<p class="nn-themes-penombre__aide">Ajoute ici les vrais avis de tes clients avec le bloc « Avis client ».</p>{%- endif -%}
    </div>
  </section>
  {%- endif -%}
  <section class="nn-themes-penombre__faq">
    <h2 data-nn-reveal>{{ section.settings.titre_faq | escape }}</h2>
    {%- for b in section.blocks -%}{%- if b.type == 'question' -%}<details class="nn-themes-penombre__question" data-nn-reveal {{ b.shopify_attributes }}><summary>{{ b.settings.question | escape }}</summary><div>{{ b.settings.reponse }}</div></details>{%- endif -%}{%- endfor -%}
  </section>
  <footer class="nn-themes-penombre__pied">
    <div><p class="nn-themes-penombre__marque">{{ shop.name | escape }}</p><nav>{%- for l in linklists[section.settings.menu_pied].links -%}<a href="{{ l.url }}">{{ l.title | escape }}</a>{%- endfor -%}</nav></div>
    {%- form 'customer' -%}<input type="hidden" name="contact[tags]" value="newsletter"><input type="email" name="contact[email]" placeholder="Votre e-mail" required aria-label="E-mail"><button type="submit">{{ section.settings.bouton_newsletter | escape }}</button>{%- endform -%}
    <small>© {{ 'now' | date: '%Y' }} {{ shop.name | escape }}</small>
  </footer>
</div>
{% schema %}
{"name":"Thème Pénombre","settings":[
{"type":"header","content":"En-tête"},
{"type":"link_list","id":"menu","label":"Menu principal","default":"main-menu"},
{"type":"header","content":"Héros"},
{"type":"image_picker","id":"image_heros","label":"Image du héros"},
{"type":"text","id":"surtitre","label":"Surtitre","default":"Maison & intérieur"},
{"type":"text","id":"titre","label":"Titre","default":"La lumière douce de chez soi"},
{"type":"textarea","id":"texte","label":"Texte","default":"Des objets choisis pour les soirées longues et les pièces qui respirent."},
{"type":"text","id":"bouton","label":"Bouton","default":"Découvrir"},
{"type":"url","id":"lien_bouton","label":"Lien du bouton"},
{"type":"text","id":"bandeau","label":"Texte du bandeau défilant","default":"Coton · Bois · Lin · Céramique"},
{"type":"header","content":"Collections"},
{"type":"text","id":"titre_collections","label":"Titre","default":"Par pièce"},
{"type":"collection_list","id":"collections","label":"Collections","limit":3},
{"type":"header","content":"Produits vedettes"},
{"type":"text","id":"titre_produits","label":"Titre","default":"Nos pièces du moment"},
{"type":"collection","id":"collection_vedette","label":"Collection vedette"},
{"type":"range","id":"nb_produits","label":"Nombre de produits","min":3,"max":12,"step":1,"default":8},
{"type":"header","content":"Histoire"},
{"type":"text","id":"titre_histoire","label":"Titre","default":"Notre histoire"},
{"type":"richtext","id":"texte_histoire","label":"Texte","default":"<p>Raconte ici comment ta marque est née et ce qui guide tes choix.</p>"},
{"type":"number","id":"chiffre_1","label":"Chiffre 1 (laisser vide pour masquer)"},
{"type":"text","id":"legende_1","label":"Légende 1"},
{"type":"number","id":"chiffre_2","label":"Chiffre 2"},
{"type":"text","id":"legende_2","label":"Légende 2"},
{"type":"number","id":"chiffre_3","label":"Chiffre 3"},
{"type":"text","id":"legende_3","label":"Légende 3"},
{"type":"header","content":"Avis et FAQ"},
{"type":"text","id":"titre_avis","label":"Titre des avis","default":"Ils en parlent"},
{"type":"text","id":"titre_faq","label":"Titre de la FAQ","default":"Questions fréquentes"},
{"type":"header","content":"Pied de page"},
{"type":"link_list","id":"menu_pied","label":"Menu du pied","default":"footer"},
{"type":"text","id":"bouton_newsletter","label":"Bouton newsletter","default":"S'inscrire"},
{"type":"header","content":"Couleurs"},
{"type":"color","id":"couleur_fond","label":"Fond","default":"#1E1712"},
{"type":"color","id":"couleur_texte","label":"Texte","default":"#F3E9DA"},
{"type":"color","id":"couleur_accent","label":"Accent laiton","default":"#C9A15B"}],
"blocks":[
{"type":"avis","name":"Avis client","settings":[{"type":"textarea","id":"texte","label":"Avis (copie un vrai avis client)"},{"type":"text","id":"auteur","label":"Prénom du client"}]},
{"type":"question","name":"Question FAQ","settings":[{"type":"text","id":"question","label":"Question","default":"Quels sont les délais de livraison ?"},{"type":"richtext","id":"reponse","label":"Réponse","default":"<p>Indique ici tes délais réels.</p>"}]}],
"presets":[{"name":"Thème Pénombre","blocks":[{"type":"question"},{"type":"question","settings":{"question":"Puis-je retourner un article ?","reponse":"<p>Décris ici ta politique de retour.</p>"}}]}]}
{% endschema %}

{% stylesheet %}
/* NAHNAH AI · Thème Pénombre : intérieur au crépuscule, serif crème et laiton */
.nn-themes-penombre{background:var(--nn-fond);color:var(--nn-texte);font-family:Georgia,"Times New Roman",serif;overflow-x:clip}
.nn-themes-penombre a{color:inherit;text-decoration:none}
.nn-themes-penombre h1,.nn-themes-penombre h2{font-weight:400;letter-spacing:-.02em;margin:0}
.nn-themes-penombre h2{font-size:clamp(28px,4vw,48px);margin-bottom:28px}
.nn-themes-penombre__entete{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px 16px;font-family:system-ui,sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase;transition:padding .4s,background .4s,box-shadow .4s}
.nn-themes-penombre__entete.est-colle{padding:12px 16px;background:color-mix(in srgb,var(--nn-fond) 88%,transparent);backdrop-filter:blur(10px);box-shadow:0 1px 0 color-mix(in srgb,var(--nn-accent) 40%,transparent)}
.nn-themes-penombre__marque{font-family:Georgia,serif;font-size:20px;letter-spacing:.02em;text-transform:none}
.nn-themes-penombre__nav{display:flex;gap:22px;flex-wrap:wrap}
.nn-themes-penombre__nav a:hover,.nn-themes-penombre__pied a:hover{color:var(--nn-accent)}
.nn-themes-penombre__heros{--nn-x:50%;--nn-y:40%;position:relative;min-height:88vh;display:grid;align-items:end;padding:60px 16px;overflow:hidden;isolation:isolate}
.nn-themes-penombre__halo{position:absolute;inset:0;z-index:-1;background:radial-gradient(520px circle at var(--nn-x) var(--nn-y),color-mix(in srgb,var(--nn-accent) 38%,transparent),transparent 70%);transition:background .2s}
.nn-themes-penombre__visuel{position:absolute;inset:-10% 0 0;z-index:-2;opacity:.45}
.nn-themes-penombre__visuel img{width:100%;height:100%;object-fit:cover;filter:sepia(.3) brightness(.8)}
.nn-themes-penombre__heros-txt{max-width:760px}
.nn-themes-penombre__surtitre{font-family:system-ui,sans-serif;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--nn-accent)}
.nn-themes-penombre h1{font-size:clamp(44px,8vw,112px);line-height:.95;font-style:italic}
.nn-themes-penombre__chapo{max-width:46ch;line-height:1.7;opacity:.8;font-size:18px}
.nn-themes-penombre__btn{display:inline-block;margin-top:18px;padding:15px 30px;border:1px solid var(--nn-accent);border-radius:999px;font-family:system-ui,sans-serif;font-size:13px;letter-spacing:.12em;text-transform:uppercase;transition:background .3s,color .3s}
.nn-themes-penombre__btn:hover{background:var(--nn-accent);color:var(--nn-fond)}
.nn-themes-penombre__bandeau{overflow:hidden;border-block:1px solid color-mix(in srgb,var(--nn-accent) 45%,transparent);padding:16px 0}
.nn-themes-penombre__piste{display:flex;gap:56px;width:max-content;animation:nn-penombre-defile 32s linear infinite;font-size:22px;font-style:italic}
.nn-themes-penombre__piste span::after{content:"✦";margin-left:56px;color:var(--nn-accent);font-style:normal}
@keyframes nn-penombre-defile{to{transform:translateX(-50%)}}
.nn-themes-penombre__collections,.nn-themes-penombre__vedettes,.nn-themes-penombre__histoire,.nn-themes-penombre__avis,.nn-themes-penombre__faq{padding:80px 16px;max-width:1280px;margin:0 auto}
.nn-themes-penombre__grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.nn-themes-penombre__col{position:relative;display:block;aspect-ratio:3/4;border-radius:200px 200px 8px 8px;overflow:hidden;background:color-mix(in srgb,var(--nn-texte) 8%,transparent)}
.nn-themes-penombre__col img,.nn-themes-penombre__col svg{width:100%;height:100%;object-fit:cover}
.nn-themes-penombre__col span{position:absolute;left:0;right:0;bottom:0;padding:22px;font-size:24px;background:linear-gradient(transparent,rgba(0,0,0,.6))}
[data-nn-tilt]{transform:perspective(900px) rotateX(var(--nn-rx,0deg)) rotateY(var(--nn-ry,0deg));transition:transform .25s ease-out;transform-style:preserve-3d}
.nn-themes-penombre__tete{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap}
.nn-themes-penombre__fleches{display:flex;gap:8px;margin-bottom:28px}
.nn-themes-penombre__fleches button{width:46px;height:46px;border-radius:50%;border:1px solid var(--nn-accent);background:transparent;color:inherit;font-size:18px;cursor:pointer}
.nn-themes-penombre__carrousel{display:grid;grid-auto-flow:column;grid-auto-columns:min(72vw,280px);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:8px}
.nn-themes-penombre__carrousel::-webkit-scrollbar{display:none}
.nn-themes-penombre__produit{display:flex;flex-direction:column;gap:8px;scroll-snap-align:start}
.nn-themes-penombre__img{aspect-ratio:4/5;overflow:hidden;border-radius:6px;background:color-mix(in srgb,var(--nn-texte) 8%,transparent)}
.nn-themes-penombre__img img,.nn-themes-penombre__img svg{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.nn-themes-penombre__produit:hover img{transform:scale(1.05)}
.nn-themes-penombre__nom{font-size:18px}
.nn-themes-penombre__prix{font-family:system-ui,sans-serif;font-size:14px;color:var(--nn-accent)}
.nn-themes-penombre__histoire{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:48px;align-items:center}
.nn-themes-penombre__recit p{line-height:1.8;font-size:18px;opacity:.85}
.nn-themes-penombre__chiffres{display:grid;gap:24px}
.nn-themes-penombre__chiffres p{margin:0;display:flex;align-items:baseline;gap:14px;border-bottom:1px solid color-mix(in srgb,var(--nn-accent) 35%,transparent);padding-bottom:16px}
.nn-themes-penombre__chiffres strong{font-size:clamp(40px,6vw,72px);font-weight:400;color:var(--nn-accent)}
.nn-themes-penombre__liste-avis{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.nn-themes-penombre__carte-avis{margin:0;padding:28px;border:1px solid color-mix(in srgb,var(--nn-accent) 35%,transparent);border-radius:8px}
.nn-themes-penombre__carte-avis blockquote{margin:0 0 16px;font-size:19px;font-style:italic;line-height:1.6}
.nn-themes-penombre__carte-avis figcaption{font-family:system-ui,sans-serif;font-size:13px;color:var(--nn-accent)}
.nn-themes-penombre__aide{opacity:.6;font-style:italic}
.nn-themes-penombre__question{border-bottom:1px solid color-mix(in srgb,var(--nn-texte) 20%,transparent);padding:20px 0}
.nn-themes-penombre__question summary{cursor:pointer;font-size:20px;list-style:none;display:flex;justify-content:space-between}
.nn-themes-penombre__question summary::after{content:"+";color:var(--nn-accent);transition:transform .3s}
.nn-themes-penombre__question[open] summary::after{transform:rotate(45deg)}
.nn-themes-penombre__question div{line-height:1.7;opacity:.8}
.nn-themes-penombre__pied{display:grid;gap:28px;padding:60px 16px 30px;border-top:1px solid color-mix(in srgb,var(--nn-accent) 35%,transparent);font-family:system-ui,sans-serif;font-size:14px}
.nn-themes-penombre__pied nav{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}
.nn-themes-penombre__pied form{display:flex;flex-wrap:wrap;max-width:480px;border-bottom:1px solid var(--nn-accent)}
.nn-themes-penombre__pied input[type=email]{flex:1 1 200px;min-width:0;padding:12px 2px;border:0;background:transparent;color:inherit;font:inherit}
.nn-themes-penombre__pied button{border:0;background:transparent;color:var(--nn-accent);font:inherit;cursor:pointer;padding:12px 2px}
.nn-themes-penombre.nn-js [data-nn-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}
.nn-themes-penombre.nn-js [data-nn-reveal].est-visible{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.nn-themes-penombre__piste{animation:none}.nn-themes-penombre.nn-js [data-nn-reveal]{opacity:1;transform:none;transition:none}[data-nn-tilt],.nn-themes-penombre__img img{transition:none;transform:none}}
{% endstylesheet %}

{% javascript %}
// NAHNAH AI · Thème Pénombre : menu sticky, halo au curseur, parallaxe, apparition, inclinaison 3D, compteurs et carrousel
(function () {
  var reduit = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
  var tactile = window.matchMedia('(pointer: coarse)').matches;
  document.querySelectorAll('.nn-themes-penombre').forEach(function (racine) {
    racine.classList.add('nn-js');
    // Menu sticky et parallaxe du visuel au défilement
    var entete = racine.querySelector('[data-nn-sticky]');
    var couches = racine.querySelectorAll('[data-nn-parallaxe]');
    function auDefilement() {
      if (entete) entete.classList.toggle('est-colle', window.scrollY > 40);
      if (reduit) return;
      couches.forEach(function (el) {
        var vitesse = parseFloat(el.getAttribute('data-nn-parallaxe')) || 0;
        var haut = el.parentElement.getBoundingClientRect().top;
        el.style.transform = 'translate3d(0,' + (-haut * vitesse).toFixed(1) + 'px,0)';
      });
    }
    window.addEventListener('scroll', auDefilement, { passive: true });
    auDefilement();
    // Compteurs animés de 0 jusqu'à la valeur saisie
    function compter(el) {
      var cible = parseFloat(el.getAttribute('data-nn-compte')) || 0, debut = null;
      if (reduit) { el.textContent = cible; return; }
      function pas(t) {
        if (!debut) debut = t;
        var p = Math.min((t - debut) / 1600, 1);
        el.textContent = Math.round(cible * (1 - Math.pow(1 - p, 3)));
        if (p < 1) requestAnimationFrame(pas);
      }
      requestAnimationFrame(pas);
    }
    // Apparition au défilement
    var cibles = racine.querySelectorAll('[data-nn-reveal]');
    if (reduit || !('IntersectionObserver' in window)) {
      cibles.forEach(function (el) { el.classList.add('est-visible'); });
      racine.querySelectorAll('[data-nn-compte]').forEach(compter);
    } else {
      var obs = new IntersectionObserver(function (entrees) {
        entrees.forEach(function (e) {
          if (!e.isIntersecting) return;
          e.target.classList.add('est-visible');
          e.target.querySelectorAll('[data-nn-compte]').forEach(compter);
          obs.unobserve(e.target);
        });
      }, { threshold: 0.15 });
      cibles.forEach(function (el) { obs.observe(el); });
    }
    // Halo de lampe qui suit le curseur dans le héros
    var spot = racine.querySelector('[data-nn-spot]');
    if (spot && !reduit) spot.addEventListener('pointermove', function (e) {
      var r = spot.getBoundingClientRect();
      spot.style.setProperty('--nn-x', ((e.clientX - r.left) / r.width * 100).toFixed(1) + '%');
      spot.style.setProperty('--nn-y', ((e.clientY - r.top) / r.height * 100).toFixed(1) + '%');
    });
    // Inclinaison 3D des cartes au survol
    if (!reduit && !tactile) racine.querySelectorAll('[data-nn-tilt]').forEach(function (carte) {
      carte.addEventListener('pointermove', function (e) {
        var r = carte.getBoundingClientRect();
        carte.style.setProperty('--nn-ry', (((e.clientX - r.left) / r.width - 0.5) * 10).toFixed(2) + 'deg');
        carte.style.setProperty('--nn-rx', ((0.5 - (e.clientY - r.top) / r.height) * 10).toFixed(2) + 'deg');
      });
      carte.addEventListener('pointerleave', function () {
        carte.style.setProperty('--nn-rx', '0deg');
        carte.style.setProperty('--nn-ry', '0deg');
      });
    });
    // Carrousel fluide piloté par les flèches
    var piste = racine.querySelector('[data-nn-carrousel]');
    function glisser(sens) {
      if (!piste) return;
      var carte = piste.firstElementChild;
      var pasX = carte ? carte.getBoundingClientRect().width + 20 : 300;
      piste.scrollBy({ left: sens * pasX, behavior: reduit ? 'auto' : 'smooth' });
    }
    var prec = racine.querySelector('[data-nn-prec]'), suiv = racine.querySelector('[data-nn-suiv]');
    if (prec) prec.addEventListener('click', function () { glisser(-1); });
    if (suiv) suiv.addEventListener('click', function () { glisser(1); });
  });
})();
{% 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 : « Thème Pénombre » (Thèmes complets)
Description : Thème complet pour la maison et la déco, ambiance intérieur au crépuscule : fond brun profond, serif crème, halo de lampe qui suit le curseur et cartes produits inclinables en 3D.
Page de l’élément (aperçu en direct) : https://ai.nahnah.shop/bibliotheque-shopify/themes-penombre
Fichier : nahnah-themes-penombre.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/nn-th-penombre.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 « nn-th-penombre ».
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 : themes-penombre).

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 « nn-th-penombre ».
  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 themes-penombre 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.

Connecter le MCP

Dans la même catégorie