Files
archived-WinRAR-Keygen/index.html
T
Miguel Villegas 719eda1108 Initial commit
2026-04-20 16:35:34 -05:00

384 lines
20 KiB
HTML

<!DOCTYPE html>
<html lang="en" class="antialiased">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>WinRAR Keygen</title>
<link rel="icon" href="https://i.imgur.com/FtcF9ZP.png" />
<meta name="description" content="Professional Key Generator for WinRAR - Designed by Zarfala" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
darkMode: "class",
theme: {
extend: {
fontFamily: { sans: ['Outfit', 'sans-serif'] },
colors: {
primary: {
50: '#eef2ff', 100: '#e0e7ff', 200: '#c3dafe', 300: '#a3bffa',
400: '#7f9cf5', 500: '#667eea', 600: '#5a67d8', 700: '#4c51bf',
800: '#434190', 900: '#3c366b',
}
},
animation: {
'blob': 'blob 7s infinite',
'fade-in-up': 'fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards',
},
keyframes: {
blob: {
'0%': { transform: 'translate(0px, 0px) scale(1)' },
'33%': { transform: 'translate(30px, -50px) scale(1.1)' },
'66%': { transform: 'translate(-20px, 20px) scale(0.9)' },
'100%': { transform: 'translate(0px, 0px) scale(1)' },
},
fadeInUp: {
'0%': { opacity: '0', transform: 'translateY(40px)' },
'100%': { opacity: '1', transform: 'translateY(0)' },
}
}
}
}
}
if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
</script>
<style>
body {
font-family: 'Outfit', sans-serif;
}
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(156, 163, 175, 0.5);
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: rgba(107, 114, 128, 0.8);
}
.glass-panel {
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(40px);
-webkit-backdrop-filter: blur(40px);
border: 1px solid rgba(255, 255, 255, 0.6);
box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.4) inset;
}
.dark .glass-panel {
background: rgba(15, 23, 42, 0.75);
backdrop-filter: blur(40px);
-webkit-backdrop-filter: blur(40px);
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 30px 60px -12px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.05) inset;
}
.input-modern {
background: rgba(255, 255, 255, 0.7);
border: 2px solid rgba(209, 213, 219, 0.6);
color: #1f2937;
transition: all 0.3s ease;
}
.input-modern:focus {
background: #ffffff;
border-color: #667eea;
box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.2);
}
.dark .input-modern {
background: rgba(15, 23, 42, 0.7);
border: 2px solid rgba(71, 85, 105, 0.6);
color: #f8fafc;
}
.dark .input-modern:focus {
background: rgba(15, 23, 42, 0.95);
border-color: #7f9cf5;
box-shadow: 0 0 0 4px rgba(127, 156, 245, 0.2);
}
.btn-gradient {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
background-size: 200% auto;
color: white;
transition: 0.5s ease;
box-shadow: 0 10px 20px -5px rgba(102, 126, 234, 0.4);
}
.btn-gradient:hover {
background-position: right center;
box-shadow: 0 15px 25px -5px rgba(102, 126, 234, 0.5);
transform: translateY(-2px);
}
.btn-gradient:active {
transform: translateY(1px);
box-shadow: 0 5px 10px -5px rgba(102, 126, 234, 0.4);
}
.animate-gradient-text {
background-size: 300%;
animation: gradientText 6s ease-in-out infinite;
}
@keyframes gradientText {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
/* VIP Aurora Stripes Background */
@keyframes aurora {
from {
background-position: 50% 50%, 50% 50%;
}
to {
background-position: 350% 50%, 350% 50%;
}
}
.jumbo {
position: fixed;
inset: 0;
width: 100vw;
height: 100vh;
z-index: 0;
pointer-events: none;
--stripes: repeating-linear-gradient(100deg, #fff 0%, #fff 7%, transparent 10%, transparent 12%, #fff 16%);
--stripesDark: repeating-linear-gradient(100deg, #000 0%, #000 7%, transparent 10%, transparent 12%, #000 16%);
--rainbow: repeating-linear-gradient(100deg, #60a5fa 10%, #e879f9 15%, #60a5fa 20%, #5eead4 25%, #60a5fa 30%);
mask-image: radial-gradient(ellipse at center, black 40%, transparent 80%);
-webkit-mask-image: radial-gradient(ellipse at center, black 40%, transparent 80%);
background-image: var(--stripes), var(--rainbow);
background-size: 300%, 200%;
background-position: 50% 50%, 50% 50%;
filter: blur(15px) invert(100%);
opacity: 0.9;
}
.jumbo::after {
content: "";
position: absolute;
inset: 0;
background-image: var(--stripes), var(--rainbow);
background-size: 200%, 100%;
animation: aurora 40s linear infinite;
mix-blend-mode: difference;
}
.dark .jumbo {
background-image: var(--stripesDark), var(--rainbow);
filter: blur(15px) opacity(60%) saturate(200%);
}
.dark .jumbo::after {
background-image: var(--stripesDark), var(--rainbow);
}
[x-cloak] {
display: none !important;
}
</style>
<!-- Alpine.js for lightweight reactivity -->
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
</head>
<body class="transition-colors duration-500 bg-slate-50 dark:bg-black font-sans text-slate-800 dark:text-slate-200">
<main id="main-content" class="antialiased" x-data="keygenApp()" x-cloak>
<div class="relative flex min-h-screen flex-col items-center justify-center overflow-hidden px-4 py-8">
<!-- Abstract Animated Background Elements -->
<div class="absolute inset-0 overflow-hidden pointer-events-none">
<div class="jumbo"></div>
</div>
<div class="z-10 w-full max-w-2xl mx-auto animate-fade-in-up relative mt-12 sm:mt-0">
<div class="glass-panel rounded-3xl p-8 md:p-12 transition-all duration-300 relative overflow-hidden">
<div
class="absolute inset-0 bg-gradient-to-tr from-white/5 to-white/0 dark:from-white/5 dark:to-transparent pointer-events-none rounded-3xl">
</div>
<header class="mb-10 text-center relative z-10">
<div class="absolute top-0 right-0 sm:-top-4 sm:-right-4 flex items-center space-x-3 z-50">
<!-- Custom Lang Selector -->
<div class="relative" x-data="{ open: false }" @click.away="open = false">
<button @click="open = !open" type="button"
class="flex items-center space-x-2 bg-white/60 dark:bg-slate-800/60 border border-slate-200 dark:border-slate-700 shadow-sm text-sm rounded-full py-2 px-3 text-slate-700 dark:text-slate-300 focus:outline-none hover:bg-white dark:hover:bg-slate-800 transition-all">
<img :src="lang === 'en' ? 'https://flagcdn.com/h20/us.png' : 'https://flagcdn.com/h20/es.png'"
class="w-auto h-4 rounded-[1px]" alt="flag">
<span class="font-bold uppercase tracking-wide text-xs" x-text="lang"></span>
</button>
<div x-show="open" x-transition.opacity style="display: none;"
class="absolute right-0 mt-2 w-36 bg-white dark:bg-slate-800 rounded-xl shadow-lg border border-slate-200 dark:border-slate-700 py-1.5 z-50 overflow-hidden">
<button type="button" @click="lang = 'en'; updateLanguage(); open = false"
class="w-full text-left flex items-center space-x-3 px-4 py-2.5 hover:bg-slate-100 dark:hover:bg-slate-700 text-sm font-semibold text-slate-700 dark:text-slate-300 transition-colors">
<img src="https://flagcdn.com/h20/us.png" class="w-auto h-4 rounded-[1px]"
alt="EN">
<span>English</span>
</button>
<button type="button" @click="lang = 'es'; updateLanguage(); open = false"
class="w-full text-left flex items-center space-x-3 px-4 py-2.5 hover:bg-slate-100 dark:hover:bg-slate-700 text-sm font-semibold text-slate-700 dark:text-slate-300 transition-colors">
<img src="https://flagcdn.com/h20/es.png" class="w-auto h-4 rounded-[1px]"
alt="ES">
<span>Español</span>
</button>
</div>
</div>
<!-- Custom Theme Toggler -->
<button @click="toggleTheme()"
class="p-2 sm:p-2.5 rounded-full bg-white/60 dark:bg-slate-800/60 border border-slate-200 dark:border-slate-700 shadow-sm text-slate-600 dark:text-slate-300 hover:bg-white dark:hover:bg-slate-800 transition-all focus:outline-none"
aria-label="Toggle Theme">
<svg x-show="isDark()" class="w-4 h-4 sm:w-5 sm:h-5" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z" />
</svg>
<svg x-show="!isDark()" class="w-4 h-4 sm:w-5 sm:h-5" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z" />
</svg>
</button>
</div>
<div
class="inline-flex items-center justify-center space-x-2 px-3 py-1 mb-6 rounded-full bg-primary-100 dark:bg-primary-900/40 border border-primary-200 dark:border-primary-800 text-xs font-semibold text-primary-700 dark:text-primary-300">
<span class="flex h-2 w-2 relative">
<span
class="animate-ping absolute inline-flex h-full w-full rounded-full bg-primary-400 opacity-75"></span>
<span class="relative inline-flex rounded-full h-2 w-2 bg-primary-500"></span>
</span>
<span x-text="t.badge">Any Version Compatible</span>
</div>
<h1
class="flex flex-wrap items-center justify-center gap-x-3 text-4xl sm:text-5xl font-extrabold tracking-tight text-slate-900 dark:text-white mb-2">
<span>WinRAR</span>
<span
class="text-transparent bg-clip-text bg-gradient-to-r from-blue-600 via-pink-500 to-indigo-600 animate-gradient-text inline-block py-2 pr-2">
Keygen
</span>
</h1>
<p class="text-slate-500 dark:text-slate-400 mt-2 text-sm sm:text-base max-w-sm mx-auto"
x-text="t.subtitle">
Fast, reliable and automatic license generator.
</p>
</header>
<form @submit.prevent="generate" class="relative z-10 space-y-6">
<div>
<label for="userName"
class="block text-sm font-semibold text-slate-700 dark:text-slate-300 mb-1.5 ml-1"
x-text="t.usernameLabel">Username</label>
<div class="relative">
<div
class="absolute inset-y-0 left-0 flex items-center pl-4 pointer-events-none text-slate-400">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z">
</path>
</svg>
</div>
<input type="text" id="userName" x-model="userName" :placeholder="t.usernamePlaceholder"
required
class="input-modern block w-full pl-11 pr-4 py-3.5 rounded-xl outline-none" />
</div>
</div>
<div>
<label for="licenseType"
class="block text-sm font-semibold text-slate-700 dark:text-slate-300 mb-1.5 ml-1"
x-text="t.editionLabel">License Type</label>
<div class="relative">
<div
class="absolute inset-y-0 left-0 flex items-center pl-4 pointer-events-none text-slate-400">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z">
</path>
</svg>
</div>
<input type="text" id="licenseType" x-model="licenseType"
:placeholder="t.editionPlaceholder" required
class="input-modern block w-full pl-11 pr-4 py-3.5 rounded-xl outline-none" />
</div>
</div>
<div class="pt-4">
<button type="submit"
class="btn-gradient w-full py-4 px-6 rounded-xl text-lg font-bold uppercase tracking-wider flex items-center justify-center gap-2 focus:outline-none focus:ring-4 focus:ring-primary-500/50 transition-all">
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"></path>
</svg>
<span x-text="t.generateBtn">Generate License</span>
</button>
</div>
</form>
<!-- Footer -->
<footer class="mt-14 relative z-10">
<div class="flex flex-col items-center space-y-3">
<div
class="flex items-center space-x-2 bg-white/40 dark:bg-slate-800/40 px-4 py-1.5 rounded-full border border-slate-200 dark:border-slate-700 backdrop-blur-sm">
<span class="text-xs font-medium text-slate-600 dark:text-slate-400">Handcrafted
with</span>
<span class="animate-pulse text-red-500"></span>
<span class="text-xs font-medium text-slate-600 dark:text-slate-400">by</span>
<span
class="text-xs font-extrabold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-pink-500">Zarfala</span>
</div>
<div class="text-[11px] font-medium text-slate-500 tracking-wide">
v1.0 © 2026 All rights reserved
</div>
</div>
</footer>
</div>
</div>
<div x-show="toast.show" x-transition.opacity.duration.300ms
class="fixed bottom-6 right-6 px-6 py-4 rounded-xl shadow-2xl z-50 flex items-center gap-3 backdrop-blur-md font-semibold text-sm border bg-green-50/90 dark:bg-green-900/90 text-green-700 dark:text-green-100 border-green-200 dark:border-green-800">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
</svg>
<span x-text="toast.message"></span>
</div>
</div>
</main>
<script src="./js/keygen.js"></script>
<script src="./js/app.js"></script>
</body>
</html>