diff --git a/docker-compose.yml b/docker-compose.yml index f348347..6cec5c0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,6 +4,7 @@ volumes: services: langgraph-redis: image: docker.io/redis:6 + container_name: langgraph-redis healthcheck: test: redis-cli ping interval: 5s @@ -11,6 +12,7 @@ services: retries: 5 langgraph-postgres: image: docker.io/postgres:16 + container_name: langgraph-postgres ports: - "5433:5432" environment: @@ -27,6 +29,7 @@ services: interval: 5s langgraph-api: image: gemini-fullstack-langgraph + container_name: langgraph-api ports: - "8123:8000" depends_on: diff --git a/frontend/src/components/ChatMessagesView.tsx b/frontend/src/components/ChatMessagesView.tsx index 1792e6f..f5eb849 100644 --- a/frontend/src/components/ChatMessagesView.tsx +++ b/frontend/src/components/ChatMessagesView.tsx @@ -252,9 +252,9 @@ export function ChatMessagesView({ }; return ( -
- -
+
+ +
{messages.map((message, index) => { const isLast = index === messages.length - 1; return ( diff --git a/frontend/src/components/InputForm.tsx b/frontend/src/components/InputForm.tsx index 6f3127c..b6ac1ea 100644 --- a/frontend/src/components/InputForm.tsx +++ b/frontend/src/components/InputForm.tsx @@ -49,7 +49,7 @@ export const InputForm: React.FC = ({ return (
{children} @@ -38,16 +39,16 @@ function ScrollBar({ className={cn( "flex touch-none p-px transition-colors select-none", orientation === "vertical" && - "h-full w-2.5 border-l border-l-transparent", + "h-full w-1.5 border-l border-l-transparent", orientation === "horizontal" && - "h-2.5 flex-col border-t border-t-transparent", + "h-1.5 flex-col border-t border-t-transparent", className )} {...props} > ) diff --git a/frontend/src/global.css b/frontend/src/global.css index b8b98d4..7e19242 100644 --- a/frontend/src/global.css +++ b/frontend/src/global.css @@ -116,6 +116,13 @@ } body { @apply bg-background text-foreground; + /* Prevent scroll bounce/overscroll on mobile */ + overscroll-behavior: none; + -webkit-overflow-scrolling: touch; + } + html { + /* Prevent scroll bounce on the entire page */ + overscroll-behavior: none; } } @@ -150,5 +157,31 @@ animation: fadeInUpSmooth 0.3s ease-out forwards; } +/* Prevent scroll bounce on scroll areas */ +[data-radix-scroll-area-viewport] { + overscroll-behavior: none !important; + -webkit-overflow-scrolling: touch; +} + +/* Hide any white space that might appear during scroll bounce */ +[data-radix-scroll-area-viewport]::-webkit-scrollbar { + width: 0px; + background: transparent; +} + +/* Subtle scroll bar styling */ +[data-slot="scroll-area-scrollbar"] { + opacity: 0.3; + transition: opacity 0.2s ease; +} + +[data-slot="scroll-area"]:hover [data-slot="scroll-area-scrollbar"] { + opacity: 0.6; +} + +[data-slot="scroll-area-thumb"] { + background-color: rgb(115 115 115 / 0.2) !important; +} + /* Ensure your body or html has a dark background if not already set, e.g.: */ /* body { background-color: #0c0c0d; } */ /* This is similar to neutral-950 */