wanglaixiang-cyber
dsh-composer-scroll-hide
DSH plugin: composer auto-hide on scroll, follows the message flow and tracks the back-to-bottom float
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-composer-scroll-hide
A DSH browser-side plugin that makes the composer follow the message flow while scrolling.
Features
- Scroll up: the input bar slides off-screen at the same speed as the content, so it never covers the history you are reading
- Browsing history: while paging down through history, the input bar stays hidden — it never pops in early
- Back to latest: the input bar only rides back in over the final stretch of the return to the latest message (about one composer height), settling fully at the bottom
- Float tracking: the app's "back to bottom" float button moves together with the input bar and lands 16px above the bottom edge once the bar is fully hidden
Install
dshpm install github:wanglaixiang-cyber/dsh-composer-scroll-hide --profile <profile-name>
Development
For local development, link the package into a profile:
"dsh-composer-scroll-hide": "link:/path/to/dsh-composer-scroll-hide"
Edits to lib/client.js are picked up by client-hmr within about a second — no page refresh, no restart.
How it works (short)
- Listens to scroll events on the
[data-conversation-scroll]scrollport (passive — never blocks scrolling) - Composer offset = min(distance to bottom, composer height): position-driven, so any state (re-attach, jump, resize) converges on the next scroll
- Syncs the
--dsh-composer-heightcustom property, which drives the back-to-bottom float's clearance so the float tracks the bar - The seat height is cached via ResizeObserver; the transform is written at most once per frame (requestAnimationFrame)
License
MIT