mYbiib / Imagem Flutuante e Tema Neon

// ==UserScript==
// @name         Imagem Flutuante e Tema Neon
// @description  Adiciona uma imagem flutuante que segue o movimento do mouse na página do GitHub, com opção de modo escuro e tom neon.
// @version      1.0.1
// @author       mYbiib
// @license      MIT
// @match        https://github.com/*
// @grant        none
// ==/UserScript==

(function () {
  'use strict';

  // Variáveis para controle do estado do modo escuro e tom neon
  let isDarkMode = false;
  let isNeonMode = false;

  // Função para alternar o modo escuro
  function toggleDarkMode() {
    const body = document.body;
    body.classList.toggle('dark-mode');
    isDarkMode = !isDarkMode;
  }

  // Função para alternar o tom neon
  function toggleNeonMode() {
    const body = document.body;
    body.classList.toggle('neon-mode');
    isNeonMode = !isNeonMode;
  }

  // Função para criar a imagem flutuante
  function createFloatingImage(event) {
    // Verificar se a imagem já está sendo exibida
    const floatingImage = document.getElementById('floating-image');
    if (floatingImage) {
      return;
    }

    // Criar a imagem e definir a origem
    const img = new Image();
    img.src = 'https://via.placeholder.com/150';

    // Definir o estilo da imagem flutuante
    img.classList.add('floating-image');

    // Definir a posição da imagem flutuante com base na posição do mouse
    img.style.top = `${event.clientY}px`;
    img.style.left = `${event.clientX}px`;

    // Adicionar a imagem flutuante ao corpo do documento
    document.body.appendChild(img);
  }

  // Adicionar o evento de movimento do mouse para criar a imagem flutuante
  document.addEventListener('mousemove', createFloatingImage);

  // Adicionar botões de controle para o modo escuro e tom neon
  const darkModeButton = document.createElement('button');
  darkModeButton.textContent = 'Modo Escuro';
  darkModeButton.addEventListener('click', toggleDarkMode);
  document.body.appendChild(darkModeButton);

  const neonModeButton = document.createElement('button');
  neonModeButton.textContent = 'Tom Neon';
  neonModeButton.addEventListener('click', toggleNeonMode);
  document.body.appendChild(neonModeButton);

  // Estilos CSS para a imagem flutuante, modo escuro e tom neon
  const styles = `
        .floating-image {
            position: fixed;
            top: 0;
            left: 0;
            opacity: 0.8;
            pointer-events: none;
            z-index: 9999;
        }

        .dark-mode {
            background-color: #333;
            color: #fff;
        }

        .neon-mode {
            text-shadow: 0 0 10px #00ff00, 0 0 20px #00ff00, 0 0 30px #00ff00, 0 0 40px #00ff00, 0 0 50px #00ff00, 0 0 60px #00ff00;
        }
    `;

  // Adicionar estilos CSS ao documento
  const styleElem = document.createElement('style');
  styleElem.textContent = styles;
  document.head.appendChild(styleElem);
})();