Resubmission of Ib68f45d93a (548e94da98), which caused an error due
to `require('../../`)` not working outside the module base directory.
This is fixed with regression test in T373065.
Further confirmed in this repo by viewing
`/wiki/Special:CreateAccount?campaign=loginCTA&useskin=minerva`
with this patch applied. Without the T373065 fix, the console warns:
> Error: Cannot require undefined file …/ToggleList.js
-------
Support for private require() in tests is available since MW 1.41:
https://mediawiki.org/wiki/RL/PKG#Private_export_and_importhttps://mediawiki.org/wiki/RL/PKG#Virtual_files_in_traditional_modules
This fixes a confusing assertion in page-issues/index.test.js,
where for "insertBannersOrNotice()" it was asserting that the HTML
contain "⧼skin-minerva-issue-learn-more⧽", where the ⧼ character
indicates the message is not found (i.e. an error).
The test had to be written this way in order to pass, because
the skins.minerva.scripts module was not actually loaded, and thus
its templates and messages are not present either. This lack was
filled in by index.js for mw.templates, but not mw.messages.
By adopting private require(), these workarounds can all be removed.
== Motivation ==
In change I3a4024ccf90e505581, I'm working on improving the testrunner
config to enforce uselang=qqx on all tests. This is passing except
for GrowthExperiments and Minerva, both of which have the above
workarounds in place that caused a message to be undefined, and then
kept in the assertion expectation. When using uselang=qqx, values are
returned as (key) instead of ⧼key⧽, which exposes these message
existence errors.
By removing this workaround, the test will simply import the module
in the test as normal, thus the messages will exist, and thus it
will expect (key), and thus it will continue to pass even after
enforcing uselang=qqx.
Bug: T373482
Depends-On: I777f2c12e845a738edeac00e19818d4c939a1ef1
Change-Id: I6348e5ae00776c2c01d91fa90a431b6ffe3da25d
This reverts commit 548e94da98.
Reason for revert: The patch was causing the following error on pageload
Error: Cannot require undefined file includes/Skins/ToggleList/ToggleList.js
require startup.js:1006
Bug: T373482
Change-Id: I22751109c124795af7d2e0ad6c4104745b2d6632
Added to MediaWiki core last year with I9fca9fdf9b7623b1.
This fixes a confusing assertion in page-issues/index.test.js,
where for "insertBannersOrNotice()" it was asserting that the HTML
contain "⧼skin-minerva-issue-learn-more⧽", where the ⧼ character
indicates the message is not found (i.e. an error).
The test had to be written this way in order to pass, because
the skins.minerva.scripts module was not actually loaded, and thus
its templates and messages are not present either. This lack was
filled in by index.js for mw.templates, but not mw.messages.
By adopting private require(), these workarounds can all be removed.
== Motivation ==
In change I3a4024ccf90e505581, I'm working on improving the testrunner
config to enforce uselang=qqx on all tests. This is passing except
for GrowthExperiments and Minerva, both of which have the above
workarounds in place that caused a message to be undefined, and then
kept in the assertion expectation. When using uselang=qqx, values are
returned as (key) instead of ⧼key⧽, which exposes these message
existence errors.
By removing this workaround, the test will simply import the module
in the test as normal, thus the messages will exist, and thus it
will expect (key), and thus it will continue to pass even after
enforcing uselang=qqx.
Change-Id: Ib68f45d93a7054ed8bd35fc5644e2852f2f90248
Prevents dark-mode styles from affecting print media
by adding `@media screen` to dark-mode related styles.
Bug: T371331
Change-Id: Ieeca30d086d8b8705aba96441a576e3d8e127838
* eslint-config-wikimedia: 0.27.0 → 0.28.2
The following rules are failing and were disabled:
* tests/selenium:
* implicit-arrow-linebreak
* no-mixed-spaces-and-tabs
* grunt-banana-checker: 0.11.1 → 0.13.0
* stylelint-config-wikimedia: 0.16.1 → 0.17.2
The following rules no longer exist and were removed:
* stylistic/selector-list-comma-newline-after
* braces: 3.0.2 → 3.0.3
* https://github.com/advisories/GHSA-grv7-fg5c-xmjg
Change-Id: Ia94454c1da778f241085714e1601a0233d547570
The message box is changed from warning to
notice for the following messages:
- mobile-frontend-generic-login-new
- mobile-frontend-watchlist-purpose
- mobile-frontend-watchlist-signup-action
Bug: T366127
Depends-On: I358ee59a1a0b7a5bb94e66bca9a2437517f40141
Change-Id: Ifa4418cbecda38011a6ee4d09c03db3ded7a9eb9
It keeps fallback definitions which will work for most of the
cases in older browser as the transformations provided by
CSS Janus.
Bug: T371265
Change-Id: I0df37ca675533cf72c5636747cd40bbb4fb7497a
This is akin to I404710209d59241991716bb7180bcaabcafffcec which
was for the most of desktop skins but since Minerva doesn't have
any dependency to `elements` and `i18n-all-lists-margins` it
should have it's own implementation of the change.
Bug: T371082
Change-Id: I1b98ced874a1caf049e7e09dbb678105d4d9e4d4
Nowadays even Apple iWatch has a minimum resolution of 352 pixels,
so we can safely remove the outdated feature phone font rules and
save bytes down-the-wire for users.
Bug: T369247
Change-Id: Ib482a32b0ed288ae1ea4e0b9dca5f6fdf74eb845
Additional changes:
* Update Minerva so that it doesn't output any APIs
to the documentation - this is intentional as Minerva does
not have any public facing APIs.
Bug: T368081
Change-Id: Ie1a3ea30cbf35663c7fdd2494c1698044882969e
These will make JSDoc easier to configure later and is
better suited to ES6 module format.
The dependency injection pattern can be retained by moving
the import to the top of the file.
Change-Id: I0fe692eb7066e52815ef3d21724c7439d82b2c5f
Do not apply 'display: flex' to all 'h1, h2, h3, h4, h5, h6' elements,
because it results in bad text layout within modern headings.
However, to support desktop Minerva with legacy headings, and avoid
incorrect styles being applied to unwrapper headings, we must
apply it to 'h1, h2, h3, h4, h5, h6' elements that may contain a
'.mw-headline'. Add a separate rule for that.
Bug: T367468
Change-Id: I87372907c38aa64b296634f6a5583a890f7fe9b2
In order for most OOUI grayscale icons and indicators to be inverted
correctly, we need to apply the inversion to a limited number of
elements by a general class.
Applying here to keep OOUI library MediaWiki agnostic.
Bug: T365764
Depends-On: Ib183cd7c28ea3fb68a6614b38362325560b426f8
Change-Id: I437db61c34cdcce8d3602b1354fa4addc98530fd
Remove direct usage of CSS variables in Minerva, and replace them with
codex design tokens again. Document this decision in the original ADR
Note: there are still a small number of CSS variables in use, including
most notably the --color-link-red fix, which broke when I removed it,
but this change takes care of all the ones that could be easily replaced
Bug: T363743
Change-Id: I7d3a9dceb908167078987de1733774c8bd4bea2f
With the change to `rem` the padding got oversized, now relying on
pixel based spacing tokens instead.
Change-Id: I8eff33a606094285e07ff7afb94687b91d4aec67
The values have slightly changed:
- Tablet breakpoint is decreased by 80px,
pushing lesser devices into a mobile only experience but
should make barely a difference to vast majority of our users.
- Biggest difference is in `min-width-breakpoint-desktop`,
which is increased by 120px in comparison to
`@width-breakpoint-desktop: 1000px`
Also removing one out-dated feature phone clause.
TECHNICAL CHANGES:
* The previous breakpoint was tied to the maximum content width.
The previous maximum content width is preserved, and several media
queries are adjusted to make use of it.
* The header (logo) is not optimized for 640px-720px. For now
a temporary fix is but in place which will be investigated as part
of T366859
VISUAL CHANGES:
* 6 visual changes which improve alignment in language and
visual editor overlay and diffs (where wikidiff2 is not
installed)
Bug: T349793
Depends-On: I3afba8c51f60de9271054499bfa3ffbcc1a9d779
Change-Id: I9552d8ad7509aae90e15edda26e786465773d3ac
This change prevents the possibility to inject JavaScript by
skin-minerva-night-mode-launch messages introduced by change
I3cfa9517a387df636534a3940e09289e4d7a1e5b.
Change-Id: Ib43bcff1413e6b70cedb7db4fa2c68148c4f13f5
Updates shadow colours to respect user's night mode preference by
using standardized design token.
Bug: T364425
Change-Id: Iebf756c7c9adfdf79d7fee203ee6f02168a636f7
Creates a launch banner component for dark-mode
using the CSS-only Codex Dialog component.
This banner is currently not loaded on any page,
but can be invoked using mw.loader:
mw.loader.using( 'skins.minerva.DarkModeLaunchBanner', r => r( 'skins.minerva.DarkModeLaunchBanner')() );
Bug: T361047
Change-Id: I3cfa9517a387df636534a3940e09289e4d7a1e5b
Currently we are using the --color-inverted token, which is double
inverted in night mode, yielding insufficient color contrast with the
blue (progressive) background when the page has been recently modified.
Instead, use the @color-inverted-fixed token, which stays white in night
mode for backgrounds which are darker regardless of mode (additionally,
switch back to using LESS variables as this is the new recommendation)
Visual change due to bugfix
Bug: T364123
Change-Id: Ib284abffd6907272e580986fb08c2b8dee5a1a47
Since there is an open bug on Codex let's temporary set this
color as we do in Vector.
Bug: T363778
Change-Id: I1234825164e5cdcfd4e9c01de6971c64268af236
Follow-up to commit 95c4454 and dd424cb.
This has become a plain style module since 95c4454 and doesn't need to
use SkinModule anymore.
Also, cleaned up the unused import of the less variables.
* mainPage: apparently never used, dated back to 2cc9516
* userpage: unused since 196fb20
Bug: T360988
Change-Id: I49304c64cd2bbc5f791164127a5169e60a43058a
Remove the opacity filter and indicate a disabled state using the
disabled color for both text and the icon. Add a new disabled icon
variant to accomplish this
Also fixes a small issue where the toast notification was unreadable in
night mode due to using --color-inverted. Switch this to
--color-inverted-fixed, which was added for this purpose
Visual change for the language selector button, when there are no other
languages available
Bug: T361693
Change-Id: Id2f80028d967bf644673f651bb89718fa8723d22