Replaces the timeline's growing virtual scroll height with a fixed 500K-pixel scroll plane that recycles around an anchor month. Removes the browser max-height ceiling and the O(N) layout cascade that ran on every month height change. - Months are positioned by planeTop, derived on demand by walking outward from the anchor in positionMonthsOnPlane. - Soft repoint (trackAnchorToViewportTop) runs on every scroll; hard repoint (recenterPlane) slides the plane back toward PLANE_CENTER on idle or near plane edges. - Height changes shift the anchor instead of scrollTop, fixing Safari momentum-scroll stutter when a viewport-top month settles. Change-Id: I39cb61e7c4ff6cd5b0d59a7cc9c65b4e6a6a6964 |
||
|---|---|---|
| .. | ||
| bin | ||
| src | ||
| static | ||
| tests | ||
| .browserslistrc | ||
| .dockerignore | ||
| .gitignore | ||
| .npmrc | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc | ||
| README.md | ||
| eslint.config.js | ||
| mise.toml | ||
| package.json | ||
| svelte.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
README.md
Immich web project
This project uses the SvelteKit web framework. Please refer to the SvelteKit docs for information on getting started as a contributor to this project. In particular, it will help you navigate the project's code if you understand the basics of SvelteKit routing.
When developing locally, you will run a SvelteKit Node.js server. When this project is deployed to production, it is built as a SPA and deployed as part of the server project.