您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A soothing nature and paradise theme for Drawaria.online with natural colors, fonts, and subtle effects.
// ==UserScript== // @name Drawaria.online Nature's Embrace // @namespace http://tampermonkey.net/ // @version 1.0 // @description A soothing nature and paradise theme for Drawaria.online with natural colors, fonts, and subtle effects. // @author YouTubeDrawaria // @icon https://www.google.com/s2/favicons?sz=64&domain=drawaria.online // @match https://drawaria.online/* // @require https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js // @grant GM_addStyle // @grant GM_getResourceText // @grant GM_xmlhttpRequest // @connect fonts.googleapis.com // @connect fonts.gstatic.com // @run-at document-start // @license MIT // ==/UserScript== (function() { 'use strict'; // Fetch and inject nature-friendly Google Fonts GM_xmlhttpRequest({ method: "GET", url: "https://fonts.googleapis.com/css2?family=Quicksand:wght@400;700&family=Nunito:wght@400;700&display=swap", // Quicksand & Nunito for friendly, rounded look onload: function(response) { GM_addStyle(response.responseText); } }); // --- Nature's Embrace Theme Styles --- const natureStyles = ` /* --- Nature's Embrace Color Variables --- */ :root { --nature-green-dark: #2f4f4f; /* Dark Slate Gray (forest floor) */ --nature-green-mid: #6b8e23; /* Olive Drab (leaves, moss) */ --nature-green-light: #90ee90; /* Light Green (fresh sprouts) */ --nature-blue-sky: #87ceeb; /* Sky Blue (sky) */ --nature-brown-earth: #a0522d; /* Sienna (soil, wood) */ --nature-yellow-sun: #ffd700; /* Gold (sunlight, flowers) */ --nature-peach: #ffdab9; /* Peach Puff (soft highlights) */ --nature-bg-light: #f0fff0; /* Honeydew (very light green-white) */ --nature-bg-dark: #e0ffff; /* Light Cyan (light blue-white) */ --nature-text: var(--nature-green-dark); --nature-link: var(--nature-brown-earth); --nature-heading: var(--nature-green-mid); --nature-text-shadow-leaf: 0 0 5px rgba(107, 142, 35, 0.5); /* Subtle leaf glow */ --nature-text-shadow-sun: 0 0 5px rgba(255, 215, 0, 0.5); /* Subtle sunlight glow */ --nature-box-shadow: 0 0 12px rgba(47, 79, 79, 0.3), /* Soft dark shadow */ 0 0 6px rgba(107, 142, 35, 0.4) inset; /* Soft inner green glow */ --nature-border: 1px solid var(--nature-green-mid); } /* --- Global Styles --- */ body, html { background: var(--nature-bg-light) !important; /* Subtle gradient simulating sky meeting earth/water */ background-image: linear-gradient(to bottom, var(--nature-blue-sky) 0%, var(--nature-bg-dark) 50%, var(--nature-bg-light) 100%) !important; color: var(--nature-text) !important; /* Use friendly, rounded fonts */ font-family: 'Quicksand', 'Nunito', sans-serif !important; height: 100%; overflow-x: hidden; /* Prevent horizontal scroll from effects */ } /* Ensure the body background image is overridden */ body { background-image: none !important; /* Remove any site background */ } a { color: var(--nature-link) !important; text-decoration: none !important; transition: color 0.3s ease, text-shadow 0.3s ease; font-weight: bold; } a:hover { color: var(--nature-green-mid) !important; /* Changes to a leafy green */ text-shadow: var(--nature-text-shadow-leaf); } h1, h2, h3, h4, h5, h6 { color: var(--nature-heading) !important; text-shadow: var(--nature-text-shadow-leaf); font-family: 'Quicksand', sans-serif !important; /* Consistent heading font */ font-weight: 700 !important; } /* --- Layout Principal and Panels --- */ #main { background-color: transparent !important; } #leftbar, #rightbar { background: rgba(240, 255, 240, 0.8) !important; /* Semi-transparent Honeydew */ border-color: var(--nature-green-mid) !important; box-shadow: var(--nature-box-shadow); border-radius: 10px !important; /* Softly rounded */ padding: 1.2em !important; transition: box-shadow 0.3s ease; width: 18% !important; } #leftbar:hover, #rightbar:hover { box-shadow: 0 0 20px rgba(47, 79, 79, 0.5), 0 0 10px rgba(107, 142, 35, 0.6) inset; } #leftbar { border-right: var(--nature-border) !important; } #rightbar { border-left: var(--nature-border) !important; } /* --- Login Area and Central Content --- */ #login { padding-top: 4vh !important; } .sitelogo img { /* Adjust filter for nature look and sun/leaf glow */ filter: drop-shadow(0 0 8px var(--nature-green-mid)) drop-shadow(0 0 15px var(--nature-yellow-sun)); animation: naturePulse 4s infinite alternate ease-in-out; /* Gentle nature pulse */ } @keyframes naturePulse { 0% { filter: drop-shadow(0 0 8px var(--nature-green-mid)) drop-shadow(0 0 15px var(--nature-yellow-sun)); } 100% { filter: drop-shadow(0 0 12px var(--nature-yellow-sun)) drop-shadow(0 0 20px var(--nature-green-light)); } } #login-midcol { background: rgba(240, 255, 240, 0.9) !important; /* More opaque Honeydew */ padding: 1.8em !important; border-radius: 10px !important; box-shadow: var(--nature-box-shadow); border: var(--nature-border) !important; max-width: 320px !important; } #login-leftcol > div, #login-rightcol > div:not(.loginbox) { /* Ads/Other boxes */ background: rgba(135, 206, 235, 0.3) !important; /* Sky blue semi-transparent */ border-radius: 8px; padding: 10px; border: 1px solid var(--nature-blue-sky); color: var(--nature-text) !important; box-shadow: 0 0 5px rgba(135, 206, 235, 0.5); } #login-leftcol > div img, #login-rightcol > div img { opacity: 0.8; } /* --- Forms (Inputs, Selects, Botones) --- */ input[type="text"], .custom-select { background-color: rgba(255, 218, 185, 0.6) !important; /* Peach Puff semi-transparent */ color: var(--nature-green-dark) !important; /* Dark green text */ border: 1px solid var(--nature-brown-earth) !important; border-radius: 6px !important; padding: 0.6em !important; box-shadow: inset 0 0 5px rgba(160, 82, 45, 0.3); /* Inner brown glow */ font-family: 'Quicksand', sans-serif !important; } input[type="text"]::placeholder { color: rgba(47, 79, 79, 0.7) !important; /* Dark green placeholder */ } .input-group-text { /* Adjacent elements */ background: transparent !important; border: none !important; color: var(--nature-text) !important; font-family: 'Quicksand', sans-serif !important; } #avatarcontainer img { border: 3px solid var(--nature-green-mid) !important; box-shadow: 0 0 15px var(--nature-green-mid), 0 0 8px var(--nature-yellow-sun) inset; /* Leafy green glow, sun inner highlight */ border-radius: 50% !important; /* Circular avatar */ transition: transform 0.3s ease, box-shadow 0.3s ease; } #avatarcontainer img:hover { transform: scale(1.1); box-shadow: 0 0 20px var(--nature-green-light), 0 0 10px var(--nature-yellow-sun) inset; } .btn { color: var(--nature-green-dark) !important; /* Dark green text */ border-radius: 8px !important; text-shadow: 0 0 3px rgba(255, 255, 255, 0.5); /* Subtle highlight */ transition: background-color 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease; position: relative; overflow: hidden; border: none !important; /* Remove default borders */ font-weight: bold; letter-spacing: 0.5px; font-family: 'Quicksand', sans-serif !important; } .btn:before { /* Sunlight shimmer effect */ content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; /* Golden/yellow shimmer */ background: linear-gradient(120deg, transparent, rgba(255, 215, 0, 0.4), transparent); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); } .btn:hover:before { left: 100%; } .btn-warning { /* 'Play' button (Most prominent) */ background-color: var(--nature-green-mid) !important; /* Olive green */ box-shadow: 0 0 10px var(--nature-green-mid), 0 0 20px rgba(107, 142, 35, 0.5); } .btn-warning:hover { background-color: var(--nature-green-light) !important; /* Becomes brighter green */ color: var(--nature-green-dark) !important; text-shadow: none; box-shadow: 0 0 15px var(--nature-green-light), 0 0 30px rgba(144, 238, 144, 0.8), 0 0 8px #fff inset; transform: scale(1.05); } .btn-secondary, .btn-info, .btn-primary:not(#login-rightcol .loginbox .btn-primary) { /* 'Create Room', etc. */ background-color: var(--nature-brown-earth) !important; /* Earthy brown */ box-shadow: 0 0 8px var(--nature-brown-earth), 0 0 15px rgba(160, 82, 45, 0.5); } .btn-secondary:hover, .btn-info:hover, .btn-primary:not(#login-rightcol .loginbox .btn-primary):hover { background-color: var(--nature-peach) !important; /* Becomes peachy */ color: var(--nature-brown-earth) !important; box-shadow: 0 0 12px var(--nature-peach), 0 0 25px rgba(255, 218, 185, 0.8), 0 0 8px #fff inset; transform: scale(1.05); } .btn-outline-info { /* 'Restore Drawing', etc. */ color: var(--nature-green-mid) !important; border: 2px solid var(--nature-green-mid) !important; background: transparent !important; box-shadow: 0 0 5px rgba(107, 142, 35, 0.5); font-family: 'Quicksand', sans-serif !important; } .btn-outline-info:hover { background-color: var(--nature-green-mid) !important; color: #fff !important; text-shadow: none; box-shadow: 0 0 10px var(--nature-green-mid), 0 0 20px rgba(107, 142, 35, 0.8); } /* Links at the bottom of login-midcol */ #login-midcol a { color: var(--nature-green-mid) !important; text-shadow: 0 0 3px var(--nature-green-light); font-weight: bold; } #login-midcol a:hover { color: var(--nature-yellow-sun) !important; text-shadow: var(--nature-text-shadow-sun); } /* --- Chat and Game Elements (examples) --- */ #chatbox_messages { background-color: rgba(135, 206, 235, 0.4) !important; /* Sky blue semi-transparent */ border: 1px solid var(--nature-blue-sky); border-radius: 8px; padding: 8px; color: var(--nature-text); font-family: 'Quicksand', sans-serif !important; } .playerchatmessage { padding: 4px 6px; border-radius: 4px; margin-bottom: 4px; transition: background-color 0.2s ease; } .playerchatmessage:nth-child(odd) { background: rgba(160, 82, 45, 0.1) !important; /* Earth tone stripe */ } .playerchatmessage:hover { background-color: rgba(160, 82, 45, 0.2) !important; /* Darker earth tone on hover */ } .playerchatmessage-name { color: var(--nature-green-mid) !important; /* Olive green for others */ font-weight: bold; } .playerchatmessage-selfname { color: var(--nature-brown-earth) !important; /* Earth brown for self */ text-shadow: 0 0 3px var(--nature-link); } .roomlist-item { background: rgba(240, 255, 240, 0.8) !important; /* Honeydew */ border: 1px solid var(--nature-green-mid) !important; box-shadow: 0 0 5px rgba(107, 142, 35, 0.3); border-radius: 8px; transition: box-shadow 0.3s ease; color: var(--nature-text) !important; font-family: 'Quicksand', sans-serif !important; } .roomlist-item:hover { box-shadow: 0 0 10px rgba(107, 142, 35, 0.6), 0 0 5px rgba(160, 82, 45, 0.4) inset; } .roomlist-preview { border-color: var(--nature-green-mid) !important; /* Leafy green border for preview */ } .wordchooser-row { background-color: rgba(240, 255, 240, 0.9) !important; /* Honeydew */ color: var(--nature-green-dark) !important; border: 1px solid var(--nature-green-mid); text-shadow: var(--nature-text-shadow-leaf); border-radius: 5px; transition: background-color 0.3s ease, box-shadow 0.3s ease; font-family: 'Quicksand', sans-serif !important; } .wordchooser-row:hover { background-color: var(--nature-green-light) !important; /* Becomes brighter green */ color: var(--nature-green-dark) !important; text-shadow: none; box-shadow: 0 0 10px var(--nature-green-light); } /* --- Footer --- */ .footer, .footer a { color: var(--nature-text) !important; opacity: 0.9; font-family: 'Quicksand', sans-serif !important; } .footer a { color: var(--nature-link) !important; text-shadow: 0 0 2px var(--nature-link); } .footer a:hover { color: var(--nature-green-mid) !important; opacity: 1; text-shadow: var(--nature-text-shadow-leaf); } #discordprombox a, #discordprombox2 a { /* Discord Promos */ border: 1px solid var(--nature-green-mid) !important; padding: 0.6em !important; border-radius: 8px !important; background-color: rgba(107, 142, 35, 0.2) !important; /* Semi-transparent olive */ box-shadow: 0 0 8px var(--nature-green-mid); display: inline-block; color: var(--nature-green-dark) !important; /* Ensure link color is readable */ font-weight: bold; transition: background-color 0.3s ease, box-shadow 0.3s ease; font-family: 'Quicksand', sans-serif !important; } #discordprombox a:hover, #discordprombox2 a:hover { background-color: rgba(107, 142, 35, 0.4) !important; box-shadow: 0 0 15px var(--nature-green-mid), 0 0 5px #fff inset; } #discordprombox img, #discordprombox2 img { /* Gentle breathing pulse */ animation: naturePulseSmall 3s ease-in-out infinite alternate; filter: drop-shadow(0 0 5px var(--nature-green-mid)); } @keyframes naturePulseSmall { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(1.05); opacity: 1; filter: drop-shadow(0 0 8px var(--nature-green-light)); } } /* --- Modal Styles --- */ .modal-content { background-color: var(--nature-bg-dark) !important; /* Light blue-white */ border: 2px solid var(--nature-green-mid) !important; /* Leafy green border */ box-shadow: 0 0 15px rgba(107, 142, 35, 0.6), 0 0 8px rgba(160, 82, 45, 0.4) inset; /* Green/brown glow */ color: var(--nature-text) !important; border-radius: 10px !important; font-family: 'Quicksand', sans-serif !important; } .modal-header { border-bottom: 1px solid var(--nature-green-mid) !important; /* Green separation */ color: var(--nature-heading) !important; font-family: 'Quicksand', sans-serif !important; text-shadow: var(--nature-text-shadow-leaf); } .modal-header .close { /* Close button */ color: var(--nature-brown-earth) !important; text-shadow: 0 0 5px var(--nature-brown-earth); opacity: 0.9; transition: opacity 0.3s ease; } .modal-header .close:hover { opacity: 1; color: var(--nature-green-mid) !important; text-shadow: var(--nature-text-shadow-leaf); } .modal-footer { border-top: 1px solid var(--nature-green-mid) !important; /* Green separation */ } /* --- Scrollbars with Nature Style --- */ ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: var(--nature-bg-dark); /* Light blue track */ border-radius: 5px; } ::-webkit-scrollbar-thumb { background: var(--nature-green-mid); /* Olive green thumb */ border-radius: 5px; box-shadow: inset 0 0 3px rgba(47, 79, 79, 0.5); /* Inner dark green highlight */ } ::-webkit-scrollbar-thumb:hover { background: var(--nature-brown-earth); /* Earth brown on hover */ box-shadow: 0 0 5px var(--nature-brown-earth), inset 0 0 5px #fff; } ::-webkit-scrollbar-corner { background: transparent; } /* --- Floating Leaves/Particles Effect (Basic CSS Animation) --- */ /* NOTE: True dynamic particle effects require JavaScript. This is a simple CSS animation using pseudo-elements. */ body::before, body::after { content: '🍃'; /* Use leaf emoji */ position: fixed; bottom: -50px; /* Start offscreen */ pointer-events: none; z-index: -1; /* Behind everything */ font-size: 25px; /* Size of the leaves */ opacity: 0.6; color: var(--nature-green-light); /* Optional: color the emoji */ animation: floatLeaf 15s infinite linear; /* Linear for consistent float */ } body::before { left: 10%; animation-duration: 12s; /* Different speed */ animation-delay: 1s; /* Different delay */ opacity: 0.5; font-size: 20px; content: '🍂'; /* Autumn leaf */ } body::after { left: 85%; animation-duration: 18s; animation-delay: 3s; opacity: 0.7; font-size: 30px; content: '🍁'; /* Maple leaf */ } /* Add more pseudo-elements or use JS for more leaves */ @keyframes floatLeaf { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0.6; } 50% { transform: translate(20px, -50vh) rotate(180deg); opacity: 0.8; } /* Sway and rotate upwards */ 100% { transform: translate(0, -100vh) rotate(360deg); opacity: 0.6; } /* Float offscreen */ } /* JS example for many particles is commented out in window.onload */ `; // Apply styles when the head is available function applyStylesWhenReady() { if (document.head) { GM_addStyle(natureStyles); } else { setTimeout(applyStylesWhenReady, 50); // Re-check frequently } } applyStylesWhenReady(); // JS for more complex effects like many particles (commented out) window.onload = function() { // Example JavaScript to create many floating leaves /* function createLeaf() { const leaf = document.createElement('span'); const leafEmojis = ['🍃', '🍂', '🍁']; leaf.textContent = leafEmojis[Math.floor(Math.random() * leafEmojis.length)]; // Random leaf emoji leaf.classList.add('floating-leaf'); // Define this class in CSS // Set random properties for position, size, duration, delay const size = Math.random() * 20 + 15; // 15px to 35px const duration = Math.random() * 15 + 10; // 10s to 25s const delay = Math.random() * 5; // 0s to 5s const startLeft = Math.random() * 100; // 0vw to 100vw const swayAmount = Math.random() * 50 + 20; // How much it sways horizontally (20px to 70px) document.body.appendChild(leaf); // Remove leaf after a long time or animation cycle setTimeout(() => { leaf.remove(); }, (duration + delay) * 1000 + 500); // Remove slightly after animation finishes } // Create leaves periodically (e.g., every 500ms) // setInterval(createLeaf, 500); // Create a burst of leaves initially (e.g., 15-20 leaves) // for(let i = 0; i < 15; i++) { // createLeaf(); // } // NOTE: Too many animated particles can impact performance. // Use this JS code with caution or test thoroughly. */ }; })();