quasar-skilld — Claude Code skill for Quasar 2.33.1
A skill for building and debugging Quasar 2.33.1 apps: it reads the docs shipped inside the installed package instead of guessing at the API.
npx skills add skilld-dev/vue-ecosystem-skills --skill quasar-skilld -a claude-codeWhat quasar-skilld does
The skill kicks in when code imports quasar or quasar/wrappers, when Quasar is wired up through Vite, Vitest, Storybook, UMD or the Quasar CLI, when you style with Quasar Sass variables, or when you move between Quasar v2 releases. It ships reference files: the package export surface, installation notes, best practices, a version-by-version changelog and a security checklist.
The point is to stop guessing. Since 2.33 the docs travel with the package: node_modules/quasar/dist/api/<Name>.json holds props, slots, events and methods with addedIn markers, and dist/mcp/**/*.md carries the quasar.dev pages as Markdown, including a compact API form. The @quasar/mcp server serves the same content to MCP-capable agents.
Node >= 22 is required, the package is ESM. The Vite plugin path wants @quasar/vite-plugin v2, Vite 8+, @vitejs/plugin-vue 6+ and quasar v2.24+. Sass is where people trip: quasar >= 2.14 pairs with sass-embedded@^1.93.2, while quasar <= 2.13 needs [email protected] pinned. In Quasar CLI projects, import wrappers from #q-app/wrappers — the old quasar/wrappers path is deprecated.
What it helps with
- look up exact props and events for a Quasar component in the installed version
- wire Quasar into Vite without mismatching plugin versions
- move from
this.$qtouseQuasarin Composition API code - match the Sass version to the Quasar version in use
- check what changed before upgrading between Quasar v2 releases
Example prompts for the agent
- Set up Quasar in my Vite project and tell me which package versions I need
- Find the pagination props in
node_modules/quasar/dist/api/QTable.jsonand show an example - Review my
useQuasarcode and flag what broke after the Quasar upgrade
How to install quasar-skilld
1Skills CLI (Vercel)
npx skills add skilld-dev/vue-ecosystem-skills --skill quasar-skilld -a claude-code2Manually: put the files in place
~/.claude/skills/quasar-skilld/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/quasar-skilld/
1Skills CLI (Vercel)
npx skills add skilld-dev/vue-ecosystem-skills --skill quasar-skilld -a codex2Manually: put the files in place
.agents/skills/quasar-skilld/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add skilld-dev/vue-ecosystem-skills --skill quasar-skilld -a cursor2Manually: put the files in place
.cursor/skills/quasar-skilld/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install skilld-dev/vue-ecosystem-skills quasar-skilld2Manually: put the files in place
.github/skills/quasar-skilld/SKILL.md1Skills CLI (Vercel)
npx skills add skilld-dev/vue-ecosystem-skills --skill quasar-skilld -a gemini-cli2Platform CLI
gemini skills install https://github.com/skilld-dev/vue-ecosystem-skills --path skills/quasar-skilldManually: put the files in place
.devin/skills/quasar-skilld/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add skilld-dev/vue-ecosystem-skills --skill quasar-skilld -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about quasar-skilld
How do I install quasar-skilld in Claude?
Run npx skills add skilld-dev/vue-ecosystem-skills --skill quasar-skilld -a claude-code. The skill lands at ~/.claude/skills/quasar-skilld/SKILL.md.
What does quasar-skilld do?
It helps write, configure and debug Quasar 2.33.1 apps: components, plugins, directives, Sass variables, and builds through Vite, Vitest, Storybook, UMD or the Quasar CLI.
Where does the skill get its API information?
From the docs bundled in the installed package: dist/api/<Name>.json and the Markdown pages under dist/mcp. The @quasar/mcp server serves the same docs.
Source text
SKILL.md · MIT
--- name: quasar-skilld description: Build, configure, and debug apps with the Quasar framework (`quasar` npm package, v2.33.1). Use when writing, reviewing, or debugging code that imports "quasar" or "quasar/wrappers", configuring Quasar with Vite, Vitest, Storybook, UMD, or Quasar CLI, styling with Quasar Sass variables, or upgrading between Quasar v2 releases. license: MIT --- # Quasar `[email protected]` Vue 3 UI framework for SPA, PWA, SSR, SSG, mobile (Cordova/Capacitor) and desktop (Electron) apps from one codebase. Vue 3 only. ESM package, Node >= 22 (`package.json:102-104`). Baseline for this Skill: quasar 2.33.1 (2026-09-22). ## First: read the docs shipped in the installed package Quasar 2.33+ bundles its documentation offline. Before guessing an API, look inside the project's `node_modules/quasar`: - `dist/api/<Name>.json` — props, slots, events, methods of every component, plugin and directive, with `addedIn` version markers. This is the ground truth. - `dist/mcp/**/*.md` — the quasar.dev pages (components, plugins, directives, composables, utils, styling, layout) as Markdown; `dist/mcp/api/<Name>.md` holds the same API in compact readable form. `dist/mcp/meta.json` (160 pages, `version: 2.33.1`) indexes them all. - `@quasar/mcp` MCP server serves the same docs to MCP-capable agents. Details and search commands: [references/offline-docs.md](./references/offline-docs.md) ## Package map | Entry | Path | Notes | | --- | --- | --- | | browser ESM | `dist/quasar.client.js` | default `import` target | | node/server | `dist/quasar.server.prod.js` | what Node/Vitest resolve without the Vite plugin | | UMD | `dist/quasar.umd.prod.js` | CDN usage with Vue 3 global build | | types | `dist/types/index.d.ts` | | | wrappers | `wrappers/index.js` | no-op typings, deprecated; use `#q-app/wrappers` (`wrappers/index.js:9-16`) | | lang packs | `lang/*.js` (75) | `import langDe from 'quasar/lang/de'` | | icon sets | `icon-set/*.js` (44) | `import iconSet from 'quasar/icon-set/material-icons'` | Full export surface (components, plugins, directives, composables, utils): [references/api-surface.md](./references/api-surface.md) ## Common tasks Install with the Vite plugin (`@quasar/vite-plugin` v2 needs Vite 8+, `@vitejs/plugin-vue` 6+, quasar v2.24+, Node 20.19+; ESM-only; `dist/mcp/start/vite-plugin.md:10`): ```js // main.js import { createApp } from 'vue' import { Quasar, Notify } from 'quasar' import '@quasar/extras/material-icons/material-icons.css' import 'quasar/src/css/index.sass' import App from './App.vue' createApp(App).use(Quasar, { plugins: { Notify } }).mount('#app') ``` ```js // vite.config.js import { quasar, transformAssetUrls } from '@quasar/vite-plugin' import vue from '@vitejs/plugin-vue' plugins: [vue({ template: { transformAssetUrls } }), quasar()] ``` Access `$q` in Composition API: ```js import { useQuasar } from 'quasar' const $q = useQuasar() $q.notify('Saved') // $q.platform, $q.dark, $q.screen, $q.lang, ... ``` Templates use kebab-case props exactly as the API JSON lists them (`hide-dropdown-icon`, `no-error-icon`); two-way props bind as `v-model:propName` (the v1 `.sync` modifier is gone). Sass variables: quasar >= 2.14 pairs with `sass-embedded@^1.93.2`; quasar <= 2.13 needs `[email protected]` pinned (`dist/mcp/start/vite-plugin.md:38-39`). More on Vite, Vitest, Storybook, UMD and Quasar CLI: [references/installation.md](./references/installation.md) ## Best practices (verified against the 2.33.1 shipped docs) - Prefer responsive CSS classes (`gt-sm`, `lt-md`, window-width visibility classes) over the Screen plugin in JS, for performance. - Large `QTree`: `no-transition` for big datasets; `virtual-scroll` (v2.25+) for huge ones. - Custom Dialog plugin components: bootstrap with `useDialogPluginComponent`; bind `@hide="onDialogHide"` directly (v2.28+ forwards the dismissal reason). - Prefer `useInterval`/`useTimeout`/`useAnimationFrame` over native timers; they auto-cancel on unmount and are SSR-safe no-ops. - SSR/SSG: avoid `Dark` mode `'auto'` unless the server knows the preference (cookie), else users see a light flash. - Use the LoadingBar plugin instead of a manual `QAjaxBar`. - Validation for `QInput`: Quasar recommends Regle (`dist/mcp/vue-components/input.md:2397`). - Quasar CLI projects: import wrappers from `#q-app/wrappers`, never `quasar/wrappers`. Full list with citations: [references/best-practices.md](./references/best-practices.md) ## Upgrading (2.20 -> 2.33.1 highlights) - v2.33.0: docs + compact API now ship inside the package (offline, exact version); pair with the `@quasar/mcp` server. Fixes: `extractDate()` matches the longest locale name; QTable rows-per-page selector follows a controlled `v-model:pagination`; virtual-scroll `scrollTo()` no longer dropped right after a scroll event. - v2.33.1: QPagination `input` mode clears the typed page on submit (`src/components/pagination/QPagination.js:290-292`); `textToRgb()` keeps the alpha of `rgb(R, G, B, A)` (`src/utils/colors/colors.js:149-174`). - v2.28: `QMenu`/`QTooltip` lost the `scroll-target` prop; popups track every scrolling container automatically. `Platform.is` dropped `ie`, `edgeChromium`, `winphone`, `kindle`, `silk`. - v2.29: a `@click` listener on `QItem`/`QChip` now implies `clickable`. - v2.31: readonly fields (`QInput`/`QSelect`/`QFile`/`QField`) now reflect focus and validate on blur. - v2.32: `QImg` renders its `<img>` into SSR HTML when the box shape is known (`ratio`/`initial-ratio`/`height`); `ssr-prerender` opts in otherwise. `QExpansionItem`/`QTree` no longer wrap content in `QSlideTransition`. - Deprecated: `QInput`/`QFile` `getNativeElement()` -> use the `nativeEl` property (`dist/api/QInput.json`). No API was added in 2.33.x itself: no `addedIn: v2.33` marker exists in `dist/api/*.json`. All behavior changes and new APIs, with release URLs: [references/whats-new.md](./references/whats-new.md) ## Security The `*-html` boolean props (`options-html`, `display-value-html`, `html` on Notify/Dialog/Loading) opt into rendering HTML and are an XSS surface: sanitize before enabling. `QEditor` has no sanitize option; strip `<script>`/`<iframe>` server-side. Quasar CLI only exposes env variables with the `QCLI_` prefix to client code. Checklist: [references/security.md](./references/security.md)
© skilld-dev · MIT · skilld-dev/vue-ecosystem-skills