| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>MDLov - Pixel Style Logo</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <style> |
| @import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap'); |
| |
| .pixel-font { |
| font-family: 'Press Start 2P', cursive; |
| } |
| |
| .logo-container { |
| width: 800px; |
| height: 200px; |
| background-color: #000; |
| position: relative; |
| overflow: hidden; |
| border: 8px solid #4a044e; |
| box-shadow: 0 0 20px rgba(186, 14, 72, 0.7); |
| } |
| |
| .pixel { |
| position: absolute; |
| width: 10px; |
| height: 10px; |
| background-color: #ba0e48; |
| opacity: 0; |
| transition: opacity 0.3s, transform 0.3s; |
| } |
| |
| .heart-visualizer { |
| position: relative; |
| width: 60px; |
| height: 60px; |
| display: inline-block; |
| vertical-align: middle; |
| } |
| |
| .heart { |
| position: absolute; |
| width: 60px; |
| height: 60px; |
| background-color: #ba0e48; |
| transform: rotate(45deg); |
| left: 0; |
| top: 0; |
| box-shadow: 0 0 15px rgba(186, 14, 72, 0.8); |
| } |
| |
| .heart:before, |
| .heart:after { |
| content: ''; |
| position: absolute; |
| width: 60px; |
| height: 60px; |
| background-color: #ba0e48; |
| border-radius: 50%; |
| } |
| |
| .heart:before { |
| top: -30px; |
| left: 0; |
| } |
| |
| .heart:after { |
| top: 0; |
| left: -30px; |
| } |
| |
| .bar { |
| position: absolute; |
| bottom: 0; |
| background-color: #fff; |
| width: 4px; |
| transition: height 0.1s; |
| } |
| |
| .glow { |
| text-shadow: 0 0 10px #ba0e48, 0 0 20px #ba0e48; |
| animation: flicker 2s infinite alternate; |
| } |
| |
| @keyframes flicker { |
| 0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% { |
| text-shadow: 0 0 10px #ba0e48, 0 0 20px #ba0e48; |
| } |
| 20%, 24%, 55% { |
| text-shadow: 0 0 5px #ba0e48, 0 0 10px #ba0e48; |
| } |
| } |
| |
| .scanline { |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 2px; |
| background: rgba(255, 255, 255, 0.1); |
| box-shadow: 0 0 10px rgba(255, 255, 255, 0.3); |
| animation: scan 8s linear infinite; |
| } |
| |
| @keyframes scan { |
| 0% { top: 0; } |
| 100% { top: 100%; } |
| } |
| </style> |
| </head> |
| <body class="bg-black flex items-center justify-center min-h-screen"> |
| <div class="logo-container relative"> |
| |
| <div class="scanline"></div> |
| |
| |
| <div id="particles"></div> |
| |
| |
| <div class="absolute inset-0 flex items-center justify-center"> |
| <div class="text-center"> |
| <span class="pixel-font text-6xl text-purple-800">MDL</span> |
| <div class="heart-visualizer inline-block mx-2" id="heartVisualizer"> |
| <div class="heart"></div> |
| <div id="bars"></div> |
| </div> |
| <span class="pixel-font text-6xl text-purple-800 glow">v</span> |
| </div> |
| </div> |
| |
| |
| <div class="absolute inset-0 pointer-events-none" style="background: |
| linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), |
| linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06)); |
| background-size: 100% 4px, 6px 100%; |
| opacity: 0.7;"></div> |
| </div> |
| |
| |
| <audio id="audioElement" loop> |
| <source src="https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3" type="audio/mpeg"> |
| </audio> |
| |
| <script> |
| |
| const audioContext = new (window.AudioContext || window.webkitAudioContext)(); |
| let analyser, dataArray; |
| |
| |
| function setupAudioAnalyzer() { |
| const audio = document.getElementById('audioElement'); |
| const source = audioContext.createMediaElementSource(audio); |
| |
| analyser = audioContext.createAnalyser(); |
| analyser.fftSize = 64; |
| source.connect(analyser); |
| analyser.connect(audioContext.destination); |
| |
| dataArray = new Uint8Array(analyser.frequencyBinCount); |
| |
| |
| audio.volume = 0.3; |
| audio.play().catch(e => console.log("Audio play failed:", e)); |
| } |
| |
| |
| function createBars() { |
| const barsContainer = document.getElementById('bars'); |
| const barCount = 16; |
| |
| for (let i = 0; i < barCount; i++) { |
| const bar = document.createElement('div'); |
| bar.className = 'bar'; |
| bar.style.left = `${(i * 4) + 2}px`; |
| bar.style.height = '0px'; |
| barsContainer.appendChild(bar); |
| } |
| } |
| |
| |
| function animateVisualizer() { |
| if (!analyser) return; |
| |
| analyser.getByteFrequencyData(dataArray); |
| const bars = document.querySelectorAll('.bar'); |
| |
| bars.forEach((bar, i) => { |
| const index = Math.floor(i * (dataArray.length / bars.length)); |
| const value = dataArray[index] / 2; |
| bar.style.height = `${value}px`; |
| bar.style.backgroundColor = `hsl(${value + 300}, 100%, 50%)`; |
| }); |
| |
| |
| createParticles(dataArray); |
| |
| requestAnimationFrame(animateVisualizer); |
| } |
| |
| |
| function createParticles(data) { |
| const particlesContainer = document.getElementById('particles'); |
| const intensity = data[10] / 255; |
| |
| |
| particlesContainer.innerHTML = ''; |
| |
| |
| const particleCount = Math.floor(intensity * 30); |
| |
| for (let i = 0; i < particleCount; i++) { |
| const particle = document.createElement('div'); |
| particle.className = 'pixel'; |
| |
| |
| const angle = Math.random() * Math.PI * 2; |
| const distance = 30 + Math.random() * 50; |
| const x = 400 + Math.cos(angle) * distance; |
| const y = 100 + Math.sin(angle) * distance; |
| |
| particle.style.left = `${x}px`; |
| particle.style.top = `${y}px`; |
| particle.style.opacity = Math.random(); |
| particle.style.transform = `scale(${0.5 + Math.random()})`; |
| particle.style.transitionDuration = `${0.5 + Math.random() * 2}s`; |
| |
| |
| const colorVar = Math.floor(Math.random() * 30); |
| particle.style.backgroundColor = `rgb(${186 + colorVar}, ${14 + colorVar}, ${72 + colorVar})`; |
| |
| particlesContainer.appendChild(particle); |
| |
| |
| setTimeout(() => { |
| particle.style.opacity = 0; |
| particle.style.transform = `translate(${(Math.random() - 0.5) * 100}px, ${(Math.random() - 0.5) * 100}px) scale(0.2)`; |
| }, 10); |
| } |
| } |
| |
| |
| window.addEventListener('load', () => { |
| setupAudioAnalyzer(); |
| createBars(); |
| animateVisualizer(); |
| |
| |
| document.querySelector('.logo-container').addEventListener('click', () => { |
| const audio = document.getElementById('audioElement'); |
| audio.volume = 0.3; |
| audio.play().catch(e => console.log("Audio play failed:", e)); |
| }); |
| }); |
| </script> |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Diabolov/mdl" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
| </html> |