Greasyfork 暗黑主題

為 Greasyfork 打造的時尚現代暗黑主題。

目前為 2024-12-03 提交的版本,檢視 最新版本

// ==UserScript==
// @name           Greasyfork Dark Theme
// @name:en        Greasyfork Dark Theme
// @name:vi        Giao diện chủ đề tối Greasyfork
// @name:zh-CN     Greasyfork 暗黑主题
// @name:zh-TW     Greasyfork 暗黑主題
// @name:ja        Greasyfork ダークテーマ
// @name:ko        Greasyfork 다크 테마
// @name:es        Greasyfork 테마 어두움
// @name:ru        Темная тема Greasyfork
// @name:id        Tema Gelap Greasyfork
// @name:hi        Greasyfork डार्क थीम
// @namespace      http://tampermonkey.net/
// @version        1.7.7
// @description    A sleek and modern dark theme for Greasyfork.
// @description:en A sleek and modern dark theme for Greasyfork.
// @description:vi Giao diện chủ đề tối cho Greasyfork.
// @description:zh-CN 为 Greasyfork 打造的时尚现代暗黑主题。
// @description:zh-TW 為 Greasyfork 打造的時尚現代暗黑主題。
// @description:ja Greasyfork の洗練されたモダンなダークテーマ。
// @description:ko Greasyfork를 위한 세련되고 현대적인 다크 테마。
// @description:es Un tema oscuro elegante y moderno para Greasyfork.
// @description:ru Изящная и современная темная тема для Greasyfork с улучшенными визуальными эффектами и удобочитаемостью.
// @description:id Tema gelap yang ramping dan modern untuk Greasyfork, dengan visual dan keterbacaan yang ditingkatkan.
// @description:hi Greasyfork के लिए एक आकर्षक और आधुनिक डार्क थीम, जिसमें बेहतर विजुअल और पठनीयता है।
// @author         RenjiYuusei
// @license        GPL-3.0-only
// @icon           https://gf.qytechs.cn/vite/assets/blacklogo96-CxYTSM_T.png
// @match          https://gf.qytechs.cn/*
// @match          https://sleazyfork.org/*
// @grant          GM_addStyle
// ==/UserScript==

(() => {
  'use strict';
// Định nghĩa biến màu và cấu hình
  const colors = {
    header: 'rgb(43, 43, 43)',
    dark: {
      1: 'rgb(43, 43, 43)',
      2: 'rgb(49, 51, 53)',
      3: 'rgb(60, 63, 65)',
      4: 'rgb(69, 73, 74)'
    },
    blue: {
      1: 'rgb(104, 151, 187)',
      2: 'rgb(104, 151, 187)',
      pool: 'rgb(104, 151, 187)'
    },
    accent: {
      lavender: 'rgb(204, 120, 250)',
      green: 'rgb(106, 135, 89)',
      pink: 'rgb(198, 120, 221)',
      lightBrown: 'rgb(190, 144, 99)',
      red: 'rgb(204, 120, 50)',
      yellow: 'rgb(255, 198, 109)',
      lightYellow: 'rgb(255, 198, 109)',
      blueIce: 'rgb(169, 183, 198)',
      orange: 'rgb(204, 120, 50)',
      purple: 'rgb(155, 89, 182)'
    },
    text: {
      light: 'rgb(169, 183, 198)',
      success: 'rgba(106, 135, 89, 0.6)',
      error: 'rgba(204, 120, 50, 0.6)'
    },
    utils: {
      translucent: 'rgba(255, 255, 255, .2)',
      black: 'rgba(0, 0, 0, 1)'
    }
  };

  // Cấu hình giao diện
  const config = {
    borderRadius: '5px',
    wrapCode: true,
    modHeaders: true,
    invertBkgHPP: false,
    modScrollbars: true,
  };

  // Tạo biến CSS root
  const createRootVars = () => {
    const vars = {
      '--dark-1': colors.dark[1],
      '--dark-2': colors.dark[2],
      '--dark-3': colors.dark[3],
      '--dark-4': colors.dark[4],
      '--blue-1': colors.blue[1],
      '--blue-2': colors.blue[2],
      '--blue-pool': colors.blue.pool,
      '--lavender': colors.accent.lavender,
      '--green': colors.accent.green,
      '--pink': colors.accent.pink,
      '--light-brown': colors.accent.lightBrown,
      '--red': colors.accent.red,
      '--yellow': colors.accent.yellow,
      '--light-yellow': colors.accent.lightYellow,
      '--blue-ice': colors.accent.blueIce,
      '--orange': colors.accent.orange,
      '--purple': colors.accent.purple,
      '--light-gray': colors.text.light,
      '--light-green': colors.text.success,
      '--light-red': colors.text.error,
      '--translucent': colors.utils.translucent,
      '--black': colors.utils.black,
      '--default-border-radius': config.borderRadius
    };

    return Object.entries(vars)
      .map(([key, value]) => `${key}: ${value} !important;`)
      .join('\n');
  };

  // Tạo CSS styles
  const css = `
    :root {
      ${createRootVars()}
    }

    /* Base styles */
    body {
      background-color: var(--dark-3) !important;
      color: var(--light-gray) !important;
    }

    /* Header styles */
    #main-header {
      ${config.modHeaders ? 'background-image: none !important;' : ''}
      background-color: ${colors.header} !important;
    }

    #main-header,
    #main-header a,
    #main-header a:visited,
    #main-header a:active {
      color: var(--light-gray) !important;
    }

    /* Navigation styles */
    nav nav {
      background-color: var(--dark-3) !important;
      border: 1px solid var(--dark-2) !important;
      box-shadow: 0 0 5px var(--dark-2) !important;
    }

    /* Link styles */
    a:not(.install-link, .install-help-link) {
      color: var(--blue-1) !important;
    }

    a:not(.install-link, .install-help-link):hover {
      color: var(--blue-ice) !important;
      transition: color 0.3s ease !important;
    }

    /* Content containers */
    .script-list,
    .user-list,
    .text-content,
    .discussion-list,
    .list-option-group ul,
    #script-info,
    .discussion-read,
    #discussion-locale,
    #about-user,
    .form-section,
    .script-screenshot-control {
      ${config.modHeaders ? 'background-image: unset !important;' : ''}
      background-color: var(--dark-1) !important;
      box-shadow: 0 0 5px var(--dark-2) !important;
      border: 1px solid var(--dark-2) !important;
      border-radius: var(--default-border-radius) !important;
      padding: 15px !important;
      margin-bottom: 15px !important;
    }

    /* Hover styles cho nội dung */
    .discussion-list li:hover,
    .script-list li:hover,
    .user-list li:hover {
      background-color: var(--dark-2) !important;
      transition: background-color 0.3s ease !important;
    }

    /* Form elements */
    .default-input,
    .sidebar-search input[type="search"],
    .home-search input[type="search"],
    .list-option-button,
    input[type="search"],
    #language-selector-locale,
    form.new_user input[type="text"],
    form.new_user input[type="email"],
    form.new_user input[type="password"],
    #favorite-groups,
    textarea,
    input[type="file"] {
      background-color: var(--dark-4) !important;
      border: 1px solid var(--dark-2) !important;
      color: var(--blue-ice) !important;
      border-radius: var(--default-border-radius) !important;
      padding: 8px !important;
      margin: 5px 0 !important;
    }

    /* Buttons and interactive elements */
    .install-link,
    .install-help-link,
    input[type="submit"] {
      background-color: var(--blue-pool) !important;
      color: var(--dark-1) !important;
      border: none !important;
      border-radius: var(--default-border-radius) !important;
      transition: all 0.3s ease !important;
      padding: 10px 20px !important;
      cursor: pointer !important;
    }

    .install-link:hover,
    .install-help-link:hover,
    input[type="submit"]:hover {
      background-color: var(--blue-2) !important;
      transform: translateY(-2px) !important;
      box-shadow: 0 2px 5px var(--dark-2) !important;
    }

    /* User profile sections */
    #about-user,
    #user-profile,
    #control-panel {
      padding: 15px !important;
      margin-bottom: 20px !important;
    }

    #user-control-panel {
      list-style: none !important;
      padding-left: 0 !important;
    }

    #user-control-panel li {
      margin: 10px 0 !important;
    }

    .report-link-abs {
      position: absolute !important;
      top: 15px !important;
      right: 15px !important;
    }

    /* Form section styles */
    .form-section {
      padding: 20px !important;
      margin-top: 20px !important;
    }

    .form-control {
      margin-bottom: 15px !important;
    }

    .label-note {
      margin-left: 10px !important;
      color: var(--blue-ice) !important;
    }

    /* Screenshot control styles */
    .script-screenshot-control {
      background-color: var(--dark-2) !important;
      padding: 20px !important;
      margin: 15px 0 !important;
    }

    .script-screenshot-control label {
      display: block !important;
      margin-bottom: 10px !important;
      color: var(--light-gray) !important;
    }

    .script-screenshot-control input[type="file"] {
      width: 100% !important;
      padding: 10px !important;
      background-color: var(--dark-3) !important;
      border: 1px dashed var(--blue-pool) !important;
    }

    /* List option group styles */
    .list-option-group {
      background-color: var(--dark-1) !important;
      border-radius: var(--default-border-radius) !important;
      padding: 15px !important;
      margin-bottom: 15px !important;
    }

    .list-option-group ul {
      list-style: none !important;
      padding: 0 !important;
      margin: 10px 0 !important;
    }

    .list-option {
      padding: 8px !important;
      margin: 5px 0 !important;
      border-radius: var(--default-border-radius) !important;
    }

    .list-current {
      background-color: var(--dark-2) !important;
      color: var(--blue-ice) !important;
    }

    /* User profile message */
    #user-profile p {
      background-color: var(--dark-2) !important;
      padding: 15px !important;
      border-radius: var(--default-border-radius) !important;
      border-left: 4px solid var(--blue-pool) !important;
      margin: 10px 0 !important;
      font-style: italic !important;
    }

    /* Scrollbar styles */
    ${config.modScrollbars ? `
      * {
        scrollbar-width: thin !important;
        scrollbar-color: var(--translucent) var(--dark-2) !important;
      }

      ::-webkit-scrollbar {
        width: 8px !important;
        height: 8px !important;
      }

      ::-webkit-scrollbar-track {
        background: var(--dark-2) !important;
      }

      ::-webkit-scrollbar-thumb {
        background: var(--translucent) !important;
        border-radius: var(--default-border-radius) !important;
      }

      ::-webkit-scrollbar-thumb:hover {
        background: var(--blue-pool) !important;
      }
    ` : ''}

    /* Animations */
    @keyframes fadeIn {
      from { opacity: 0; }
      to { opacity: 1; }
    }

    @keyframes slideIn {
      from { transform: translateY(-10px); opacity: 0; }
      to { transform: translateY(0); opacity: 1; }
    }

    /* Responsive design */
    @media (max-width: 768px) {
      .script-list,
      .user-list {
        padding: 10px !important;
      }

      .install-link,
      .install-help-link,
      input[type="submit"] {
        width: 100% !important;
        text-align: center !important;
      }

      .list-option-group {
        padding: 10px !important;
      }

      /* Mobile header styles */
      #main-header .width-constraint {
        max-width: 95% !important;
        padding: 10px !important;
      }

      #site-name {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin-bottom: 10px !important;
      }

      #site-name img {
        width: 48px !important;
        height: 48px !important;
      }

      #site-name-text {
        margin-left: 10px !important;
      }

      #site-nav {
        flex-direction: column !important;
      }

      #nav-user-info {
        text-align: center !important;
        margin-bottom: 10px !important;
      }

      .language-selector {
        width: 100% !important;
        margin-top: 10px !important;
      }

      .language-selector select {
        width: 100% !important;
        padding: 8px !important;
      }

      /* Mobile navigation */
      #mobile-nav {
        display: block !important;
      }

      .mobile-nav-opener {
        padding: 10px !important;
        background-color: var(--dark-2) !important;
        color: var(--light-gray) !important;
        text-align: center !important;
        cursor: pointer !important;
        border-radius: var(--default-border-radius) !important;
      }

      nav.collapsed {
        display: none !important;
      }

      nav:not(.collapsed) {
        display: block !important;
        padding: 10px !important;
        background-color: var(--dark-2) !important;
        border-radius: var(--default-border-radius) !important;
      }

      nav li {
        display: block !important;
        margin: 5px 0 !important;
      }

      nav a {
        display: block !important;
        padding: 8px !important;
        text-align: center !important;
      }
    }
  `;

  // Áp dụng CSS
  GM_addStyle(css);
})();

QingJ © 2025

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