Files
template-neumorphism/README.md
T
maximus 938c4dadb8 ReadMe
2026-07-29 15:32:08 +02:00

156 lines
5.3 KiB
Markdown

# 🛡️ AEGIS Boilerplate - Neumorphic UI (Vite + React 19 + Tailwind v4)
Un point de départ ultra-performant et esthétique pour la création d'applications web modernes et de tableaux de bord B2B complexes. Ce template intègre un **Design System Neumorphique (Soft UI)** complet, taillé sur mesure pour des interfaces de cybersécurité haut de gamme.
## ✨ Fonctionnalités Principales
- ⚡️ **Vite & React 19** : Compilation instantanée, HMR ultra-rapide et prise en charge des dernières fonctionnalités React sans `forwardRef`.
- 🎨 **Tailwind CSS v4** : Configuration moderne sans fichier `tailwind.config.js`, stylisation utilitaire et mode sombre manuel.
- 🎛️ **Design System Neumorphique** : Kit UI complet (Boutons, Cartes, Inputs, Sidebar, Toggles) basé sur l'extrusion et le creusage de la matière.
- 🌓 **Thème Sombre / Clair Synchronisé** : Hook `useTheme` gérant les préférences système et la persistance via `localStorage` avec des transitions fluides à 300ms.
- 🧩 **Architecture Clean** : Organisation modulaire, composants agnostiques, et alias absolus (`@/`).
- 🗄️ **Backend Ready** : Structure préparée pour l'intégration de PocketBase (Auth, DB, Storage).
---
## 🛠️ Stack Technique
- **Framework** : [React 19](https://react.dev/)
- **Bundler** : [Vite](https://vitejs.dev/)
- **Styling** : [Tailwind CSS v4](https://tailwindcss.com/)
- **Routing** : [React Router v6](https://reactrouter.com/)
- **Icônes** : [Lucide React](https://lucide.dev/)
- **Utilitaires UI** : `clsx` & `tailwind-merge` (Fonction `cn()`)
---
## 🚀 Démarrage Rapide
### 1. Prérequis
Assurez-vous d'avoir [Node.js](https://nodejs.org/) (version 18+) et [pnpm](https://pnpm.io/) installés sur votre machine.
### 2. Installation
Clonez ce template ou copiez les fichiers, puis installez les dépendances avec pnpm :
```bash
pnpm install
```
### 3. Lancer le serveur de développement
```bash
pnpm dev
```
L'application sera accessible sur `http://localhost:5173`. Visitez `http://localhost:5173/ui` pour consulter la vitrine interactive des composants (UI Showcase).
---
## 📐 Règle d'Or du Neumorphism
Pour que l'illusion d'optique Neumorphique (3D souple) fonctionne, **les composants et le fond de la page DOIVENT avoir exactement la même couleur**.
Ce template utilise deux couleurs maîtresses strictes codées en dur dans les composants :
* ☀️ **Mode Light** : `#e8e8e8`
* 🌙 **Mode Dark** : `#1e293b`
⚠️ **Le conteneur racine de toutes vos pages (ex: dans `App.tsx` ou votre Layout) doit impérativement porter ces classes :**
```tsx
<div className="min-h-screen bg-[#e8e8e8] dark:bg-[#1e293b] text-slate-800 dark:text-slate-100 transition-all duration-300 ease-in-out">
{/* Vos composants ici */}
</div>
```
*(Note : La classe `transition-all duration-300 ease-in-out` est indispensable pour que les ombres (box-shadow) s'animent en parfaite synchronisation avec le fond).*
---
## 📂 Architecture des Dossiers
```text
src/
├── components/
│ └── ui/ # UI Kit Neumorphique (Button, Card, Input, Sidebar...)
├── features/ # Logique métier spécifique (ex: auth, serveurs, metrics)
├── hooks/ # Hooks personnalisés (ex: useTheme.ts)
├── pages/ # Écrans de l'application (UiShowcase, Dashboard...)
├── services/ # Appels API, configuration PocketBase
├── utils/ # Fonctions utilitaires (utils.ts avec la fonction cn)
├── App.tsx # Point d'entrée et Routeur (react-router-dom)
├── index.css # Styles globaux et configuration Tailwind v4 (@theme)
└── main.tsx # Rendu React racine
```
---
## 🎨 Utilisation du UI Kit
Tous les composants de base sont situés dans `src/components/ui/` et utilisent la fonction `cn()` pour fusionner intelligemment les classes Tailwind.
### Bouton (Extrude / Creusé au clic)
```tsx
import { Button } from "@/components/ui/Button";
<Button variant="primary" onClick={() => alert('Action!')}>
Sauvegarder
</Button>
```
### Champ de saisie (Inset / Creusé)
```tsx
import { Input } from "@/components/ui/Input";
<Input
label="Adresse Email"
type="email"
placeholder="contact@gise.be"
/>
```
### Carte (Plateau surélevé)
```tsx
import { Card } from "@/components/ui/Card";
<Card>
<h3 className="font-bold">Informations Serveur</h3>
<p>Node-01 est opérationnel.</p>
</Card>
```
---
## 🔒 Variables d'Environnement
Créez un fichier `.env.local` à la racine du projet pour stocker vos clés secrètes. Toutes les variables exposées au Frontend React doivent commencer par `VITE_`.
```env
# .env.local (ignoré par Git)
VITE_PB_URL=[http://127.0.0.1:8090](http://127.0.0.1:8090)
VITE_WEB3FORMS_KEY=votre_cle_api_secrete
```
## 📜 Scripts PNPM Disponibles
* `pnpm dev` : Lance le serveur de développement Vite.
* `pnpm build` : Compile le projet avec TypeScript et génère les fichiers de production dans `dist/`.
* `pnpm preview` : Lance un serveur local pour tester la version de production compilée.
* `pnpm add <package>` : Pour installer une nouvelle dépendance (équivalent de npm install).
* `pnpm add -D <package>` : Pour installer une dépendance de développement (équivalent de npm install -D).
---
*Conçu avec rigueur par l'équipe GISE pour le projet AEGIS.*