MediaWiki:Vector-2022.js

Revision as of 16:32, 15 November 2025 by Karl (talk | contribs) (POC - ULS menu theme cleanup)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
$(function() {
    // Wrap all body children to get the body size
    $('body').children().wrapAll('<div class="mw-body-wrapper"></div>');

    // Background body overlay (configuration finished in Vector-2022.css)
    $('body').prepend('<div class="custom-bg-overlay"></div>');
    $('.custom-bg-overlay').css({'height': $('.mw-body-wrapper').height(),
                                 'position': 'absolute',
                                 'pointer-events': 'none'});

    // Header background overlay (configuration finished in Vector-2022.css)
    $('.vector-header-container').append('<div class="custom-header-container-overlay"></div>');
    $('.custom-header-container-overlay').css({
        'height': $('.vector-header-container').height(),
        'position': 'absolute',
        'z-index': '-1'});

    // Update on window resize

    const ro_body = new ResizeObserver(([entry]) => {
        $('.custom-bg-overlay').height($('.mw-body-wrapper').height());
    });
    ro_body.observe($('.mw-body-wrapper')[0]);

    const ro_bar = new ResizeObserver(([entry]) => {
        $('.custom-header-container-overlay').height($('.vector-header-container').height());
    });
    ro_bar.observe($('.vector-header-container')[0]);

    // Clean-up universal language selector theme
    const ulsobserver = new MutationObserver(() => {
        console.log("fired");
        const uls_menu = document.querySelector('div.grid.uls-menu.notheme.skin-invert');
        if (uls_menu) {
                console.log("mamho");
                uls_menu.classList.remove("notheme", "skin-invert");
                ulsobserver.disconnect();
        } else console.log("nemamho");
        console.log(uls_menu)});

    ulsobserver.observe(document.body, {childList: true, subtree: true});

});