Commit graph

1020 commits

Author SHA1 Message Date
github-actions 0d63257e86 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-09-28 21:02:56 +00:00
alistair3149 7bec9ef10b
fix(core): hide double MW search suggestion
In rare scenario such as #520, default MW search suggestions will load regardless of the settings.
This simple CSS hack is used to hide in case if it loaded.
This will not be needed when vue search is implemented.
2022-09-28 17:02:15 -04:00
alistair3149 b15a92c2ff
fix: do not collapse space in highlighted search title
Closes #494
2022-08-01 01:45:32 -04:00
alistair3149 e53afa51dc
fix(core): config CitizenThemeDefault should set theme correctly
Previously the config did set the theme correctly but get overridden by the inline
script to auto, this will fix it.

Closes: #418
2022-06-29 15:29:44 -04:00
alistair3149 8c4166ae8f
feat(core): tweak spacing between body header and content 2022-06-21 16:23:31 -04:00
alistair3149 9fe063acb9
feat(core): use URL-safe key for search suggestions
Use `title` in Action API and `key` in REST API to generate result link

Related: Miraheze T9428
2022-06-21 16:20:43 -04:00
alistair3149 34c300d69c
fix(core): center class on thumbnails should center (#476)
Hide the overflow so the thumbnail will be at the center of avaliable space
instead of the whole page. Also have to remove hover shadow as overflow clip it.
2022-06-07 19:06:06 -04:00
alistair3149 eba22354e5
fix(core): run script when DOM is ready
Sometimes the scripts start to run before DOM is fully ready. It causes things
like #475 where the checkbox is not in DOM yet but the script is already asking for it.
2022-06-04 17:44:03 -04:00
alistair3149 9d8a631f44 fix(core): delay blur event for search suggestions
This is a hacky way to fix fix #404 and #410. By introducing a delay to
the function to dismiss the suggestions, users on Safari should be able
to click the link properly.
2022-06-03 22:35:45 -04:00
alistair3149 0ffc78ce9e
fix(core): add missing plainlinks styles 2022-06-02 16:13:45 -04:00
alistair3149 8ec0400b1a
feat(core): simplify page header spacing 2022-06-02 14:40:31 -04:00
alistair3149 dca529b164 feat(core): add bottom margin to page header 2022-06-02 12:58:15 -04:00
alistair3149 47069b613c
feat(skinStyles): do not lazyload OOUI font size with skinStyles
Changing the OOUI font size in skinStyles would cause a significant layout shift
because the styles are lazyloaded. OOUI is designed around a based font size of 14px
in mind, so we should obey that. Hopefully WMF will revisit OOUI during T254055, then
this hack can be removed.
2022-06-02 12:13:48 -04:00
alistair3149 4fbe09f212
feat(core): tweak category links styles 2022-06-02 11:48:42 -04:00
alistair3149 2f6d383d9e
fix(core): use z-index on popup only to avoid clipping
Also:
* Remove unnessecary margin on mw-body-header
* Move the extra mw-body margin to mw-body-header, as there can be other elements in mw-body
2022-06-02 10:57:19 -04:00
alistair3149 c6b8ba9e80
fix(core): source edit button should not collapse itself when VE is selected 2022-06-02 10:51:30 -04:00
alistair3149 215e043f54
style(core): minor cleanup for the preference module 2022-05-25 16:38:39 -04:00
alistair3149 7b810b2389
fix(core): incorrect z-index for the inner header container
Also fix the undefined LESS variable in the Echo skinstyle
2022-05-25 16:01:21 -04:00
alistair3149 6f7f548680
feat(core): only use overflow when needed for mw-body
Assigning overflow property that is not clip will block position:sticky from working.
Instead, Citizen will only apply overflow:clip with a fallback to hidden in smaller viewport.
2022-05-23 18:18:53 -04:00
alistair3149 21633dcd3c
feat(core): separate header from personal menu list 2022-05-23 16:10:14 -04:00
alistair3149 be8b9a0a0d
feat(core): clean up and tweak z-index usage
fixes #462
2022-05-23 15:11:41 -04:00
alistair3149 726a348369
feat(core): hide redirect message in search results when not needed
If either the title or redirect title is a substring of the other,
hide the redirect.

Related: T303013
2022-05-20 19:48:07 -04:00
alistair3149 a5c52e48b7
feat(core): indicate when search results are from redirects
For REST API, search results will now indicate if they are from redirects.
The current implementation is that it will always show up, the logic to
trim redundant info will come later

Related: T303013
2022-05-20 19:10:36 -04:00
alistair3149 da619c793b
refactor(core): remove duplicated auto theme handling
Refactor auto theme handling into inline script since theme.js is basically duplicated code
at this point. Also add the event listener whenever auto theme is set.

Closes: #461
2022-05-20 17:33:10 -04:00
alistair3149 71999f8838
feat(core): use gap instead of margin for spacing in flexbox 2022-05-20 16:18:56 -04:00
alistair3149 ea875234be
feat(core): use keywords for transform origin
This would allow CSSJanus to flip the styles correctly for RTL
2022-05-20 16:07:44 -04:00
alistair3149 1b7217457a feat(core): do not override blockquote font size 2022-05-19 14:26:56 -04:00
alistair3149 b02948837c
refactor(core): do not use h3 for preference card header 2022-05-18 21:37:27 -04:00
alistair3149 c81ba1f07a
fix(core): oversized ULS language toggle under tablet viewport 2022-05-18 21:26:55 -04:00
alistair3149 1df223abfa
feat(core): update menu to be more inlined with MW core
* Use label instead of h3 for menu headings
* Rename portals to portlets according to core
* Replace label-class with heading-class
* Use has-label to hide labels instead of adding screen reader class
2022-05-18 17:14:24 -04:00
alistair3149 95a4609c17
feat(core): use standard external link icon fo external links
Have to polyfill because it is still a long way to go until being standardized in core
Related: T261391
2022-05-17 22:10:26 -04:00
alistair3149 9d711d4ee2
refactor(core): use scroll-padding-top for top margin 2022-05-17 15:35:04 -04:00
alistair3149 1be7f5faaf refactor(core): rewrite ToC scrollspy based on Vector 2022-05-17 15:11:16 -04:00
alistair3149 73c61e9b37
feat(core): use ULS for interwiki language menu if possible 2022-05-17 09:42:34 -04:00
alistair3149 93087a4fbe
refactor(core): clean up personal menu implementation 2022-05-16 22:52:04 -04:00
alistair3149 8c2d8e5e4e refactor(core): remove mw-portal class
It is legacy code no longer found in core, and mw-portlet serves the exact same function.
2022-05-16 19:40:10 -04:00
alistair3149 9926140281
feat(core): add language count badge
Now the language button will have a badge indicating avaliable languages for the page
2022-05-16 19:31:11 -04:00
alistair3149 c6e9bc44a9 feat(core): use checkboxHack for page actions more menu
* use checkboxHack for the menu
* streamline language and more action menu styles and classes
2022-05-16 18:14:35 -04:00
alistair3149 4bfbbeef39
perf(core): minify languages svg 2022-05-16 00:56:55 -04:00
alistair3149 442f241641
feat(core): add language menu to page tools
In other language menu and language variant menu are merged into a singular menu
with a toggle in page tools. This is the first step towards having better language
handling in the skin.
2022-05-16 00:50:00 -04:00
alistair3149 7cdd049ea9
fix(core): mw-list-item does not exist in older MW 2022-05-13 14:52:20 -04:00
alistair3149 7bfc9f88d7
feat(core): tweak and clean up ToC card styles 2022-05-13 13:42:22 -04:00
alistair3149 03d853c50e
feat(core): change ToC toggle behavior and position 2022-05-13 01:12:52 -04:00
alistair3149 c978bb1320
refactor(core): rename title hidden class 2022-05-13 00:30:46 -04:00
alistair3149 d59ca5c83a
refactor(core): move intersection observer into a module
* We will likely use it for other things in the future
* Based on Vector's implementation
* Also do not get toc element twice
2022-05-13 00:26:53 -04:00
alistair3149 23795e05e3
chore(ci): disable mediawiki/class-doc 2022-05-13 00:20:05 -04:00
alistair3149 13a2b710ea
refactor(core): remove duplicated check for ToC 2022-05-12 23:24:32 -04:00
alistair3149 194c73d5bb
style(core): use arrow function 2022-05-12 22:44:17 -04:00
alistair3149 5ff7b4cf90
fix(core): invisible search suggestion item 2022-05-12 22:43:05 -04:00
alistair3149 86150d492d
refactor(core): clean up checkboxHack implementation
Mostly based on Vector 2022. Now we target checkbox hacks by the HTML classes
.mw-checkbox-hack-TYPE instead of defining each individually, which would
make it more scalable.
2022-05-12 22:37:28 -04:00
alistair3149 5dc456cc6a
fix(core): incorrect table of content modal location 2022-05-12 21:48:20 -04:00
alistair3149 508c96ae9d
refactor(core): merge ToC script into core scripts 2022-05-12 17:18:39 -04:00
alistair3149 e0d5eb9657
feat(core): set toc-enabled through Mustache template
Since somewhere around MW 1.37, buildSkinFeatures() no longer have access to OutputPage.
That causes $out->isTOCenabled always return null, which makes ToC
broken for any wikis since 1.37. This should fix the issue for now.
More optimizations on the loading behavior will come soon.
2022-05-12 17:01:01 -04:00
alistair3149 478a8396af
refactor(core): merge card content fade animation into mixin 2022-05-11 22:06:33 -04:00
github-actions a2577db3c8 ci: lint code to MediaWiki standards
Check commit and GitHub actions for more details
2022-05-12 01:41:40 +00:00
alistair3149 c69f2927ef
feat(core): set accent-color as primary color 2022-05-11 21:40:27 -04:00
alistair3149 b73357cf7c
feat(core): update checkboxHack API 2022-05-11 21:32:36 -04:00
alistair3149 da26d4bc7f
refactor(core): add null check search button checkbox 2022-05-11 19:08:51 -04:00
alistair3149 0e3ecf1415
feat(core): use relative units for text and spacing 2022-05-11 19:04:52 -04:00
alistair3149 895d7c2398
feat(core): add missing title text to preferences button 2022-05-11 18:47:02 -04:00
alistair3149 d39deb157c
feat(core): make range indicator text smaller 2022-05-10 22:22:31 -04:00
alistair3149 3e051f0d67
feat(core): use relative units for page actions 2022-05-10 22:17:12 -04:00
alistair3149 7ff415db13
feat(core): use relative unit for search suggestion 2022-05-10 22:05:42 -04:00
alistair3149 22450c4804
refactor(core): clean up header variables 2022-05-10 21:58:57 -04:00
alistair3149 1186bdf102
feat(core): update preferences menu behavior
* Adjust font size slider range, it starts at 80% and ends at 180%
* Font size is always shown in percentage now
* Better handling of initial font size, it should now detect browser or site default correctly
* Use relative units
* Tweak styles
2022-05-10 21:45:30 -04:00
alistair3149 9872a820af
feat(core): make header icon background scale to font size 2022-05-10 14:00:28 -04:00
alistair3149 9a28bccd64
refactor(core): partial cleanup of header preferences
This is a part of the header refactor
* Use styles provided by header
* Clean up header-related HTML classes
2022-05-10 13:39:58 -04:00
alistair3149 f8d90e1782
fix(core): hover state should be visible on card 2022-05-10 13:37:48 -04:00
alistair3149 000643ad36
refactor(core): clean up personal menu
This is a part of the header refactor
* Clean up DOM strcture
* Clean up unnessecary styles
* Clean up HTML classes
* Add active state to button
2022-05-10 13:36:52 -04:00
alistair3149 cae7deb945
refactor(core): clean up header icon styles 2022-05-10 11:59:43 -04:00
alistair3149 15296d55be
refactor(core): move checkboxHack checkboxes into container 2022-05-10 11:15:34 -04:00
alistair3149 105d1b9006 refactor(core): clean up inner header implementation
This is a part of the header refactor
* Add hover and active state for title button
* Clean up DOM structure
* Clean up unnessecary styles
* Clean up HTML class names
2022-05-10 10:52:36 -04:00
alistair3149 6e35212007 refactor(core): clean up search box implementation
* Clean up DOM structure
* Clean up HTML classes
* Use relative units
* Remove unnessecary CSS
2022-05-10 10:52:36 -04:00
alistair3149 5ccfbcfdeb refactor(core): clean up drawer implementation
This is a part of the site header refactor
* Use relative units
* Add title to toggle button
* Remove unnessecary CSS
* Rewrite HTML classes
* Temporary remove drawer subsearch, it will be re-explored in a later patch
2022-05-10 10:52:36 -04:00
alistair3149 44f9bc0a7c
feat(core): style parenthesis text in FirstHeading differently
Parenthesis text in FirstHeading are commonly used for disambiguation purposes
Therefore it does not have to be as prominent as the title
2022-05-07 00:45:51 -04:00
alistair3149 b00c7ddf4a
feat(core): tweak ToC styles
* Use the same border radius as other Citizen menus
* Remove unnessecary margin and padding
* More accurate height calculations
2022-05-03 16:03:34 -04:00
alistair3149 a3d85bb8a5
fix(core): fix overflow in search suggestions 2022-05-02 21:36:59 -04:00
alistair3149 ca59b097ba
refactor(core): merge duplicating mixins together 2022-05-01 22:53:41 -04:00
alistair3149 a6d88fc68b
style: lint styles with stylelint 2022-05-01 22:40:27 -04:00
alistair3149 d286afdfb9
feat(core): add animation to page tools more menu 2022-05-01 22:39:41 -04:00
alistair3149 e6a9bd38f1
feat(core): add animation to preferences menu 2022-05-01 22:36:14 -04:00
alistair3149 41e0832904
feat(core): remove animation from searchbox but keep suggestion on mobile 2022-05-01 22:17:36 -04:00
alistair3149 b4959b1972
feat(core): add animation to personal menu 2022-05-01 22:12:47 -04:00
alistair3149 2c9a5f45ec
refactor(core): merge menu content show transition into mixin 2022-05-01 22:11:31 -04:00
alistair3149 e2a6a0355c feat(core): toggle visbility in CSS when menu is show/hidden
* Better performance as browser would not render element when it is hidden
* Better accessbility support for screen readers
2022-05-01 21:46:39 -04:00
alistair3149 60d57dea85
feat(core): switch searchbox transitions to scale 2022-05-01 21:35:33 -04:00
alistair3149 c0c2e61bf3
refactor(core): turn card animation into a mixin 2022-05-01 21:23:37 -04:00
alistair3149 e2da010a90
feat(core): tweak drawer open transition
Instead of using translate which can look jarring especially in large menus,
we use a combination of scale and opacity to achieve smoother effect while
saving more on performance.
2022-05-01 20:17:06 -04:00
alistair3149 fae606277f
feat(core): tweak transition timing and curve
* Subtle transitions (e.g. color, opacity) are now sped up to 100ms,
so that it feels more responsive.
* Sizing transitions (e.g. transform, height) are now slowed to 250ms
and use a new cubic curve, it should feel more smooth.
2022-05-01 19:25:32 -04:00
alistair3149 56a869b3d9
refactor(core): clean up transition variable names 2022-05-01 19:14:17 -04:00
alistair3149 5fb9627ba7
refactor(core): clean up unused LESS variables 2022-05-01 19:09:00 -04:00
alistair3149 709a89d399
perf(core): remove box-shadow transition for thumbnails
It is not nessecary and expensive to run. If it is needed, a pseudo element should be used instead
2022-05-01 18:57:59 -04:00
alistair3149 b39452d3b5
refactor(core): remove unnessecary style overrides for links
* Visited link styles are removed from MW already,
there are no need to use important to override those rules.
* Citizen should not override text-decoration setting if users
want to have underline links.
2022-05-01 18:45:48 -04:00
alistair3149 4bacf2fff1
perf(core): remove expensive CSS transitions 2022-04-30 18:04:19 -04:00
alistair3149 c74f1685d6
feat(core): add aria-label for preferences button 2022-04-30 18:01:38 -04:00
alistair3149 ac3ebf56a2 fix(core): incorrect aria-controls ID in section toggle 2022-04-30 17:19:57 -04:00
alistair3149 76a84d9e00 feat(core): add ARIA support to collaspible sections
* Also renamed toggle to indicator since it is misleading. The whole heading is the toggle itself.
2022-04-30 14:48:09 -04:00
alistair3149 b69ca82650
fix: lower header z-index to 4
The original z-index is way too high (10) and would overlap dialogs.
It should be set to 4 (same as Vector 2022) to ensure compatiblity with OOUI elements.

Closes #447
2022-04-30 13:50:49 -04:00
alistair3149 39225d6f36
perf(core): improve rendering performance of drawer menu 2022-04-28 21:54:54 -04:00
alistair3149 87f6e4fa19
feat(core): tweak sitestats style
* Left align the drawer header
* Hide file count when width is smaller than 480px
2022-04-28 21:41:41 -04:00