Go to file
Jan Drewniak 4d1c0b8940 Override PinnableElement behaviour at low resolutions.
At resolutions below 1000px, we want pinned elements
such as the Page Tools menu and Main Menu to collapse.
This behaviour is temporary and when the browser is resized,
the pinned elements should revert to their previous pinned state.

We also want to remove the ability to pin these menus at
low resolutions, so the "hide/move" button is hidden.

A new matchMedia event handler is added to PinnableElement.js
to handle this behaviour.

CSS is also added to hide the pinned menus at low resolution.
This is to account for the situation where the page is loaded
at narrow widths, with pinned elements,
and the JS hasn't loaded yet.

features.js is refactors so that class toggling can happen
independently of saving the state to user preferences
(since we want to toggle the classes but not save the state
at lower resolutions).

Bug: T326364
Change-Id: I3113ab83deb15843e04ed63ec767a85c522517b5
2023-01-13 18:09:11 +00:00
.phan Upgrade to newer phan 2019-03-20 19:37:59 -07:00
.storybook Replace incorrectly mw- prefixed classes 2022-10-25 10:28:31 -05:00
dev-scripts [Storybook] Add Header component 2021-09-14 18:33:10 +00:00
i18n Localisation updates from https://translatewiki.net. 2023-01-12 08:47:17 +01:00
includes Component: VariantsMenu 2023-01-11 23:05:41 +00:00
resources Override PinnableElement behaviour at low resolutions. 2023-01-13 18:09:11 +00:00
screenshots Add skin screenshot for the installer 2017-08-11 15:37:34 -04:00
skinStyles Replace .sidebar-toc class with .vector-toc and use PinnableElement in TOC 2023-01-04 17:48:03 -06:00
stories Remove vector-menu-dropdown-noicon class 2023-01-10 23:48:05 +00:00
tests Override PinnableElement behaviour at low resolutions. 2023-01-13 18:09:11 +00:00
.eslintignore a11y: create report in LOG_DIR or 'a11y/' 2022-05-05 11:46:13 -05:00
.eslintrc.json [eslint] Disable mediawiki/class-doc 2022-02-11 16:31:33 +00:00
.eslintrcEs6.json Search: Use Codex and Vue 3 instead of WVUI and Vue 2. 2022-07-18 12:54:47 -07:00
.gitignore build: Updating dependencies 2022-05-20 11:41:53 +00:00
.gitreview Use track=1 instead of defaultbranch=master in .gitreview 2016-10-24 17:30:32 -07:00
.nvmrc Update Node version 2022-03-15 14:26:04 -07:00
.phpcs.xml build: Updating mediawiki/mediawiki-codesniffer to 33.0.0 2020-11-17 23:33:50 +01:00
.stylelintignore Setup jest unit tests and add basic test cases for AB.js and App.vue 2022-01-31 20:50:33 +00:00
.stylelintrc.json build: Update stylelint-config-wikimedia to 0.13.0 2022-05-16 17:44:12 +01:00
.svgo.config.js build: Update 'svgo' to latest v2.8.0 & re-crush images 2022-02-28 00:00:05 +00:00
bundlesize.config.json Fix alignment/spacing of grid column items 2023-01-10 11:36:53 -06:00
CODE_OF_CONDUCT.md build: Updating mediawiki/mediawiki-codesniffer to 22.0.0 2018-09-04 01:45:34 +00:00
composer.json Allow composer/installers plugin 2022-07-18 19:24:19 -07:00
COPYING Use the plain-text GPL and fix 'license-name' to match SPDX conventions 2015-01-29 17:04:29 +01:00
Doxyfile docs: Generate documentation with Doxygen 2020-02-24 16:49:38 +00:00
jest.config.js Limited width toggle 2022-11-01 16:29:43 +00:00
jest.setup.js Limited width toggle 2022-11-01 16:29:43 +00:00
jsdoc.json Override PinnableElement behaviour at low resolutions. 2023-01-13 18:09:11 +00:00
package-lock.json build: Upgrade test versions of Codex things from 0.2.2 to 0.4.2 2023-01-09 13:22:47 -05:00
package.json build: Upgrade test versions of Codex things from 0.2.2 to 0.4.2 2023-01-09 13:22:47 -05:00
README.md End migration mode 2022-03-23 16:46:42 +00:00
skin.json Fix mustache template rendering when TOC is rerendered after an edit 2023-01-10 19:12:55 -07:00
tsconfig.json Setup jest unit tests and add basic test cases for AB.js and App.vue 2022-01-31 20:50:33 +00:00

Vector Skin

Installation

See https://www.mediawiki.org/wiki/Skin:Vector.

Configuration options

See skin.json.

Development

Node version

It is recommended to use nvm to use the version of node defined in .nvmrc during local development. This ensures consistency amongst development environments.

Coding conventions

We strive for compliance with MediaWiki conventions:

https://www.mediawiki.org/wiki/Manual:Coding_conventions

Additions and deviations from those conventions that are more tailored to this project are noted at:

https://www.mediawiki.org/wiki/Reading/Web/Coding_conventions

Pre-commit tests

A pre-commit hook is installed when executing npm install. By default, it runs npm test which is useful for automatically validating everything that can be in a reasonable amount of time. If you wish to defer these tests to be executed by continuous integration only, set the PRE_COMMIT environment variable to 0:

$ export PRE_COMMIT=0
$ git commit

Or more succinctly:

$ PRE_COMMIT=0 git commit

Skipping the pre-commit tests has no impact on Gerrit change identifier hooks.

Hooks

See hooks.txt.