| feature_ids | |||
|---|---|---|---|
| topics |
|
||
| doc_kind | note | ||
| created | 2026-02-26 |
Version: 1.1.0 Maintainer: Gemini (Siamese) Last Updated: 2026-04-13
The Cat Café aesthetic is "Cozy, Playful, and Collaborative". It should feel like stepping into a warm, sunlit room with three distinct cat personalities.
- Warmth: Use soft, creamy backgrounds. Avoid stark white (#FFFFFF).
- Personality: Each agent has a distinct visual voice (color, shape, tone).
- Clarity: Despite the cuteness, UI elements must be legible and accessible.
We use a semantic variable system defined in assets/themes/variables.css.
| Token | Value | Usage |
|---|---|---|
--bg-app |
#FDF8F3 (Cream) |
Main app background |
--text-primary |
#1E1E24 (Charcoal) |
Body text |
- Primary:
#9B7EBD(Lavender) - Role: Backend, Core Structure
- Vibe: Elegant, Mystical, Calm
- Primary:
#5B8C5A(Forest Green) - Role: Security, QA, Testing
- Vibe: Reliable, Grounded, Structured
- Primary:
#5B9BD5(Sky Blue) - Role: UI/UX, Creativity
- Vibe: Energetic, Fluid, Playful
- Primary:
#E29578(Latte) - Role: Requirement Provider
- Vibe: Warm, Supportive, Human
Our chat interface categorizes information into three structural tiers so users can instantly parse both the source and the intent of a message.
The core conversational UI. Uses .message-bubble.
| Agent | Shape Characteristics | Font |
|---|---|---|
| Opus | Rounded with Bottom-Left Point. Elegant. | Sans-serif (Inter) |
| Codex | Square-ish with Bottom-Right Point. | Monospace (Roboto Mono) |
| Gemini | Super-rounded (20px) with Top-Right Point. | Sans-serif (Inter) |
| Owner | Rounded with Bottom-Right Point. Right-aligned. | Sans-serif (Inter) |
Messages from external bots (Feishu, WeChat, GitHub CI, review bots).
- Layout: Shares the same structural morphology as Tier 1.
- Differentiation: Uses avatar / brand badge / subtle border only. External agents remain first-class conversational participants instead of being downgraded into system bars.
Non-conversational state updates, alerts, and lightweight automation meta should not be rendered like cat chat bubbles.
| Notification Type | Surface | Persistence | Visual Treatment |
|---|---|---|---|
| System Event | Warm ivory surface + cool accent metadata | Persisted | Full-width .system-notice-bar |
| Scheduler Lifecycle | Warm neutral / pale amber | Ephemeral | Top toast or centered notice pill |
| Warning | Warm ivory surface + amber metadata | Persisted | .system-notice-bar--alert |
| Error | Warm rose surface + soft red metadata | Persisted | .system-notice-bar--alert |
Persisted in-thread notices may still use the existing connector_message storage / WebSocket protocol for compatibility, but they are not Tier 2 connector bubbles.
- Use
source.meta.presentation = 'system_notice'to opt into Tier 3 rendering. - Use
source.meta.noticeTone = 'info' | 'warning' | 'error'to control visual emphasis. - Examples: inline routing hint, restart interruption notice.
- Do not use toast/snackbar for recoverable, context-dependent hints that users need to see inside the conversation timeline.
Scheduled task UX is intentionally split by intent:
- Management state (
created / paused / resumed / deleted / completed) Render as ephemeral toast or notice pill. These receipts are intentionally quiet and should not compete with the actual reminder payload. - Trigger anchor A scheduler trigger message may still exist in storage for reply chaining, but it should stay visually hidden in the timeline.
- Reminder delivery
The user-facing emphasis belongs on the first cat reply produced by the scheduler wake-up. That reply stays a normal Tier 1 conversational bubble with a subtle scheduler accent (
⏰ 定时提醒), not a standalone system bubble.
<!-- Tier 1: Agent Message -->
<div class="message-bubble message-bubble--opus">
System initialized.
</div>
<!-- Tier 2: External Integration -->
<div class="message-bubble message-bubble--external" data-brand="github">
<img src="github-avatar.png" class="avatar" />
CI Build Passed for PR #42
</div>
<!-- Tier 3: Scheduler lifecycle toast -->
<div class="notice-pill notice-pill--scheduler">
<span class="icon">✅</span> Daily reminder created
</div>
<!-- Tier 3: Persisted in-thread system notice -->
<div class="system-notice-bar">
<div class="system-notice-bar__meta">
<span class="label">Routing hint</span>
<span class="time">12:34</span>
</div>
<div class="system-notice-bar__box">
<span class="icon">💡</span> 想交接给 @codex?把它单独放到新起一行开头,才能触发交接。
</div>
</div>
<!-- Tier 1: Scheduler-triggered cat reply -->
<div class="message-bubble message-bubble--opus" data-accent="scheduler">
<div class="message-meta-pill">⏰ 定时提醒</div>
Daily backlog summary is ready.
</div>- Size: 256x256px
- Format: PNG (Transparent background)
- Style: Soft cel-shaded, colored border matching primary color.
- Grid: 3x4 layout (12 expressions per cat).
- Style: Edge-to-edge cropping, no text labels.
- Key Expressions: Happy, Thinking, Punching (Motion Blur), Identity-Specific (e.g. Wallet Burning).
Verified by Gemini 🐾 - "Make it pop!"