From 202c5163dbe255f61089cb38da7852c58945cc13 Mon Sep 17 00:00:00 2001 From: Dominik Krenn Date: Sat, 19 Jul 2025 12:55:12 +0200 Subject: [PATCH] fix: update insertRickLabel function to enhance click handling and add rainbow animation --- source/src/index.ts | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/source/src/index.ts b/source/src/index.ts index 2580bb2..2825a64 100644 --- a/source/src/index.ts +++ b/source/src/index.ts @@ -12,13 +12,26 @@ export function insertRickLabel(target: HTMLElement | string = document.body): v cursor: 'pointer', boxShadow: '0 0 5px rgba(0,0,0,0.1)', width: 'fit-content', - userSelect: 'none' + userSelect: 'none', + transition: 'all 0.3s ease' }) label.onclick = () => { clickCount++ label.textContent = `Rickroll Me (${clickCount})` - window.open('https://www.youtube.com/watch?v=dQw4w9WgXcQ', '_blank') + + const url = + clickCount >= 69 + ? 'https://youtu.be/soKTQx0p7_Q?list=RDsoKTQx0p7_Q' + : 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' + + if (clickCount === 69) { + // Activate rainbow effect via CSS animation + label.style.animation = 'rainbowBackground 3s linear infinite' + label.style.color = 'white' + } + + window.open(url, '_blank') } if (typeof target === 'string') { @@ -26,4 +39,22 @@ export function insertRickLabel(target: HTMLElement | string = document.body): v } else { target.appendChild(label) } + + // Inject rainbow animation into page if not already there + if (!document.getElementById('rainbow-style')) { + const style = document.createElement('style') + style.id = 'rainbow-style' + style.textContent = ` + @keyframes rainbowBackground { + 0% { background: red; } + 16% { background: orange; } + 32% { background: yellow; } + 48% { background: green; } + 64% { background: blue; } + 80% { background: indigo; } + 100% { background: violet; } + } + ` + document.head.appendChild(style) + } }