IMVU Darkmode

Makes IMVU almost entirely dark mode with readable text

当前为 2025-06-23 提交的版本,查看 最新版本

// ==UserScript==
// @name         IMVU Darkmode
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  Makes IMVU almost entirely dark mode with readable text
// @author       Pythius
// @match        https://www.imvu.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=imvu.com
// @grant        none
// @license      MIT

// ==/UserScript==

(function() {
    'use strict';

    const backgroundColor1 = '#121212';
	const backgroundColor2 = '#1e1e1e';
	const textColor = '#0d9200'; //Green
	const borderColor = '#0d9200'; //Green
	const hoverColor = '#3e3e3e';

    // --- Existing Code (Modified to fit within the script) ---
    var existingStyle = `
      .tier table:first-child {
        margin-top: 32px !important;
      }
      .tier table {
        margin-bottom: 16px !important;
        border: 1px solid ${textColor} !important;
        border-spacing: 1px !important;
        border-collapse: collapse !important;
      }

      .tier .headercell {
        font-weight: bold !important;
        font-size: 12pt !important;
        color: ${textColor} !important;
        background-color: ${backgroundColor2} !important;
        padding: 8px 4px !important;
      }

      .tier th {
        font-weight: bold !important;
        font-size: 10pt !important;
        padding: 4px 2px !important;
        color: ${textColor} !important;
        background-color: ${backgroundColor2} !important;
      }

      .tier td {
        padding: 2px !important;
        margin: 1px !important;
        color: #a7e08e !important;
      }

      .tier tr.accent-row {
        background-color: #191919 !important;
        border-top: 1px solid ${textColor} !important;
        border-bottom: 1px solid ${textColor} !important;
      }

      .tier tr:not(.accent-row) {
        background-color: ${backgroundColor1} !important;
      }

      .tier td:first-child {
        width: 260px !important;
      }

      .tier th:nth-child(2),
      .tier th:nth-child(3),
      .tier th:nth-child(4),
      .tier th:nth-child(5),
      .tier td:nth-child(2),
      .tier td:nth-child(3),
      .tier td:nth-child(4),
      .tier td:nth-child(5) {
        width: 140px !important;
        text-align: center !important;
      }
      .tier td:last-child {
        font-weight: bold !important;
      }

      .tier tr:last-child td {
        font-weight: bold !important;
        font-size: 11pt !important;
        color: ${textColor} !important;
        background-color: ${backgroundColor2} !important;
        padding: 8px 2px !important;
      }
      .tier > h3 {
        font-weight: bold !important;
        font-size: 16pt !important;
        color: ${textColor} !important;
      }
    `;

    // --- General Dark Mode Styles (Overriding Existing) ---
    const style = document.createElement('style');
    style.textContent = `
        /* General Styles - Dark Mode */
        body {
            background-color: ${backgroundColor1} !important;
            color: ${textColor} !important;
        }

        a {
            color: ${textColor} !important;
            text-decoration: none !important;
        }

        /* Headings */
        h1, h2, h3, h4, h5, h6 {
            color: ${textColor} !important;
        }

        /* Input Fields and Textareas */
        input[type="text"],
        input[type="password"],
        textarea,
        select {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
            border: 1px solid ${textColor} !important;
        }

        /* Buttons */
        button,
        input[type="button"],
        input[type="submit"] {
            background-color: #2e2e2e !important;
            color: ${textColor} !important;
            border: 1px solid ${textColor} !important;
            /* Hover Effects */
            transition: background-color 0.2s ease !important;
        }

        button:hover,
        input[type="button"]:hover,
        input[type="submit"]:hover {
            background-color: ${hoverColor} !important;
        }

        /* result_header */
        #result_header {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* content */
        .content {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* updates_sumamry */
        #updates_sumamry {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* sidebar */
        #sidebar {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* yui-b */
        .yui-b {
          background-color: ${backgroundColor2} !important;
          color: ${textColor} !important;
        }

        /* bd */
        .bd {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* message-panel-presenter */
        .message-panel-presenter {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* conversation-list-container */
        .conversation-list-container {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* ft */
        #ft {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* pagenav top */
        .pagenav.top {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* products */
        #products {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* imvu-nav-box shade (narrow) */
        #narrow.imvu-nav-box.shade {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* widget_title (inside narrow) */
        #narrow.imvu-nav-box.shade .widget_title {
            color: ${textColor} !important; /* Or a suitable text color */
        }

        /* yui-u first imvu-body */
        #imvu-body.yui-u.first {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* imvu-nav-box shade (general) */
        .imvu-nav-box.shade {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* widget-product-wide */
        .widget-product-wide {
            background-color: ${backgroundColor2} !important;
            color: ${textColor} !important;
        }

        /* navline */
        .navline {
          background-color: ${backgroundColor2} !important;
          color: ${textColor} !important;
        }

        /* imvu-search-form shade */
        #imvu-search-form.shade {
          background-color: ${backgroundColor2} !important;
          color: ${textColor} !important;
        }

        /* left-column main-box */
        #left-column.main-box {
          background-color: ${backgroundColor2} !important;
          color: ${textColor} !important;
        }

        /* bottom-inner bottom-inner2 newsdiv */
        #bottom-inner.bottom-inner2.newsdiv {
          background-color: ${backgroundColor2} !important;
          color: ${textColor} !important;
        }

        /* imvu-search-form shade table */
        #imvu-search-form.shade table {
          background-color: ${backgroundColor2} !important;
          color: ${textColor} !important;
        }

        /* Darkmode all tables */
        table {
          background-color: ${backgroundColor2} !important;
          color: ${textColor} !important;
          border-color: ${textColor} !important;
        }

        table th {
          background-color: ${backgroundColor2} !important;
          color: ${textColor} !important;
          border-color: ${textColor} !important;
        }

        table td {
          background-color: #191919 !important; /* Slightly lighter than the main background */
          color: #a7e08e !important; /* Slightly different color for better readability */
          border-color: ${textColor} !important;
        }

        /* coretables collapsed */
        .coretables.collapsed {
          background-color: #191919 !important; /* Even lighter for collapsed */
          color: #0d9200 !important;
        }

        /* general-info panel-content clear panel-open */
        #general-info.panel-content.clear.panel-open {
          background-color: ${backgroundColor2} !important;
          color: ${textColor} !important;
        }

        /* general-info panel-content clear panel-open */
        #profile-content.panel-content.clear.panel-open {
          background-color: ${backgroundColor2} !important;
          color: ${textColor} !important;
        }

        /* general-info panel-content clear panel-open */
        #panel-content.clear.panel-open {
          background-color: ${backgroundColor2} !important;
          color: ${textColor} !important;
        }

        /* credits line */
        .credits-line {
          background-color: #191919 !important; /* Slightly lighter background */
          color: #0d9200 !important;
        }

        /* span notranslate */
        .inventory_holder {
          background-color: #191919 !important; /* Slightly lighter background */
          color: #0d9200 !important;
        }

        /* price notranslate text-decoration */
        .price span[style*="text-decoration:line-through"] {
          color: #0d9200 !important; /* Or your desired color for the strikethrough text */
        }

        /* price notranslate text-decoration */
        .notranslate.text span[style*="text-decoration:line-through"] {
          color: #0d9200 !important; /* Or your desired color for the strikethrough text */
        }


    `;
    // --- Inject the CSS ---
    document.head.appendChild(style);

    // --- Inject the Existing Code's CSS (Modified) ---
    var e = document.querySelector('.tier');
    if (e) {
        e.innerHTML += `<style>${existingStyle}</style>`;
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址