Skip to content

feat: opt-in repeated pulse animation on download graph#2121

Merged
graphieros merged 7 commits intonpmx-dev:mainfrom
trueberryless:feature/a11y-graph-pulse
Mar 17, 2026
Merged

feat: opt-in repeated pulse animation on download graph#2121
graphieros merged 7 commits intonpmx-dev:mainfrom
trueberryless:feature/a11y-graph-pulse

Conversation

@trueberryless
Copy link
Contributor

🧭 Context

As initially suggested on Discord, it would be nice to bring pack the looping pulse animation of the weekly download graph. Because it is not accessibly, we leave it disabled by default, and allow users to opt-in with a new setting.

📚 Description

Adapted the WeeklyDownloadGraph.vue component (pinging @graphieros as they are the export of their component ❤️ ). Additionally introduced a new setting, new text strings in en.json etc.

Also pinging @knowler to review this change for accessibility please 🙏

@vercel
Copy link

vercel bot commented Mar 17, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
npmx.dev Ready Ready Preview, Comment Mar 17, 2026 6:08pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
docs.npmx.dev Ignored Ignored Preview Mar 17, 2026 6:08pm
npmx-lunaria Ignored Ignored Mar 17, 2026 6:08pm

Request Review

@github-actions
Copy link

github-actions bot commented Mar 17, 2026

Lunaria Status Overview

🌕 This pull request will trigger status changes.

Learn more

By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.

You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File Note
i18n/locales/en.json Source changed, localizations will be marked as outdated.
Warnings reference
Icon Description
🔄️ The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

@codecov
Copy link

codecov bot commented Mar 17, 2026

Codecov Report

❌ Patch coverage is 0% with 3 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
app/pages/settings.vue 0.00% 2 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 17, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR adds a new boolean setting enableGraphPulseLooping (default false) to AppSettings and DEFAULT_SETTINGS, exposes it as a toggle in the Settings UI with new i18n keys and schema entries, and updates WeeklyDownloadStats.vue to derive its sparkline pulse.loop and the layEgg() toggle from that setting instead of a local isLoop. English locale strings were added for the new toggle label and description. No other control-flow or exported API changes were introduced.

Possibly related PRs

Suggested reviewers

  • knowler
  • shuuji3
🚥 Pre-merge checks | ✅ 1
✅ Passed checks (1 passed)
Check name Status Explanation
Description check ✅ Passed The pull request description clearly describes the feature being implemented: restoring a looping pulse animation on the weekly download graph with a new opt-in setting for accessibility.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 834aed70-74bf-47ff-b09f-b5a58784b333

📥 Commits

Reviewing files that changed from the base of the PR and between a0e8534 and 3319dfc.

📒 Files selected for processing (5)
  • app/components/Package/WeeklyDownloadStats.vue
  • app/composables/useSettings.ts
  • app/pages/settings.vue
  • i18n/locales/en.json
  • i18n/schema.json

@graphieros
Copy link
Contributor

I think you should also update the settings state when using the easter egg

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@trueberryless
Copy link
Contributor Author

I think you should also update the settings state when using the easter egg

I don't quite fully understand what the easter egg is, could you explain what would need updating there, please? 🥺

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
i18n/locales/en.json (1)

141-142: Align graph terminology in the setting label and description.

Line 141 says “mini graph” while Line 142 says “weekly download graph”. If this is the same feature, use one term consistently to reduce ambiguity in Settings.

✏️ Suggested copy tweak
-    "enable_graph_pulse_loop": "Enable looping of pulse effect on mini graph",
+    "enable_graph_pulse_loop": "Enable looping pulse effect on weekly download graph",

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: cfe10d27-01f8-4d27-8706-93185820b25a

📥 Commits

Reviewing files that changed from the base of the PR and between 3319dfc and d1a8470.

📒 Files selected for processing (1)
  • i18n/locales/en.json

@graphieros
Copy link
Contributor

graphieros commented Mar 17, 2026

I think you should also update the settings state when using the easter egg

I don't quite fully understand what the easter egg is, could you explain what would need updating there, please? 🥺

Oh of course, sorry.
WeeklyDownloadStats.vue listens to keyboard events and toggles the animation when the sequence of arrows 'up right left up left right' is detected.

So if a user happens to use the easter egg, the state in the settings can be out of sync.

@trueberryless
Copy link
Contributor Author

trueberryless commented Mar 17, 2026

Is this what you would also expect or do you think it should always activate when hitting the combination?

@graphieros
Copy link
Contributor

Is this what you would also expect or do you think it should always activate when hitting the combination?

I'm sorry I edited by mistake your comment.

More like toggling through the easter egg changes the settings state too, so it is in sync and remains. Wdyt ?

Copy link
Contributor

@graphieros graphieros left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🌿

Copy link
Member

@knowler knowler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m curious if instead of creating a specific settings for this, if maybe we should create one called “Whimsical mode” or “Whimsy mode” which we could group future features under, so that we have a bit of a better contract with the user. In the description, we could still list this feature as an example, but also should note that some features might be distracting.

@graphieros
Copy link
Contributor

I’m curious if instead of creating a specific settings for this, if maybe we should create one called “Whimsical mode” or “Whimsy mode” which we could group future features under, so that we have a bit of a better contract with the user. In the description, we could still list this feature as an example, but also should note that some features might be distracting.

I agree, the setting could be more broad indeed

Copy link
Member

@knowler knowler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM… we discussed on Discord and we might group this under another toggle in the future, once we come up with a good name for it.

trueberryless and others added 2 commits March 17, 2026 19:05
Co-authored-by: Alec Lloyd Probert <55991794+graphieros@users.noreply.github.com>
@graphieros graphieros added this pull request to the merge queue Mar 17, 2026
Merged via the queue into npmx-dev:main with commit ad2b174 Mar 17, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants