ADHD超级视觉文字布局

超夸张的文字布局,日式美感,强烈视觉冲击

// ==UserScript==
// @name         ADHD超级视觉文字布局
// @namespace    https://adhd-visual-helper
// @version      2.0
// @description  超夸张的文字布局,日式美感,强烈视觉冲击
// @author       Claude for ADHD Helper
// @run-at       document-end
// @match        https://*/*
// @match        http://*/*
// @grant        GM_addStyle
// ==/UserScript==

(function() {
    'use strict';

    // 引入外部字体 - 使用Google Fonts的思源黑体(免费的类苹方字体)
    const fontLink = document.createElement('link');
    fontLink.href = 'https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;700;900&display=swap';
    fontLink.rel = 'stylesheet';
    document.head.appendChild(fontLink);

    // 添加超级夸张的样式
    GM_addStyle(`
        /* 导入字体 */
        @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;700;900&display=swap');
        
        /* 全局字体设置 */
        * {
            font-family: 'Noto Sans SC', -apple-system, "PingFang SC", 
                         "Helvetica Neue", "Microsoft YaHei", sans-serif !important;
        }
        
        /* 超级夸张的首字母 - 日式风格 */
        p::first-letter,
        div > p::first-letter,
        article p::first-letter {
            font-size: 8em !important;  /* 超级大! */
            font-weight: 900 !important;
            float: left !important;
            line-height: 0.7 !important;
            margin: -0.1em 0.05em -0.2em -0.05em !important;
            background: linear-gradient(135deg, #FF006E, #FB5607, #FFBE0B, #8338EC) !important;
            -webkit-background-clip: text !important;
            -webkit-text-fill-color: transparent !important;
            background-clip: text !important;
            text-shadow: 4px 4px 8px rgba(0,0,0,0.3) !important;
            animation: mega-pulse 1.5s ease-in-out infinite !important;
            transform: rotate(-5deg) !important;
        }
        
        /* 标题超级动感 - 日本街头风格 */
        h1 {
            font-size: 4em !important;
            font-weight: 900 !important;
            text-transform: uppercase !important;
            letter-spacing: -3px !important;
            background: linear-gradient(45deg, #FF006E, #8338EC, #3A86FF) !important;
            -webkit-background-clip: text !important;
            -webkit-text-fill-color: transparent !important;
            animation: crazy-shake 0.5s ease-in-out infinite alternate !important;
            transform: skew(-5deg) !important;
            text-shadow: 
                3px 3px 0px #FFB700,
                6px 6px 0px #FF006E,
                9px 9px 0px #8338EC !important;
        }
        
        h2 {
            font-size: 3em !important;
            font-weight: 800 !important;
            color: #FF006E !important;
            animation: wave-text 2s ease-in-out infinite !important;
            text-decoration: underline wavy #FFBE0B !important;
            text-underline-offset: 5px !important;
            text-decoration-thickness: 3px !important;
        }
        
        h3, h4, h5, h6 {
            font-size: 2em !important;
            animation: bounce-rotate 2s ease-in-out infinite !important;
            color: #3A86FF !important;
            display: inline-block !important;
            padding: 10px 20px !important;
            background: rgba(255,190,11,0.2) !important;
            border-left: 8px solid #FF006E !important;
            border-radius: 0 20px 20px 0 !important;
        }
        
        /* 段落文字跳动效果 */
        p {
            line-height: 2.2 !important;
            font-size: 1.2em !important;
            animation: text-float 4s ease-in-out infinite !important;
        }
        
        /* 每个字都有自己的动画 */
        p span {
            display: inline-block !important;
            animation: individual-bounce 2s ease-in-out infinite !important;
        }
        
        /* 链接超级醒目 */
        a {
            color: #FF006E !important;
            font-weight: 700 !important;
            text-decoration: none !important;
            position: relative !important;
            padding: 5px 10px !important;
            background: linear-gradient(90deg, 
                transparent 0%, 
                rgba(255,0,110,0.2) 50%, 
                transparent 100%) !important;
            animation: link-glow 1s ease infinite !important;
        }
        
        a::after {
            content: "→" !important;
            margin-left: 5px !important;
            font-size: 1.2em !important;
            animation: arrow-bounce 0.5s ease infinite !important;
        }
        
        a:hover {
            transform: scale(1.3) rotate(3deg) !important;
            background: #FFBE0B !important;
            color: #000 !important;
            box-shadow: 0 0 20px #FFBE0B !important;
        }
        
        /* 强调文字超级夸张 */
        strong, b {
            font-size: 1.5em !important;
            padding: 5px 15px !important;
            background: #FF006E !important;
            color: white !important;
            transform: rotate(-2deg) !important;
            display: inline-block !important;
            animation: strong-pulse 0.8s ease infinite !important;
            box-shadow: 5px 5px 0 #FFB700 !important;
            border-radius: 5px !important;
        }
        
        em, i {
            font-size: 1.3em !important;
            color: #8338EC !important;
            font-style: normal !important;
            font-weight: 900 !important;
            text-decoration: underline dotted #FFBE0B !important;
            text-underline-offset: 3px !important;
            animation: em-wave 1s ease infinite !important;
        }
        
        /* 列表项超级动感 */
        li {
            font-size: 1.2em !important;
            margin: 20px 0 !important;
            padding-left: 30px !important;
            position: relative !important;
            animation: list-swing 3s ease-in-out infinite !important;
        }
        
        li::before {
            content: "★" !important;
            position: absolute !important;
            left: 0 !important;
            font-size: 1.5em !important;
            color: #FF006E !important;
            animation: star-spin 2s linear infinite !important;
        }
        
        /* 超级动画定义 */
        @keyframes mega-pulse {
            0%, 100% {
                transform: scale(1) rotate(-5deg);
                filter: hue-rotate(0deg);
            }
            50% {
                transform: scale(1.2) rotate(5deg);
                filter: hue-rotate(180deg);
            }
        }
        
        @keyframes crazy-shake {
            0% { transform: skew(-5deg) translateX(0); }
            25% { transform: skew(5deg) translateX(-5px); }
            50% { transform: skew(-5deg) translateX(5px); }
            75% { transform: skew(5deg) translateX(-5px); }
            100% { transform: skew(-5deg) translateX(0); }
        }
        
        @keyframes wave-text {
            0%, 100% { transform: translateY(0) rotateZ(0deg); }
            25% { transform: translateY(-10px) rotateZ(-2deg); }
            75% { transform: translateY(10px) rotateZ(2deg); }
        }
        
        @keyframes bounce-rotate {
            0%, 100% { 
                transform: translateY(0) rotate(0deg) scale(1);
            }
            25% { 
                transform: translateY(-15px) rotate(-5deg) scale(1.1);
            }
            75% { 
                transform: translateY(5px) rotate(5deg) scale(0.95);
            }
        }
        
        @keyframes text-float {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-5px); }
        }
        
        @keyframes individual-bounce {
            0%, 100% { transform: translateY(0) scale(1); }
            50% { transform: translateY(-3px) scale(1.05); }
        }
        
        @keyframes link-glow {
            0%, 100% { 
                box-shadow: 0 0 5px rgba(255,0,110,0.5);
            }
            50% { 
                box-shadow: 0 0 20px rgba(255,0,110,0.8);
            }
        }
        
        @keyframes arrow-bounce {
            0%, 100% { transform: translateX(0); }
            50% { transform: translateX(5px); }
        }
        
        @keyframes strong-pulse {
            0%, 100% { 
                transform: rotate(-2deg) scale(1);
                box-shadow: 5px 5px 0 #FFB700;
            }
            50% { 
                transform: rotate(2deg) scale(1.1);
                box-shadow: 8px 8px 0 #FF006E;
            }
        }
        
        @keyframes em-wave {
            0%, 100% { transform: skewY(0deg); }
            25% { transform: skewY(-5deg); }
            75% { transform: skewY(5deg); }
        }
        
        @keyframes list-swing {
            0%, 100% { transform: translateX(0); }
            25% { transform: translateX(-10px); }
            75% { transform: translateX(10px); }
        }
        
        @keyframes star-spin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }
        
        /* 选中文字效果 */
        ::selection {
            background: #FF006E !important;
            color: #FFBE0B !important;
            text-shadow: 2px 2px 4px rgba(0,0,0,0.5) !important;
        }
        
        /* 滚动条美化 */
        ::-webkit-scrollbar {
            width: 15px !important;
        }
        
        ::-webkit-scrollbar-track {
            background: linear-gradient(45deg, #FFB700, #FF006E) !important;
        }
        
        ::-webkit-scrollbar-thumb {
            background: #8338EC !important;
            border-radius: 10px !important;
            border: 2px solid #FFBE0B !important;
        }
        
        /* 图片悬浮效果 */
        img {
            transition: all 0.3s ease !important;
            border: 5px solid transparent !important;
        }
        
        img:hover {
            transform: scale(1.1) rotate(3deg) !important;
            border: 5px solid #FF006E !important;
            box-shadow: 0 0 30px rgba(255,0,110,0.5) !important;
        }
        
        /* 代码块美化 */
        code, pre {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
            color: #FFBE0B !important;
            padding: 15px !important;
            border-radius: 10px !important;
            font-size: 1.2em !important;
            animation: code-glow 2s ease infinite !important;
        }
        
        @keyframes code-glow {
            0%, 100% { box-shadow: 0 0 10px rgba(102,126,234,0.5); }
            50% { box-shadow: 0 0 30px rgba(118,75,162,0.8); }
        }
        
        /* 表格动感设计 */
        table {
            border-collapse: separate !important;
            border-spacing: 10px !important;
            animation: table-float 3s ease-in-out infinite !important;
        }
        
        @keyframes table-float {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-10px); }
        }
        
        td, th {
            background: linear-gradient(45deg, rgba(255,190,11,0.3), rgba(255,0,110,0.3)) !important;
            padding: 15px !important;
            border-radius: 10px !important;
            font-size: 1.1em !important;
            font-weight: 600 !important;
            transition: all 0.3s ease !important;
        }
        
        td:hover, th:hover {
            transform: scale(1.1) rotate(-2deg) !important;
            background: #FF006E !important;
            color: white !important;
            box-shadow: 0 10px 20px rgba(255,0,110,0.5) !important;
        }
    `);

    // 为每个段落的文字添加独立动画
    function wrapTextInSpans() {
        const paragraphs = document.querySelectorAll('p');
        paragraphs.forEach(p => {
            if (p.children.length === 0 && p.textContent.length < 500) { // 避免处理过长文本
                const words = p.textContent.split(' ');
                p.innerHTML = words.map((word, index) => 
                    `<span style="animation-delay: ${index * 0.1}s">${word}</span>`
                ).join(' ');
            }
        });
    }

    // 添加随机颜色变化
    function addRandomColors() {
        const colors = ['#FF006E', '#FB5607', '#FFBE0B', '#06FFD', '#8338EC', '#3A86FF'];
        
        setInterval(() => {
            const headings = document.querySelectorAll('h1, h2, h3');
            headings.forEach(h => {
                const randomColor = colors[Math.floor(Math.random() * colors.length)];
                h.style.borderColor = randomColor;
            });
        }, 3000);
    }

    // 页面加载完成后执行
    window.addEventListener('load', function() {
        wrapTextInSpans();
        addRandomColors();
        console.log('🎨 ADHD超级视觉布局已启用!享受视觉盛宴!');
    });

    // 监听动态内容
    const observer = new MutationObserver(function(mutations) {
        setTimeout(wrapTextInSpans, 500);
    });

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

})();