# Moderation UI Patterns โ€” The Watchful Eye > *"With great power comes great responsibility."* > โ€” Adapted for content moderation interfaces. --- ## ๐ŸŽฏ Filosofi UI Moderasi 1. **At-a-glance severity** โ€” Warna & label yang langsung terbaca 2. **Context-rich** โ€” Setiap keputusan disertai konteks 3. **Non-destructive by default** โ€” Flag dulu, action kemudian 4. **Audit trail** โ€” Setiap aksi tercatat --- ## ๐Ÿท๏ธ Severity Scale ```css .severity--safe { background: oklch(0.60 0.130 145 / 0.15); color: oklch(0.60 0.130 145); } .severity--low { background: oklch(0.70 0.120 75 / 0.15); color: oklch(0.70 0.120 75); } .severity--medium { background: oklch(0.65 0.150 50 / 0.15); color: oklch(0.65 0.150 50); } .severity--high { background: oklch(0.60 0.150 30 / 0.15); color: oklch(0.60 0.150 30); } .severity--critical { background: oklch(0.55 0.165 25 / 0.15); color: oklch(0.55 0.165 25); } ``` | Severity | Warna | Ikon | Action | |----------|-------|------|--------| | Safe | Emerald | โœ… Shield | None | | Low | Amber | โš ๏ธ | Review | | Medium | Orange | ๐Ÿ”ถ | Alert + review | | High | Red-Orange | ๐Ÿšซ | Notify + action | | Critical | Ruby | ๐Ÿ”ด | Immediate | --- ## ๐Ÿ“‹ Moderation Queue ```tsx interface ModerationQueueItem { id: string; message: { preview: string; author: { name: string; }; timestamp: number; channel: string; }; analysis: { severity: Severity; categories: string[]; confidence: number; summary: string; }; status: 'pending' | 'reviewed' | 'actioned' | 'dismissed'; } ``` **Layout per item:** ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ”ด CRITICAL โ”‚ [User]: "message preview..." โ”‚ โ”‚ ๐Ÿท๏ธ toxicity, โ”‚ in #general ยท 2m ago โ”‚ โ”‚ harassment โ”‚ [Review] [Dismiss] [Action] โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Filter Bar ``` Severity: [All] [Safe] [Low] [Medium] [High] [Critical] Channel: [#general โ–ผ] Date: [Last 24h โ–ผ] Search: [.................. ๐Ÿ”] ``` --- ## ๐ŸŽฏ Action Confirmation | Action | Confirm | Duration | Undo | |--------|---------|----------|------| | Dismiss | No | 2s toast | Yes (5s) | | Warn | No | 3s toast | No | | Delete | Yes (modal) | 4s toast | No | | Ban | Yes (modal + reason) | โ€” | Manual | --- ## ๐Ÿ“Š Moderation Metrics | Metric | Format | Frequency | |--------|--------|-----------| | Messages analyzed | Number | Real-time | | Flag rate | % | Hourly | | Response time | ms avg | Real-time | | False positive rate | % | Daily | | Queue depth | Number | Real-time | --- ## โš ๏ธ Anti-Patterns ### โŒ Ambiguous severity ```tsx // โŒ Warna tanpa label
...
// โœ… Color + icon + text ``` ### โŒ One-click destructive ```tsx // โŒ Delete tanpa konfirmasi // โœ… Confirm dialog ``` --- *"Mata waspada adalah penjaga ingatan โ€” setiap flag adalah catatan sejarah."* โ„๏ธ๐Ÿฉต