Skip to content

Comments

feat(web): add sticky date headers#25887

Open
didekoning wants to merge 13 commits intoimmich-app:mainfrom
didekoning:feature/sticky_headers
Open

feat(web): add sticky date headers#25887
didekoning wants to merge 13 commits intoimmich-app:mainfrom
didekoning:feature/sticky_headers

Conversation

@didekoning
Copy link
Contributor

@didekoning didekoning commented Feb 4, 2026

Description

I’ve made the day headers sticky, as requested in #1667. This makes it much easier to keep track of the date photos were taken while scrolling through large timelines.

This implementation replaces the transform-based positioning used for the Month sections with top and left positioning, since position: sticky does not work correctly when an element is inside a transformed parent container. This change may have a small performance impact, but because the original transform positioning was not actively animated (except during resize), the impact should be minimal.

To help mitigate any performance concerns, I also improved the month title checkbox animation by switching it from animating width to animating transform, which is generally more performant.

This makes it easier to see what date photos were taken when you are halfway through scrolling a large section of the timeline.

Fixes # #1667

How Has This Been Tested?

  • I've tested this on multiple screen sizes in Google Chrome and Firefox.

Screenshots (if appropriate)

immich_demo_small.mov

Checklist:

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if applicable
  • I have no unrelated changes in the PR.
  • I have confirmed that any new dependencies are strictly necessary.
  • I have written tests for new code (if applicable)
  • I have followed naming conventions/patterns in the surrounding code
  • All code in src/services/ uses repositories implementations for database calls, filesystem operations, etc.
  • All code in src/repositories/ is pretty basic/simple and does not have any immich specific logic (that belongs in src/services/)

Please describe to which degree, if any, an LLM was used in creating this pull request.

An LLM was used for code explaination and to help find the correct Tailwind classes.
...

@immich-push-o-matic
Copy link

immich-push-o-matic bot commented Feb 4, 2026

Label error. Requires exactly 1 of: changelog:.*. Found: 🖥️web. A maintainer will add the required label.

@didekoning didekoning marked this pull request as draft February 4, 2026 12:03
@didekoning didekoning marked this pull request as ready for review February 5, 2026 07:41
@didekoning didekoning marked this pull request as draft February 6, 2026 14:09
@didekoning didekoning marked this pull request as ready for review February 6, 2026 14:09
@midzelis
Copy link
Collaborator

midzelis commented Feb 6, 2026

I'll do a perf test on this within the next few days

@bwees bwees changed the title Add sticky date headers to the web version feat(web): add sticky date headers Feb 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants