Aller au contenu

⏳ Comptes à reboursGratuit · 0 NahnahPar NAHNAH

Billet d’événement à rebours

Un billet d’entrée (bord perforé, talon détachable) pour ton événement : nom, date, lieu et compte à rebours en direct jusqu’à la date réelle, avec un bouton d’inscription. Il s’incline en 3D sous la souris. Sans date, rien n’est affiché en boutique.

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-rebours-billet-evenement.liquid (Liquid, CSS et JS inclus).

{%- comment -%} NAHNAH AI · Billet d’événement à rebours (bibliothèque Sections & effets) {%- endcomment -%}
<div class="nn-rebours-billet-evenement" 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 }};">
  <div class="nn-rebours-billet-evenement__scene" data-nn-scene>
    <div class="nn-rebours-billet-evenement__billet" data-fin="{{ section.settings.date_fin | default: '@apercu+268800' | escape }}" data-texte-fin="{{ section.settings.fin | escape }}" data-nn-billet hidden>
      <div class="nn-rebours-billet-evenement__principal">
        <p class="nn-rebours-billet-evenement__surtitre">{{ section.settings.surtitre | escape }}</p>
        <h2 class="nn-rebours-billet-evenement__titre">{{ section.settings.titre | escape }}</h2>
        <p class="nn-rebours-billet-evenement__quand" data-nn-quand></p>
        {%- if section.settings.lieu != blank -%}<p class="nn-rebours-billet-evenement__lieu">📍 {{ section.settings.lieu | escape }}</p>{%- endif -%}
        <p class="nn-rebours-billet-evenement__reste" role="timer" aria-live="off" data-nn-reste></p>
      </div>
      <div class="nn-rebours-billet-evenement__talon">
        <span class="nn-rebours-billet-evenement__code" aria-hidden="true"></span>
        {%- if section.settings.lien != blank -%}<a class="nn-rebours-billet-evenement__bouton" href="{{ section.settings.lien }}">{{ section.settings.bouton | escape }}</a>{%- endif -%}
      </div>
    </div>
  </div>
  {%- if section.settings.date_fin == blank and request.design_mode -%}<p class="nn-rebours-billet-evenement__aide">Indique la date de l’événement : sans date, rien n’est affiché en boutique.</p>{%- endif -%}
</div>

{% schema %}
{
  "name": "Billet d’événement",
  "tag": "section",
  "class": "nn-section-rebours-billet-evenement",
  "settings": [
    {
      "type": "text",
      "id": "surtitre",
      "label": "Surtitre",
      "default": "Atelier en boutique"
    },
    {
      "type": "text",
      "id": "titre",
      "label": "Nom de l’événement",
      "default": "Soirée découverte"
    },
    {
      "type": "text",
      "id": "date_fin",
      "label": "Date et heure (AAAA-MM-JJ HH:MM)",
      "default": "",
      "info": "Vide : section masquée en boutique."
    },
    {
      "type": "text",
      "id": "lieu",
      "label": "Lieu",
      "default": "12 rue des Artisans, Lyon"
    },
    {
      "type": "text",
      "id": "bouton",
      "label": "Texte du bouton",
      "default": "Je m’inscris"
    },
    {
      "type": "url",
      "id": "lien",
      "label": "Lien d’inscription"
    },
    {
      "type": "text",
      "id": "fin",
      "label": "Texte une fois commencé (vide : section masquée)",
      "default": "C’est en ce moment !"
    },
    {
      "type": "header",
      "content": "Couleurs"
    },
    {
      "type": "color",
      "id": "couleur_fond",
      "label": "Fond",
      "default": "#EEF2FF"
    },
    {
      "type": "color",
      "id": "couleur_texte",
      "label": "Texte",
      "default": "#1E1B4B"
    },
    {
      "type": "color",
      "id": "couleur_accent",
      "label": "Accent",
      "default": "#F97316"
    },
    {
      "type": "header",
      "content": "Espacement"
    },
    {
      "type": "range",
      "id": "marge_haut",
      "label": "Marge haute",
      "min": 0,
      "max": 120,
      "step": 4,
      "unit": "px",
      "default": 40
    },
    {
      "type": "range",
      "id": "marge_bas",
      "label": "Marge basse",
      "min": 0,
      "max": 120,
      "step": 4,
      "unit": "px",
      "default": 40
    }
  ],
  "presets": [
    {
      "name": "Billet d’événement"
    }
  ]
}
{% endschema %}

{% stylesheet %}
.nn-rebours-billet-evenement { padding: var(--nn-mh) 16px var(--nn-mb); background: var(--nn-fond); color: var(--nn-texte); }
.nn-rebours-billet-evenement__scene { max-width: 760px; margin: 0 auto; perspective: 1000px; }
.nn-rebours-billet-evenement__billet { --nn-rx: 0deg; --nn-ry: 0deg; display: grid; grid-template-columns: 1fr 190px; border-radius: 22px; background: #FFFFFF; box-shadow: 0 30px 60px -30px rgba(30, 27, 75, 0.55); transform: rotateX(var(--nn-rx)) rotateY(var(--nn-ry)); transition: transform 0.3s ease-out; -webkit-mask: radial-gradient(circle 14px at calc(100% - 190px) 0, transparent 98%, #000000) top / 100% 51% no-repeat, radial-gradient(circle 14px at calc(100% - 190px) 100%, transparent 98%, #000000) bottom / 100% 51% no-repeat; mask: radial-gradient(circle 14px at calc(100% - 190px) 0, transparent 98%, #000000) top / 100% 51% no-repeat, radial-gradient(circle 14px at calc(100% - 190px) 100%, transparent 98%, #000000) bottom / 100% 51% no-repeat; animation: nn-rebours-billet-evenement-flotte 5s ease-in-out infinite; }
.nn-rebours-billet-evenement__billet[hidden] { display: none; }
.nn-rebours-billet-evenement__principal { padding: 26px 24px; }
.nn-rebours-billet-evenement__surtitre { margin: 0 0 4px; font-size: 12px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--nn-accent); }
.nn-rebours-billet-evenement__titre { margin: 0 0 10px; font-size: clamp(24px, 3.6vw, 36px); line-height: 1.1; }
.nn-rebours-billet-evenement__quand, .nn-rebours-billet-evenement__lieu { margin: 0 0 4px; font-size: 15px; }
.nn-rebours-billet-evenement__quand { font-weight: 700; }
.nn-rebours-billet-evenement__quand::first-letter { text-transform: uppercase; }
.nn-rebours-billet-evenement__reste { margin: 14px 0 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: clamp(18px, 2.6vw, 24px); font-weight: 800; color: var(--nn-accent); font-variant-numeric: tabular-nums; }
.nn-rebours-billet-evenement__talon { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 20px 14px; border-left: 2px dashed rgba(30, 27, 75, 0.2); background: linear-gradient(180deg, #FFF7ED, #FFEDD5); }
.nn-rebours-billet-evenement__code { display: block; width: 120px; height: 46px; background: repeating-linear-gradient(90deg, #1E1B4B 0 2px, transparent 2px 4px, #1E1B4B 4px 7px, transparent 7px 9px, #1E1B4B 9px 10px, transparent 10px 13px); opacity: 0.85; }
.nn-rebours-billet-evenement__bouton { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; background: var(--nn-texte); color: #FFFFFF; font-weight: 700; text-decoration: none; text-align: center; }
.nn-rebours-billet-evenement__bouton:focus-visible { outline: 2px solid var(--nn-accent); outline-offset: 2px; }
.nn-rebours-billet-evenement__aide { max-width: 640px; margin: 0 auto; padding: 14px; border: 1px dashed currentColor; border-radius: 12px; font-size: 14px; }
@keyframes nn-rebours-billet-evenement-flotte { 0%, 100% { translate: 0 0; } 50% { translate: 0 -6px; } }
@media (max-width: 600px) {
  .nn-rebours-billet-evenement__billet { grid-template-columns: 1fr; -webkit-mask: none; mask: none; }
  .nn-rebours-billet-evenement__talon { border-left: 0; border-top: 2px dashed rgba(30, 27, 75, 0.2); flex-direction: row; justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) {
  .nn-rebours-billet-evenement *, .nn-rebours-billet-evenement *::before, .nn-rebours-billet-evenement *::after { animation: none !important; transition: none !important; }
}
{% endstylesheet %}

{% javascript %}
(function () {
  var reduit = window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
  function brancher(racine) {
    if (racine.dataset.nnPret) return;
    racine.dataset.nnPret = "1";
    var b = racine.querySelector("[data-nn-billet]"), scene = racine.querySelector("[data-nn-scene]");
    if (!b) return;
    function lire(v) { var m = /^(\d{4})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2}))?$/.exec((v || "").trim()); return m ? new Date(+m[1], +m[2] - 1, +m[3], +(m[4] || 0), +(m[5] || 0)).getTime() : Date.parse(v); }
    var fin = lire(b.getAttribute("data-fin"));
    if (isNaN(fin)) return;
    b.hidden = false;
    racine.querySelector("[data-nn-quand]").textContent = new Date(fin).toLocaleString("fr-FR", { weekday: "long", day: "numeric", month: "long", hour: "2-digit", minute: "2-digit" });
    var reste = racine.querySelector("[data-nn-reste]");
    function maj() {
      var r = fin - Date.now();
      if (r <= 0) { clearInterval(t); var tx = b.getAttribute("data-texte-fin"); if (!tx) { b.hidden = true; return; } reste.textContent = tx; return; }
      var s = Math.floor(r / 1000), d = function (x) { return ("0" + x).slice(-2); };
      reste.textContent = "J-" + Math.floor(s / 86400) + " · " + d(Math.floor(s / 3600) % 24) + ":" + d(Math.floor(s / 60) % 60) + ":" + d(s % 60);
    }
    var t = setInterval(maj, 1000);
    maj();
    if (reduit) return;
    scene.addEventListener("pointermove", function (e) { var r = b.getBoundingClientRect(); b.style.setProperty("--nn-ry", (((e.clientX - r.left) / r.width - 0.5) * 12).toFixed(1) + "deg"); b.style.setProperty("--nn-rx", ((0.5 - (e.clientY - r.top) / r.height) * 10).toFixed(1) + "deg"); });
    scene.addEventListener("pointerleave", function () { b.style.removeProperty("--nn-rx"); b.style.removeProperty("--nn-ry"); });
  }
  function tout() { document.querySelectorAll(".nn-rebours-billet-evenement").forEach(brancher); }
  tout();
  document.addEventListener("shopify:section:load", tout);
})();
{% 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 : « Billet d’événement à rebours » (Comptes à rebours)
Description : Un billet d’entrée (bord perforé, talon détachable) pour ton événement : nom, date, lieu et compte à rebours en direct jusqu’à la date réelle, avec un bouton d’inscription. Il s’incline en 3D sous la souris. Sans date, rien n’est affiché en boutique.
Page de l’élément (aperçu en direct) : https://ai.nahnah.shop/bibliotheque-shopify/rebours-billet-evenement
Fichier : nahnah-rebours-billet-evenement.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-rebours-billet-evenement.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-rebours-billet-evenement ».
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 : rebours-billet-evenement).

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-rebours-billet-evenement ».
  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 rebours-billet-evenement 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