When you send a message, the user message now scrolls to the top of the viewport and stays there while the response streams in below. Makes it much easier to keep track of what you asked, especially with longer prompts. Same thing happens on regenerate.
Under the hood this adds a #messages-bottom marker after the message list with a permanent spacer below it. All scroll-to-bottom and at-bottom detection now uses this marker instead of scrollHeight, so "end of messages" and "end of scrollable area" are properly separated.
Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/open-webui/open-webui/pull/22535
**Author:** [@jannikstdl](https://github.com/jannikstdl)
**Created:** 3/10/2026
**Status:** ❌ Closed
**Base:** `dev` ← **Head:** `feat/scroll-to-top`
---
### 📝 Commits (1)
- [`bf335bb`](https://github.com/open-webui/open-webui/commit/bf335bb2da89cc9265f931d12352c71b5073875f) feat: scroll user message to top of viewport on send
### 📊 Changes
**3 files changed** (+75 additions, -29 deletions)
<details>
<summary>View changed files</summary>
📝 `src/lib/components/chat/Chat.svelte` (+40 -16)
📝 `src/lib/components/chat/MessageInput.svelte` (+4 -5)
📝 `src/lib/components/chat/Messages.svelte` (+31 -8)
</details>
### 📄 Description
When you send a message, the user message now scrolls to the top of the viewport and stays there while the response streams in below. Makes it much easier to keep track of what you asked, especially with longer prompts. Same thing happens on regenerate.
Under the hood this adds a `#messages-bottom` marker after the message list with a permanent spacer below it. All scroll-to-bottom and at-bottom detection now uses this marker instead of `scrollHeight`, so "end of messages" and "end of scrollable area" are properly separated.
### Contributor License Agreement
- [x] By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-webui/pull/22535
Author: @jannikstdl
Created: 3/10/2026
Status: ❌ Closed
Base:
dev← Head:feat/scroll-to-top📝 Commits (1)
bf335bbfeat: scroll user message to top of viewport on send📊 Changes
3 files changed (+75 additions, -29 deletions)
View changed files
📝
src/lib/components/chat/Chat.svelte(+40 -16)📝
src/lib/components/chat/MessageInput.svelte(+4 -5)📝
src/lib/components/chat/Messages.svelte(+31 -8)📄 Description
When you send a message, the user message now scrolls to the top of the viewport and stays there while the response streams in below. Makes it much easier to keep track of what you asked, especially with longer prompts. Same thing happens on regenerate.
Under the hood this adds a
#messages-bottommarker after the message list with a permanent spacer below it. All scroll-to-bottom and at-bottom detection now uses this marker instead ofscrollHeight, so "end of messages" and "end of scrollable area" are properly separated.Contributor License Agreement
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.