Skip to content

Conversation

@ielvisd
Copy link

@ielvisd ielvisd commented Nov 27, 2025

feat(ui): Add QThemeDesigner – full in-app Theme Builder component (official theme-builder as a reusable component)
Recreates the functionality of https://quasar.dev/style/theme-builder directly inside the framework as <q-theme-designer>. Features live color picking for primary/secondary/etc., real-time WCAG AA/AAA contrast validation, light/dark/contrast preference controls, and instant preview on all Quasar components. Fully responsive (mobile-first) and ready for playground/docs integration.

quasar-theme-designer

Hey Quasar team! 👋

This was created as an assignment to contribute something meaningful to a major open-source framework—I chose Quasar because I love it and have used it on previous projects. I chose to turn the official online Theme Builder into a real, reusable Quasar component because I thought it could be genuinely useful.

I have no expectation of a merge — I know big features like this need prior discussion and roadmap alignment. My main goal was the learning experience of building and contributing on a large codebase like Quasar.

That said, I followed the guidelines closely and aimed for production quality. Feel free to take anything useful or just close it. Thanks for building such an awesome framework! ❤️

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Documentation
  • Code style update
  • Refactor
  • Build-related changes
  • Other, please describe:

Does this PR introduce a breaking change?

  • Yes
  • No

The PR fulfills these requirements:

  • It's submitted to the dev branch (or v[X] branch)
  • When resolving a specific issue, it's referenced in the PR's title (e.g. fix: #xxx[,#xxx], where "xxx" is the issue number)
  • It's been tested on a Cordova (iOS, Android) app
  • It's been tested on an Electron app
  • Any necessary documentation has been added or updated in the docs or explained in the PR's description.

If adding a new feature, the PR's description includes:

  • A convincing reason for adding this feature (to avoid wasting your time, it's best to start a new feature discussion first and wait for approval before working on it)

Other information:

…preferences

Implements a theme designer with color customization, accessibility contrast
ratios, and text color preference controls (Contrast/Light/Dark) applied
across all preview components. Includes responsive mobile layout.
- Add Reset All button and fix isDarkMode prop passing
- Fix duplicate isDarkMode key linting error
- Restructure tests to comply with Quasar test spec validation
- Add missing tests for loadFromStorage and saveToStorage
- Fix build system to handle .vue file imports
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.

1 participant