3.22.0 Latest
🧩 Cache status: covered by compat — set
$wgCitizenCompat = true;to upgrade without a purge.
Highlights
-
📑 Sections that collapse cleanly The collapse control has moved to the end of the heading, edit links step out of the way while a section is closed, and heading spacing stays put as sections open and shut.
-
🔠 Spacing that follows your reading size Choose a larger or smaller text size and the space around paragraphs, headings and images scales with it, so the page keeps its rhythm instead of feeling cramped or loose.
-
🎛️ A redesigned Text and Width picker Both have left their dropdowns for a segmented track that shows every option at once, each segment drawing what it does — a sample of text at that size, a page at that measure — with the current value in the label row. The track is also a new widget type your own preferences can use, see Widget types.
-
⌨️ Keyboard shortcuts drawn as keys Shortcut hints in menus and the command palette are now shown as individual keycaps, and Ctrl+Enter opens a command palette result in a new tab.
-
⚡ Menus that open faster The command palette, preferences, share and notification panels each used to fetch their own copy of Vue. They now share one, so only the first panel you open pays to download it and the rest arrive much lighter.
Changelog
Features
- keyboardHint: ✨ draw shortcut keys as keycaps (by @alistair3149)
17335d2 - keyboardHint: ✨ give each key in a shortcut its own cap (by @alistair3149)
82b2f7a - preferences: ✨ show text and width options as a segmented track (by @alistair3149)
7c618e7 - sections: ✨ hide the edit buttons when a section is collapsed (by @alistair3149)
7b5965e - sections: ✨ move the collapse control to the end of the heading (by @alistair3149)
3716455 - VisualEditor: ✨ tighten spacing for template editor (by @alistair3149)
d97e788
Bug Fixes
- CiteThisPage: 🐛 correct the heading class in the citation box selector (by @alistair3149)
9614275 - commandPalette: 🐛 open a result in a new tab with Ctrl+Enter (by @alistair3149)
c57cd3c - commandPalette: 🐛 say what the mode callback arrays contain (by @alistair3149)
834f254 - commandPalette: 🐛 stop recent results remembering how they were opened (by @alistair3149)
32149c9 - commandPalette: 🐛 survive a handler with malformed triggers (by @alistair3149)
6fa439e, closes #1816 - core: 🐛 lift bordered content boxes one step off the page (by @alistair3149)
fd0481c - dropdown: 🐛 stop one Escape closing both a select and the dropdown (by @alistair3149)
600ea90, closes #1740 - pwa: 🐛 stop refetching the logos on every manifest request (by @alistair3149)
e7a1e5e, closes #1833 - sections: 🐛 collapse hatnotes and cards fully (by @alistair3149)
97a3616 - sections: 🐛 keep heading spacing steady when a section collapses (by @alistair3149)
5386cc5 - spacing: 🐛 scale content spacing to the reading text size (by @alistair3149)
3e4663e - templates: 🐛 separate icon button link attributes (by @alistair3149)
acf3325 - typography: 🐛 scale heading spacing to the reading text size (by @alistair3149)
a4ca6c8 - userMenu: 🐛 label the registration date as membership (by @alistair3149)
e73fd8b - userMenu: 🐛 link user groups to their group page (by @alistair3149)
d1ed0ab - userMenu: 🐛 show real name alongside username (by @alistair3149)
80ecc8c - VisualEditor: 🐛 correct background color for sticky header in template dialog (by @alistair3149)
09b9168 - VisualEditor: 🐛 fix toolbar z-index for MW 1.46 (by @alistair3149)
462a6bf - WikiLove: 🐛 fix missing heart icon for the button (by @Zippybonzo) (#1846)
346ccd3
Performance Improvements
- ⚡️ load Vue once and reuse it across every menu that needs it (by @alistair3149)
f1595a7
Miscellaneous Chores
- commandPalette: 🔧 check for null and unknown catch values (by @alistair3149)
977abcf - commandPalette: 🔧 enable the strict flags that already pass (by @alistair3149)
d654154 - commandPalette: 🔧 type-check the JSDoc annotations (by @alistair3149)
bfa910c, closes #1775
New Contributors
- @Wecury made their first contribution in #1839
- @Zippybonzo made their first contribution in #1846


