Skip to content

feat: add customizable dashboard theme presets#1445

Open
CyraTechZenith wants to merge 3 commits into
Priyanshu-byte-coder:mainfrom
CyraTechZenith:feat/theme-presets
Open

feat: add customizable dashboard theme presets#1445
CyraTechZenith wants to merge 3 commits into
Priyanshu-byte-coder:mainfrom
CyraTechZenith:feat/theme-presets

Conversation

@CyraTechZenith
Copy link
Copy Markdown

Summary

Added customizable dashboard theme presets with persistent theme selection support and improved theme management UX.

Closes #252


Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Refactor / code cleanup

Changes Made

  • Added multiple dashboard theme presets:
    • Dracula
    • Nord
    • Catppuccin Mocha
    • Solarized Dark
  • Added reusable theme configuration system
  • Added persistent theme storage using localStorage
  • Improved theme toggle handling
  • Added responsive theme preset picker UI
  • Updated dashboard/settings theme experience
  • Tested on desktop and mobile layouts
  • Updated wakatime_stats migration to fix UUID/text mismatch issue

How to Test

  1. Open dashboard settings
  2. Select different theme presets
  3. Verify dashboard updates correctly
  4. Refresh the page and confirm selected theme persists
  5. Test responsiveness on mobile layout

Screenshots (if UI change)

Included screenshots for:

  • Theme preset picker UI
Theme presets
  • Default Light and Dark themes
LightDark themes
  • Custom theme previews
Custom theme
  • Mobile responsiveness
Mobile responsiveness

Checklist

  • Linked issue in summary
  • npm run lint passes locally
  • Self-reviewed the diff
  • Mobile responsive tested
  • Theme persistence verified
  • Existing unrelated upstream test failures still present (npm run test)

Accessibility Checklist

  • Proper keyboard navigation tested
  • Responsive UI verified
  • Accessibility labels added where needed

Additional Notes

npm run test currently contains unrelated upstream failing tests (supabase-guard, github-achievements, and auth scope assertion mismatch). No new test failures were introduced by this PR.

@vercel
Copy link
Copy Markdown

vercel Bot commented May 28, 2026

@CyraTechZenith is attempting to deploy a commit to the PRIYANSHU DOSHI's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:design GSSoC type bonus: UI/design (+10 pts) type:feature GSSoC type bonus: new feature labels May 28, 2026
@github-actions
Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Thanks for your first PR on DevTrack! 🎉

A maintainer will review it within 48 hours. While you wait:

  • Make sure CI is passing (type-check + lint)
  • Double-check the PR description is filled out and the issue is linked
  • Feel free to ask questions in Discussions if you need help

If you find DevTrack useful, a ⭐ star on the repo is always appreciated — it helps the project grow and attract more contributors!

@Priyanshu-byte-coder Priyanshu-byte-coder added gssoc:approved GSSoC: PR approved for scoring level:advanced GSSoC: Advanced difficulty (55 pts) labels May 29, 2026
Copy link
Copy Markdown
Owner

@Priyanshu-byte-coder Priyanshu-byte-coder left a comment

Choose a reason for hiding this comment

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

Migration file modification is dangerous. PR adds DROP TABLE IF EXISTS wakatime_stats CASCADE to existing migration 20260526000000_add_wakatime_stats.sql. This migration already ran in production — Supabase won't re-run it, so the DROP is dead code locally but if someone applies it manually it destroys data. Fix: create a NEW migration file with a later timestamp (e.g. 20260529000000_reset_wakatime_stats.sql) containing the DROP + CREATE. Never modify an already-committed migration.

@CyraTechZenith
Copy link
Copy Markdown
Author

Thanks for catching that. I've reverted the changes to the existing migration and removed them from this PR to avoid modifying an already-committed migration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc:approved GSSoC: PR approved for scoring gssoc26 GSSoC 2026 contribution level:advanced GSSoC: Advanced difficulty (55 pts) type:design GSSoC type bonus: UI/design (+10 pts) type:feature GSSoC type bonus: new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Add custom dashboard color themes (Dracula, Nord, Catppuccin presets)

2 participants