|
| 1 | +# 🎨 Design System — SebastienDegodez.github.io |
| 2 | + |
| 3 | +Synthèse des éléments visuels extraits des dépôts source : |
| 4 | +- [`SebastienDegodez/slide-marp`](https://github.com/SebastienDegodez/slide-marp) — thème de base |
| 5 | +- [`SebastienDegodez/MCP.Pack`](https://github.com/SebastienDegodez/MCP.Pack) — thème étendu |
| 6 | + |
| 7 | +Thème Marp utilisé : **Gaia** (mode `invert`) + surcharges `custom-default.css`. |
| 8 | +Format prêt à l'emploi : voir [`design-tokens.css`](./design-tokens.css). |
| 9 | + |
| 10 | +--- |
| 11 | + |
| 12 | +## 🖌️ Palette de couleurs |
| 13 | + |
| 14 | +| Rôle | Nom | Hex | Aperçu | |
| 15 | +|---|---|---|---| |
| 16 | +| Fond principal (invert) | `--color-dark` | `#455a64` | Bleu-gris ardoise | |
| 17 | +| Texte principal (invert) | `--color-light` | `#fff8e1` | Blanc chaud / Cream | |
| 18 | +| Accent primaire | `--color-primary` | `#0288d1` | Bleu vif | |
| 19 | +| Accent secondaire / Highlight | `--color-secondary` | `#81d4fa` | Bleu clair | |
| 20 | +| Muted / footer / code bg | `--color-dimmed` | `#dad8c8` | Cream grisé | |
| 21 | +| Fond variante gaia | `--color-gaia-bg` | `#0288d1` | Bleu primaire | |
| 22 | +| Muted variante gaia | `--color-gaia-dimmed` | `#cce2de` | Bleu-vert pâle | |
| 23 | +| Rayure tableau | `--color-stripe` | `rgba(255,248,225,0.10)` | Cream translucide | |
| 24 | + |
| 25 | +### Mode principal utilisé : `invert` (sombre) |
| 26 | + |
| 27 | +``` |
| 28 | +Fond : #455a64 ██████ bleu-gris ardoise |
| 29 | +Texte : #fff8e1 ██████ blanc chaud |
| 30 | +Liens/strong : #81d4fa ██████ bleu clair |
| 31 | +Muted/footer : #dad8c8 ██████ cream grisé |
| 32 | +Code bg : #dad8c8 ██████ (même que muted) |
| 33 | +Code text : #455a64 ██████ (même que fond) |
| 34 | +``` |
| 35 | + |
| 36 | +### Mode clair (light) — slides secondaires |
| 37 | + |
| 38 | +``` |
| 39 | +Fond : #fff8e1 ██████ blanc chaud |
| 40 | +Texte : #455a64 ██████ bleu-gris |
| 41 | +Liens/strong : #0288d1 ██████ bleu vif |
| 42 | +Muted : #dad8c8 ██████ cream grisé |
| 43 | +``` |
| 44 | + |
| 45 | +### Variante Gaia (accent bleu — slides spéciaux) |
| 46 | + |
| 47 | +``` |
| 48 | +Fond : #0288d1 ██████ bleu vif |
| 49 | +Texte : #fff8e1 ██████ blanc chaud |
| 50 | +Highlight : #81d4fa ██████ bleu clair |
| 51 | +Muted : #cce2de ██████ bleu-vert pâle |
| 52 | +``` |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +## 🖼️ Fonds de page |
| 57 | + |
| 58 | +| Slide | Type de fond | Détail | |
| 59 | +|---|---|---| |
| 60 | +| Titre (première slide) | Image + overlay | `bg.jpg` à 70% d'opacité sur fond `#455a64` | |
| 61 | +| Présentation auteur | Image + overlay | `bg.jpg` à 70% d'opacité | |
| 62 | +| Slide de fin | Image + overlay | `bg.jpg` à 70% d'opacité | |
| 63 | +| Slides de contenu | Fond uni + gradient | `#455a64` + gradient 135° subtil | |
| 64 | + |
| 65 | +### Image de fond |
| 66 | + |
| 67 | +- **Fichier** : `bg.jpg` (photo sombre, ambiance tech/nature, 138 KB) |
| 68 | +- **URL** : `https://raw.githubusercontent.com/SebastienDegodez/slide-marp/refs/heads/main/presentation/images/bg.jpg` |
| 69 | +- **Application** : opacité `0.7` — l'image ne sature pas le contenu textuel |
| 70 | + |
| 71 | +### Gradient de fond (slides de contenu) |
| 72 | + |
| 73 | +```css |
| 74 | +background-image: linear-gradient( |
| 75 | + 135deg, |
| 76 | + rgba(136, 136, 136, 0) 0%, |
| 77 | + rgba(136, 136, 136, 0.02) 50%, |
| 78 | + rgba(255, 255, 255, 0) 50%, |
| 79 | + rgba(255, 255, 255, 0.05) 100% |
| 80 | +); |
| 81 | +``` |
| 82 | +> Effet très subtil, quasiment invisible — donne juste une légère profondeur aux slides. |
| 83 | +
|
| 84 | +--- |
| 85 | + |
| 86 | +## ✍️ Typographie |
| 87 | + |
| 88 | +### Polices |
| 89 | + |
| 90 | +| Rôle | Famille | Source | |
| 91 | +|---|---|---| |
| 92 | +| Corps & titres | **Lato**, 'Avenir Next', Avenir, 'Trebuchet MS', 'Segoe UI', sans-serif | [Bunny Fonts](https://fonts.bunny.net) | |
| 93 | +| Code & blocs | **Fira Code**, 'Roboto Mono', monospace | Surcharge `custom-default.css` | |
| 94 | +| Citations (guillemets) | Times New Roman, serif | Gaia natif | |
| 95 | + |
| 96 | +### Hiérarchie des tailles (base 35 px) |
| 97 | + |
| 98 | +| Élément | Em | ≈ px | |
| 99 | +|---|---|---| |
| 100 | +| `h1` | 1.8 em | ~63 px | |
| 101 | +| `h2` | 1.5 em | ~52 px | |
| 102 | +| `h3` | 1.3 em | ~45 px | |
| 103 | +| `h4` | 1.1 em | ~38 px | |
| 104 | +| `h5` | 1.0 em | ~35 px | |
| 105 | +| `h6` | 0.9 em | ~31 px | |
| 106 | +| Code inline | 0.8 em | ~28 px | |
| 107 | +| Bloc de code | 0.6 em | ~21 px | |
| 108 | +| Footer / header | 66 % | ~23 px | |
| 109 | + |
| 110 | +### Espacement texte |
| 111 | + |
| 112 | +``` |
| 113 | +line-height : 1.35 |
| 114 | +letter-spacing : 1.25 px |
| 115 | +``` |
| 116 | + |
| 117 | +--- |
| 118 | + |
| 119 | +## 📐 Dimensions & Espacement |
| 120 | + |
| 121 | +### Formats de slides |
| 122 | + |
| 123 | +| Format | Largeur | Hauteur | |
| 124 | +|---|---|---| |
| 125 | +| 16:9 (défaut) | 1280 px | 720 px | |
| 126 | +| 4:3 | 960 px | 720 px | |
| 127 | + |
| 128 | +### Zones |
| 129 | + |
| 130 | +``` |
| 131 | +Padding intérieur des slides : 70 px |
| 132 | +Hauteur header/footer : 70 px |
| 133 | +Line-height header/footer : 50 px |
| 134 | +``` |
| 135 | + |
| 136 | +--- |
| 137 | + |
| 138 | +## 🔘 Composants |
| 139 | + |
| 140 | +### Carte auteur (`div#presentation`) |
| 141 | + |
| 142 | +``` |
| 143 | +Layout : flexbox, centré horizontalement |
| 144 | +Avatar : 5rem × 5rem, border-radius 50% (cercle) |
| 145 | +Espacement : margin-right 1.1 em entre avatar et texte |
| 146 | +Nom (h1) : margin-top 0, text-align left |
| 147 | +Titre (h5) : text-align left |
| 148 | +``` |
| 149 | + |
| 150 | +### Grille 2 colonnes (`.columns`) |
| 151 | + |
| 152 | +``` |
| 153 | +display : grid |
| 154 | +grid-template-columns : repeat(2, minmax(0, 1fr)) |
| 155 | +gap : 1 rem |
| 156 | +``` |
| 157 | + |
| 158 | +### Slide de fin (`div#end`) |
| 159 | + |
| 160 | +``` |
| 161 | +Layout : flexbox, centré horizontalement |
| 162 | +Usage : QR code centré |
| 163 | +``` |
| 164 | + |
| 165 | +### Blocs de code (`pre`, `code`) |
| 166 | + |
| 167 | +``` |
| 168 | +Fond (code inline) : #dad8c8 (--color-dimmed) |
| 169 | +Texte code inline : #455a64 (--color-dark) |
| 170 | +Fond pre : #fff8e1 (--color-foreground) |
| 171 | +Police : Fira Code, monospace |
| 172 | +Font-size pre : 0.6 em |
| 173 | +Padding pre : 0.5 em |
| 174 | +border-radius : aucun défini |
| 175 | +``` |
| 176 | + |
| 177 | +### Blockquote |
| 178 | + |
| 179 | +``` |
| 180 | +Padding : 0 1 em |
| 181 | +Guillemets décoratifs (::before / ::after) : Times New Roman, bold, #dad8c8 |
| 182 | +``` |
| 183 | + |
| 184 | +### Tableau |
| 185 | + |
| 186 | +``` |
| 187 | +Bordures : 1 px solid #fff8e1 |
| 188 | +En-tête : fond #fff8e1, texte #455a64 |
| 189 | +Rayures : rgba(255,248,225, 0.10) |
| 190 | +``` |
| 191 | + |
| 192 | +### Icônes |
| 193 | + |
| 194 | +``` |
| 195 | +Library : Font Awesome 6.7.2 |
| 196 | +CDN : https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css |
| 197 | +Usage : <i class="fa-brands fa-github"></i> |
| 198 | +``` |
| 199 | + |
| 200 | +--- |
| 201 | + |
| 202 | +## 🔲 Principes de style globaux |
| 203 | + |
| 204 | +| Principe | Valeur | |
| 205 | +|---|---| |
| 206 | +| Arrondis | `50%` pour les avatars uniquement — pas d'arrondi général sur les cards | |
| 207 | +| Ombres | Aucune (design plat) | |
| 208 | +| Bordures | Uniquement dans les tableaux (`1px solid`) | |
| 209 | +| Couleur d'accentuation | Bleu clair `#81d4fa` pour les liens, `<strong>` dans les titres | |
| 210 | +| Effet de fond | Gradient subtil 135° quasi-invisible | |
| 211 | +| Superposition image | `opacity: 0.7` pour laisser lisible le texte par-dessus | |
| 212 | +| Style global | **Flat design, sombre, minimaliste** | |
| 213 | +| Thème Marp | Gaia + classe `invert` (dark mode par défaut) | |
| 214 | + |
| 215 | +--- |
| 216 | + |
| 217 | +## 🚀 Utilisation pour le prototypage |
| 218 | + |
| 219 | +### En CSS |
| 220 | + |
| 221 | +Importer [`design-tokens.css`](./design-tokens.css) et utiliser les variables CSS : |
| 222 | + |
| 223 | +```css |
| 224 | +@import './design-tokens.css'; |
| 225 | + |
| 226 | +body { |
| 227 | + background-color: var(--color-background); /* #455a64 */ |
| 228 | + color: var(--color-foreground); /* #fff8e1 */ |
| 229 | + font-family: var(--font-sans); |
| 230 | + font-size: var(--font-size-base); |
| 231 | +} |
| 232 | + |
| 233 | +a { color: var(--color-link); } /* #81d4fa */ |
| 234 | + |
| 235 | +code { |
| 236 | + font-family: var(--font-mono); |
| 237 | + background: var(--color-code-bg); /* #dad8c8 */ |
| 238 | + color: var(--color-code-text); /* #455a64 */ |
| 239 | +} |
| 240 | +``` |
| 241 | + |
| 242 | +### En Figma |
| 243 | + |
| 244 | +Créer les styles de couleurs suivants : |
| 245 | + |
| 246 | +| Style | Hex | |
| 247 | +|---|---| |
| 248 | +| Background/Primary | `#455a64` | |
| 249 | +| Background/Accent | `#0288d1` | |
| 250 | +| Text/Primary | `#fff8e1` | |
| 251 | +| Text/Muted | `#dad8c8` | |
| 252 | +| Accent/Primary | `#0288d1` | |
| 253 | +| Accent/Highlight | `#81d4fa` | |
| 254 | + |
| 255 | +Styles de texte : |
| 256 | +- **Heading 1** : Lato 900, 63 px, `#fff8e1` |
| 257 | +- **Heading 2** : Lato 900, 52 px, `#fff8e1` |
| 258 | +- **Body** : Lato 400, 35 px, `#fff8e1`, line-height 1.35 |
| 259 | +- **Code** : Fira Code 400, 21 px, `#455a64` sur fond `#dad8c8` |
| 260 | +- **Footer** : Lato 400, 23 px, `#dad8c8` |
0 commit comments