feat(odin): mobile composer + responsive sidebar + message-entrance animation

- Composer rebuilt claude-style: a rounded pill with a multiline auto-growing
  textarea and attach/send ICON buttons (vertically centered), so there's room
  to type on mobile (was squeezed between two text buttons).
- Conversation list collapses into a slide-in Drawer below md, with a menu
  button in the chat header; chat is full-width on mobile.
- Each new message bubble animates in (fade + slide-up; fade-only under
  prefers-reduced-motion) via framer-motion, so sent messages and Odin's
  replies appear smoothly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
BOHA
2026-06-08 21:19:54 +02:00
parent 28fb399217
commit 434a12b4a8
4 changed files with 154 additions and 43 deletions

View File

@@ -170,8 +170,14 @@ export default function OdinThread({
{turns.map((t, i) => {
const isUser = t.role === "user";
return (
<Box
<MotionBox
key={i}
initial={reduce ? { opacity: 0 } : { opacity: 0, y: 10 }}
animate={{ opacity: 1, y: 0 }}
transition={{
duration: reduce ? 0.3 : 0.34,
ease: [0.16, 1, 0.3, 1],
}}
sx={{
display: "flex",
flexDirection: "row",
@@ -204,7 +210,7 @@ export default function OdinThread({
{t.content}
</Typography>
</Box>
</Box>
</MotionBox>
);
})}