Improve activity feed design#2634
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
e8f2b72 to
1956162
Compare
|
@artonge @miaulalala any comments or feedback? :) |
The <h1> showed the active filter's name, which the app navigation already indicates, so it only added visual noise. Keep it in the DOM for document semantics and screen readers but hide it with hidden-visually, and drop its now-unused visual styling so it cannot affect layout. Adjust the stream e2e tests to assert the heading's content rather than its visibility. AI-assisted: Claude Code (Opus 4.8) Signed-off-by: Jan C. Borchardt <925062+jancborchardt@users.noreply.github.com>
The scroll container was the centred, max-width content column, so its scrollbar floated in the middle of the viewport. Move scrolling to the full-width container and clamp the readable column in an inner wrapper, so the scrollbar sits at the edge of app-content while the content stays readable. The column width becomes a shared --activity-feed-max-width. AI-assisted: Claude Code (Opus 4.8) Signed-off-by: Jan C. Borchardt <925062+jancborchardt@users.noreply.github.com>
Group each day's activities in a section whose date heading sticks to the top while that day is in view, with the next day pushing the previous one up. The heading fades feed items out beneath it and is sized/aligned to the app navigation toggle. Its indent to clear the toggle eases in from the content-area width (a query container), so it accounts for the space the open navigation takes rather than the raw viewport. Add unit tests for the heading's Today/Yesterday/full-date labels. AI-assisted: Claude Code (Opus 4.8) Signed-off-by: Jan C. Borchardt <925062+jancborchardt@users.noreply.github.com>
Give the "No more activities." message generous, viewport-scaled space below it so the end of the feed isn't cramped against the bottom edge. AI-assisted: Claude Code (Opus 4.8) Signed-off-by: Jan C. Borchardt <925062+jancborchardt@users.noreply.github.com>
1956162 to
7ff0f18
Compare
|
Rebased again :) |
I'll check it out and test it Monday. From the screencasts it looks like a nice refinement, thanks! |
| <NcAppContent class="activity-app"> | ||
| <h1 class="activity-app__heading"> | ||
| <!-- Kept for document semantics / screen readers, but visually hidden --> | ||
| <h1 class="activity-app__heading hidden-visually"> |
There was a problem hiding this comment.
Let's not depend on a global class and have all the needed css here in this file :).
There was a problem hiding this comment.
No need to compile the assets in every commits.
| <style scoped lang="scss"> | ||
| .activity-app { | ||
| // Max width of the readable content column | ||
| --activity-feed-max-width: 924px; |
There was a problem hiding this comment.
Can you move the var declaration close its usage?
Also, why 924px?
There was a problem hiding this comment.
Ah, I see that 924 is from before 👍
| // Full width so the scrollbar sits at the edge of app-content | ||
| height: 100%; |
There was a problem hiding this comment.
"Full width", but sets the height, is the comment correct and code?
| // Separate consecutive groups. Inside the <section> (not a margin between them) | ||
| // so the date stays pinned across the gap and the next date docks right as the | ||
| // group ends, instead of the push feeling early. |
There was a problem hiding this comment.
The comment is weirdly written, can you double-check it?
| // once the gutter clears the toggle. | ||
| padding-inline-start: calc(max( | ||
| 0px, | ||
| var(--app-navigation-padding, 8px) + var(--default-clickable-area) |
There was a problem hiding this comment.
Do we really need default values for the var()? I think we can assume that they are always available.
| padding-inline-start: calc(max( | ||
| 0px, | ||
| var(--app-navigation-padding, 8px) + var(--default-clickable-area) | ||
| - var(--default-grid-baseline, 4px) | ||
| - max(0px, (100cqi - var(--activity-feed-max-width)) / 2) | ||
| )); |
There was a problem hiding this comment.
Can't we come up with something simpler? I look quite complex for what we are trying to achieve.
| text-align: center; | ||
| } | ||
|
|
||
| &__loading-indicator--end { |
There was a problem hiding this comment.
Is the new class necessary? Can't we add that to the existing class?
kra-mo
left a comment
There was a problem hiding this comment.
Cool, but we should actually standardize floating toolbars/headers as this stuff is a common headache.
artonge
left a comment
There was a problem hiding this comment.
Blocking until other comments are resolved :)
Improve overall design of activity feed:
Before
Screencast.From.2026-06-02.02-09-05.webm
After
Screencast.From.2026-06-02.01-59-25.webm
Breakpoint example:
Screencast.From.2026-06-02.02-01-05.webm
AI-assisted: Claude Code (Opus 4.8)