一、④段整套同步(用户选候选 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。
13 KiB
Sistem Desain Terinspirasi Slack
Category: Produktivitas & SaaS Platform komunikasi tempat kerja. Warna utama aubergine, palet logo multi-aksen, permukaan terang dengan sidebar gelap, hangat dan mudah didekati.
1. Tema Visual & Suasana
Identitas Slack dibangun di sekitar gagasan bahwa pekerjaan harus terasa manusiawi dan bahkan sedikit menyenangkan. Permukaan kanonik adalah terang — area konten putih dengan sidebar aubergine dalam (#4A154B) — kebalikan dari alat yang mengutamakan tema gelap. Kontras ini disengaja: sidebar adalah jangkar navigasi yang tenang dan selalu hadir, sementara area konten cerah dan terbuka.
Palet logo — biru, hijau, kuning, merah — muncul terutama pada ikon tagar dan konteks pemasaran, tidak tersebar di seluruh UI. Dalam produk itu sendiri, Slack menggunakan sistem warna yang terkendali dan profesional dengan aubergine sebagai satu-satunya jangkar merek.
Karakteristik Utama:
- Permukaan konten mengutamakan terang: putih
#FFFFFFdan hampir putih#F8F8F8 - Sidebar aubergine dalam
#4A154B— elemen UI merek yang paling mudah dikenali - Empat warna aksen logo (biru, hijau, kuning, merah) digunakan hemat hanya sebagai sorotan
- Larsseit untuk judul (pemasaran), system sans-serif untuk UI
- Melengkung tapi tidak kartun: radius 4–8px pada sebagian besar komponen
- Padat tapi bisa bernapas: baris pesan yang ringkas dengan hierarki utas yang jelas
- Nada hangat dan percakapan — emoji, reaksi, dan ilustrasi adalah elemen kelas satu
2. Palet Warna & Peran
Warna Utama Merek
| Token | Hex | Peran |
|---|---|---|
--color-aubergine |
#4A154B |
Latar belakang sidebar, warna merek utama |
--color-aubergine-dark |
#350d36 |
Status hover pada permukaan aubergine |
--color-aubergine-light |
#611f69 |
Sorotan item aktif di sidebar |
Warna Aksen Logo (gunakan hemat — hanya untuk sorotan, ikon, pemasaran)
| Token | Hex | Nama | Peran |
|---|---|---|---|
--color-blue |
#36C5F0 |
Biru Langit | Ikon saluran, tautan, status informasi |
--color-green |
#2EB67D |
Hijau Teal | Status online, status sukses |
--color-yellow |
#ECB22E |
Emas | Status tidak ada, peringatan, sorotan |
--color-red |
#E01E5A |
Ruby | Notifikasi, kesalahan, lencana sebutan |
Permukaan & Latar Belakang
| Token | Hex | Peran |
|---|---|---|
--bg-primary |
#FFFFFF |
Area pesan utama, modal |
--bg-secondary |
#F8F8F8 |
Panel utas, permukaan sekunder |
--bg-tertiary |
#F1F1F1 |
Latar belakang input, status hover |
--bg-sidebar |
#4A154B |
Sidebar kiri (aubergine) |
--bg-sidebar-hover |
rgba(255,255,255,0.1) |
Hover item sidebar |
--bg-sidebar-active |
rgba(255,255,255,0.2) |
Item sidebar aktif |
--bg-message-hover |
#F8F8F8 |
Hover baris pesan |
Warna Teks
| Token | Hex | Peran |
|---|---|---|
--text-primary |
#1D1C1D |
Teks konten utama (hampir hitam) |
--text-secondary |
#616061 |
Cap waktu, label diredam |
--text-sidebar |
rgba(255,255,255,0.9) |
Nama saluran di sidebar |
--text-sidebar-muted |
rgba(255,255,255,0.6) |
Item sidebar tidak aktif |
--text-link |
#1264A3 |
Tautan inline dalam pesan |
--text-mention |
#1264A3 |
Warna teks @sebutan |
Warna Semantik
| Token | Hex | Peran |
|---|---|---|
--color-success |
#2EB67D |
Toast sukses, status positif |
--color-warning |
#ECB22E |
Status peringatan |
--color-danger |
#E01E5A |
Status kesalahan, aksi destruktif |
--color-info |
#36C5F0 |
Sorotan informasional |
Batas & Pemisah
| Token | Hex | Peran |
|---|---|---|
--border-default |
#DDDDDD |
Pemisah standar, batas kartu |
--border-subtle |
#F1F1F1 |
Pemisah halus antar baris |
--border-focus |
#1264A3 |
Warna cincin fokus |
3. Aturan Tipografi
Jenis Huruf
| Peran | Resmi | Fallback Web |
|---|---|---|
| Judul Display / Pemasaran | Larsseit | 'Larsseit', 'Helvetica Neue', Arial, sans-serif |
| UI / Konten / Chrome | Slack Lato (kustom) | system-ui, -apple-system, BlinkMacSystemFont, sans-serif |
| Kode / Monospace | — | 'Monaco', 'Menlo', 'Courier New', monospace |
Slack menggunakan Larsseit untuk judul pemasaran dan varian Lato kustom untuk UI dalam produk. Untuk penggunaan web,
system-uiadalah fallback yang paling aman.
Skala Tipografi
| Tingkat | Ukuran | Bobot | Tinggi Baris | Spasi Huruf | Penggunaan |
|---|---|---|---|---|---|
| Display XL | 48px | 800 | 1.1 | -1px | Judul hero pemasaran |
| Display L | 36px | 700 | 1.15 | -0.5px | Hero seksi |
| Judul 1 | 28px | 700 | 1.25 | normal | Judul modal, header halaman |
| Judul 2 | 22px | 700 | 1.3 | normal | Judul kartu, seksi pengaturan |
| Judul 3 | 18px | 700 | 1.35 | normal | Header sub-seksi |
| Konten L | 16px | 400 | 1.5 | normal | Teks pesan, deskripsi |
| Konten | 15px | 400 | 1.46667 | normal | Teks UI default (ukuran dasar Slack) |
| Konten SM | 13px | 400 | 1.38462 | normal | Metadata sekunder |
| Keterangan | 12px | 400 | 1.33 | normal | Cap waktu, petunjuk |
| Kode | 12px | 400 | 1.5 | normal | Kode inline, blok kode |
Aturan Tipografi
- Ukuran konten dasar Slack adalah 15px — sedikit lebih kecil dari 16px untuk kepadatan
- Saluran belum dibaca: bobot 700 — tebal adalah indikator belum dibaca utama
- Cap waktu: 12px
--text-secondary, tampilkan saat hover saja - Blok kode: latar belakang
#F8F8F8, batas1px solid #DDDDDD, border-radius 4px - Jangan pernah menggunakan ukuran font di bawah 12px
- Judul pemasaran: letter-spacing
-1pxuntuk ukuran display besar
4. Gaya Komponen
Tombol
/* 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; }
Bidang Input
.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;
}
Item Saluran Sidebar
.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;
}
Lencana Belum Dibaca
.badge {
background: #E01E5A;
color: #FFFFFF;
border-radius: 8px;
font-size: 11px;
font-weight: 700;
padding: 1px 6px;
min-width: 18px;
}
Lampiran Pesan / Kartu
.attachment {
border-left: 4px solid #DDDDDD;
background: #F8F8F8;
border-radius: 0 4px 4px 0;
padding: 8px 12px;
margin: 4px 0;
}
Reaksi
.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. Prinsip Tata Letak
Tata Letak Tiga Kolom
┌──────────────┬──────────────────────────────┬─────────────┐
│ Sidebar │ Area Pesan │ Utas │
│ (240px) │ (flex: 1) │ (400px) │
│ #4A154B │ #FFFFFF │ opsional │
└──────────────┴──────────────────────────────┴─────────────┘
Sistem Spasi (dasar 4px)
| Token | Nilai | Penggunaan |
|---|---|---|
--space-1 |
4px | Celah rapat |
--space-2 |
8px | Padding komponen |
--space-3 |
12px | Padding input |
--space-4 |
16px | Padding standar |
--space-6 |
24px | Padding kartu |
--space-8 |
32px | Celah seksi |
Struktur Sidebar
[Nama Ruang Kerja ▼]
────────────────────
Utas
Semua DM
Draf & Terkirim
────────────────────
▼ Saluran
# general
# random
# design ● (belum dibaca)
────────────────────
▼ Pesan Langsung
John Doe
Jane Smith
Komposer Pesan
- Disematkan di bagian bawah area pesan
border: 1px solid #DDDDDD,border-radius: 8px,margin: 0 16px 16px- Toolbar: emoji, lampirkan, format, tombol kirim
6. Kedalaman & Elevasi
Slack menggunakan bayangan ringan pada permukaan terang:
| Tingkat | Penggunaan | Bayangan |
|---|---|---|
| Datar | Baris pesan, item sidebar | none |
| Rendah | Kartu, input | 0 1px 3px rgba(0,0,0,0.08) |
| Sedang | Dropdown, popover | 0 4px 12px rgba(0,0,0,0.12) |
| Tinggi | Modal, dialog | 0 8px 24px rgba(0,0,0,0.15) |
| Overlay | Latar belakang modal | rgba(0,0,0,0.5) |
7. Yang Harus & Tidak Boleh Dilakukan
✅ Lakukan
- Gunakan aubergine
#4A154Buntuk sidebar — ini adalah elemen UI paling ikonik Slack - Jaga area konten utama tetap putih dan terang
- Gunakan
#1D1C1D(hampir hitam) untuk semua teks konten, bukan hitam murni - Tebalkan nama saluran untuk menunjukkan status belum dibaca — bobot adalah indikatornya
- Gunakan empat warna aksen hanya untuk peran semantik (sukses, peringatan, bahaya, informasi)
- Terapkan
border-left: 4pxpada lampiran pesan dan embed - Tampilkan cap waktu hanya saat hover
- Gunakan
#1264A3untuk tautan dan status fokus - Jaga item sidebar tetap ringkas: tinggi 28px, border-radius 6px
❌ Jangan
- Jangan gunakan area konten utama yang gelap — Slack mengutamakan terang
- Jangan menyebarkan biru/hijau/kuning/merah sebagai aksen dekoratif
- Jangan gunakan hitam murni
#000000untuk teks - Jangan gunakan balon percakapan — pesan adalah baris datar
- Jangan buat tombol dengan radius besar — 4px adalah standar
- Jangan tampilkan cap waktu secara permanen
- Jangan gunakan HURUF KAPITAL untuk nama saluran
- Jangan gunakan ukuran font di bawah 12px
8. Perilaku Responsif
Titik Henti
| Titik Henti | Lebar | Tata Letak |
|---|---|---|
| Mobile | < 768px | Panel tunggal, sidebar sebagai laci kiri |
| Tablet | 768–1024px | Hanya sidebar + area pesan |
| Desktop | > 1024px | Tata letak tiga kolom penuh |
Adaptasi Mobile
- Sidebar: laci kiri, geser kanan untuk membuka
- Tab bar bawah: Beranda, DM, Aktivitas, Anda
- Panel utas: overlay layar penuh
- Komposer: disematkan di atas keyboard
- Item daftar saluran: tinggi area sentuh 44px
- Header aubergine atas dipertahankan di mobile
9. Panduan Prompt Agent
Saat membuat desain bergaya Slack, ikuti pendekatan ini:
Penerapan warna:
Atur
background: #FFFFFFsebagai kanvas utama. Gunakan#4A154B(aubergine) untuk sidebar. Semua teks utama adalah#1D1C1D. Tautan dan cincin fokus menggunakan#1264A3. Empat warna logo —#36C5F0,#2EB67D,#ECB22E,#E01E5A— bersifat semantik saja: informasi, sukses, peringatan, bahaya.
Tipografi:
Gunakan
system-ui, -apple-system, sans-serifuntuk semua UI. Ukuran dasar adalah 15px. Saluran belum dibaca: bobot 700. Teks konten: bobot 400. Cap waktu: 12px#616061, hanya saat hover. Kode:Monaco, Menlo, monospace, 12px, latar belakang#F8F8F8.
Tata letak:
Tiga kolom: sidebar aubergine 240px + area pesan putih fleksibel + panel utas 400px opsional. Item sidebar: tinggi 28px, radius 6px, tebal saat belum dibaca. Komposer: disematkan di bawah,
border: 1px solid #DDDDDD,border-radius: 8px.
Komponen:
Tombol: radius 4px, tinggi 36px, aubergine sebagai utama. Input: batas
1px solid #DDDDDD, cincin fokus#1264A3. Baris pesan: datar, tanpa balon, avatar lingkaran 36px. Reaksi: pillborder: 1px solid #DDDDDD,border-radius: 24px.
Nada:
Slack hangat, profesional, dan manusiawi. Status kosong menggunakan ilustrasi yang ramah. CTA langsung: "Kirim pesan", "Mulai". Pesan kesalahan jelas dan membantu. Tidak pernah mengkhawatirkan.
Anti-pola yang harus dihindari:
Tidak ada area konten gelap. Tidak ada balon percakapan. Tidak ada teks hitam murni. Tidak ada aksen multi-warna yang tersebar. Tidak ada nama saluran dengan HURUF KAPITAL. Tidak ada font di bawah 12px. Tidak ada radius tombol yang besar.