❄️Winter Acellus Mod Pack🛠️

For more versions check out my profile!

// ==UserScript==
// @name ❄️Winter Acellus Mod Pack🛠️
// @author Type Sh!t
// @description For more versions check out my profile!
// @icon https://i.pinimg.com/originals/44/66/ec/4466ecf1a7b1cfb3c40a014386e2fa57.png
// @version 1.4
// @match https://admin192a.acellus.com/student/*
// @license MIT
// @match https://admin192c.acellus.com/student/*
// @run-at document-start
// @grant none
// @namespace https://greasyfork.org/users/1394549
// @icon https://i.pinimg.com/originals/44/66/ec/4466ecf1a7b1cfb3c40a014386e2fa57.png
// ==/UserScript==


(function () {
    'use strict';

    console.log("Enhanced winter theme script running");

    // Create and inject a style element into the head
    const style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = `
        /* Smooth changing background gradient for body and html */
        @keyframes backgroundGradientChange {
            0% { background: linear-gradient(135deg, #0f1b2b, #2a3f5b); } /* Darker blue gradient */
            50% { background: linear-gradient(135deg, #2a3f5b, #445e7d); } /* Medium blue gradient */
            100% { background: linear-gradient(135deg, #0f1b2b, #2a3f5b); } /* Darker blue gradient */
        }

        body, html {
            margin: 0;
            padding: 0;
            height: 100%;
            animation: backgroundGradientChange 20s infinite alternate;
            background-size: cover;
            color: #b0e0e6; /* Light ice blue text */
        }

        /* Transparent backgrounds for main containers to show the gradient */
        #root, .container, .main, .wrapper, section, header, footer, div, article, aside, nav, main {
            background: transparent !important;
            box-shadow: none;
        }

        /* Frosted glass effect for buttons, inputs, text areas, and cards */
        button, a, .card, .box, .content-box, .panel, .widget, .form, .modal, .popup, .course-button {
            background: rgba(255, 255, 255, 0.1); /* Updated to make backgrounds glass clear */
            backdrop-filter: blur(10px);
            border-radius: 8px;
            border: 1px solid rgba(255, 255, 255, 0.3); /* Reduced opacity for a more glass-like effect */
            padding: 10px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            transition: transform 0.3s, box-shadow 0.3s;
            color: #5f9ea0; /* Teal */
        }

        /* Cold white effect for input fields, text areas, and selects */
        input, textarea, select {
            background: rgba(240, 248, 255, 0.1); /* Cold white background with reduced opacity */
            backdrop-filter: blur(10px);
            border-radius: 8px;
            border: 1px solid rgba(255, 255, 255, 0.3);
            padding: 10px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            transition: transform 0.3s, box-shadow 0.3s;
            color: #b0e0e6; /* Light ice blue text for less strain */
        }

        /* Ensure text within interactive elements remains readable */
        button, a, .card, input, textarea, select, .box, .content-box, .panel, .widget, .form, .modal, .popup, .course-button {
            color: #5f9ea0 !important; /* Teal for readability */
        }

        /* Text color animation - varying durations based on brightness */
        @keyframes textColorChange {
            0% { color: #b0e0e6; } /* Ice */
            10% { color: #5f9ea0; } /* Teal */
            20% { color: #add8e6; } /* Light Blue */
            30% { color: #87ceeb; } /* Sky Blue */
            40% { color: #89cff0; } /* Baby Blue */
            50% { color: #4682b4; } /* Sky Blue with grey */
            60% { color: #00ced1; } /* Blueish Green */
            70% { color: #b0e0e6; } /* Ice again */
            100% { color: #5f9ea0; } /* Teal */
        }

        /* Apply the text color animation smoothly to all text elements, with varying duration */
        body, html, button, a, .card, input, textarea, select, .box, .content-box, .panel, .widget, .form, .modal, .popup, .highlighted-text, .important-section, p, h1, h2, h3, h4, h5, h6, span, div {
            animation: textColorChange 10s infinite alternate;
            transition: color 1s ease-in-out;
            text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2); /* Light blurred stroke for contrast in default mode */
        }

        /* Hover effect for buttons, cards, and other interactive elements */
        button:hover, a:hover, .card:hover, .box:hover, .content-box:hover, .panel:hover, .widget:hover, .modal:hover, .popup:hover {
            transform: scale(1.02);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
        }

        /* Input focus effect */
        input:focus, textarea:focus, select:focus {
            outline: none;
            border-color: #6ca0dc;
            box-shadow: 0 0 5px rgba(108, 160, 220, 0.5);
        }

        /* Styling for images */
        img {
            border-radius: 10px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            transition: transform 0.3s;
        }

        img:hover {
            transform: scale(1.02);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
        }

        /* Improved visibility for important text containers */
        .highlighted-text, .important-section {
            background: rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(5px);
            padding: 10px;
            border-radius: 5px;
            color: #5f9ea0; /* Teal */
        }

        /* Dark mode adjustments */
        .dark-ice-theme body, .dark-ice-theme html {
            background: linear-gradient(135deg, #1a1a2e, #16213e); /* Dark ice-themed gradient */
        }

        .dark-ice-theme button, .dark-ice-theme a, .dark-ice-theme .card, .dark-ice-theme .box, .dark-ice-theme .content-box, .dark-ice-theme .panel, .dark-ice-theme .widget, .dark-ice-theme .form, .dark-ice-theme .modal, .dark-ice-theme .popup, .dark-ice-theme input, .dark-ice-theme textarea, .dark-ice-theme select, .dark-ice-theme .course-button {
            background: rgba(255, 255, 255, 0.1); /* Glass clear background */
            backdrop-filter: blur(10px);
            border-radius: 8px;
            border: 1px solid rgba(255, 255, 255, 0.3);
            padding: 10px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
            transition: transform 0.3s, box-shadow 0.3s;
            color: #b0e0e6 !important; /* Light ice blue for better visibility in dark mode */
        }

        .dark-ice-theme body, .dark-ice-theme html, .dark-ice-theme button, .dark-ice-theme a, .dark-ice-theme .card, .dark-ice-theme input, .dark-ice-theme textarea, .dark-ice-theme select, .dark-ice-theme .box, .dark-ice-theme .content-box, .dark-ice-theme .panel, .dark-ice-theme .widget, .dark-ice-theme .form, .dark-ice-theme .modal, .dark-ice-theme .popup, .dark-ice-theme .highlighted-text, .dark-ice-theme .important-section, .dark-ice-theme p, .dark-ice-theme h1, .dark-ice-theme h2, .dark-ice-theme h3, .dark-ice-theme h4, .dark-ice-theme h5, .dark-ice-theme h6, .dark-ice-theme span, .dark-ice-theme div {
            text-shadow: 1px 1px 4px rgba(255, 255, 255, 0.1), -1px -1px 4px rgba(255, 255, 255, 0.1); /* Very light blurred stroke for better contrast in dark mode */
        }
    `;
    document.head.appendChild(style);

    // Create and append a button to toggle the dark ice theme
    const themeToggleButton = document.createElement('button');
    themeToggleButton.innerText = "Toggle Dark Ice Theme";
    themeToggleButton.style.position = 'fixed';
    themeToggleButton.style.bottom = '20px';
    themeToggleButton.style.right = '20px';
    themeToggleButton.style.padding = '10px 20px';
    themeToggleButton.style.borderRadius = '8px';
    themeToggleButton.style.border = 'none';
    themeToggleButton.style.background = 'rgba(255, 255, 255, 0.5)';
    themeToggleButton.style.color = '#5f9ea0';
    themeToggleButton.style.cursor = 'pointer';
    themeToggleButton.style.backdropFilter = 'blur(10px)';
    themeToggleButton.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.1)';
    themeToggleButton.style.transition = 'transform 0.3s, box-shadow 0.3s';

    document.body.appendChild(themeToggleButton);

    // Create and append a button to toggle type settings
    const typeSettingsButton = document.createElement('button');
    typeSettingsButton.innerText = "Type~Setting";
    typeSettingsButton.style.position = 'fixed';
    typeSettingsButton.style.bottom = '60px';
    typeSettingsButton.style.right = '20px';
    typeSettingsButton.style.padding = '10px 20px';
    typeSettingsButton.style.borderRadius = '8px';
    typeSettingsButton.style.border = 'none';
    typeSettingsButton.style.background = 'rgba(255, 255, 255, 0.5)';
    typeSettingsButton.style.color = '#5f9ea0';
    typeSettingsButton.style.cursor = 'pointer';
    typeSettingsButton.style.backdropFilter = 'blur(10px)';
    typeSettingsButton.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.1)';
    typeSettingsButton.style.transition = 'transform 0.3s, box-shadow 0.3s';

    document.body.appendChild(typeSettingsButton);

    // Create dropdown menu for type settings
    const typeSettingsMenu = document.createElement('div');
    typeSettingsMenu.style.position = 'fixed';
    typeSettingsMenu.style.bottom = '100px';
    typeSettingsMenu.style.right = '20px';
    typeSettingsMenu.style.padding = '10px';
    typeSettingsMenu.style.borderRadius = '8px';
    typeSettingsMenu.style.border = '1px solid rgba(255, 255, 255, 0.3)';
    typeSettingsMenu.style.background = 'rgba(255, 255, 255, 0.7)';
    typeSettingsMenu.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.1)';
    typeSettingsMenu.style.display = 'none';

    const betterTextColorsLabel = document.createElement('label');
    betterTextColorsLabel.innerText = 'Better Text Colors';
    betterTextColorsLabel.style.marginRight = '10px';

    const betterTextColorsCheckbox = document.createElement('input');
    betterTextColorsCheckbox.type = 'checkbox';
    betterTextColorsCheckbox.checked = true;

    betterTextColorsCheckbox.addEventListener('change', () => {
        if (betterTextColorsCheckbox.checked) {
            style.innerHTML += `
                @keyframes textColorChange {
                    0% { color: #b0e0e6; } /* Ice */
                    10% { color: #5f9ea0; } /* Teal */
                    20% { color: #add8e6; } /* Light Blue */
                    30% { color: #87ceeb; } /* Sky Blue */
                    40% { color: #89cff0; } /* Baby Blue */
                    50% { color: #4682b4; } /* Sky Blue with grey */
                    60% { color: #00ced1; } /* Blueish Green */
                    70% { color: #b0e0e6; } /* Ice again */
                    100% { color: #5f9ea0; } /* Teal */
                }
            `;
        } else {
            style.innerHTML = style.innerHTML.replace(/@keyframes textColorChange {[^}]+}/g, '');
        }
    });

    typeSettingsMenu.appendChild(betterTextColorsLabel);
    typeSettingsMenu.appendChild(betterTextColorsCheckbox);
    document.body.appendChild(typeSettingsMenu);

    // Toggle the dropdown menu
    typeSettingsButton.addEventListener('click', () => {
        typeSettingsMenu.style.display = typeSettingsMenu.style.display === 'none' ? 'block' : 'none';
    });

    // Function to toggle dark ice theme
    themeToggleButton.addEventListener('click', () => {
        const isDark = document.body.classList.toggle('dark-ice-theme');
        if (isDark) {
            style.innerHTML += `
                body, html {
                    background: linear-gradient(135deg, #1a1a2e, #16213e); /* Dark ice-themed gradient */
                }
                button, a, .card, .box, .content-box, .panel, .widget, .form, .modal, .popup, input, textarea, select, .course-button {
                    background: rgba(255, 255, 255, 0.1); /* Glass clear background */
                    backdrop-filter: blur(10px);
                    border-radius: 8px;
                    border: 1px solid rgba(255, 255, 255, 0.3);
                    padding: 10px;
                    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
                    transition: transform 0.3s, box-shadow 0.3s;
                    color: #b0e0e6 !important; /* Light ice blue for better visibility in dark mode */
                }
            `;
        } else {
            style.innerHTML = style.innerHTML.replace(/body, html {[^}]+}/g, `body, html {
                margin: 0;
                padding: 0;
                height: 100%;
                animation: backgroundGradientChange 20s infinite alternate;
                background-size: cover;
            }`).replace(/button, a, .card, .box, .content-box, .panel, .widget, .form, .modal, .popup, input, textarea, select {[^}]+}/g, `button, a, .card, .box, .content-box, .panel, .widget, .form, .modal, .popup, input, textarea, select {
                background: rgba(255, 255, 255, 0.1);
                backdrop-filter: blur(10px);
                border-radius: 8px;
                border: 1px solid rgba(255, 255, 255, 0.3);
                padding: 10px;
                box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
                transition: transform 0.3s, box-shadow 0.3s;
                color: #5f9ea0;
            }`);
        }
    });
})();