Minimalistic FMP

A new and modern look to FMP

目前為 2025-07-19 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Minimalistic FMP
// @license      MIT
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  A new and modern look to FMP
// @author       FC Cortadura / Selo
// @match        https://footballmanagerproject.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=footballmanagerproject.com
// @grant        GM_addStyle
// ==/UserScript==


(function() {
    // Elimina <link rel="stylesheet">
//   document.querySelectorAll('link[rel="stylesheet"]').forEach(el => el.remove());

    // Elimina todos los <style>
//   document.querySelectorAll('style').forEach(el => el.remove());
    const observer = new MutationObserver((mutations, obs) => {
        const fmpSearch = document.querySelector('.fmp-search');

        if (fmpSearch && fmpSearch.parentElement?.parentElement) {
            const abuelo = fmpSearch.parentElement.parentElement;
            if (abuelo.tagName === 'DIV') {
                abuelo.id = 'search-button-container';

                const flexElement = abuelo.parentElement;
                flexElement.style.order = -1;

                const textDiv = abuelo.querySelector('.text');
                if (textDiv) {
                    textDiv.textContent = '';
                }

                obs.disconnect();
            }
        }
    });

    const observer2 = new MutationObserver((mutations, obs) => {
        const buttons = document.querySelectorAll('#matches-footer .fmpbtn');
        if (buttons.length >= 2) {
            buttons[0].innerHTML = '<i class="sidenav-icon fmp-icons fmp-cup"></i>';
            buttons[1].innerHTML = '<i class="sidenav-icon fmp-icons fmp-cup"></i>';
            obs.disconnect();
        }
    });


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



    const target = document.querySelector('#search-button-container .text');

    if (target) {
        target.remove();
    }


   document.querySelectorAll('.dropdown-divider').forEach(el => el.remove());

    const url = window.location.href;

    switch(url){
        case "https://footballmanagerproject.com/Team/Home":

           observer2.observe(document.body, {
               childList: true,
               subtree: true
            });
            GM_addStyle(`


                    .d-flex .fixmatch td.logo img{
                      height: 40px;
                      max-width: 56px;
                    }

                    .d-flex .fixmatch .stadium{
                      line-height: 5px;
                    }

                    .d-flex .fixmatch .team{
                       font-size: 1.2em;
                    }


                    .d-flex .fixmatch td.sep {
                       font-size: 30px;
                       font-weight: 200;
                    }

                    .d-flex .fixmatch td.sep a {
                       color: var(--font-color);
                    }

                    .d-flex .fixmatch .small-shirt{
                      font-size: 40px;
                    }

                    .d-flex .fixmatch .small-shirt .shield-back{
                      margin-right: -40px;
                    }

                    #main-dflex{
                     display: grid !important;
                     grid-template-columns: 2fr 2fr 2fr 1.5fr;
                     grid-template-areas:
                           "events matches matches forum"
                           "events matches matches forum"
                           "structures notes supporters forum";
                     }

                    .box:has(#agendaItem){
                       grid-area: events;
                    }

                    .box:has(#last-matches){
                       grid-area: matches;
                    }

                    .box:has(#structures){
                       grid-area: structures;
                    }

                    .box:has(#lastNatPosts){
                       grid-area: forum;
                    }

                    .box:has(#federationItem){
                       display: none;
                    }


                    .box:has(#supportersItem){
                       grid-area: supporters;
                    }

                    .box:has(#notesItem){
                       grid-area: notes;
                    }

                     .d-flex .header .lheader{
                     display: none;
                     }


            `)
            break;

    }

})();

GM_addStyle(`


   /*** VARIABLES SECTION ***/

  :root{
    --main-color: #1b380d; /* Pine Green */
    --hover-color: #496e36;
    --font-color: #e6d9ae; /* Bone White */
    --bright-background-color: #c3d1be /* Green White */

  }



   /*** VARIABLES END ***/


   /*** NAVBAR SECTION ***/

    .dropdown:hover .dropdown-menu{
        display: unset;
        position: absolute;
        right: 0;
    }

   .fmp-navbar-theme{
     color: #e6d9ae;

   }

   #nav-right{
    box-shadow: 0 0 10px #0007;
    padding: 5px;
    background-color: #1b380d;
    border-radius: 10px;
   }

   #nav-right-right{
     margin-left: 30px !important;
   }


   #search-button-container{
     display: flex;
     align-items: center;
     background-color: var(--main-color);
     border: 2px solid #e6d9ae;
     border-radius: 25px;
     padding: 5px 8px;
     box-sizing: border-box;
     width: 80px;
     transition: width 0.3s ease;
   }

   #search-button-container:hover, .fmp-search:focus {
     width: 160px;
   }

   #search-button-container .icon{
     background: transparent;
     border: none;
     outline: none;
     flex: 1;
     padding: 4px;
    }

   .fmp-search{
     right: 0;
   }

   .fmp-navbar-acolor{
     color: var(--font-color);
   }

    #search-button-container .icon {
       text-align: right;
     }

     #layout-navbar{
       position: sticky !important;
       top: 0 !important;
       z-index: 100;
      }

      #layout-navbar{
        box-shadow: 0 4px 50px #0008;
        border-bottom: 5px solid var(--main-color);
      }


     #layout-navbar-collapse .dropdown-menu .dropdown-item, #layout-navbar-collapse .dropdown-menu{
       background-color: var(--main-color);
       color: var(--font-color);
      }


     .dropdown-menu-end[data-bs-popper], .dropdown:hover .dropdown-menu-end{
        right: 0;
        left: -180px;
      }

      .dropdown-divider{
         border: none;
      }


      #layout-navbar-collapse .dropdown-menu .dropdown-item:hover{
         background-color: var(--hover-color) !important;

       }


       #layout-navbar-collapse .dropdown-menu .dropdown-item{
          margin-bottom: 3px;
       }

      #layout-navbar-collapse .dropdown-menu .dropdown-item .text:hover{
         background-color: var(--hover-color) !important;
      }


      .navbar-season{
        color: var(--font-color);
      }

      /*** NAVBAR ENDS ***/

     /*** SIDENAV SECTION ***/

     .sidebar-logo .cash{
        display: none;
     }

     .sidebar-logo .manager-name{
        text-align: center;
        margin-top: 5px;
     }

     .sidebar-logo .manager-name, .sidebar-logo .team-name{
        color: var(--font-color);
     }

     .sidebar-logo .logo{
       margin: 5px 10px;
     }

      #layout-sidenav{
        display: block;
      }

      .sidenav-inner{
        position: sticky;
        top: 0;
      }

      .sidenav-inner > .sidebar-logo{
         border-bottom: 1px solid #55b93666;
         width: 100%;
         height: 15vh;
      }

      /*** SIDENAV ENDS ***/

      .layout-wrapper, .layout-inner, .layout-container, .sidenav-vertical{
        overflow: visible !important;
      }

      .body{
        background: url(../images/grassbkg.png);
      }


    /*** MAIN ***/

    .d-flex .fixmatch.unpl{
      background: linear-gradient(45deg, #2b2929, #565555);
    }

    .d-flex a{
       color: var(--font-color);
    }



    `);