Custom Dark Mode perplexity

thee style Darkmode

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Custom Dark Mode perplexity
// @namespace    http://tampermonkey.net/
// @version       1.1.2
// @description  thee style Darkmode
// @author       Gullampis810
// @license      MIT
// @match        https://www.perplexity.ai/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=perplexity.ai 
// @grant        GM_addStyle
// ==/UserScript==


(function() {
    'use strict';

    // Функция для добавления стилей
    function addStyle(css) {
        var style = document.createElement('style');
        style.type = 'text/css';
        style.appendChild(document.createTextNode(css));
        document.head.appendChild(style);
    }

    // Переопределение стилей
    var customStyles = `
    /* send button in chat */
    /* Темная тема */
        .dark button.bg-super.dark\\:bg-superDark {
            background: oklch(0.59 0.06 314.07) !important;
            color: #yourDarkTextColor !important; /* Замените на подходящий цвет текста */
        }

    /* Первый элемент */
        .pt-md.max-w-threadWidth.px-md.mx-auto {
            background-color: #3b2a46 !important; /* Ваш цвет */
        }

        /* Темная тема для первого элемента */
        .dark .pt-md.max-w-threadWidth.px-md.mx-auto {
            background-color: #3b2a46 !important; /* Тот же цвет или другой */
        }

        /* Второй элемент */
        .gap-md.flex.flex-col.pb-md {
            background: #3b2a46 !important; /* Ваш цвет */
        }

        /* Темная тема для второго элемента */
        .dark .gap-md.flex.flex-col.pb-md {
            background: #3b2a46 !important; /* Тот же цвет или другой */
        }
    @media (prefers-color-scheme: dark) {
        :root:not([data-color-scheme=light]) .dark\\:ring-borderMainDark\\/50 {
            --tw-ring-color: oklch(0.9 0.18 188.26);
        }
        .bg-background-100.-mx-md.px-md.mb-md.-top-0.z-10.md\\:sticky {
            background: #1f1225 !important;
            border: 2px #8a6a98 solid !important;
            border-radius: 15px !important;
        }
        .-mx-sm.relative.flex.gap-1\\.5 {
            background: #1f1225 !important;
        }
        :root:not([data-color-scheme=light]) .dark\\:bg-backgroundDark {
            --tw-bg-opacity: 1;
            background: linear-gradient(45deg, #392a3d 0%, #4b9b8894 50%, #231c2d 100%);
        }
        :root:not([data-color-scheme=light]) .dark\\:bg-offsetDark {
            --tw-bg-opacity: 1;
            background-color: oklch(0.21 0.04 315.27); /*Основной фиолетовый цвет фона бордов*/
        }
        :root:not([data-color-scheme=light]) .dark\\:scrollbar-thumb-idleDark {
            --scrollbar-thumb: #3febc6 !important;
        }
        :root:not([data-color-scheme=light]) .dark\\:ring-borderMainDark\\/50 {
            --tw-ring-color: oklch(0.9 0.18 188.26);
        }
        .px-md\\.md\\:px-lg\\.min-h-\\[calc\\(100dvh-var\\(--header-height\\)\\)\\].border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-transparent {
            background: linear-gradient(45deg, #833f00, #0f092c, #28d0adcc);
            background-size: 155%;
        }

        @media (prefers-color-scheme: dark) {
        :root:not([data-color-scheme=light]) .dark\\:bg-offsetPlusDark {
            --tw-bg-opacity: 1;
            background-color: oklch(0.42 0.08 314.19); /* цвет кнопок */
        }

         @media (prefers-color-scheme: dark) {
        :root:not([data-color-scheme=light]) .dark\\:ring-borderMainDark {
            --tw-ring-opacity: 1;
            --tw-ring-color: oklch(0.79 0.15 190.71); /* border граница чат - голубой  */
        }

         @media (prefers-color-scheme: dark) {
        :root:not([data-color-scheme=light]) .dark\\:text-textOffDark {
            --tw-text-opacity: 1;
            color: oklch(0.71 0.09 191.87);
        }

         .shrink-0 {
        color: #71b672;
    }
    audio, canvas, embed, iframe, img, object, svg, video {
        color: #20b8cd;
    }

    @media (min-width: 768px) {
        body {
            background: #342542;
        }
    }

    /*hover button*/
@media (min-width: 768px) {
        @media (prefers-color-scheme: dark) {
            :root:not([data-color-scheme="light"]) .md\\:dark\\:hover\\:bg-offsetPlusDark:hover {
                --tw-bg-opacity: 1;
                background-color: #68527f !important;
            }

    .flex.items-center.justify-between.border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-background.dark\\:bg-backgroundDark {
        background: #2c1b34;
        border-radius: 5px;
        padding: 5px;
    }

    .bg-background.p-xs.px-md.py-sm.dark\\:border-borderMainDark\\/50.dark\\:bg-backgroundDark.w-80.rounded-lg.border.shadow-lg {
        background: #1b3434;
    }

    .text-text-200.bg-background-300.py-xs.px-sm.inline-block.rounded-br.rounded-tl-\\[3px\\].font-thin {
        background: #a585bf;
        color: black;
    }

    button.bg-idle.text-textOff.dark\\:bg-idleDark.dark\\:text-textOffDark.\\!duration-100.font-sans.focus\\:outline-none.outline-none.outline-transparent.transition.duration-300.ease-out.font-sans.select-none.items-center.relative.group\\/button.justify-center.text-center.items-center.rounded-full.cursor-default.opacity-50.whitespace-nowrap.inline-flex.text-sm.h-8.aspect-square {
        background: #417870;
    }


 .shadow-subtle.flex.min-h-0.min-w-0.rounded-md.border.data-\\[placement\\=bottom-end\\]\\:origin-top-right.data-\\[placement\\=bottom-start\\]\\:origin-top-left.data-\\[placement\\=top-end\\]\\:origin-bottom-right.data-\\[placement\\=top-start\\]\\:origin-bottom-left.duration-150.p-xs.animate-in.fade-in.zoom-in-\\[0\\.97\\].ease-out.border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-background.dark\\:bg-backgroundDark {
        background: #6f5686;
        border: 2px solid #59a38e;
    }

@media (prefers-color-scheme: dark) {
        :root:not([data-color-scheme=light]) .md\\:dark\\:hover\\:bg-offsetDark:hover {
            --tw-bg-opacity: 1;
            background-color: oklch(0.31 0.07 312.34);
        }
    }

.sticky.-top-12.z-20.flex.justify-center.border-b.md\\:top-0.border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-background.dark\\:bg-backgroundDark {
        background: #4f3b59;
    }

.sticky.left-0.right-0.top-0.z-10.border-b.md\\:mb-0.md\\:rounded-t-xl.border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-background.dark\\:bg-backgroundDark {
        background: #46324f;
    }

    .bg-background.dark\\:bg-backgroundDark.absolute.inset-0.z-\\[1\\].opacity-90 {
        background: #1f1225b8;
        border-radius: 0px 0px 30px 30px;
    }

    .px-md.py-sm.md\\:py-md.sticky.top-0.z-\\[22\\].w-full.border-b.border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-background.dark\\:bg-backgroundDark {
        background: #3b2a46;
    }

    .p-md.relative.rounded-lg.border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-background.dark\\:bg-backgroundDark {
        background: #12221e;
        border-radius: 0px 0px 30px 30px;
    }

    .flex.h-full.w-\\[100vw\\].grow.flex-col.md\\:w-\\[unset\\].md\\:grow-\\[unset\\].border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-transparent {
        background: blanchedalmond;
        border-radius: 32px;
    }

    .bg-background.dark\\:bg-backgroundDark.shadow-md.overflow-y-auto.scrollbar-thin.scrollbar-thumb-idle.dark\\:scrollbar-thumb-idleDark.scrollbar-track-transparent.fill-mode-both.md\\:rounded-lg.md\\:min-w-\\[600px\\].max-w-screen-sm.shadow-md.relative.h-full.max-h-\\[100vh\\].md\\:max-h-\\[95vh\\].overflow-auto.md\\:w-full {
        border-radius: 30px;
    }

     .flex.select-none.items-center.justify-between.pl-1.pr-3 {
            background: #46324f;
        }

        .overflow-hidden.px-sm.rounded-lg.border.py-1\\.5.border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-transparent {
            background: #0d1f1f;
        }

        p.my-0 {
            background: #321d385c;
            filter: drop-shadow(2px 4px 6px black);
            border-radius: 4px;
        }

        .erp-tab\\:rounded-none.erp-new_tab\\:rounded-none.erp-tab\\:shadow-none.erp-new_tab\\:shadow-none.erp-tab\\:shadow-left-sm.erp-new_tab\\:shadow-left-sm.flex-1.overflow-clip.bg-clip-border.shadow-sm.lg\\:rounded-lg.md\\:dark\\:border.border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-background.dark\\:bg-backgroundDark {
            border-radius: 13px;
        }

        h2.mb-xs.mt-5.text-base.font-\\[525\\].first\\:mt-3 {
            background: #76511b;
            border-radius: 25px;
            padding: 5px;
        }

        .hover\\:bg-background-200:hover {
        --tw-bg-opacity: 1;
        background-color: #68527f !important;
    }

    @media (prefers-color-scheme: dark) {
        :root:not([data-color-scheme="light"]) .dark\\:hover\\:bg-offsetPlusDark:hover {
            --tw-bg-opacity: 1;
            background-color: #68527f !important;
        }

@media (prefers-color-scheme: dark) {
            :root:not([data-color-scheme=light]) .dark\\:bg-background-200 {
                --tw-bg-opacity: 1;
                background-color: #2d253a !important;
            }
        }

@media (prefers-color-scheme: dark) {
            :root:not([data-color-scheme=light]) .dark\\:border-borderMain {
                --tw-border-opacity: 1;
                border: 1px solid oklch(0.73 0.13 192.91) !important;
            }
        }

        .w-lg.text-textMain.dark\\:text-textMainDark.flex.aspect-square.shrink-0.items-center.justify-center.rounded-full.border.\\!bg-textMain.\\!text-background.dark\\:\\!bg-textMainDark.dark\\:\\!text-backgroundDark.border-0.border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-background.dark\\:bg-backgroundDark {
            background: oklab(0.31 0.05 -0.04) !important;
        }

 button.bg-textMain.text-textMainDark.dark\\:bg-textMainDark.dark\\:text-light-text.hover\\:text-superDuper.hover\\:dark\\:text-superDuper.font-sans.focus\\:outline-none.outline-none.outline-transparent.transition.duration-300.ease-out.font-sans.select-none.items-center.relative.group\\/button.justify-center.text-center.items-center.rounded-full.cursor-pointer.active\\:scale-\\[0\\.97\\].active\\:duration-150.active\\:ease-outExpo.origin-center.whitespace-nowrap.inline-flex.text-sm.h-8.aspect-square {
            background: #1f1225 !important;
        }

        .grow.flex.flex-col.justify-center.py-md.px-md {
            background: #3b2a46;
}

    /* Полный селектор с переопределением */
        .shadow-overlay.dark\\:shadow-overlayDark.flex.min-h-0.min-w-0.rounded-xl {
            background: #312533 !important; /* Новый цвет фона, например оранжевый */
            border-color: #ff5733 !important; /* Переопределяем границу */
        }

        /* Темная тема */
        .dark .shadow-overlay.dark\\:shadow-overlayDark.flex.min-h-0.min-w-0.rounded-xl {
            background: #c70039 !important; /* Другой цвет для темной темы */
            border-color: #c70039 !important;
        }

    }`;

    addStyle(customStyles);
})();


// name         Переопределение кнопки Download
(function() {
    'use strict';

    // Добавляем стили кнопки Download
    GM_addStyle(`
        .custom-download-btn {
            background-color: #3b2a46 !important;
            padding: 10px 20px !important;
            border-radius: 12px !important;
            font-size: 16px !important;
            display: flex !important; /* Принудительно показываем */
            isolation: isolate;
            z-index: 9999 !important; /* Выше всех */
            position: fixed !important;
            top: 68px !important;
            width: 205px !important;
        }

        .custom-download-btn:hover {
            background-color: #312533 !important;
        }

        .custom-download-btn > div,
        .custom-download-btn svg {
            color: inherit !important;
            stroke: white !important;
        }

    `);

    // Функция для обработки кнопки
    function styleButton(button) {
        if (button.textContent.includes('Download') && !button.classList.contains('custom-download-btn')) {
            button.classList.add('custom-download-btn');
            button.style.display = 'flex'; // Принудительно показываем
        }
    }

    // Обрабатываем уже существующие кнопки
    document.querySelectorAll('button.bg-offsetPlus').forEach(styleButton);

    // Отслеживаем динамическое добавление кнопок
    const observer = new MutationObserver((mutations) => {
        mutations.forEach((mutation) => {
            if (mutation.addedNodes.length) {
                mutation.addedNodes.forEach((node) => {
                    if (node.nodeName === 'BUTTON' && node.classList.contains('bg-offsetPlus')) {
                        styleButton(node);
                    } else if (node.querySelector) {
                        node.querySelectorAll('button.bg-offsetPlus').forEach(styleButton);
                    }
                });
            }
        });
    });

    // Наблюдаем за изменениями в DOM
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });
})();


(function() {
    'use strict';

    // Переопределение стилей для кнопки "New Thread"
    var newThreadButton = document.querySelector('.mx-md.py-sm.pl-md.pr-sm.hover\\:ring-super.dark\\:hover\\:ring-superDark.group.flex.flex-none.cursor-pointer.select-none.items-center.justify-between.rounded-full.border.ring-1.ring-transparent.transition.duration-200.border-borderMain\\/50.ring-borderMain\\/50.divide-borderMain\\/50.dark\\:divide-borderMainDark\\/50.dark\\:ring-borderMainDark\\/50.dark\\:border-borderMainDark\\/50.bg-background.dark\\:bg-backgroundDark');
    if (newThreadButton) {
        newThreadButton.style.cssText = `
            position: absolute !important;
            bottom: 22px !important;
            z-index: 10001 !important;
            background: #36623a !important;
            width: 190px !important;
        `;
    } else {
        console.error('Кнопка "New Thread" не найдена.');
    }
})();