- Palette de Couleurs
- Variables CSS
- Thèmes (Clair & Sombre)
- Typographie
- Rayons de bordure
- Animations & Transitions
- Commandes de lancement
La palette officielle de Ricash est définie dans src/lib/palette.js et src/index.css.
| Couleur | Nom | Code Hexadécimal | RGB | Usage Principal |
|---|---|---|---|---|
| Bleu Foncé | bleuFonce |
#29475B |
RGB(41, 71, 91) | Sidebar principale, titres |
| Doré / Beige | dore |
#B19068 |
RGB(177, 144, 104) | Accents, hover, CTA principaux |
| Turquoise | turquoise |
#2B8286 |
RGB(43, 130, 134) | Icônes actives, valeurs/KPIs |
| Blanc Cassé | blancCasse |
#F4F2EE |
RGB(244, 242, 238) | Fond global, texte sur fond sombre |
| Bleu-Vert | bleuVert |
#376470 |
RGB(55, 100, 112) | Header, ombres douces |
Ces couleurs sont également disponibles sous forme de variables CSS :
--ricash-blue-dark: #29475B;
--ricash-blue-green: #376470;
--ricash-turquoise: #2B8286;
--ricash-gold: #B19068;
--ricash-offwhite: #F4F2EE;import { RICASH_COLORS } from '@/lib/palette.js'
// Exemple d'utilisation
const primaryColor = RICASH_COLORS.bleuFonce; // #29475BLe projet utilise un système de couleurs sémantiques basé sur HSL (Hue, Saturation, Lightness) pour le thème clair et sombre.
| Variable | Valeur HSL | Usage |
|---|---|---|
--background |
0 0% 100% |
Fond principal de la page |
--foreground |
222.2 84% 4.9% |
Texte principal |
--card |
0 0% 100% |
Fond des cartes |
--card-foreground |
222.2 84% 4.9% |
Texte sur cartes |
--primary |
221.2 83.2% 53.3% |
Couleur primaire |
--primary-foreground |
210 40% 98% |
Texte sur primaire |
--secondary |
210 40% 96% |
Couleur secondaire |
--muted |
210 40% 96% |
Éléments discrets |
--accent |
210 40% 96% |
Accents |
--destructive |
0 84.2% 60.2% |
Actions destructives |
--border |
214.3 31.8% 91.4% |
Bordures |
--input |
214.3 31.8% 91.4% |
Champs de saisie |
| Variable | Valeur (Thème Clair) | Valeur (Thème Sombre) |
|---|---|---|
--sidebar-background |
0 0% 98% |
217.2 32.6% 15% |
--sidebar-foreground |
222.2 84% 4.9% |
210 40% 98% |
--header-background |
0 0% 100% |
222.2 84% 4.9% |
--success |
142.1 76.2% 36.3% |
142.1 70.6% 45.3% |
--warning |
32.5 94.6% 43.7% |
32.5 94.6% 63.7% |
--info |
221.2 83.2% 53.3% |
217.2 91.2% 59.8% |
Le projet supporte deux thèmes : clair et sombre.
- Fond principal : Blanc cassé
#F4F2EE - Sidebar : Fond clair avec bleu foncé pour les éléments actifs
- Header : Bleu-vert
#376470avec texte blanc cassé
- Fond principal : Bleu très foncé (proche de
#29475B) - Sidebar : Fond sombre avec turquoise pour les éléments actifs
- Header : Bleu foncé avec texte clair
Toutes les couleurs sont accessibles via des classes Tailwind :
// Fond et texte
<div className="bg-background text-foreground">...</div>
// Cartes
<div className="bg-card text-card-foreground">...</div>
// Couleurs primaires
<button className="bg-primary text-primary-foreground">...</button>
// Couleurs secondaires
<div className="bg-secondary text-secondary-foreground">...</div>
// Éléments discrets
<div className="bg-muted text-muted-foreground">...</div>
// Accents
<div className="bg-accent text-accent-foreground">...</div>
// Actions destructives
<button className="bg-destructive text-destructive-foreground">...</button>
// Bordures
<div className="border-border">...</div>// Sidebar
<div className="bg-sidebar text-sidebar-foreground">...</div>
// Header
<div className="bg-header">...</div>
// Statuts
<div className="bg-success text-success">...</div>
<div className="bg-warning text-warning">...</div>
<div className="bg-info text-info">...</div>Le projet utilise la police système native pour une meilleure performance et cohérence :
font-family: system-ui, -apple-system, sans-serif;- system-ui : Utilise la police système de l'OS (San Francisco sur macOS, Segoe UI sur Windows, etc.)
- -apple-system : Fallback pour les systèmes Apple
- sans-serif : Fallback générique
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;Ces propriétés améliorent le rendu des polices sur macOS et Linux.
Le projet utilise des rayons de bordure cohérents définis dans App.css :
| Variable | Valeur | Usage |
|---|---|---|
--radius |
0.5rem (8px) |
Rayon de base |
--radius-sm |
calc(var(--radius) - 4px) |
Petits éléments |
--radius-md |
calc(var(--radius) - 2px) |
Éléments moyens |
--radius-lg |
var(--radius) |
Éléments grands |
--radius-xl |
calc(var(--radius) + 4px) |
Très grands éléments |
- Coins arrondis : 8-12px pour les cartes et boutons
- Effets visuels légers : Ombres douces avec opacité 20% pour les cartes
- Lisibilité optimale : Fort contraste entre texte et fond
Toutes les interactions utilisent des transitions fluides :
transition: background-color 0.3s ease, color 0.3s ease;Pour les éléments interactifs (boutons, etc.) :
transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}Usage : Boutons de chargement
@keyframes animate-in {
0% {
opacity: 0;
transform: translateY(-10px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}Usage : Modals, dropdowns, éléments qui apparaissent
@keyframes animate-out {
0% {
opacity: 1;
transform: translateY(0);
}
100% {
opacity: 0;
transform: translateY(-10px);
}
}Usage : Éléments qui disparaissent
<div className="animate-in">...</div>
<div className="animate-out">...</div>
<div className="animate-spin">...</div>Le projet respecte les préférences utilisateur pour les animations réduites :
@media (prefers-reduced-motion: reduce) {
* {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}Le projet définit des variables spécifiques pour les champs OTP :
| Variable | Valeur | Usage |
|---|---|---|
--otp-size-sm |
2.75rem (44px) |
Petite taille OTP |
--otp-size-md |
3.5rem (56px) |
Taille moyenne OTP |
--otp-gap-sm |
1.25rem (20px) |
Espacement petit |
--otp-gap-md |
1.75rem (28px) |
Espacement moyen |
- Fond principal : Bleu Foncé
#29475B(thème clair) / Fond sombre (thème sombre) - Icônes actives : Turquoise
#2B8286 - Icônes inactives : Blanc Cassé
#F4F2EE - Hover & Sélection : Doré/Beige
#B19068avec léger effet d'ombre - Typographie : Blanc Cassé pour les labels
- Fond : Bleu-Vert
#376470 - Texte & Icônes : Blanc Cassé pour contraste
- Éléments interactifs : Turquoise en état actif, Doré/Beige en hover
- Fond global : Blanc Cassé
#F4F2EE - Cartes & Widgets :
- Fond : Blanc Cassé avec ombre douce bleu-vert
#37647033(20% opacity) - Titres : Bleu Foncé
#29475B - Valeurs/KPIs : Turquoise
#2B8286 - Actions : Doré/Beige pour CTA principal
- Fond : Blanc Cassé avec ombre douce bleu-vert
- En-têtes : Bleu Foncé, texte Blanc Cassé
- Lignes alternées : Blanc Cassé et Turquoise très clair (opacité 5%)
- Hover ligne : Fond Doré/Beige très doux
- ✅ Consistance chromatique : Toujours utiliser les couleurs de la palette
- ✅ Effets visuels légers : Ombres douces, coins arrondis (radius 8-12px)
- ✅ Lisibilité optimale : Fort contraste entre texte et fond
- ✅ Sensation premium : Doré/Beige pour les accents, Turquoise pour la modernité
Le projet utilise Vite comme outil de build et pnpm comme gestionnaire de paquets.
- Node.js (version recommandée : 18+)
- pnpm (version : 10.4.1+)
Si c'est la première fois que vous clonez le projet :
pnpm installpnpm devLance le serveur de développement Vite. Le projet sera accessible à http://localhost:5173 (ou un autre port si 5173 est occupé).
pnpm buildCompile le projet pour la production. Les fichiers générés seront dans le dossier dist/.
pnpm previewLance un serveur local pour prévisualiser le build de production avant déploiement.
pnpm lintExécute ESLint pour vérifier la qualité du code.
| Commande | Description |
|---|---|
pnpm dev |
Lance le serveur de développement |
pnpm build |
Compile pour la production |
pnpm preview |
Prévisualise le build de production |
pnpm lint |
Exécute le linter |
- Palette JavaScript :
src/lib/palette.js - Variables CSS globales :
src/index.css - Variables Tailwind :
src/App.css - Configuration UI :
components.json(shadcn/ui)
- Toutes les couleurs sont disponibles via les classes Tailwind et les variables CSS
- Le système de thème supporte le mode clair et sombre automatiquement
- Les animations respectent les préférences d'accessibilité de l'utilisateur
- La palette Ricash doit être utilisée de manière cohérente dans tout le projet
Dernière mise à jour : Documentation générée automatiquement depuis le code source du projet.