Q

Quasar Framework

Q
Quasar Framework Web v2.32.3

quasar-v2.32.3

Changes chore(css): Baseline cleanup -> appearance: none is emitted unprefixed (the -webkit- form served no supported browser), and the fieldset padding rule left normalize since every supported engine ships the same values in its UA stylesheet. No rendering change on Chromium 121+, Firefox 123+ and Safari 17.2+ chore(api): the "added in" markers below v2.12 are gone from the component and composa…

Q
Quasar Framework Web v6.1.8

@quasar/icongenie-v6.1.8

Changes chore(icongenie): generate -> PWA mode no longer produces public/icons/ms-icon-144x144.png. The only thing that ever referenced it was the msapplication-TileImage meta tag, which targeted the pinned-site tiles of Internet Explorer and pre-Chromium Edge; Chromium Edge takes its tiles from the web manifest, so no supported browser reads it. @quasar/app-vite v3.8.4+ no longer injects that tag…

Q
Quasar Framework Web v3.8.4

@quasar/app-vite-v3.8.4

Changes chore(app-vite): PWA mode -> the generated index.html no longer carries the msapplication-TileImage and msapplication-TileColor meta tags. They configured the pinned-site tiles of Internet Explorer and pre-Chromium Edge only; Chromium Edge takes its tiles from the web manifest, so none of the supported browsers read them. The icons/ms-icon-144x144.png file those tags pointed at is no longe…

Q
Quasar Framework Web v2.1.0

@quasar/extras-v2.1.0

New feat(extras): roboto-font -> Roboto now ships as a variable font (weights 100 to 900) in one woff2 per script subset with unicode-range: Latin, Latin Extended, Cyrillic, Greek, Vietnamese, math and symbols. Browsers download only the subsets a page actually uses. Pages using two or more weights get lighter (43 KB total instead of 22 KB per weight), single-weight pages pay about 21 KB more, and…

Q
Quasar Framework Web v2.32.2

quasar-v2.32.2

Security fixes fix(openURL): DOM clobbering of the iOS SafariViewController bridge -> on iOS, attacker-controlled HTML rendered into the page (a <a id="SafariViewController"> through QEditor, or QSelect / QChatMessage with HTML rendering enabled) shadowed the native bridge global, so every later openURL() call threw TypeError: window.SafariViewController.isAvailable is not a function and the URL n…

Q
Quasar Framework Web v2.32.1

quasar-v2.32.1

Changes fix(QExpansionItem): group with several items opened on mount -> two or more items of the same group that both start with model-value: true (or default-opened) threw on mount since v2.32.0 and were left with every body visible under a collapsed header. The group sibling that has to close is now settled closed before its content element is ready, with after-hide emitted as usual (#18547) Do…

Q
Quasar Framework Web v2.32.0

quasar-v2.32.0

ImportantBehavior changes worth checking before you upgrade: QImg now renders its <img> into the SSR/SSG HTML whenever the box shape is known (ratio, initial-ratio or height set), instead of waiting for hydration. The markup a crawler or a no-JS client sees changes accordingly. Images with none of the three keep deferring to the client, unless you opt in with the new ssr-prerender prop. The .q-res…

Q
Quasar Framework Web v2.31.0

quasar-v2.31.0

ImportantBehavior changes worth checking before you upgrade: A readonly QInput/QSelect/QFile/QField now reflects focus: it shows the focused styling (highlight, floated label, hide-hint hint), emits focus/blur and validates on blur with lazy-rules. Only disable now exempts a field from counting as focused, matching the existing rule that only disable exempts it from validation. config.dark: 'auto'…

Q
Quasar Framework Web v3.8.3

@quasar/app-vite-v3.8.3

Changes feat(app-vite): build -> quasar.config file > build > publicPath now accepts the relative "./" value, for a build that can be served from any folder without knowing its URL prefix upfront (assets are referenced relative to index.html, which is Vite's own relative base shortcut). The publicPath formatter used to root every non-URL value, so "./" became "/./", which Vite normalizes to "/": t…

Q
Quasar Framework Web v6.1.7

@quasar/icongenie-v6.1.7

Changes fix(icongenie): generate -> the Capacitor mount step no longer fails with ERR_PNPM_IGNORED_BUILDS ("Failed to install @capacitor/splash-screen. Please do it manually.") on pnpm v12. pnpm v12 silently ignores the --config.strict-dep-builds=false param Icon Genie relied on since v6.1.6 and now raises that error on the very first install too, so any dependency with an unapproved build script…

Q
Quasar Framework Web v3.8.2

@quasar/app-vite-v3.8.2

Changes fix(app-vite): pnpm -> package installs the CLI runs on your behalf (quasar mode add/remove, quasar ext add/remove, quasar new store's pinia install, the Capacitor mount step) no longer fail with ERR_PNPM_IGNORED_BUILDS on pnpm v12. pnpm v12 silently ignores the --config.strict-dep-builds=false param the CLI relied on and now raises that error on the very first install too, so any project…

Q
Quasar Framework Web v5.0.8

@quasar/cli-v5.0.8

This is the optional globally-installed part of the Quasar CLI Changes fix(cli): upgrade -> quasar upgrade --install no longer fails with ERR_PNPM_IGNORED_BUILDS on pnpm v12. pnpm v12 silently ignores the --config.strict-dep-builds=false param the CLI relied on and now raises that error on the very first install too, so any project with an unapproved dependency build script (sass' @parcel/watcher,…

Q
Quasar Framework Web v2.30.1

quasar-v2.30.1

Fixes fix(ui): every directive guards its context again in updated/beforeUnmount -> Vue defers a directive's updated to the post-flush queue but runs beforeUnmount synchronously, so a queued updated can outlive the element's unmount and find its context already gone. v2.30.0 dropped the early return that covered this, and the hook threw a TypeError. In production Vue logs it; in development it ret…

Q
Quasar Framework Web v2.30.0

quasar-v2.30.0

ImportantBehavior changes worth checking before you upgrade: QInfiniteScroll no longer watches the scroll position; it watches the end of its content. offset is now measured from the end of the content instead of the end of the scroll target (identical whenever the component is the last thing in its scroller), nothing loads once you scrolled past the component, debounce counts from the moment the…

Q
Quasar Framework Web v2.29.0

quasar-v2.29.0

ImportantOne behavior change worth checking before you upgrade: A @click listener on QItem or QChip now implies clickable. The clickable prop became tri-state (default null): when you do not set it, the presence of a click listener decides. An explicit value still wins, so :clickable="cond" and clickable="false" are untouched. Markup that carried a previously dead click listener now gains the hove…

Q
Quasar Framework Web v2.28.0

quasar-v2.28.0

ImportantSeveral behavior changes worth checking before you upgrade: QMenu and QTooltip lost the scroll-target prop. Popups now hear every scrolling container, nested ones included, through a single capture-phase document listener, so no container needs to be designated (and the scroll helper class is no longer part of the contract). The prop was only ever an escape hatch for containers the auto-d…

Q
Quasar Framework Web v2.27.0

quasar-v2.27.0

ImportantTwo behavior changes worth checking before you upgrade: A click on the target no longer closes a hover-opened QMenu/QBtnDropdown while it is still animating into view. A single move-and-click gesture can no longer dismiss what it just opened; once the menu is fully shown, clicking toggles it closed exactly as before. Three language packs now report a standards-compliant isoName: kur-CKB r…

Q
Quasar Framework Web v3.8.1

@quasar/app-vite-v3.8.1

Changes fix(app-vite): bex -> the bridge now recovers on its own after the MV3 background script is terminated. Chrome (service worker) and Firefox (event page) shut the background down after ~30s of inactivity, taking every bridge port with it, and nothing ever came back: content script and app bridges stayed disconnected forever, while a revived background only knew about the port that woke it u…

Q
Quasar Framework Web v2.0.2

@quasar/vite-plugin-v2.0.2

Changes fix(vite-plugin): client bundle alias with custom Vite modes -> production builds started with a custom mode name (vite build --mode qa, --mode staging, ...) no longer get the dev-server treatment. The plugin picked between aliasing bare quasar imports to the single-file client build and excluding quasar from dep prebundling by comparing Vite's mode against production, but the mode is only…

Q
Quasar Framework Web v2.26.0

quasar-v2.26.0

ImportantA few behavior changes worth checking before you upgrade: QEditor no longer emits a placeholder attribute (it was not valid on a div). Custom CSS targeting .q-editor__content[placeholder] must switch to [aria-placeholder]. QSelect renders its fall-through attributes only on the focus target, no longer also on the .q-field__native wrapper. Selectors or tests that matched the wrapper copy (…

Q
Quasar Framework Web v3.8.0

@quasar/app-vite-v3.8.0

Changes feat(app-vite): build -> new vueJsx option for writing components with JSX/TSX (.jsx/.tsx files, or <script lang="jsx|tsx"> blocks in .vue files). Vite compiles JSX itself but assumes the React runtime, so any such file previously died on an unresolved react/jsx-runtime. Setting quasar.config file > build > vueJsx to true points Vite (Oxc) at Vue's JSX runtime instead, in the Vite pipeline…

Q
Quasar Framework Web v2.0.1

@quasar/vite-plugin-v2.0.1

Changes fix(vite-plugin): treeshaking with custom Vite modes -> production builds started with a custom mode name (vite build --mode qa, --mode staging, ...) treeshake Quasar imports again. The gate compared Vite's mode against production, but the mode is only an env-file selector, so any custom name silently disabled treeshaking and left bare quasar imports in the production bundle (+22kb min wit…

Q
Quasar Framework Web v2.25.1

quasar-v2.25.1

ImportantA few behavior changes worth checking before you upgrade: lazy-rules now clears an error while you type: while an error is displayed, the field re-checks on each model change instead of waiting for the next blur. Rules that were only ever meant to run on blur will now also run on every keystroke for as long as the field is in error. Async rules re-validate when the value changes or the fi…

Q
Quasar Framework Web v3.7.0

@quasar/app-vite-v3.7.0

Changes fix(app-vite): boot files & preFetch -> behavior change: urlPath is now the router-facing URL in every mode. It is path + query (+ hash) as Vue Router sees it, without the publicPath prefix and without hash mode's # wrapper, so you can match it against your routes or feed it straight to router.resolve(). Previously its shape depended on where it was read (raw req.url on the server, window.…

Q
Quasar Framework Web v2.0.4

@quasar/extras-v2.0.4

Changes material-symbols-outlined -> v367 material-symbols-rounded -> v368 material-symbols-sharp -> v364 Heads up on the Material Symbols upgrade: Google removed the file_map icon upstream, so symOutlinedFileMap, symRoundedFileMap and symSharpFileMap are no longer exported. If you import any of them, switch to another icon before upgrading. The same upgrade adds *DisplayAdd, *DriveFusiontable, *G…

Q
Quasar Framework Web v2.25.0

quasar-v2.25.0

ImportantA few behavior changes worth checking before you upgrade: QMenu no longer claims role="menu" and QBtnDropdown's toggle no longer emits aria-haspopup -- a menu may only contain menuitem* children, so the old markup was invalid. Declare role="menu" on the wrapped QList (its actionable QItems then expose themselves as menuitems automatically) and use the new toggle-aria-haspopup prop on QBtn…

Q
Quasar Framework Web v6.1.5

@quasar/icongenie-v6.1.5

Changes fix(icongenie): running a command outside a Quasar CLI project folder no longer aborts with "This command must be executed inside a Quasar project folder." Quasar is also used as a plain library in custom Vite/Electron setups, so Icon Genie now prints a warning and falls back to the current folder as the target -- assets are generated for whichever modes actually have their target folders…

Q
Quasar Framework Web v3.6.1

@quasar/app-vite-v3.6.1

Changes fix(app-vite): ext add/remove, mode add -> the flow no longer aborts half-way on pnpm v11+. pnpm v11 turned "Ignored build scripts" into a fatal error (v10 only warned), so any dependency with an unapproved build script anywhere in your project made the CLI's pnpm add/pnpm install exit non-zero even though the packages did install -- quasar ext add then stopped with the App Extension packa…

Q
Quasar Framework Web v6.1.6

@quasar/icongenie-v6.1.6

Changes fix(icongenie): generate -> the Capacitor mount step no longer reports "Failed to install @capacitor/splash-screen. Please do it manually." on pnpm v11+ for a package it actually installed. pnpm v11 turned "Ignored build scripts" into a fatal error (v10 only warned), so any dependency with an unapproved build script anywhere in /src-capacitor made the install exit non-zero even after the p…

Q
Quasar Framework Web v5.0.7

@quasar/cli-v5.0.7

This is the optional globally-installed part of the Quasar CLI Changes fix(cli): upgrade -> quasar upgrade --install no longer stops half-way on pnpm v11+. pnpm v11 turned "Ignored build scripts" into a fatal error (v10 only warned), so any dependency with an unapproved build script anywhere in the project made the install step exit non-zero even though the packages did install -- leaving package.…