Skip to content

feat: apply April research results#2353

Merged
serhalp merged 6 commits intonpmx-dev:mainfrom
alexdln:chore/research
Apr 1, 2026
Merged

feat: apply April research results#2353
serhalp merged 6 commits intonpmx-dev:mainfrom
alexdln:chore/research

Conversation

@alexdln
Copy link
Copy Markdown
Member

@alexdln alexdln commented Apr 1, 2026

🧭 Context

We've completed one of the longest projects and it seems that since the results were almost absolute, we can merge and release it right away.

We’ve completed our user experience research and carefully reviewed the results. To deliver the best possible experience, we’ve decided to remove the dark theme.

We’re committed to making decisions based on what works best for our users and are glad we took the time to validate this through research.

Thank you for participating 🤍

This is the first version right after results, so there is no perfect code yet. In the next version, we plan to update the nuxtjs/color-mode module and distribute the results to all nuxt projects.

Long story short

We’ve just wrapped up one of the longest research efforts we’ve run so far, looking closely at how people actually use the product over time.

One of the topics we explored was the dark theme. It’s something many people expect by default, so we wanted to understand how it holds up in real usage — not just in theory.

What we saw

The results were… pretty one-sided:

93% of sessions happen during daytime hours
88% of users use the product in well-lit environments
95% said content felt easy to read when they opened npmx in light mode
76% completed tasks faster without dark themed workspaces
97% supported removing it after trying both options

At the same time:

91% said consistency across the interface matters more than having multiple themes
A noticeable number of users who initially preferred dark mode changed their mind after using both for a while
What users said

“I usually prefer dark mode, but here I didn’t feel like I needed it.” — User A

“Light mode just feels clearer. I don’t have to think about it.” — User B

“Dark theme looks good, but I slow down a bit when I actually use it.” — User C

“If I had to choose, I’d pick whatever makes things common” — User D

There was a recurring pattern:
dark mode was often described as nice, but light mode as absolute.

A small but interesting detail

Even among people who said they prefer dark interfaces in general, many didn’t actively switch to it here.

Not for a big reason, just small things:
contrast, light speed.

The decision

Given how consistent the signals were, we decided to remove the dark theme and focus on a single, well-optimized light experience.

Not because dark mode is bad, and not as a universal statement — just because, in this case, it didn’t seem to add much value compared to the cost of maintaining it.

Why we’re sharing this

Because it’s a good reminder for us:

what people expect, what they say, and what actually works — aren’t always the same thing.

And sometimes the result isn’t dramatic.
It’s just… quieter, simpler, and a bit more obvious in hindsight. Especially when April rolls around.

@vercel
Copy link
Copy Markdown

vercel bot commented Apr 1, 2026

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

Project Deployment Actions Updated (UTC)
npmx.dev Ready Ready Preview, Comment Apr 1, 2026 9:06am
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
docs.npmx.dev Ignored Ignored Preview Apr 1, 2026 9:06am
npmx-lunaria Ignored Ignored Apr 1, 2026 9:06am

Request Review

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 1, 2026

Codecov Report

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

Files with missing lines Patch % Lines
app/pages/index.vue 0.00% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 1, 2026

📝 Walkthrough

Walkthrough

This pull request removes dark theme CSS variable definitions and theme-dependent styling from the main stylesheet, transitioning to a light-only theme approach. The CSS simplification comments out dark theme selectors and removes data-theme='light' conditions from background-variant definitions, making them apply unconditionally. Shiki code-block styling is changed from light-theme-specific to globally applied. Corresponding changes disable the theme selector in the settings page whilst adding an announcement on the homepage regarding user experience research completion and the dark theme removal decision.

Possibly related PRs

Suggested reviewers

  • danielroe
🚥 Pre-merge checks | ✅ 1
✅ Passed checks (1 passed)
Check name Status Explanation
Description check ✅ Passed The pull request description is directly related to the changeset, providing detailed context about user experience research findings that justify removing the dark theme across the application.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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
Copy Markdown
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: 3

🧹 Nitpick comments (2)
app/assets/main.css (1)

8-54: Consider removing commented-out code rather than leaving it in place.

Commenting out ~80 lines of dark theme CSS creates technical debt and reduces readability. If dark theme is being permanently removed based on research findings, this dead code should be deleted. Version control preserves history if restoration is ever needed.

app/pages/settings.vue (1)

5-5: Remove commented-out code for consistency.

Similar to the CSS file, the commented-out useColorMode() call and theme selector block should be deleted if dark theme is permanently removed. Leaving commented code in production creates confusion about whether this is temporary or permanent.

Additionally, note that other composables (e.g. useAccentColor() in app/composables/useSettings.ts) still invoke useColorMode(), so the colour mode machinery remains active even though the UI is hidden.

Also applies to: 69-85


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b07638e3-7a61-4086-a885-cb0a58d11571

📥 Commits

Reviewing files that changed from the base of the PR and between 8d9fa5c and 3b2d9d4.

📒 Files selected for processing (4)
  • app/assets/main.css
  • app/pages/index.vue
  • app/pages/settings.vue
  • vercel.json

@serhalp serhalp changed the title chore: apply research results feat: apply April research results Apr 1, 2026
@serhalp serhalp added this pull request to the merge queue Apr 1, 2026
Merged via the queue into npmx-dev:main with commit 2ca79ab Apr 1, 2026
26 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.

2 participants