您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Komplett neues Neon-Germany Design für YouTube, mit Parallax, Animationen, Mini-Player, Darkmode und mehr. iPad optimiert.
// ==UserScript== // @name YouTube Neon Germany Redesign Complete // @namespace http://tampermonkey.net/ // @version 1.0 // @description Komplett neues Neon-Germany Design für YouTube, mit Parallax, Animationen, Mini-Player, Darkmode und mehr. iPad optimiert. // @author ChatGPT // @match https://www.youtube.com/* // @grant none // @license MIT // ==/UserScript== (() => { 'use strict'; // Hilfsfunktion: aktuelle Stunde für Darkmode-Check const hour = new Date().getHours(); const isDaytime = hour > 7 && hour < 20; // Haupt CSS Styles const style = document.createElement('style'); style.textContent = ` @import url('https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400;700&display=swap'); * { box-sizing: border-box; margin: 0; padding: 0; user-select:none; } html, body { height: 100%; width: 100%; font-family: 'Roboto Slab', serif; background: ${isDaytime ? '#111' : '#000'}; color: #eee; overflow-x: hidden; scroll-behavior: smooth; } #app { position: relative; min-height: 100vh; background: linear-gradient(45deg, #ff0000aa, #ffff0099 60%, #ff0000cc 90%), url('https://upload.wikimedia.org/wikipedia/en/b/ba/Flag_of_Germany.svg') no-repeat center right/contain; background-attachment: fixed; padding: 80px 20px 60px; } /* Sticky Header mit Neon-Germany-Logo */ header { position: fixed; top: 0; left: 0; right: 0; height: 60px; background: #111; border-bottom: 1px solid #ff0000cc; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; z-index: 1000; box-shadow: 0 0 10px #ff0000dd; transition: height 0.3s ease; } header.shrink { height: 40px; box-shadow: 0 0 8px #ff000077 inset; } header .logo { font-weight: 700; font-size: 1.6rem; color: #ff0000; text-shadow: 0 0 8px #ff0000, 0 0 15px #ff3300; user-select:none; display: flex; align-items: center; gap: 10px; } header .logo svg { width: 32px; height: 18px; filter: drop-shadow(0 0 3px #ff0000); vertical-align: middle; } header nav button { background: transparent; border: none; color: #ff3300; font-size: 1.1rem; cursor: pointer; padding: 8px 12px; border-radius: 5px; box-shadow: 0 0 6px #ff3300; transition: box-shadow 0.3s ease, transform 0.3s ease; user-select:none; } header nav button:hover { box-shadow: 0 0 20px #ff3300; transform: scale(1.1); } /* Main Content */ main { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); gap: 18px; margin-top: 20px; padding-bottom: 60px; } /* Video Cards */ .video-card { background: #222; border-radius: 10px; overflow: hidden; box-shadow: 0 0 8px #ff0000aa; cursor: pointer; transition: transform 0.3s ease, box-shadow 0.4s ease; display: flex; flex-direction: column; user-select:none; } .video-card:hover { box-shadow: 0 0 20px #ff3300; transform: translateY(-5px); } .thumbnail { width: 100%; aspect-ratio: 16 / 9; background-position: center; background-size: cover; filter: brightness(0.85); transition: filter 0.3s ease; } .video-card:hover .thumbnail { filter: brightness(1); } .info { padding: 10px; color: #eee; flex-grow: 1; display: flex; flex-direction: column; justify-content: space-between; } .title { font-weight: 700; font-size: 1.1rem; margin-bottom: 8px; text-shadow: 0 0 5px #ff3300; cursor: default; animation: pencil-glow 3s infinite alternate ease-in-out; } @keyframes pencil-glow { 0% { text-shadow: 0 0 4px #ff3300; } 50% { text-shadow: 0 0 20px #ff3300; } 100% { text-shadow: 0 0 4px #ff3300; } } .like-button { align-self: flex-start; background: transparent; border: 1.8px solid #ff3300; color: #ff3300; padding: 4px 10px; border-radius: 20px; font-weight: 600; cursor: pointer; user-select:none; box-shadow: 0 0 10px #ff3300; transition: box-shadow 0.3s ease, background-color 0.3s ease, color 0.3s ease; } .like-button:hover { box-shadow: 0 0 25px #ff6600; background-color: #ff3300; color: #fff; transform: scale(1.1); } .like-button.liked { background-color: #ff0000; color: white; box-shadow: 0 0 30px #ff0000; } /* Mini Player */ #mini-player { position: fixed; bottom: 60px; right: 20px; width: 320px; height: 180px; border-radius: 12px; box-shadow: 0 0 30px #ff0000cc; border: 2.5px solid #ff3300; overflow: hidden; z-index: 1500; background: #000; transition: opacity 0.5s ease; } #mini-player iframe { width: 100%; height: 100%; border: none; } /* Scroll to top */ #scroll-top { position: fixed; bottom: 20px; right: 20px; background: #ff3300; border-radius: 50%; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 0 20px #ff3300; transition: opacity 0.4s ease; opacity: 0; z-index: 1500; user-select:none; } #scroll-top.visible { opacity: 1; } #scroll-top svg { fill: white; width: 24px; height: 24px; } /* Responsive Anpassung für iPad */ @media (max-width: 768px) { main { grid-template-columns: 1fr 1fr; margin-top: 70px; padding: 0 10px 60px; } #mini-player { width: 280px; height: 160px; bottom: 50px; } } `; document.head.appendChild(style); // HTML Struktur ersetzen document.documentElement.innerHTML = ` <head> <title>YouTube Neon Germany Redesign</title> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/> </head> <body> <header> <div class="logo" aria-label="YouTube Neon Germany Logo"> <svg viewBox="0 0 24 14" aria-hidden="true" focusable="false"> <rect width="24" height="14" fill="#ff0000"/> <rect width="24" height="4.6" fill="#000"/> <rect y="4.6" width="24" height="4.8" fill="#ffcc00"/> <rect y="9.4" width="24" height="4.6" fill="#000"/> <path d="M9 4.5L16 7 9 9.5V4.5Z" fill="#fff"/> </svg> <span>YouTube</span> </div> <nav> <button id="darkmode-toggle" aria-label="Darkmode umschalten">🌙</button> </nav> </header> <div id="app" role="main" tabindex="0" aria-live="polite" aria-atomic="true"> <main id="video-list" aria-label="Video Liste"></main> </div> <div id="mini-player" aria-label="Mini Video Player" hidden></div> <div id="scroll-top" aria-label="Nach oben scrollen" role="button" tabindex="0"> <svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"> <path d="M12 4l-8 8h16z"/> </svg> </div> </body> `; const app = document.getElementById('app'); const videoList = document.getElementById('video-list'); const miniPlayer = document.getElementById('mini-player'); const scrollTopBtn = document.getElementById('scroll-top'); const darkModeToggle = document.getElementById('darkmode-toggle'); const header = document.querySelector('header'); // Beispiel Videos (Dummy Daten) const videos = [ { title: "Neon Germany YouTube Redesign", videoId: "dQw4w9WgXcQ", thumbnail: "https://img.youtube.com/vi/dQw4w9WgXcQ/hqdefault.jpg", }, { title: "Pencil Effect Animation Tutorial", videoId: "3JZ_D3ELwOQ", thumbnail: "https://img.youtube.com/vi/3JZ_D3ELwOQ/hqdefault.jpg", }, { title: "Parallax Scroll Design Inspiration", videoId: "sGbxmsDFVnE", thumbnail: "https://img.youtube.com/vi/sGbxmsDFVnE/hqdefault.jpg", }, { title: "Dark Mode Design Tips", videoId: "wp5pckvF4NQ", thumbnail: "https://img.youtube.com/vi/wp5pckvF4NQ/hqdefault.jpg", }, ]; // Video Liste rendern function renderVideos() { videoList.innerHTML = ""; videos.forEach(({title, videoId, thumbnail}) => { const card = document.createElement('div'); card.className = "video-card"; card.tabIndex = 0; card.setAttribute('role', 'button'); card.setAttribute('aria-label', `Video abspielen: ${title}`); const thumbDiv = document.createElement('div'); thumbDiv.className = "thumbnail"; thumbDiv.style.backgroundImage = `url(${thumbnail})`; card.appendChild(thumbDiv); const info = document.createElement('div'); info.className = "info"; const t = document.createElement('div'); t.className = "title"; t.textContent = title; const likeBtn = document.createElement('button'); likeBtn.className = "like-button"; likeBtn.textContent = "👍 Like"; likeBtn.setAttribute('aria-pressed', 'false'); // Like Button Toggle likeBtn.addEventListener('click', e => { e.stopPropagation(); if(likeBtn.classList.contains('liked')){ likeBtn.classList.remove('liked'); likeBtn.setAttribute('aria-pressed', 'false'); } else { likeBtn.classList.add('liked'); likeBtn.setAttribute('aria-pressed', 'true'); } }); info.appendChild(t); info.appendChild(likeBtn); card.appendChild(info); // Klick öffnet Mini-Player mit Video card.addEventListener('click', () => { miniPlayer.hidden = false; miniPlayer.innerHTML = `<iframe src="https://www.youtube-nocookie.com/embed/${videoId}?autoplay=1&modestbranding=1" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>`; miniPlayer.focus(); }); videoList.appendChild(card); }); } renderVideos(); // Scroll to top Button Logik window.addEventListener('scroll', () => { if(window.scrollY > 250){ scrollTopBtn.classList.add('visible'); } else { scrollTopBtn.classList.remove('visible'); } // Header Shrink if(window.scrollY > 50){ header.classList.add('shrink'); } else { header.classList.remove('shrink'); } }); scrollTopBtn.addEventListener('click', () => { window.scrollTo({top:0, behavior:'smooth'}); }); scrollTopBtn.addEventListener('keydown', e => { if(e.key === "Enter" || e.key === " "){ e.preventDefault(); scrollTopBtn.click(); } }); // Darkmode Toggle Button darkModeToggle.addEventListener('click', () => { if(document.documentElement.style.backgroundColor === 'rgb(0, 0, 0)'){ // hell schalten document.documentElement.style.backgroundColor = '#111'; document.body.style.backgroundColor = '#111'; darkModeToggle.textContent = '🌙'; } else { document.documentElement.style.backgroundColor = '#000'; document.body.style.backgroundColor = '#000'; darkModeToggle.textContent = '☀️'; } }); // Parallax Background Scroll window.addEventListener('scroll', () => { const y = window.scrollY / 4; app.style.backgroundPosition = `center calc(50% + ${y}px), center right/contain`; }); })();