363 lines
14 KiB
Markdown
363 lines
14 KiB
Markdown
# Système de design inspiré de Slack
|
||||
|
|
|
|||
|
|
> Category: Productivité & SaaS
|
|||
|
|
> Plateforme de communication professionnelle. Palette primaire aubergine, palette multi-accents pour le logo, surfaces claires avec barre latérale sombre, ton chaleureux et accessible.
|
|||
|
|
|
|||
|
|
## 1. Thème visuel et atmosphère
|
|||
|
|
|
|||
|
|
L'identité de Slack repose sur l'idée que le travail doit se sentir humain et même un peu amusant. La surface canonique est **claire** — des zones de contenu blanches avec une barre latérale aubergine profonde (`#4A154B`) — à l'opposé des outils à dominante sombre. Ce contraste est intentionnel : la barre latérale est une ancre de navigation calme et toujours présente, tandis que la zone de contenu est lumineuse et ouverte.
|
|||
|
|
|
|||
|
|
La palette du logo — bleu, vert, jaune, rouge — apparaît principalement dans l'icône dièse et dans les contextes marketing, et non disséminée dans l'interface. Dans le produit lui-même, Slack utilise un système de couleurs sobre et professionnel, avec l'aubergine comme seul ancre de marque.
|
|||
|
|
|
|||
|
|
**Caractéristiques principales :**
|
|||
|
|
- Surfaces de contenu prioritairement claires : blanc `#FFFFFF` et quasi-blanc `#F8F8F8`
|
|||
|
|
- Barre latérale aubergine profonde `#4A154B` — l'élément d'interface le plus reconnaissable de la marque
|
|||
|
|
- Quatre couleurs d'accent du logo (bleu, vert, jaune, rouge) utilisées avec parcimonie, uniquement comme points forts
|
|||
|
|
- Larsseit pour les titres (marketing), sans-serif système pour l'interface
|
|||
|
|
- Arrondi mais pas cartoonesque : rayon de 4–8px sur la plupart des composants
|
|||
|
|
- Dense mais aéré : rangées de messages compactes avec une hiérarchie de fils claire
|
|||
|
|
- Ton chaleureux et conversationnel — émojis, réactions et illustrations sont de première importance
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Palette de couleurs et rôles
|
|||
|
|
|
|||
|
|
### Primaire de marque
|
|||
|
|
| Jeton | Hex | Rôle |
|
|||
|
|
|---|---|---|
|
|||
|
|
| `--color-aubergine` | `#4A154B` | Arrière-plan de la barre latérale, couleur principale de la marque |
|
|||
|
|
| `--color-aubergine-dark` | `#350d36` | États de survol sur les surfaces aubergine |
|
|||
|
|
| `--color-aubergine-light` | `#611f69` | Mise en évidence de l'élément actif dans la barre latérale |
|
|||
|
|
|
|||
|
|
### Couleurs d'accent du logo (à utiliser avec parcimonie — points forts, icônes, marketing uniquement)
|
|||
|
|
| Jeton | Hex | Nom | Rôle |
|
|||
|
|
|---|---|---|---|
|
|||
|
|
| `--color-blue` | `#36C5F0` | Bleu ciel | Icônes de canaux, liens, états informatifs |
|
|||
|
|
| `--color-green` | `#2EB67D` | Vert sarcelle | Statut en ligne, états de succès |
|
|||
|
|
| `--color-yellow` | `#ECB22E` | Or | Statut absent, avertissements, points forts |
|
|||
|
|
| `--color-red` | `#E01E5A` | Rubis | Notifications, erreurs, badge de mentions |
|
|||
|
|
|
|||
|
|
### Surface et arrière-plan
|
|||
|
|
| Jeton | Hex | Rôle |
|
|||
|
|
|---|---|---|
|
|||
|
|
| `--bg-primary` | `#FFFFFF` | Zone principale des messages, modales |
|
|||
|
|
| `--bg-secondary` | `#F8F8F8` | Panneaux de fils, surfaces secondaires |
|
|||
|
|
| `--bg-tertiary` | `#F1F1F1` | Arrière-plans des champs de saisie, états de survol |
|
|||
|
|
| `--bg-sidebar` | `#4A154B` | Barre latérale gauche (aubergine) |
|
|||
|
|
| `--bg-sidebar-hover` | `rgba(255,255,255,0.1)` | Survol d'un élément de la barre latérale |
|
|||
|
|
| `--bg-sidebar-active` | `rgba(255,255,255,0.2)` | Élément actif de la barre latérale |
|
|||
|
|
| `--bg-message-hover` | `#F8F8F8` | Survol d'une rangée de message |
|
|||
|
|
|
|||
|
|
### Couleurs de texte
|
|||
|
|
| Jeton | Hex | Rôle |
|
|||
|
|
|---|---|---|
|
|||
|
|
| `--text-primary` | `#1D1C1D` | Texte principal du corps (quasi-noir) |
|
|||
|
|
| `--text-secondary` | `#616061` | Horodatages, étiquettes atténuées |
|
|||
|
|
| `--text-sidebar` | `rgba(255,255,255,0.9)` | Noms des canaux dans la barre latérale |
|
|||
|
|
| `--text-sidebar-muted` | `rgba(255,255,255,0.6)` | Éléments inactifs de la barre latérale |
|
|||
|
|
| `--text-link` | `#1264A3` | Liens en ligne dans les messages |
|
|||
|
|
| `--text-mention` | `#1264A3` | Couleur du texte des @mentions |
|
|||
|
|
|
|||
|
|
### Couleurs sémantiques
|
|||
|
|
| Jeton | Hex | Rôle |
|
|||
|
|
|---|---|---|
|
|||
|
|
| `--color-success` | `#2EB67D` | Notifications de succès, états positifs |
|
|||
|
|
| `--color-warning` | `#ECB22E` | États d'avertissement |
|
|||
|
|
| `--color-danger` | `#E01E5A` | États d'erreur, actions destructrices |
|
|||
|
|
| `--color-info` | `#36C5F0` | Points forts informatifs |
|
|||
|
|
|
|||
|
|
### Bordure et séparateur
|
|||
|
|
| Jeton | Hex | Rôle |
|
|||
|
|
|---|---|---|
|
|||
|
|
| `--border-default` | `#DDDDDD` | Séparateurs standard, bordures de cartes |
|
|||
|
|
| `--border-subtle` | `#F1F1F1` | Séparateurs discrets entre les rangées |
|
|||
|
|
| `--border-focus` | `#1264A3` | Couleur de l'anneau de focus |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Règles typographiques
|
|||
|
|
|
|||
|
|
### Polices de caractères
|
|||
|
|
| Rôle | Officielle | Substitut web |
|
|||
|
|
|---|---|---|
|
|||
|
|
| Titres d'affichage / Marketing | Larsseit | `'Larsseit', 'Helvetica Neue', Arial, sans-serif` |
|
|||
|
|
| Interface / Corps / Chrome | Slack Lato (personnalisé) | `system-ui, -apple-system, BlinkMacSystemFont, sans-serif` |
|
|||
|
|
| Code / Monospace | — | `'Monaco', 'Menlo', 'Courier New', monospace` |
|
|||
|
|
|
|||
|
|
> Slack utilise **Larsseit** pour les titres marketing et une variante Lato personnalisée pour l'interface du produit. Pour une utilisation web, `system-ui` est le substitut le plus sûr.
|
|||
|
|
|
|||
|
|
### Échelle typographique
|
|||
|
|
|
|||
|
|
| Niveau | Taille | Graisse | Hauteur de ligne | Espacement des lettres | Usage |
|
|||
|
|
|---|---|---|---|---|---|
|
|||
|
|
| Affichage XL | 48px | 800 | 1.1 | -1px | Titres héros marketing |
|
|||
|
|
| Affichage L | 36px | 700 | 1.15 | -0.5px | Héros de section |
|
|||
|
|
| Titre 1 | 28px | 700 | 1.25 | normal | Titres de modales, en-têtes de page |
|
|||
|
|
| Titre 2 | 22px | 700 | 1.3 | normal | Titres de cartes, sections de paramètres |
|
|||
|
|
| Titre 3 | 18px | 700 | 1.35 | normal | En-têtes de sous-sections |
|
|||
|
|
| Corps L | 16px | 400 | 1.5 | normal | Texte des messages, descriptions |
|
|||
|
|
| Corps | 15px | 400 | 1.46667 | normal | Texte d'interface par défaut (taille de base de Slack) |
|
|||
|
|
| Corps SM | 13px | 400 | 1.38462 | normal | Métadonnées secondaires |
|
|||
|
|
| Légende | 12px | 400 | 1.33 | normal | Horodatages, indices |
|
|||
|
|
| Code | 12px | 400 | 1.5 | normal | Code en ligne, blocs de code |
|
|||
|
|
|
|||
|
|
### Règles typographiques
|
|||
|
|
- La taille de corps de base de Slack est **15px** — légèrement inférieure à 16px pour plus de densité
|
|||
|
|
- Canaux non lus : graisse 700 — le gras est le principal indicateur de non-lu
|
|||
|
|
- Horodatages : 12px `--text-secondary`, affichés au survol uniquement
|
|||
|
|
- Blocs de code : arrière-plan `#F8F8F8`, bordure `1px solid #DDDDDD`, border-radius 4px
|
|||
|
|
- Ne jamais utiliser de tailles de police inférieures à 12px
|
|||
|
|
- Titres marketing : espacement des lettres `-1px` pour les grandes tailles d'affichage
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Styles des composants
|
|||
|
|
|
|||
|
|
### Boutons
|
|||
|
|
|
|||
|
|
```css
|
|||
|
|
/* Primary */
|
|||
|
|
.btn-primary {
|
|||
|
|
background: #4A154B;
|
|||
|
|
color: #FFFFFF;
|
|||
|
|
border-radius: 4px;
|
|||
|
|
padding: 0 16px;
|
|||
|
|
height: 36px;
|
|||
|
|
font-size: 15px;
|
|||
|
|
font-weight: 700;
|
|||
|
|
border: none;
|
|||
|
|
}
|
|||
|
|
.btn-primary:hover { background: #611f69; }
|
|||
|
|
|
|||
|
|
/* Secondary */
|
|||
|
|
.btn-secondary {
|
|||
|
|
background: #FFFFFF;
|
|||
|
|
color: #1D1C1D;
|
|||
|
|
border: 1px solid #DDDDDD;
|
|||
|
|
border-radius: 4px;
|
|||
|
|
padding: 0 16px;
|
|||
|
|
height: 36px;
|
|||
|
|
font-size: 15px;
|
|||
|
|
font-weight: 700;
|
|||
|
|
}
|
|||
|
|
.btn-secondary:hover { background: #F8F8F8; }
|
|||
|
|
|
|||
|
|
/* Danger */
|
|||
|
|
.btn-danger {
|
|||
|
|
background: #E01E5A;
|
|||
|
|
color: #FFFFFF;
|
|||
|
|
border-radius: 4px;
|
|||
|
|
}
|
|||
|
|
.btn-danger:hover { background: #B3114A; }
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Champs de saisie
|
|||
|
|
```css
|
|||
|
|
.input {
|
|||
|
|
background: #FFFFFF;
|
|||
|
|
border: 1px solid #DDDDDD;
|
|||
|
|
border-radius: 4px;
|
|||
|
|
color: #1D1C1D;
|
|||
|
|
font-size: 15px;
|
|||
|
|
padding: 8px 12px;
|
|||
|
|
height: 36px;
|
|||
|
|
}
|
|||
|
|
.input:focus {
|
|||
|
|
border-color: #1264A3;
|
|||
|
|
box-shadow: 0 0 0 2px rgba(18,100,163,0.25);
|
|||
|
|
outline: none;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Élément de canal dans la barre latérale
|
|||
|
|
```css
|
|||
|
|
.channel-item {
|
|||
|
|
height: 28px;
|
|||
|
|
padding: 0 16px;
|
|||
|
|
border-radius: 6px;
|
|||
|
|
color: rgba(255,255,255,0.7);
|
|||
|
|
font-size: 15px;
|
|||
|
|
font-weight: 400;
|
|||
|
|
}
|
|||
|
|
.channel-item:hover {
|
|||
|
|
background: rgba(255,255,255,0.1);
|
|||
|
|
color: #FFFFFF;
|
|||
|
|
}
|
|||
|
|
.channel-item.active {
|
|||
|
|
background: rgba(255,255,255,0.2);
|
|||
|
|
color: #FFFFFF;
|
|||
|
|
}
|
|||
|
|
.channel-item.unread {
|
|||
|
|
color: #FFFFFF;
|
|||
|
|
font-weight: 700;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Badge non lu
|
|||
|
|
```css
|
|||
|
|
.badge {
|
|||
|
|
background: #E01E5A;
|
|||
|
|
color: #FFFFFF;
|
|||
|
|
border-radius: 8px;
|
|||
|
|
font-size: 11px;
|
|||
|
|
font-weight: 700;
|
|||
|
|
padding: 1px 6px;
|
|||
|
|
min-width: 18px;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Pièces jointes de message / Cartes
|
|||
|
|
```css
|
|||
|
|
.attachment {
|
|||
|
|
border-left: 4px solid #DDDDDD;
|
|||
|
|
background: #F8F8F8;
|
|||
|
|
border-radius: 0 4px 4px 0;
|
|||
|
|
padding: 8px 12px;
|
|||
|
|
margin: 4px 0;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Réactions
|
|||
|
|
```css
|
|||
|
|
.reaction {
|
|||
|
|
border: 1px solid #DDDDDD;
|
|||
|
|
border-radius: 24px;
|
|||
|
|
background: #F8F8F8;
|
|||
|
|
padding: 2px 8px;
|
|||
|
|
font-size: 13px;
|
|||
|
|
cursor: pointer;
|
|||
|
|
}
|
|||
|
|
.reaction:hover { background: #F1F1F1; }
|
|||
|
|
.reaction.active {
|
|||
|
|
background: rgba(18,100,163,0.1);
|
|||
|
|
border-color: #1264A3;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. Principes de mise en page
|
|||
|
|
|
|||
|
|
### Mise en page à trois colonnes
|
|||
|
|
```
|
|||
|
|
┌──────────────┬──────────────────────────────┬─────────────┐
|
|||
|
|
│ Sidebar │ Message Area │ Thread │
|
|||
|
|
│ (240px) │ (flex: 1) │ (400px) │
|
|||
|
|
│ #4A154B │ #FFFFFF │ optional │
|
|||
|
|
└──────────────┴──────────────────────────────┴─────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Système d'espacement (base 4px)
|
|||
|
|
| Jeton | Valeur | Usage |
|
|||
|
|
|---|---|---|
|
|||
|
|
| `--space-1` | 4px | Espaces serrés |
|
|||
|
|
| `--space-2` | 8px | Rembourrage de composant |
|
|||
|
|
| `--space-3` | 12px | Rembourrage des champs de saisie |
|
|||
|
|
| `--space-4` | 16px | Rembourrage standard |
|
|||
|
|
| `--space-6` | 24px | Rembourrage de carte |
|
|||
|
|
| `--space-8` | 32px | Espaces entre sections |
|
|||
|
|
|
|||
|
|
### Structure de la barre latérale
|
|||
|
|
```
|
|||
|
|
[Workspace Name ▼]
|
|||
|
|
────────────────────
|
|||
|
|
Threads
|
|||
|
|
All DMs
|
|||
|
|
Drafts & Sent
|
|||
|
|
────────────────────
|
|||
|
|
▼ Channels
|
|||
|
|
# general
|
|||
|
|
# random
|
|||
|
|
# design ● (unread)
|
|||
|
|
────────────────────
|
|||
|
|
▼ Direct Messages
|
|||
|
|
John Doe
|
|||
|
|
Jane Smith
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Compositeur de message
|
|||
|
|
- Épinglé en bas de la zone de message
|
|||
|
|
- `border: 1px solid #DDDDDD`, `border-radius: 8px`, `margin: 0 16px 16px`
|
|||
|
|
- Barre d'outils : émoji, pièce jointe, format, bouton d'envoi
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Profondeur et élévation
|
|||
|
|
|
|||
|
|
Slack utilise des ombres légères sur une surface claire :
|
|||
|
|
|
|||
|
|
| Niveau | Usage | Ombre |
|
|||
|
|
|---|---|---|
|
|||
|
|
| Plat | Rangées de messages, éléments de la barre latérale | none |
|
|||
|
|
| Bas | Cartes, champs de saisie | `0 1px 3px rgba(0,0,0,0.08)` |
|
|||
|
|
| Moyen | Menus déroulants, popovers | `0 4px 12px rgba(0,0,0,0.12)` |
|
|||
|
|
| Élevé | Modales, dialogues | `0 8px 24px rgba(0,0,0,0.15)` |
|
|||
|
|
| Superposition | Arrière-plans de modales | `rgba(0,0,0,0.5)` |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. À faire et à ne pas faire
|
|||
|
|
|
|||
|
|
### ✅ À faire
|
|||
|
|
- Utiliser l'aubergine `#4A154B` pour la barre latérale — c'est l'élément d'interface le plus iconique de Slack
|
|||
|
|
- Garder la zone de contenu principale blanche et claire
|
|||
|
|
- Utiliser `#1D1C1D` (quasi-noir) pour tout le texte du corps, pas le noir pur
|
|||
|
|
- Mettre les noms de canaux en gras pour indiquer le statut non lu — la graisse est l'indicateur
|
|||
|
|
- Utiliser les quatre couleurs d'accent uniquement pour les rôles sémantiques (succès, avertissement, danger, info)
|
|||
|
|
- Appliquer `border-left: 4px` sur les pièces jointes et les intégrations de messages
|
|||
|
|
- Afficher les horodatages au survol uniquement
|
|||
|
|
- Utiliser `#1264A3` pour les liens et les états de focus
|
|||
|
|
- Garder les éléments de la barre latérale compacts : hauteur 28px, border-radius 6px
|
|||
|
|
|
|||
|
|
### ❌ À ne pas faire
|
|||
|
|
- Ne pas utiliser une zone de contenu principale sombre — Slack est prioritairement clair
|
|||
|
|
- Ne pas disperser bleu/vert/jaune/rouge comme accents décoratifs
|
|||
|
|
- Ne pas utiliser le noir pur `#000000` pour le texte
|
|||
|
|
- Ne pas utiliser des bulles de dialogue — les messages sont des rangées plates
|
|||
|
|
- Ne pas créer des boutons à grand rayon — 4px est la norme
|
|||
|
|
- Ne pas afficher les horodatages en permanence
|
|||
|
|
- Ne pas utiliser les MAJUSCULES pour les noms de canaux
|
|||
|
|
- Ne pas utiliser des tailles de police inférieures à 12px
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. Comportement responsive
|
|||
|
|
|
|||
|
|
### Points de rupture
|
|||
|
|
| Point de rupture | Largeur | Mise en page |
|
|||
|
|
|---|---|---|
|
|||
|
|
| Mobile | < 768px | Panneau unique, barre latérale en tiroir gauche |
|
|||
|
|
| Tablette | 768–1024px | Barre latérale + zone de messages uniquement |
|
|||
|
|
| Bureau | > 1024px | Mise en page complète à trois colonnes |
|
|||
|
|
|
|||
|
|
### Adaptations mobiles
|
|||
|
|
- Barre latérale : tiroir gauche, glisser à droite pour ouvrir
|
|||
|
|
- Barre d'onglets du bas : Accueil, MDs, Activité, Vous
|
|||
|
|
- Panneau de fil : superposition plein écran
|
|||
|
|
- Compositeur : épinglé au-dessus du clavier
|
|||
|
|
- Éléments de la liste de canaux : hauteur de cible tactile 44px
|
|||
|
|
- Barre d'en-tête aubergine conservée sur mobile
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 9. Guide de prompt pour agent
|
|||
|
|
|
|||
|
|
Lors de la génération de designs dans le style Slack, suivez cette approche :
|
|||
|
|
|
|||
|
|
**Application des couleurs :**
|
|||
|
|
> Définissez `background: #FFFFFF` comme canevas principal. Utilisez `#4A154B` (aubergine) pour la barre latérale. Tout le texte principal est `#1D1C1D`. Les liens et les anneaux de focus utilisent `#1264A3`. Les quatre couleurs du logo — `#36C5F0`, `#2EB67D`, `#ECB22E`, `#E01E5A` — sont uniquement sémantiques : info, succès, avertissement, danger.
|
|||
|
|
|
|||
|
|
**Typographie :**
|
|||
|
|
> Utilisez `system-ui, -apple-system, sans-serif` pour toute l'interface. La taille de base est 15px. Canaux non lus : graisse 700. Texte du corps : graisse 400. Horodatages : 12px `#616061`, survol uniquement. Code : `Monaco, Menlo, monospace`, 12px, arrière-plan `#F8F8F8`.
|
|||
|
|
|
|||
|
|
**Mise en page :**
|
|||
|
|
> Trois colonnes : barre latérale aubergine de 240px + zone de messages blanche flexible + panneau de fil optionnel de 400px. Éléments de la barre latérale : hauteur 28px, rayon 6px, gras si non lu. Compositeur : épinglé en bas, `border: 1px solid #DDDDDD`, `border-radius: 8px`.
|
|||
|
|
|
|||
|
|
**Composants :**
|
|||
|
|
> Boutons : rayon 4px, hauteur 36px, primaire aubergine. Champs de saisie : bordure `1px solid #DDDDDD`, anneau de focus `#1264A3`. Rangées de messages : plates, sans bulles, avatar circulaire de 36px. Réactions : pilule `border: 1px solid #DDDDDD`, `border-radius: 24px`.
|
|||
|
|
|
|||
|
|
**Ton :**
|
|||
|
|
> Slack est chaleureux, professionnel et humain. Les états vides utilisent des illustrations amicales. Les appels à l'action sont directs : « Envoyer un message », « Commencer ». Les messages d'erreur sont clairs et utiles. Jamais alarmant.
|
|||
|
|
|
|||
|
|
**Antipatterns à éviter :**
|
|||
|
|
> Pas de zone de contenu sombre. Pas de bulles de dialogue. Pas de texte noir pur. Pas d'accents multi-couleurs dispersés. Pas de noms de canaux en MAJUSCULES. Pas de police inférieure à 12px. Pas de grand rayon de bouton.
|