Dernière modification : 28 août 2025
Lorsque vous créez un module pour des pages, des blogs et des devis, le module contient trois fichiers d’interface connexes qui contrôlent le contenu, le style et la fonctionnalité du module :
- module.html
- module.css
- module.js
Les modules de messagerie ne prennent pas en charge module.css et module.js. En effet, les clients de messagerie ne prennent pas en charge JavaScript et la prise en charge des fichiers CSS associés est limitée.
module.css
et module.js
de ce module. Par défaut, module.css
et module.js
ne se chargent pas de manière asynchrone, mais vous pouvez changer cela en incluant css_render_options et js_render_options dans le meta.json du module.
Les modules peuvent être construits dans le gestionnaire de conception ou localement en utilisant HubSpot CLI. Dans le gestionnaire de conception, les fichiers de modules sont affichés dans un éditeur à plusieurs volets.


HTML et HubL (module.html)
Le fichier module.html est destiné au HTML et au HubL. En général, l’endroit où un module est placé dans l’éditeur de page ou le fichier de modèle détermine l’endroit où le contenu du fichier module.html est rendu. Ce fichier agit comme un HubL dans la page où le module est placé. Le fichier module.html peut accéder aux valeurs des champs du module via HubL.CSS (module.css)
Utilisez le fichiermodule.css
pour ajouter de la CSS à un module.
En général, module.css
prend en charge un sous-ensemble très limité de HubL. Cependant, vous pouvez utiliser module_asset_url("my-image.png")
pour les images ajoutées en tant que ressources associées à un module. Cela permet d’associer des ressources telles que des images, compilées avec le module lui-même. Par exemple :
Stylisation basée sur les valeurs des champs du module
Il existe plusieurs façons d’influencer le style de votre module en fonction des champs du module. Choisissez la méthode qui convient le mieux à votre cas d’utilisation spécifique.Classe CSS
Pour créer un style prédéfini pour le module avec la possibilité pour les éditeurs de choisir parmi ces options, vous pouvez ajouter un champ de module pour définir des classes dans votre fichiermodule.html
qui correspondent aux classes CSS dans votre fichier module.css
.
Par exemple, vous pouvez avoir un module image et un module texte. Vous souhaitez que les créateurs de contenu puissent positionner l’image à droite ou à gauche du texte en fonction d’un champ de sélection. Pour ce faire, vous pouvez définir vos fichiers module.html
et module.css
comme suit :
bloc require_css
Lorsque vous devez donner aux créateurs de contenu un contrôle direct sur des propriétés spécifiques et que les classes ne sont pas idéales, les balises de style avec blocsrequire_css
sont la meilleure option.
Pour donner aux créateurs de contenu un contrôle direct sur des propriétés spécifiques sans utiliser de classes, vous pouvez ajouter du style au fichier module.html
dans les balises require_css
. Par exemple :
module.html
peut rendre HubL, vous pouvez utiliser les valeurs des champs du module comme variables CSS. Lorsqu’un créateur de contenu met à jour le champ dans l’éditeur de page, la CSS est mise à jour en conséquence. Ces blocs déplacent les balises <style>
dans le <head>
de votre page, dans l’annonce standard_header_includes
.
Vous pouvez également configurer la CSS pour qu’elle ne s’applique qu’à l’instance du module en l’encadrant de balises scope_css
. Par exemple, vous pouvez mettre à jour le code du module ci-dessus comme suit :
Ajouter un style intraligne
Lorsque vous devez donner aux créateurs de contenu un contrôle poussé sur quelques propriétés seulement et que les classes ne sont pas idéales, vous pouvez ajouter directement les valeurs à un attribut de style dans le HTML.require_css
.
Importer des fichiers CSS spécifiques
require_css
est une fonction HubL que vous pouvez ajouter à module.html et qui indique à HubSpot qu’un module ou un modèle particulier nécessite un fichier CSS particulier pour s’afficher. Une balise de lien pointant vers le fichier css est ajoutée à <head>
de la page, à l’intérieur de standard_header_includes
.
La fonction require_css
ne chargera ce fichier CSS qu’une seule fois, quel que soit le nombre de fois où ce même fichier est requis par les modules et les modèles sur une page particulière. Il est donc idéal pour les situations où les styles peuvent être partagés entre plusieurs modules, mais où l’ajout de CSS directement dans les feuilles de style principales utilisées sur chaque page de votre site n’a pas de sens.
require_css
et les fichiers CSS associés remplissent le même objectif, mais require_css
peut être utilisé de manière conditionnelle en fonction des valeurs des champs. Cela évite de charger du code inutile.
JavaScript (module.js)
Utilisez le fichiermodule.js
pour ajouter du JavaScript à un module.
Comme le fichier module.css
, le fichier module.js
ne prend pas en charge HubL.
Script basé sur les valeurs des champs
Il existe plusieurs façons de concevoir des modules, où JavaScript agit différemment en fonction des valeurs des champs. Comprendre quelle méthode utiliser et à quel moment peut se traduire par des gains de performance sur chaque page où le module est utilisé. Par exemple, vous avez un module d’image personnalisé et vous voulez donner aux créateurs de contenu la possibilité d’ouvrir l’image dans une galerie. Les créateurs de contenu veulent l’utiliser que pour des images spécifiques, et non pour toutes les instances du module.Attributs des données
Les attributs de données sont des attributs personnalisés de la norme HTML 5 que les développeurs ajoutent aux éléments. De même que tous les éléments prennent en chargeclass="yourClassName"
, tous les éléments prennent en charge data-your-attribute="yourValue"
.
bloc require_js
Dans des situations avancées, par exemple lors de l’utilisation d’une bibliothèque de modèles JavaScript ou d’un cadre réactif comme Vue.js ou React.js, vous préférerez peut-être n’afficher que les données, et voir le cadre se charger du rendu. Dans ce cas, utilisez une balise script entourée d’un blocrequire_js
pour fournir des variables auxquelles vous pouvez accéder à partir de votre script de modélisation.
require_js
require_js
est une fonction HubL qui indique à HubSpot qu’un module ou un modèle particulier nécessite un fichier JavaScript particulier pour être chargé correctement. La fonction prend deux paramètres : le chemin d’accès au fichier et l’emplacement où le fichier doit être ajouté (“head” ou “footer”).
Dans un module, require_js
ne peut être ajouté que dans le module.html. Le fichier JavaScript mentionné dans l’annonce require_js
ne sera chargé qu’une fois par page, quel que soit le nombre de fois où il est requis par les modules et les modèles de la page. Cela réduit le nombre de requêtes HTTP et évite la duplication du code.
Certaines situations où cela devient pratique :
- Si vous avez plusieurs modules ou modèles qui nécessitent le même JavaScript, vous pouvez utiliser
require_js
pour partager ce script entre les modules. - Si vous travaillez avec un pack JavaScript comme webpack, il peut être plus facile d’envoyer vos fichiers js à un emplacement spécifique. En utilisant
require_js
, vous pouvez associer JavaScript à votre module.
require_js
et les fichiers JavaScript associés servent le même objectif, mais require_js
peut être fait de manière conditionnelle en fonction des valeurs des champs. Cela évite de charger du code inutile. Vous avez également la possibilité de charger JavaScript dans l’en-tête, si vous en avez besoin.
Puisque JavaScript bloque le rendu, l’emplacement par défaut
require_js
pour JavaScript est le “footer”. En savoir plus sur l’optimisation des performances.