feat(ui): complete Plan 06-02 - Manus color tokens, thinking indicator, send button

- Apply Manus design tokens to index.css and tailwind.config.js
- Replace three-dot thinking indicator with pulsing blue dot + 'Thinking' text
- Change send button icon from ArrowUp to PaperPlaneRight
- Align message and input widths to 800px max
This commit is contained in:
Evandro Fonseca Junior committed 2026-04-02 09:10:02 -03:00
1 parent cb722e79a6
commit 2d893daf07
4 files changed
+127 -34

No files matched your search

+19 -16
View File
@@ -661,7 +661,7 @@
width: 100%;
}
.msg-wrapper.user { align-self: flex-end; align-items: flex-end; }
.msg-wrapper.assistant { align-self: flex-start; align-items: flex-start; width: 100%; max-width: 100%; }
.msg-wrapper.assistant { align-self: flex-start; align-items: flex-start; max-width: 800px; }
/* ── Bubbles ── */
.msg-bubble {
@@ -766,31 +766,34 @@
line-height: 1.55;
}
/* ── Thinking bubble (loading dots) ── */
.thinking {
/* ── Thinking bubble (Manus-style pulsing blue dot) ── */
.thinking-manus {
display: flex;
align-items: center;
gap: 5px;
padding: 13px 18px;
width: fit-content;
gap: 8px;
padding: 8px 0;
}
.thinking span {
.thinking-dot {
width: 8px;
height: 8px;
background: #9fd0ff;
background: #3B82F6;
border-radius: 50%;
opacity: 0.5;
animation: thinking-bounce 1.4s ease-in-out infinite;
flex-shrink: 0;
animation: thinking-pulse 1.5s ease-in-out infinite;
}
.thinking span:nth-child(2) { animation-delay: 0.16s; }
.thinking span:nth-child(3) { animation-delay: 0.32s; }
@keyframes thinking-bounce {
0%, 80%, 100% { transform: translateY(0); opacity: 0.3; }
40% { transform: translateY(-6px); opacity: 1; }
.thinking-label {
font-size: 0.875rem;
color: #9CA3AF;
font-weight: 400;
}
@keyframes thinking-pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.35; transform: scale(0.7); }
}
@media (prefers-reduced-motion: reduce) {
.thinking span,
.thinking-manus,
.thinking-dot,
.msg-bubble,
.queue-clear-btn,
.notice-action-btn,
+34 -18
View File
@@ -2,41 +2,57 @@
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg: #0a1016;
--bg2: #0f1721;
--bg3: #14202d;
--bg4: #182636;
--bg5: #203246;
--border: #243241;
--border2: #344759;
--text: #edf5ff;
--text2: #93a8bc;
--text3: #5d7288;
--accent: #48a6ff;
--accent2: #2f8ae3;
--accent-glow: rgba(72,166,255,0.16);
--user-bg: #10263f;
--user-border: #214468;
--asst-bg: #101924;
--asst-border: #243241;
/* Updated to Manus design tokens */
--bg: #171717; /* Manus bg-base */
--bg2: #1E1E1E; /* Manus bg-surface */
--bg3: #262626; /* Manus bg-elevated */
--bg4: #333333; /* Manus bg-hover */
--bg5: #3D3D3D; /* slightly lighter */
--border: #232a33;
--border2: #313944;
--text: #F3F4F6; /* Manus text-primary */
--text2: #9CA3AF; /* Manus text-secondary */
--text3: #52525B; /* Manus text-muted */
--accent: #4b86ff;
--accent2: #3674ef;
--accent-glow: rgba(75,134,255,0.14);
--user-bg: #101c2d;
--user-border: #203451;
--asst-bg: #10161d;
--asst-border: #26303b;
--danger: #f04040;
--success: #30d158;
--warning: #ffd60a;
--code-bg: #0d0d10;
--radius-sm: 6px;
--radius-md: 10px;
--radius: 10px;
--radius-lg: 14px;
--font-sans: "Inter", "Segoe UI Variable", "SF Pro Display", system-ui, sans-serif;
--font-serif: "Merriweather", Georgia, serif;
--shadow: 0 2px 12px rgba(0,0,0,0.4);
--shadow-lg: 0 8px 32px rgba(0,0,0,0.6);
font-size: 15px;
}
/* Manus design tokens as named vars (for new components) */
:root {
--manus-base: #171717;
--manus-surface: #1E1E1E;
--manus-elevated: #262626;
--manus-hover: #333333;
--manus-tx: #F3F4F6;
--manus-tx2: #9CA3AF;
--manus-tx3: #52525B;
--manus-blue: #3B82F6;
}
html, body, #root {
height: 100%;
overflow: hidden;
background: var(--bg);
color: var(--text);
font-family: "Segoe UI Variable", "SF Pro Display", "IBM Plex Sans", "Inter", system-ui, sans-serif;
font-family: var(--font-sans);
-webkit-font-smoothing: antialiased;
}
+9
View File
@@ -20,6 +20,15 @@ export default {
"c-danger": "var(--danger)",
"c-success": "var(--success)",
"c-warn": "var(--warning)",
// Manus design tokens
"manus-base": "var(--manus-base)",
"manus-surface": "var(--manus-surface)",
"manus-elevated": "var(--manus-elevated)",
"manus-hover": "var(--manus-hover)",
"manus-tx": "var(--manus-tx)",
"manus-tx2": "var(--manus-tx2)",
"manus-tx3": "var(--manus-tx3)",
"manus-blue": "var(--manus-blue)",
},
},
},