Package Exports
- @club-employes/utopia
- @club-employes/utopia/styles
Readme
🎨 Utopia Design System
Système de design multi-marques basé sur des tokens avec Style Dictionary.
🏗️ Architecture
src/
├── tokens/ # Sources des design tokens
│ ├── core/ # Tokens communs (spacing, typography, etc.)
│ ├── brands/ # Tokens spécifiques par marque
│ │ └── club-employes/ # Couleurs Club Employés
│ ├── themes/ # Combinaisons marque + mode
│ └── generated/ # Fichiers CSS/JS générés
├── theme-provider/ # Composant ThemeProvider Vue
├── themes/ # Packages de thèmes exportés
└── components/ # Composants de démo🚀 Utilisation
1. Installation
npm install @clubemployes/design-system2. Utilisation dans une app Vue
<template>
<ThemeProvider :theme="clubEmployesLight">
<YourApp />
</ThemeProvider>
</template>
<script setup>
import { ThemeProvider } from '@clubemployes/design-system'
import { clubEmployesLight } from '@clubemployes/theme-club-employes'
</script>3. Utilisation des CSS variables
.button {
background-color: var(--color-blue-500);
padding: var(--spacing-4);
border-radius: var(--border-radius-base);
font-size: var(--font-size-base);
}
.product-card {
background-color: var(--color-product-exclusive-sale-primary);
color: white;
}🎯 Tokens disponibles
Couleurs
Palette principale (Bleu)
--color-blue-25à--color-blue-950
Couleurs produits
--color-product-exclusive-sale-primary- Vente exclusive--color-product-promo-code-primary- Code promo--color-product-physical-product-primary- Produit physique--color-product-e-ticket-primary- E-billet--color-product-member-card-primary- Carte membre--color-product-gift-card-primary- Carte cadeau--color-product-e-check-primary- E-chèque
Signalétique
--color-semantic-attention-primary- Erreur/Attention--color-semantic-success-primary- Succès
Espacement
--spacing-0(0px) à--spacing-32(128px)
Typographie
- Tailles:
--font-size-xsà--font-size-5xl - Poids:
--font-weight-lightà--font-weight-bold - Familles:
--font-family-sans,--font-family-mono
Bordures
- Rayons:
--border-radius-noneà--border-radius-full - Largeurs:
--border-width-0à--border-width-4
Ombres
--shadow-noneà--shadow-xl
🔧 Développement
Build des tokens
npm run build:tokensAjouter une nouvelle marque
- Créer
src/tokens/brands/nouvelle-marque/colors.json - Créer les thèmes light/dark dans
src/tokens/themes/ - Mettre à jour
style-dictionary.config.js - Créer le package thème dans
src/themes/nouvelle-marque/
Structure d'un token de couleur
{
"color": {
"primary": {
"500": {
"value": "#3B82F6",
"type": "color"
}
}
}
}�� Packages
@clubemployes/design-system- Composants et ThemeProvider@clubemployes/theme-club-employes- Thème Club Employés@clubemployes/theme-ebank- Thème eBank (à venir)
🎨 Variables universelles
Toutes les apps utilisent les mêmes noms de variables CSS. Seules les valeurs changent selon le thème importé.
/* Dans toutes les apps */
.button {
background: var(--color-primary-500); /* Même variable partout */
}// App Club Employés
import { clubEmployesLight } from '@clubemployes/theme-club-employes'
// App eBank
import { ebankLight } from '@clubemployes/theme-ebank'🔄 Workflow
- Designer → Met à jour les tokens JSON
- Build →
npm run build:tokensgénère les CSS - Developer → Importe le bon thème
- Deploy → Changement de thème = changement d'import
Made with ❤️ by Club Employés