Smooth scroll + custom scrollbars + scroll features Chrome extension
- TypeScript 67.8%
- CSS 16.6%
- HTML 11.6%
- Python 2.2%
- Shell 0.9%
- Other 0.9%
|
|
||
|---|---|---|
| .gitea/workflows | ||
| .meta | ||
| .specify | ||
| docs | ||
| presets/d0a1-strict | ||
| protocols | ||
| public/icons | ||
| scripts | ||
| specs | ||
| src | ||
| tests | ||
| .editorconfig | ||
| .gitignore | ||
| AGENTS.md | ||
| biome.json | ||
| commitlint.config.cjs | ||
| CONSTITUTION.md | ||
| grill-decisions.md | ||
| lefthook.yml | ||
| LICENSE | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| tsconfig.json | ||
| wxt.config.ts | ||
ScrollFlow
Smooth scrolling enhancement for Chrome. Zero-config, 100% free, no ads, no tracking. Part of the Greasy Sprocket family.
Features (all zero-config, toggleable from popup)
| Feature | Default | What it does |
|---|---|---|
| Smooth scroll | ON | Lerp-based smooth scrolling with configurable duration + easing |
| Auto-color scrollbar | ON | Detects the site's accent color and tints the scrollbar to match — subtle, not jarring |
| Scrollbar themes | minimal | 10 built-in themes (minimal, round, neon, glass, wood, carbon, gold, sakura, ocean, ember) |
| Auto-hide scrollbar | OFF | Scrollbar invisible until you scroll, fades in/out |
| Progress bar | ON | Thin bar at top showing scroll progress, auto-colored to match site |
| Scroll-to-top | ON | Floating button appears after scrolling 400px, smooth scroll back to top |
| Keyboard scroll | ON | Vim-style: j/k (step), d/u (half page), Space (full page), gg (top), G (bottom) |
| Momentum scroll | OFF | Physics-based inertia — scroll keeps going and decelerates naturally |
| FPS auto-degrade | auto | Drops to native scroll if FPS < 30, re-enables when recovered |
Stack
| Layer | Tool | Version |
|---|---|---|
| Build | WXT | 0.20.27 |
| Language | TypeScript | 6.0.3 (strict) |
| Lint/Format | Biome | 2.5.1 (no ESLint/Prettier) |
| Testing | Vitest | 4.1.9 |
| Commits | commitlint | 21.1.0 |
| Hooks | lefthook | 2.1.9 (Go binary) |
Develop
pnpm install
pnpm wxt prepare
pnpm dev # launches WXT dev browser
Build
pnpm build
# Load .output/chrome-mv3 as unpacked extension in Chrome
Validate
pnpm validate # typecheck + lint + test
Specs
Feature specifications live in docs/specs/:
- 01 — Scroll progress bar
- 02 — Scroll-to-top button
- 03 — Keyboard scroll
- 04 — Auto-hide scrollbar
- 05 — Momentum scroll
- 06 — Auto-color scrollbar
License
Apache-2.0