④段整套同步(六节 + P/S/F/J + 模板)+ open-design 移到技能根

一、④段整套同步(用户选候选 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。
This commit is contained in:
admin committed 2026-10-15 21:17:28 +08:00
1 parent fa0a9026c8
commit 5afeb6b78a
4184 files changed
+326 -70

No files matched your search

@@ -0,0 +1,168 @@
# Design System Inspired by Discord
> Category: Produttività e SaaS
> Piattaforma vocale e di chat. Blurple intenso, superfici dark-first, momenti d'accento giocosi.
## 1. Tema Visivo e Atmosfera
Il prodotto Discord è progettato per serate, raid e chat vocali di gruppo — quindi l'intera superficie è dark-first. La canvas predefinita è il profondo `Background Primary` (`#313338` tema chiaro, `#1e1f22` tema scuro), con colonne di chat stratificate su tonalità leggermente più chiare o più scure per indicare canali, thread e pannelli laterali. Il caratteristico **Blurple** (`#5865f2`) è riservato al marchio, alle CTA primarie, alle menzioni e all'indicatore "tu" — usato con parsimonia per risaltare sui neutri attenuati.
La tipografia è **gg sans** (il sostituto personalizzato di Whitney di Discord) per il testo e il chrome, con forme geometriche arrotondate che risultano accessibili pur mantenendo la leggibilità alle piccole dimensioni richieste da un client di chat. I titoli scalano in modo incrementale; le righe di chat sono compatte (4–8px tra i gruppi di messaggi) affinché ore di scorrimento risultino facilmente analizzabili.
Il linguaggio delle forme è arrotondato ma non morbido come un palloncino: raggio di 8px sulle card, 4px sugli input, pillole complete su badge di stato e tag. I server hanno avatar con angoli arrotondati da 48px che si trasformano in cerchi al passaggio del mouse — un piccolo dettaglio in movimento che è diventato parte dell'identità del brand.
**Caratteristiche Chiave:**
- Superfici dark-first: `#1e1f22` / `#2b2d31` / `#313338` (profondità a 3 livelli)
- Blurple `#5865f2` come unico accento saturo nella superficie di chat
- gg sans (stile Whitney) per tutto il testo — amichevole, geometrico, neutro
- Avatar dei server a quadrato arrotondato (raggio 16px) che si trasformano in cerchi al passaggio del mouse
- Spaziatura compatta tra le righe di chat, padding generoso nel pannello laterale
- Indicatori di stato: verde online, giallo inattivo, rosso non disturbare, grigio offline
- Divisori da 1px allineati al pixel in bianco attenuato a bassa opacità
## 2. Palette Colori e Ruoli
### Primari
- **Blurple** (`#5865f2`): Primario del brand, CTA primaria, evidenziazione delle menzioni.
- **Blurple Hover** (`#4752c4`): Hover/attivo per il blurple.
- **Blurple Soft** (`#7289da`): Blurple legacy, accento secondario nel marketing.
### Superficie (Tema Scuro — predefinito)
- **Background Tertiary** (`#1e1f22`): Barra lista server, sfondo più profondo.
- **Background Secondary** (`#2b2d31`): Barra laterale canali, barra laterale impostazioni.
- **Background Primary** (`#313338`): Superficie di chat, colonna messaggi.
- **Background Floating** (`#111214`): Popover flottanti, tooltip, completamento automatico.
- **Background Modifier Hover** (`rgba(78, 80, 88, 0.3)`): Overlay hover sulle righe.
- **Background Modifier Selected** (`rgba(78, 80, 88, 0.6)`): Riga attiva.
### Superficie (Tema Chiaro)
- **Light Bg Primary** (`#ffffff`): Superficie di chat nel tema chiaro.
- **Light Bg Secondary** (`#f2f3f5`): Barra laterale nel tema chiaro.
- **Light Bg Tertiary** (`#e3e5e8`): Superficie chiara più profonda.
### Testo
- **Header Primary** (`#f2f3f5`): Intestazioni dei canali, titoli modali nel tema scuro.
- **Header Secondary** (`#b5bac1`): Intestazioni attenuate.
- **Text Normal** (`#dbdee1`): Testo corpo nel tema scuro — leggermente più freddo del bianco puro.
- **Text Muted** (`#949ba4`): Timestamp, nomi server, metadati secondari.
- **Text Link** (`#00a8fc`): Hyperlink nei messaggi — blu cielo, distinto dal blurple.
- **Channels Default** (`#80848e`): Nome canale inattivo nella barra laterale.
### Stato e Semantica
- **Status Online** (`#23a55a`): Indicatore online, stati di successo.
- **Status Idle** (`#f0b232`): Indicatore inattivo, assente.
- **Status DND** (`#f23f43`): Non disturbare, utilizzato anche come rosso distruttivo.
- **Status Streaming** (`#593695`): Viola "in streaming".
- **Status Offline** (`#80848e`): Grigio offline.
- **Mention Highlight** (`rgba(88, 101, 242, 0.1)`): Sfondo blurple tenue sulle righe con @menzione.
### Bordo e Divisori
- **Background Modifier Accent** (`rgba(255, 255, 255, 0.06)`): Divisore standard nel tema scuro.
- **Border Subtle** (`#3f4147`): Divisore solido per le card.
## 3. Regole Tipografiche
### Famiglia di Font
- **Corpo / UI / Intestazioni**: `gg sans`, con fallback: `"Helvetica Neue", Helvetica, Arial, sans-serif`
- **Display (legacy / Whitney)**: `Whitney`, con fallback: `gg sans`
- **Codice / Mono**: `"gg mono"`, con fallback: `Consolas, Andale Mono, Courier New, Courier, monospace`
### Gerarchia
| Ruolo | Font | Dimensione | Peso | Altezza riga | Spaziatura lettere | Note |
|------|------|------|--------|-------------|----------------|-------|
| Display Hero | gg sans | 56px (3.5rem) | 800 | 1.1 | -0.02em | Hero marketing |
| Intestazione pagina | gg sans | 24px (1.5rem) | 700 | 1.25 | normal | Titoli impostazioni/profilo |
| Nome canale | gg sans | 16px (1rem) | 600 | 1.25 | normal | `#general`, intestazione canale |
| Corpo messaggio | gg sans | 16px (1rem) | 400 | 1.375 | normal | Testo chat standard |
| Nome utente | gg sans | 16px (1rem) | 500 | 1.25 | normal | Autore di un messaggio |
| Timestamp | gg sans | 12px (0.75rem) | 500 | 1.25 | normal | "Oggi alle 16:32" |
| Canale barra laterale | gg sans | 16px (1rem) | 500 | 1.25 | normal | Righe lista canali |
| Nome server | gg sans | 16px (1rem) | 600 | 1.25 | normal | Intestazione server |
| Didascalia / Meta | gg sans | 12px (0.75rem) | 400 | 1.3 | 0.02em | Testo di stato, tag modificato |
| Codice inline | gg mono | 0.875em | 400 | inherit | normal | `code` inline |
| Blocco codice | gg mono | 14px (0.875rem) | 400 | 1.5 | normal | Blocco ```triple-fenced``` |
### Principi
- **Geometria amichevole**: gg sans sostituisce Whitney con terminali arrotondati su a/g/s — il brand vuole calore senza compromettere la leggibilità.
- **Contrasto di peso anziché di colore**: la gerarchia si ottiene tramite passaggi di peso 400→500→600→700→800; la superficie rimane neutra.
- **Corpo a 16px**: i messaggi di chat non scendono sotto i 16px. La densità si ottiene tramite l'altezza della riga (1.375), non la dimensione del font.
## 4. Stili dei Componenti
### Bottoni
**Primario**
- Background: `#5865f2`
- Testo: `#ffffff`
- Padding: 8px 16px
- Raggio: 4px
- Hover: `#4752c4`
- Utilizzo: CTA primarie, "Continua", "Unisciti al Server"
**Secondario**
- Background: `#4e5058`
- Testo: `#ffffff`
- Padding: 8px 16px
- Raggio: 4px
- Hover: `#6d6f78`
**Terziario / Sottile (stile link)**
- Background: transparent
- Testo: `#dbdee1`
- Hover: testo sottolineato, nessun cambiamento di sfondo
**Pericoloso**
- Background: `#da373c`
- Testo: `#ffffff`
- Hover: `#a12d2f`
### Input
- Background: `#1e1f22`
- Testo: `#dbdee1`
- Bordo: 1px solid `#1e1f22`
- Raggio: 4px
- Padding: 10px 12px
- Focus: bordo `#5865f2`
### Avatar dei Server
- Dimensione: 48×48px
- Raggio: 16px (quadrato arrotondato) per impostazione predefinita; transizione a 50% al passaggio del mouse e in stato attivo.
- Stato attivo: pillola bianca da 4px sul bordo sinistro della colonna icone.
### Indicatori di Stato
- Dimensione: 10×10px
- Bordo: 3px solid background-tertiary (crea l'effetto "tacca")
- Posizione: in basso a destra dell'avatar.
### Card / Embed
- Background: `#2b2d31` (scuro) o `#f2f3f5` (chiaro)
- Bordo sinistro: 4px solid colore accento dell'embed.
- Raggio: 4px
- Padding: 8px 16px
### Pillola di Menzione
- Background: `rgba(88, 101, 242, 0.3)`
- Testo: `#c9cdfb`
- Padding: 0 2px
- Raggio: 3px
## 5. Spaziatura e Layout
- **Unità base**: 4px. Scala: 4, 8, 12, 16, 20, 24, 32, 40.
- **Barra server**: larghezza 72px, fissa.
- **Barra laterale canali**: larghezza 240px.
- **Lista membri**: larghezza 240px su desktop.
- **Colonna chat**: fluida, min 380px.
## 6. Animazione
- **Durata**: 200ms per hover; 350ms per la trasformazione in cerchio dell'avatar; 80ms per la comparsa del tooltip.
- **Easing**: `cubic-bezier(0.215, 0.61, 0.355, 1)` per la trasformazione dell'avatar (scatto iniziale poi assestamento).
- **Pulsazione notifica**: 1.4s ease-in-out infinite sull'indicatore di menzione non letta.
## 7. Linee Guida d'Uso
- Preservare insieme il guscio scuro, la densità compatta e la gerarchia delle azioni blurple; usare il blurple su un layout marketing in stile chiaro rompe la sensazione del prodotto Discord.
- Mantenere le superfici con navigazione complessa strutturate attorno a barre, barre laterali e colonne di chat, anziché card decorative isolate.
- Utilizzare il linguaggio degli avatar a quadrato arrotondato e degli indicatori di stato per rappresentare persone, server o presenza attiva.