{% extends 'base.html.twig' %} {% block title %}Tool Card - Design System - Bubul{% endblock %} {% block body %}
{# ===== HEADER ===== #}
Molecules /

Tool Card

Carte d'outil pour le dashboard avec statistiques, sparkline 30 jours et gradient decoratif

{# ===== COMPOSITION ===== #}

Composition

Icon + Badge + Typography = ToolCard
{# ===== USAGE ===== #}

Usage

{% verbatim %}{% include '_molecules/tool-card/tool-card.html.twig' with {
    name: 'Moodia',
    code: 'moodia',
    tagline: 'PDF → Cours Moodle',
    href: '/moodia',
    isNew: true,
    stats: {
        generated: 42,
        items: 'cours',
        tokens: 125000,
        wh: 37.5,
        lastUsed: 'now'|date('Y-m-d')
    },
    percentage: 45,
    weekUsage: [3, 1, 0, 2, 4, 1, 3, 2, 0, 1, 5, 2, 3, 1, 4, 2, 0, 3, 1, 2, 4, 3, 1, 0, 2, 5, 3, 2, 1, 4]
} %}{% endverbatim %}

Fichier : templates/_molecules/tool-card/tool-card.html.twig

{# ===== COULEURS PAR OUTIL ===== #}

Couleurs par outil

Chaque outil a sa propre couleur d'accent derivee du parametre code.

Code Couleur Token CSS Apercu
moodiaBleuprimary
sereniaVioletcohorts
slidiaOrangewarning
monalisiaRosepink
castiaVertsuccess
samCyaninfo
{# ===== TOUS LES OUTILS ===== #}

Tous les outils

Grille de 6 outils avec leurs couleurs respectives

{% include '_molecules/tool-card/tool-card.html.twig' with { name: 'Moodia', code: 'moodia', tagline: 'PDF → Cours Moodle', href: '#', isNew: true, stats: { generated: 42, items: 'cours', tokens: 125400, wh: 37.6, lastUsed: 'now'|date_modify('-1 days') }, weekUsage: [3, 1, 0, 2, 4, 1, 3, 2, 0, 1, 5, 2, 3, 1, 4, 2, 0, 3, 1, 2, 4, 3, 1, 0, 2, 5, 3, 2, 1, 4] } %} {% include '_molecules/tool-card/tool-card.html.twig' with { name: 'Serenia', code: 'serenia', tagline: 'Assistant IA', href: '#', stats: { generated: 156, items: 'conversations', tokens: 89200, wh: 26.8, lastUsed: 'now'|date_modify('-2 days') }, weekUsage: [5, 3, 4, 2, 6, 3, 5, 4, 2, 3, 7, 4, 5, 3, 6, 4, 2, 5, 3, 4, 6, 5, 3, 2, 4, 7, 5, 4, 3, 6] } %} {% include '_molecules/tool-card/tool-card.html.twig' with { name: 'Slidia', code: 'slidia', tagline: 'Presentations PPTX', href: '#', stats: { generated: 23, items: 'presentations', tokens: 67800, wh: 20.3, lastUsed: 'now'|date_modify('-5 days') }, weekUsage: [1, 0, 2, 1, 0, 3, 1, 2, 0, 1, 2, 1, 0, 3, 1, 2, 0, 1, 3, 1, 0, 2, 1, 0, 3, 2, 1, 0, 2, 1] } %} {% include '_molecules/tool-card/tool-card.html.twig' with { name: 'Monalisia', code: 'monalisia', tagline: 'Images IA', href: '#', stats: { generated: 87, items: 'images', tokens: 43500, wh: 13.1, lastUsed: 'now'|date_modify('-3 days') }, weekUsage: [2, 4, 1, 3, 2, 5, 1, 3, 4, 2, 1, 5, 3, 2, 4, 1, 3, 2, 5, 1, 4, 3, 2, 1, 5, 3, 2, 4, 1, 3] } %} {% include '_molecules/tool-card/tool-card.html.twig' with { name: 'Castia', code: 'castia', tagline: 'Podcasts audio', href: '#', stats: { generated: 12, items: 'podcasts', tokens: 31200, wh: 9.4, lastUsed: 'now'|date_modify('-7 days') }, weekUsage: [0, 1, 0, 0, 2, 0, 1, 0, 0, 1, 0, 2, 0, 1, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 1, 0, 1, 0, 2, 0] } %} {% include '_molecules/tool-card/tool-card.html.twig' with { name: 'SAM', code: 'sam', tagline: 'Suivi pedagogique', href: '#', stats: { generated: 34, items: 'rapports', tokens: 18600, wh: 5.6, lastUsed: 'now'|date_modify('-10 days') }, weekUsage: [1, 0, 1, 2, 0, 1, 0, 1, 2, 0, 1, 0, 2, 1, 0, 1, 0, 1, 2, 0, 1, 0, 1, 2, 0, 1, 0, 1, 2, 1] } %}
{# ===== VERROUILLE ===== #}

Verrouille

Parametre : locked: true

{% include '_molecules/tool-card/tool-card.html.twig' with { name: 'Slidia', code: 'slidia', tagline: 'Presentations PPTX', locked: true, stats: { generated: 0, items: 'presentations', tokens: 0, wh: 0 } } %}
{# ===== PARAMETRES ===== #}

Parametres

Parametre Type Defaut Description
namestring(requis)Nom de l'outil
codestring(requis)Code de l'outil (moodia, serenia, slidia, monalisia, castia, sam)
taglinestringnullSous-titre de l'outil
descriptionstringnullDescription de l'outil
hrefstringnullLien vers l'outil (rend la carte cliquable)
isNewboolfalseAfficher le badge NEW
statsobject{}Statistiques de l'outil
stats.generatedint0Nombre de contenus generes
stats.itemsstring'contenus'Label des contenus (cours, images, presentations...)
stats.tokensint0Tokens consommes
stats.whfloat0Energie en Wh
stats.lastUsedstringnullDerniere utilisation (date)
percentageint0Pourcentage tokens vs total
weekUsagearray[]Usage par jour (30 valeurs pour sparkline)
lockedboolfalseOutil verrouille (grise, non cliquable)
classstring''Classes additionnelles
{% endblock %}