一、④段整套同步(用户选候选 A)
- 新增 `references/stage-proto-doc/assets/产品文档模板.html`(16 KB/247 行,从备份拷、转 LF)。
- ④段 SKILL.md 换成备份 15:28 那版,并按模板口径改齐:
· 「产品文档框架」从「四块+一附录」改成**六节** —— 页面结构/功能清单/使用场景/操作流程/
跨页与界面状态/待确认与偏离;与模板同构,⛔ 不从空白页重写结构。
· 编号从 R/S/F 改成 **P 页面/S 场景/F 功能/J 二级功能**,各自唯一、按展示顺序通排。
· 保留旧版有价值的要求:每项功能补齐 做什么/入口在哪/输入边界/异常与恢复;重点功能三处标红;
横向流程图每步写清页面/功能/操作/完成判据。
· 完成标准「七节」→「六节」,自查清单同步换掉「需求」那批条目,补模板与配图两条。
· 路径 `designs/<项目>/` → `docs/pm/<项目>/ui/`(2 处)。
· 补回本机那条「每份产出文档开头都要有一张图」的引用(指向主 skill,段内不复述)。
- 主 skill 同步:四段结构表④行、④段沿革、画图小节(④段画页面结构图 + 用户路径)。
二、open-design 移到技能根(用户选候选 A)
- `git mv product-planning/references/stage-delivery/assets/open-design → open-design/`(4178 文件)。
- `.gitignore` 白名单加 `!/open-design/` —— 否则移出去就不再纳入版本控制。
- 引用改 11 处:路径形态 `assets/open-design/...` → `<技能根>/open-design/...`;
「随段携带的自带件」改称「同根技能」;「路径怎么找」那条改成自带件(段内相对路径)与
同根技能(`<技能根>/<技能名>/`)两类分开写。
- open-design 自己的 ATTRIBUTION.md 两处同步(它现在与 oil-ui-pro 同层)。
- 副作用(有益):命名闸门读数由 2063 降到 225 —— 此前它把 open-design 里 919 个第三方 md
当成规则一起扫了;现在只扫本包 23 个 md。已确认④段的 H1 与 4a/4b/4c 子步仍在检查范围内。
三、验收
- check_naming.py --ws E:/ProgramData/AIProject/contentm_agent = 通过 225 / 失败 0 / 提示 27。
- 活文件里 `assets/open-design` 残留 0;工作区 CRLF 文件 0。
14 KiB
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
#FFFFFFet 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-uiest 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, bordure1px solid #DDDDDD, border-radius 4px - Ne jamais utiliser de tailles de police inférieures à 12px
- Titres marketing : espacement des lettres
-1pxpour les grandes tailles d'affichage
4. Styles des composants
Boutons
/* 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
.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
.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
.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
.attachment {
border-left: 4px solid #DDDDDD;
background: #F8F8F8;
border-radius: 0 4px 4px 0;
padding: 8px 12px;
margin: 4px 0;
}
Réactions
.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
#4A154Bpour 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: 4pxsur les pièces jointes et les intégrations de messages - Afficher les horodatages au survol uniquement
- Utiliser
#1264A3pour 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
#000000pour 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: #FFFFFFcomme 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-serifpour 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 : piluleborder: 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.