TopicIllustration

Documentation de cbk-toolkit

TopicIllustration

Carte cliquable avec icône, titre et description. Utilisée pour présenter les sections de documentation ou les fonctionnalités. Basée sur next/link + lucide-react, avec hover animé et flèche d'action.

Démo en direct — grille de topics
Taille fixe w-64 min-h-[200px] — idéale pour une grille.
Démo en direct — variante personnalisée

Via className vous pouvez ajuster la largeur ou le style.

Code source complet — copier-coller

Exemple minimal avec 3 cartes.

"use client";

import { TopicIllustration } from "@ramses1er/cbk-toolkit/client";
import { Table2, LayoutDashboard, Shield } from "lucide-react";

export default function HomePage() {
  return (
    <div className="flex flex-wrap gap-4">
      <TopicIllustration
        icon={LayoutDashboard}
        title="SideNav"
        description="Barre latérale responsive"
        href="/docs/client/sidenav"
      />
      <TopicIllustration
        icon={Table2}
        title="Table"
        description="Tableau typé avec pagination"
        href="/docs/client/table"
      />
      <TopicIllustration
        icon={Shield}
        title="Auth"
        description="Protection des routes"
        href="/docs/protection-routes"
      />
    </div>
  );
}
Props
PropTypeDéfautDescription
iconLucideIconrequisIcône lucide-react (ex: LayoutDashboard)
titlestringrequisTitre en gras
descriptionstringrequisTexte gris sous le titre
hrefstringrequisLien Next.js (interne ou externe)
classNamestring—Classes additionnelles (ex: w-80)
Comportement
  • Carte Link — navigation côté client Next.js
  • Taille fixe w-64 + min-h-[200px], contenu en colonne avec icône en haut
  • Hover : shadow-xl + border-gray-300 + dégradé icône + flèche circulaire en bas à droite (opacity 0 → 100)
  • Icône dans un carré w-14 h-14 rounded-2xl gradient gray-100→gray-200
  • Anneau intérieur ring-1 ring-inset pour profondeur