You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Umbrella for the visual redesign of the agentic-chat prompt interface. Sub-issues are tracked separately and link below — this body is the cross-cutting context: stack, branching policy, visual references, and the design-system principles every sub-issue should follow.
Branching
All work integrates on epic/agent-styling. Each sub-issue's PR forks from and targets that branch. #248 (glass spike) does the same but can be rebased out and tabled separately if it fails its perf criteria, the epic doesn't need it to ship. epic/agent-styling merges to main as a unit once the polish package reads cohesively end-to-end.
Goal
Softer, more inviting first impression. Better hierarchy and info display. Visual language leans on Linear's mobile inbox aesthetic — restrained low-blur glass on floating surfaces, larger radii on primary surfaces, dark neutral palette.
Visual references
Reference screenshots are attached to this Linear issue (Linear inbox + Telegram chats). Inspiration only — match the feel, do not copy the layouts.
Stack context (read before touching anything)
AI framework: Vercel AI SDK end to end. @ai-sdk/react (useChat) on the client, @ai-sdk/anthropic + Hono on the server (apps/agentic-server). Langchain has been fully removed in PR shapeshift/agentic-chat#36 any prompt context, old comment, or stale branch referencing @langchain/* is wrong and should be ignored.
Design tokens: all token values live in apps/agentic-chat/src/styles.css inside the @theme inline { ... } block. Tailwind v4 idiom — tokens are CSS custom properties, not JS config. tailwind.config.ts stays minimal.
Wallet: Dynamic Labs SDK (useDynamicContext, setShowAuthFlow). Surface: apps/agentic-chat/src/components/CustomConnectButton.tsx. (Migrated from Reown/AppKit per the Dec 11 2025 project update.)
Mobile detection:useIsMobile hook at apps/agentic-chat/src/hooks/use-mobile.ts (768px breakpoint) — use this anywhere a glass treatment needs graceful degradation on mobile.
Design-system principles (apply to every sub-issue)
Token-first. Every radius/color/spacing value lives in @theme inline. No rgba(...) literals in components. No rounded-[Xpx] arbitrary values. No blur-[Xpx] arbitrary values. If a sub-issue needs a new token, extend the @theme inline block — don't inline it at the call site.
Reuse thewhiteAlpha-* ramp. --color-whiteAlpha-50..900 is already declared and used throughout (Composer, DrawerListItem, ToolCard, TxStepCard, ReceiveUI). Use it for translucent surface backgrounds and for glass treatments (per [Spike] Liquid glass styling exploration #248). No parallel rgba(...) palette.
Mobile-conscious glass. Per [Spike] Liquid glass styling exploration #248 — backdrop-filter is expensive on low-end devices. Default pattern is backdrop-blur-none md:backdrop-blur-md (or similar). Always test on physical mobile.
#241 — Agent Styling Clean Up: Interface Styling Redesign
Umbrella for the visual redesign of the agentic-chat prompt interface. Sub-issues are tracked separately and link below — this body is the cross-cutting context: stack, branching policy, visual references, and the design-system principles every sub-issue should follow.
Branching
All work integrates on
epic/agent-styling. Each sub-issue's PR forks from and targets that branch. #248 (glass spike) does the same but can be rebased out and tabled separately if it fails its perf criteria, the epic doesn't need it to ship.epic/agent-stylingmerges tomainas a unit once the polish package reads cohesively end-to-end.Goal
Softer, more inviting first impression. Better hierarchy and info display. Visual language leans on Linear's mobile inbox aesthetic — restrained low-blur glass on floating surfaces, larger radii on primary surfaces, dark neutral palette.
Visual references
Reference screenshots are attached to this Linear issue (Linear inbox + Telegram chats). Inspiration only — match the feel, do not copy the layouts.
Stack context (read before touching anything)
@ai-sdk/react(useChat) on the client,@ai-sdk/anthropic+ Hono on the server (apps/agentic-server). Langchain has been fully removed in PR shapeshift/agentic-chat#36 any prompt context, old comment, or stale branch referencing@langchain/*is wrong and should be ignored.cn()helper atapps/agentic-chat/src/lib/utils.ts.apps/agentic-chat/src/styles.cssinside the@theme inline { ... }block. Tailwind v4 idiom — tokens are CSS custom properties, not JS config.tailwind.config.tsstays minimal.useDynamicContext,setShowAuthFlow). Surface:apps/agentic-chat/src/components/CustomConnectButton.tsx. (Migrated from Reown/AppKit per the Dec 11 2025 project update.)useIsMobilehook atapps/agentic-chat/src/hooks/use-mobile.ts(768px breakpoint) — use this anywhere a glass treatment needs graceful degradation on mobile.Design-system principles (apply to every sub-issue)
@theme inline. Norgba(...)literals in components. Norounded-[Xpx]arbitrary values. Noblur-[Xpx]arbitrary values. If a sub-issue needs a new token, extend the@theme inlineblock — don't inline it at the call site.whiteAlpha-*ramp.--color-whiteAlpha-50..900is already declared and used throughout (Composer,DrawerListItem,ToolCard,TxStepCard,ReceiveUI). Use it for translucent surface backgrounds and for glass treatments (per [Spike] Liquid glass styling exploration #248). No parallelrgba(...)palette.backdrop-filteris expensive on low-end devices. Default pattern isbackdrop-blur-none md:backdrop-blur-md(or similar). Always test on physical mobile.Surface map (single source of truth for file paths, confirmed against current
main)apps/agentic-chat/src/components/Composer.tsxapps/agentic-chat/src/components/CustomConnectButton.tsxapps/agentic-chat/src/components/ConversationList.tsx:53-62apps/agentic-chat/src/components/Chat.tsx:14-18(array),:118-134(render)apps/agentic-chat/src/components/Chat.tsx:91-144apps/agentic-chat/src/components/Portfolio/PortfolioDrawer.tsxwhiteAlpha-50problem)apps/agentic-chat/src/components/ui/DrawerListItem.tsx:18-22(parent wrapper) +apps/agentic-chat/src/components/Portfolio/GroupedAssetRow.tsx(nested render viaexpandedChildren)apps/agentic-chat/src/styles.css(@theme inline { ... }block)apps/agentic-chat/src/components/ui/Button.tsxVerification (per repo
CLAUDE.md)bun run lint bun run type-check bun testVisual verification (required per PR):
TODOs
main(AI SDK, Dynamic, Tailwind v4 + shadcn)main