What changed: quasar 2.20 -> 2.33.1
Baseline of the previous Skill: 2.33.0. Each item cites the official release (URL) or the prepared source. Read the linked release before advising on an upgrade edge case.
Behavior changes to check before upgrading
- v2.33.1 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.33.1
- Fix only, no API change.
QPaginationininputmode clears the typed page after submit (the field showed the stale typed number next to the placeholder) (#18552,src/components/pagination/QPagination.js:290-292). textToRgb()keeps the alpha of thergb(R, G, B, A)form (before, onlyrgba()preserved it);rgb()without alpha still yieldsa: 100(#18555,src/utils/colors/colors.js:149-174).
- Fix only, no API change.
- v2.33.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.33.0
- Documentation ships inside the package (guides + compact API, offline,
exact version); pair with the new
@quasar/mcpserver. extractDate()matches the longest locale name instead of the first declared one, soformatDate()output parses back to the same date (16 round-trips fixed across 7 language packs; viYYYY MMM, trPazar).- Language pack
lv: the short name of Friday is nowPk(wasPi, colliding with Monday). QTable: the rows-per-page selector follows a controlledv-model:pagination(#18550);scrollTo()emits thetoof itsvirtual-scrollpayload as the last rendered row index.- Virtual scroll (
QVirtualScroll,QSelect,QTable,QTree): ascrollTo()issued right after a scroll event is no longer dropped while the scroller still moves.
- Documentation ships inside the package (guides + compact API, offline,
exact version); pair with the new
- v2.32.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.32.0
QImgrenders its<img>into SSR/SSG HTML whenever the box shape is known (ratio,initial-ratioorheight); newssr-prerenderprop forces it for unknown shapes. Crawler/no-JS markup changes..q-responsive__fillerelement removed; ratio now uses CSSaspect-ratioonQResponsive/QImg/QVideoroots.QExpansionItemandQTreeno longer mount aQSlideTransitionchild;durationbecame a real Number prop on both.QInputautogrow textareas are browser-sized (field-sizing: content) on Chromium 123+/Safari 26+; no inline height styles there.QParallaxuses view timelines and registers no listeners where supported; using thecontentslot scope forces JS tracking back on.
- v2.31.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.31.0
- Readonly
QInput/QSelect/QFile/QFieldnow reflect focus (focused styling,focus/blurevents,lazy-rulesvalidation on blur). Onlydisableexempts. config.dark: 'auto'resolves on the client again in SSR/SSG apps (had been a silentfalsesince 2.18.2); first paint stays light without the cookie approach..q-transition--field-message-*classes removed; use.q-field__messages--animated.- Elevation shadow colors are CSS custom properties.
- Readonly
- v2.30.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.30.0
QInfiniteScrollwatches the end of its content instead of the scroll position:offsetis measured from the content end, nothing loads after scrolling past the component.v-scroll-firefires once any part of the element is visible (old timing: the:1argument) and also fires on non-scroll visibility.v-intersectiondispatches every entry of a callback batch and no longer passes the observer as a second argument.
- v2.29.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.29.0
- A
@clicklistener onQItemorQChipnow impliesclickable(tri-state prop,nulldefault); markup with dead click listeners gains hover styling, focusability and role.
- A
- v2.28.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.28.0
QMenu/QTooltiplost thescroll-targetprop; popups hear every scrolling container via one capture-phase document listener. Remove the prop from templates.QMenu/QTooltipfreeze their placement per show: no re-flip while the anchor scrolls;updatePosition()re-runs the placement decision.Platform.isdroppedie,edgeChromium,winphone,kindle,silk;is.edgesemantics changed accordingly.
- v2.27.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.27.0
- Language packs
kur-CKB,mm,sr-CYRreportckb,my,sr-Cyrl. Old import paths keep working as deprecated aliases for all of v2; code comparing$q.lang.isoNameneeds updating.
- Language packs
- v2.26.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.26.0
QInputtextarea rows are no longer pinned to 18px line-height; bigger fonts change the height.
- v2.25.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.25.0
QMenuno longer claimsrole="menu"and QBtnDropdown's toggle droppedaria-haspopup; declarerole="menu"on the wrappedQListand use the newtoggle-aria-haspopupprop.- SSR'd virtual lists render their first slice on the server: item templates
of server-rendered
QVirtualScroll/QTablemust be SSR-safe. QSlideTransitionanimates immediately (no 100ms delay).
- v2.24.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.24.0
- Tree-shaking and toolchain work; no runtime or breaking changes. Pairs with
@quasar/vite-pluginv2.
- Tree-shaking and toolchain work; no runtime or breaking changes. Pairs with
- v2.23.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.23.0
- RTL: update
postcss.config.jstopostcss-rtlcssMode.Override(import{ Mode }frompostcss-rtlcss/options).
- RTL: update
- v2.22.0 https://github.com/quasarframework/quasar/releases/tag/quasar-v2.22.0
- Security fixes; SSG mode with Quasar CLI requires this version or later.
- v2.20.0: legacy Vetur build step removed. v2.21.0:
QTablegetCellValue()method added.
New API since v2.20 (from addedIn markers in dist/api/*.json)
None in v2.33.x: no descriptor carries addedIn: v2.33 in 2.33.1.
- v2.25:
QTreevirtual-scroll+ virtual-scroll props,scrollTo,getParentNode, tick-state methods;QDrawer@escape-key;QRangeleft/right-thumb-aria-label;QSplitterseparator-aria-label;QList/QItem/QVirtualScrollrole;QBtnDropdowntoggle-aria-haspopup,toggleslot. - v2.26:
hover,hover-delay,hover-hide-delayonQMenu,QBtnDropdown,QPopupEdit,QPopupProxy;QRangemin-range/max-range;QTablefooterslot. - v2.27:
QTd/QThcol-name;QFabhoverprops. - v2.28:
QSelecthoverprops,hide-dialog-close,no-option-label,no-chip-remove,no-option-prefetch;useDialogPluginComponentreports the dismissal reason (cancel/backdrop/escape/programmatic) throughonDialogHide;Lang.getClosestIsoName(). - v2.30:
QPullToRefreshside;QTooltipcursor-position;QPaginationellipsisslot;QFabstagger;QEditordropdown-hoverprops. - v2.31:
QColorpaletteslot. - v2.32:
QImgssr-prerender;QDrawer@pan;QParallaxrefresh().
Deprecations in v2.33
QInput/QFilemethodgetNativeElement()-> read thenativeElproperty instead (dist/api/QInput.json,dist/api/QFile.json).quasar/wrappersimports ->#q-app/wrappers(deprecated since@quasar/app-vitev2 /@quasar/app-webpackv4,wrappers/index.js:9-16).- v2.17 note corrected by the current API: the QSelect prop is
disable-tab-selection(notdisable-tab-select).
Staying current
dist/transforms/api-list.json names every API descriptor; scan
node_modules/quasar/dist/api/*.json for addedIn values above your floor
version before using a newer member. Release index:
https://github.com/quasarframework/quasar/releases