Vue d'ensemble
CStories repose sur un modèle mental simple. Avant d'installer quoi que ce soit, il est utile de comprendre le rôle de chaque pièce.
Qu'est-ce qu'une story ?
Une story est une fonction @Composable classique, annotée avec @CStory, dont le seul rôle est de démontrer un
composant de votre design system. Elle n'est jamais le composant lui-même — c'est une démonstration dédiée qui
l'appelle.
@CStory(collection = "DesignSystem", group = "Buttons", name = "Primary")
@Composable
fun PrimaryButtonStory() {
PrimaryButton(text = "Click me", onClick = {})
}
Que fait le plugin Gradle ?
Appliquer le plugin Gradle CStories à un module :
- ajoute les dépendances CStories nécessaires (
cstories-annotations,cstories-runtime, et la dépendance KSPcstories-processor) - génère un point d'entrée de catalogue pour la ou les cibles déjà déclarées par le module
- enregistre des tâches Gradle prêtes à l'emploi pour lancer et exporter ce catalogue
Aucune application de prévisualisation séparée à construire à la main : le catalogue est généré directement à partir de vos stories.
Qu'est-ce qui est généré ?
En coulisses, un processor KSP scanne votre module à la recherche des fonctions annotées @CStory, les valide, et
génère un registre utilisé par la navigation du catalogue. Ce registre alimente l'interface du catalogue : navigation
hiérarchique, rendu isolé par story, et contrôles interactifs pour explorer les états des composants.
Desktop ou web ?
Le catalogue peut s'exécuter de deux façons, selon la ou les cibles Kotlin déjà déclarées par votre module :
jvm()— s'exécute en tant qu'application desktop, sans navigateur ni toolchain Wasm nécessairewasmJs { browser(); binaries.executable() }— s'exécute dans le navigateur via Kotlin/Wasm
Les deux peuvent être déclarées côte à côte ; utilisez celle qui convient à votre workflow.
Parcours recommandé pour démarrer
Pour une première installation, nous recommandons de commencer avec un seul module ciblant uniquement jvm().
C'est le chemin le plus simple : pas d'outillage navigateur, pas de découpage en modules supplémentaire, juste un
plugin Gradle et une première story.
Poursuivez avec Installation pour mettre cela en place.