Utilitaires✨ Premium

Dashboard Widget

Widget de chiffres qui lit la largeur de sa propre case : empilé quand elle est étroite, en deux colonnes, puis sur une ligne avec un mini-histogramme dès 300 px.

CSS@containerDashboard

Mis à jour le

Cet effet fait partie d'Effect.Labs — 840 effets vanilla, une partie gratuite, une partie premium. Utilitaires comprend 43 effets, dont 3 gratuits. Découvrir la catégorie →

3 exemples d'usage

Musée Halvorine — le même widget de fréquentation dans le contenu et dans la colonne « Résumé » — Dashboard Widget exemple 1

① Musée Halvorine — le même widget de fréquentation dans le contenu et dans la colonne « Résumé »

QuandSur la page « Site web » du back-office, le bloc principal affiche les visites, billets, conversion et durée sur une ligne avec l'histogramme de la semaine ; la colonne de droite reprend exactement le même code, qui s'y empile tout seul.
PourquoiUn seul composant à maintenir pour deux emplacements : la colonne étroite n'a pas besoin d'une variante « mobile » ni d'une classe en plus.
RéglagesDeux racines identiques : l'une dans une colonne d'environ 330 px (4 colonnes + histogramme), l'autre dans une colonne de 168 px (1 colonne). Seuls les textes et chiffres sont ceux du musée.
Quintaroc — tuile d'occupation qu'on étire dans un tableau de bord personnalisable — Dashboard Widget exemple 2

② Quintaroc — tuile d'occupation qu'on étire dans un tableau de bord personnalisable

QuandEn mode « Mise en page », on tire la poignée verte de la tuile « Aujourd'hui » : de 250 à 300 px les quatre chiffres sont sur deux rangs, au-delà ils passent sur une ligne et l'histogramme des sept jours apparaît ; l'agenda voisin se resserre.
PourquoiLa tuile reste lisible à chaque taille que l'utilisateur choisit, sans que le tableau de bord ait à connaître ses seuils.
RéglagesLa largeur de la tuile est réglée par la poignée de la scène (pointeur ou flèches du clavier) ; pour la capture, la scène l'étire en boucle entre 250, 310 et 400 px. Le code du widget n'est pas modifié.
Velmorade — résumé d'une annonce qui se replie quand la messagerie s'ouvre — Dashboard Widget exemple 3

③ Velmorade — résumé d'une annonce qui se replie quand la messagerie s'ouvre

QuandLe vendeur consulte les chiffres de son buffet (vues, favoris, contacts, durée) ; un clic sur « Messages » ouvre la conversation à droite et le résumé repasse sur deux colonnes sans histogramme.
PourquoiLe panneau qui s'ouvre ne casse rien : le widget mesure sa nouvelle place et garde les quatre chiffres visibles.
RéglagesLe bouton « Messages » de la scène bascule une classe qui donne 262 px au panneau (transition de largeur de la scène) ; sans clic, la scène l'ouvre et le ferme en boucle pour la capture. Fond clair autour, widget sombre d'origine.

Comment ça marche

La racine .fx-0748-root se déclare conteneur (container: dwg / inline-size) et prend toute la largeur de son parent. Les règles @container dwg comparent cette largeur à deux seuils : la fenêtre du navigateur n'intervient jamais. Le même widget peut donc s'afficher large dans le contenu principal et étroit dans une colonne latérale de la même page.

Sous 240 px, les quatre chiffres de .dwg-stats s'empilent sur une colonne. De 240 à 299 px, ils passent en grille de deux. À partir de 300 px, ils s'alignent sur quatre colonnes et la rangée .dwg-chart (sept barres dont la hauteur est écrite en style="height:…%") apparaît sous les chiffres.

Aucun JavaScript : tout tient dans le CSS. Le changement de disposition est immédiat (un nombre de colonnes ne s'interpole pas) et rien ne bouge en continu, ce qui rend le widget neutre vis-à-vis du réglage « réduire les animations ».

Accessibilité

  • Texte réel : titre en <h4>, chaque chiffre et son libellé sont du texte lu dans l'ordre (valeur puis libellé). Adaptez le niveau de titre à votre page.
  • Histogramme décoratif : .dwg-chart porte aria-hidden="true" car ses barres n'ont ni valeurs ni légende. Si elles portent une information, ajoutez un résumé en texte à côté du widget.
  • Contraste : libellés en blanc à 55 % sur fond #0a0a0f, chiffres en blanc pur ; la pastille verte #10b981 sur son fond teinté reste lisible en petite taille.
  • Clavier et toucher : rien à activer, le widget n'a aucun élément interactif. Le changement de colonnes vient de la largeur, il fonctionne de la même façon au doigt et sur ordinateur.
  • Mouvement : aucune transition ni animation dans le code, rien à couper sous prefers-reduced-motion.

Compatibilité navigateur

Requêtes de conteneur en CSS seul (Chrome 105, Firefox 110, Safari 16 d'après @mdn/browser-compat-data 8.1.8). Mesuré dans Chromium 151, Firefox 153 et WebKit 26.5 : 1 colonne à 200 px, 2 colonnes à 250 px, 4 colonnes et histogramme à 300 et 600 px ; aucun débordement à 390 px de page ; deux copies côte à côte gardent chacune leur disposition.

Chrome 105+✓ Complet (mesuré)
Firefox 110+✓ Complet (mesuré)
Safari 16+✓ Complet (mesuré sous WebKit)
Edge 105+✓ Complet
Mobile iOS 16+✓ Complet
Android Chrome 105+✓ Complet

Un navigateur sans @container garde la disposition de base : chiffres empilés, histogramme masqué. Le contenu reste complet et lisible.

Le code

Structure HTML à coller dans votre page (le CSS + JS sont inclus avec votre achat) :

index.html — structure
<div class="fx-0748-root">
  <div class="dwg-card">
    <div class="dwg-head"><h4>…</h4><span class="dwg-badge">…</span></div>
    <div class="dwg-stats">
      <div class="dwg-stat"><span class="dwg-stat-val">…</span><span class="dwg-stat-label">…</span></div>
      <!-- 4 chiffres -->
    </div>
    <div class="dwg-chart" aria-hidden="true"><span class="dwg-bar" style="height:40%"></span><!-- 7 barres --></div>
  </div>
</div>

Paiement unique, sans abonnement — le code est à toi pour toujours

Personnaliser

Options passées à l'API ou attributs data-* :

Option / propriétéDéfautEffet
Seuils (CSS — @container dwg (min-width: 240px) et (min-width: 300px)) 240 px → 2 colonnes, 300 px → 4 colonnes + histogramme Déplacez les deux valeurs pour l'adapter à vos libellés : un libellé long demande un seuil 4 colonnes plus haut (360 px par exemple).
Nom du conteneur (CSS — container: dwg / inline-size) dwg Renommez-le dans la déclaration et dans les deux @container si votre page utilise déjà ce nom.
Chiffres et libellés (HTML — .dwg-stat-val, .dwg-stat-label) 4 chiffres d'exemple neutres Remplacez-les par vos valeurs ; avec trois ou cinq chiffres, changez aussi repeat(4, 1fr) dans le palier de 300 px.
Barres de l'histogramme (HTML — style="height:…%" sur .dwg-bar) 7 barres de 40 à 90 % Chaque pourcentage est la hauteur d'une barre dans une rangée de 40 px ; ajoutez ou retirez des <span>, elles se partagent la largeur.
Couleurs (CSS — .dwg-bar, .dwg-badge, fond de .fx-0748-root) Dégradé #8b5cf6 → #a78bfa, pastille #10b981, fond #0a0a0f Changez le dégradé des barres et la couleur de la pastille ; pour un fond clair, inversez aussi la couleur des chiffres.
Titre (HTML — <h4> dans .dwg-head) « Analytics » Changez le texte et, si besoin, le niveau de titre ; le style suit tant que la balise reste dans .dwg-head.

FAQ

Il ne regarde que la largeur de son parent. Si le parent garde la même largeur (colonne fixe, carte de 320 px), le widget ne bouge pas : c'est voulu. Testez en changeant la largeur de la case qui le contient.
Le widget les traite comme un décor sans légende. Pour un graphique lisible avec mois et valeurs, mieux vaut un composant de graphique dédié ; ici, retirez aria-hidden seulement si vous ajoutez un texte qui dit ce que montrent les barres.
Oui, sans rien changer : chaque racine est son propre conteneur, donc chaque copie choisit sa disposition selon la place qu'elle a. Il n'y a ni identifiant ni script partagé.