Perplexity Prompt Text Ensmallifier

Reduces size of prompt text and puts it in a box

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Perplexity Prompt Text Ensmallifier
// @namespace    Violentmonkey Scripts
// @match        *://www.perplexity.ai/*
// @grant        none
// @version      2.1
// @license MIT
// @description  Reduces size of prompt text and puts it in a box
// ==/UserScript==

(function() {
    'use strict';

    function detectPerplexityTheme() {
        const bgColor = getComputedStyle(document.body).backgroundColor;
        return bgColor.includes("0.96") || bgColor.includes("0.963") ? 'light' : 'dark';
    }

    function stylePromptHeading() {
        const elements = document.querySelectorAll('h1[class*="group/query"], div[class*="group/query"]');
        const theme = detectPerplexityTheme();

        elements.forEach(el => {
            if (!el.classList.contains('custom-styled')) {
                el.style.padding = '10px';
                el.style.margin = '10px 0';
                el.style.borderRadius = '8px';
                el.style.display = 'block';
                el.style.color = 'inherit';
                el.style.fontSize = '0.875rem'; // 14px
                el.style.fontWeight = '400';
                el.style.lineHeight = '1.1'; // Tighter spacing
                el.style.overflowWrap = 'break-word';

                if (theme === 'dark') {
                    el.style.border = '1.6px solid rgba(255, 255, 255, 0.3)';
                    el.style.background = 'rgba(255, 255, 255, 0.07)';
                } else {
                    el.style.border = '1.6px solid rgba(0, 0, 0, 0.2)'; // Darker gray border
                    el.style.background = 'rgba(0, 0, 0, 0.08)'; // **Stronger gray background**
                }

                el.classList.add('custom-styled');
            }
        });
    }

    // Run once on page load
    stylePromptHeading();

    // Detect Perplexity theme changes (only works on reload)
    const observer = new MutationObserver(() => stylePromptHeading());
    observer.observe(document.body, { childList: true, subtree: true });
})();