undefined / index.html
WFelipe's picture
Crie um único arquivo HTML contendo CSS (inline ou em <style>) e JavaScript para um "Calendário Cósmico da Vida" interativo.**
e12d4a8 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cosmic Time Galaxy Explorer</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/feather-icons"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.globe.min.js"></script>
<style>
@media (max-width: 640px) {
.galaxy-disk {
width: 300px !important;
height: 300px !important;
}
.galaxy-core {
width: 18px !important;
height: 18px !important;
}
}
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@600&family=Poppins:wght@400;600;700&display=swap');
:root {
--color-neon-blue: #00ffff;
--color-neon-purple: #9d00ff;
--color-neon-pink: #ff00ff;
--color-core-white: rgba(255, 255, 255, 0.9);
}
.galaxy-disk {
box-shadow:
0 0 60px 20px rgba(157, 0, 255, 0.6),
0 0 100px 40px rgba(0, 255, 255, 0.3),
0 0 200px 80px rgba(255, 0, 255, 0.2);
animation: pulseGlow 8s ease-in-out infinite alternate;
}
@keyframes pulseGlow {
0% { box-shadow:
0 0 60px 20px rgba(157, 0, 255, 0.6),
0 0 100px 40px rgba(0, 255, 255, 0.3),
0 0 200px 80px rgba(255, 0, 255, 0.2); }
100% { box-shadow:
0 0 80px 30px rgba(157, 0, 255, 0.8),
0 0 120px 50px rgba(0, 255, 255, 0.4),
0 0 240px 90px rgba(255, 0, 255, 0.3); }
}
.galaxy-segment {
clip-path: polygon(100% 0, 0% 100%, 0 0);
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
filter: brightness(0.8);
}
.galaxy-segment:hover {
filter: brightness(1.3) drop-shadow(0 0 12px currentColor);
transform: scale(1.1);
z-index: 20;
}
.segment-text {
transform: rotate(calc(-1 * var(--rotate-base)));
text-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
}
.galaxy-core {
box-shadow:
0 0 40px 15px rgba(255, 255, 255, 0.7),
0 0 80px 30px rgba(157, 0, 255, 0.4),
0 0 160px 60px rgba(0, 255, 255, 0.2);
animation: corePulse 4s ease infinite alternate;
}
@keyframes corePulse {
0% { transform: scale(1); opacity: 0.9; }
100% { transform: scale(1.1); opacity: 1; }
}
.info-card {
backdrop-filter: blur(16px) saturate(180%);
-webkit-backdrop-filter: blur(16px) saturate(180%);
background: linear-gradient(135deg, rgba(0, 0, 20, 0.7), rgba(30, 0, 50, 0.5));
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.5);
border: 1px solid rgba(157, 0, 255, 0.3);
transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
</style>
</head>
<body class="bg-black text-white overflow-hidden font-sans" style="font-family: 'Poppins', sans-serif;">
<div id="galaxy-bg" class="absolute w-full h-full" style="background: radial-gradient(ellipse at center, #000000 0%, #090a0f 100%);"></div>
<div class="absolute w-full h-full" style="background-image:
radial-gradient(white, rgba(255,255,255,.2) 1px, transparent 1px),
radial-gradient(white, rgba(255,255,255,.15) 1px, transparent 1px),
radial-gradient(white, rgba(255,255,255,.1) 1px, transparent 1px);
background-size: 300px 300px, 200px 200px, 100px 100px;
background-position: 0 0, 40px 60px, 130px 270px;"></div>
<div class="relative z-10 w-full h-screen flex items-center justify-center">
<div class="relative w-96 h-96 galaxy-disk rounded-full" style="background: conic-gradient(
from 0deg at 50% 50%,
#3b82f6 0deg 45deg,
#8b5cf6 45deg 90deg,
#ec4899 90deg 135deg,
#f97316 135deg 180deg,
#ef4444 180deg 225deg,
#10b981 225deg 270deg,
#f59e0b 270deg 315deg,
#14b8a6 315deg 360deg
);">
<!-- Galaxy Segments -->
<div class="absolute w-full h-full">
<!-- Discovery -->
<div class="absolute top-0 left-0 w-1/2 h-1/2 galaxy-segment bg-blue-500"
style="--rotate-base: 0deg; transform: rotate(0deg);"
data-card="discovery">
<div class="w-full h-full flex items-center justify-center segment-text" style="transform: rotate(-0deg);">
<span class="text-center font-bold font-mono" style="font-family: 'Orbitron', sans-serif;">
Discovery<br><span class="text-xs">(0-10)</span>
</span>
</div>
</div>
<!-- Identity -->
<div class="absolute top-0 left-0 w-1/2 h-1/2 galaxy-segment bg-purple-600"
style="--rotate-base: 45deg; transform: rotate(45deg);"
data-card="identity">
<div class="w-full h-full flex items-center justify-center segment-text" style="transform: rotate(-45deg);">
<span class="text-center font-bold font-mono" style="font-family: 'Orbitron', sans-serif;">
Identity<br><span class="text-xs">(11-20)</span>
</span>
</div>
</div>
<!-- Construction -->
<div class="absolute top-0 left-0 w-1/2 h-1/2 galaxy-segment bg-pink-500"
style="--rotate-base: 90deg; transform: rotate(90deg);"
data-card="construction">
<div class="w-full h-full flex items-center justify-center segment-text" style="transform: rotate(-90deg);">
<span class="text-center font-bold font-mono" style="font-family: 'Orbitron', sans-serif;">
Construction<br><span class="text-xs">(21-30)</span>
</span>
</div>
</div>
<!-- Balance -->
<div class="absolute top-0 left-0 w-1/2 h-1/2 galaxy-segment bg-orange-500"
style="--rotate-base: 135deg; transform: rotate(135deg);"
data-card="balance">
<div class="w-full h-full flex items-center justify-center segment-text" style="transform: rotate(-135deg);">
<span class="text-center font-bold font-mono" style="font-family: 'Orbitron', sans-serif;">
Balance<br><span class="text-xs">(31-40)</span>
</span>
</div>
</div>
<!-- Review -->
<div class="absolute top-0 left-0 w-1/2 h-1/2 galaxy-segment bg-red-500"
style="--rotate-base: 180deg; transform: rotate(180deg);"
data-card="review">
<div class="w-full h-full flex items-center justify-center segment-text" style="transform: rotate(-180deg);">
<span class="text-center font-bold font-mono" style="font-family: 'Orbitron', sans-serif;">
Review<br><span class="text-xs">(41-50)</span>
</span>
</div>
</div>
<!-- Wisdom -->
<div class="absolute top-0 left-0 w-1/2 h-1/2 galaxy-segment bg-green-500"
style="--rotate-base: 225deg; transform: rotate(225deg);"
data-card="wisdom">
<div class="w-full h-full flex items-center justify-center segment-text" style="transform: rotate(-225deg);">
<span class="text-center font-bold font-mono" style="font-family: 'Orbitron', sans-serif;">
Wisdom<br><span class="text-xs">(51-60)</span>
</span>
</div>
</div>
<!-- Freedom -->
<div class="absolute top-0 left-0 w-1/2 h-1/2 galaxy-segment bg-yellow-400"
style="--rotate-base: 270deg; transform: rotate(270deg);"
data-card="freedom">
<div class="w-full h-full flex items-center justify-center segment-text" style="transform: rotate(-270deg);">
<span class="text-center font-bold font-mono" style="font-family: 'Orbitron', sans-serif;">
Freedom<br><span class="text-xs">(61-70)</span>
</span>
</div>
</div>
<!-- Contemplation -->
<div class="absolute top-0 left-0 w-1/2 h-1/2 galaxy-segment bg-teal-400"
style="--rotate-base: 315deg; transform: rotate(315deg);"
data-card="contemplation">
<div class="w-full h-full flex items-center justify-center segment-text" style="transform: rotate(-315deg);">
<span class="text-center font-bold font-mono" style="font-family: 'Orbitron', sans-serif;">
Contemplation<br><span class="text-xs">(71-80)</span>
</span>
</div>
</div>
<!-- Galaxy Core -->
<div class="absolute top-1/2 left-1/2 w-24 h-24 galaxy-core rounded-full flex items-center justify-center transform -translate-x-1/2 -translate-y-1/2 z-30">
<span class="text-black text-center font-bold text-xs" style="font-family: 'Orbitron', sans-serif;">TIME<br>IS NOW</span>
</div>
</div>
</div>
</div>
<!-- Info Cards -->
<div class="fixed bottom-0 left-0 right-0 mx-auto mb-4 w-11/12 max-w-md p-6 info-card rounded-xl opacity-0 invisible transition-all duration-500" id="discovery-card">
<h2 class="text-xl font-bold mb-4 text-cyan-300" style="font-family: 'Orbitron', sans-serif;">0-10: Discovery</h2>
<p class="text-sm mb-4">Total sensory absorption. Physical development and language acquisition. The world is constant novelty and learning is exponential.</p>
<p class="text-xs text-pink-400 font-semibold">Symbolic Risk: Fragility of Beginning (Vulnerability to external factors and childhood accidents).</p>
<button class="mt-4 w-full py-2 bg-gradient-to-r from-purple-600 to-blue-500 rounded-lg font-bold text-sm hover:from-purple-700 hover:to-blue-600 transition-all" onclick="closeCard('discovery-card')">Close</button>
</div>
<div class="fixed bottom-0 left-0 right-0 mx-auto mb-4 w-11/12 max-w-md p-6 info-card rounded-xl opacity-0 invisible transition-all duration-500" id="identity-card">
<h2 class="text-xl font-bold mb-4 text-purple-300" style="font-family: 'Orbitron', sans-serif;">11-20: Identity</h2>
<p class="text-sm mb-4">Personality formation and search for belonging. Challenges of rules and beginning of independence. Time is perceived as fast and infinite.</p>
<p class="text-xs text-pink-400 font-semibold">Symbolic Risk: Impulsiveness (Risky behavior, traffic accidents, hasty decisions).</p>
<button class="mt-4 w-full py-2 bg-gradient-to-r from-purple-600 to-blue-500 rounded-lg font-bold text-sm hover:from-purple-700 hover:to-blue-600 transition-all" onclick="closeCard('identity-card')">Close</button>
</div>
<div class="fixed bottom-0 left-0 right-0 mx-auto mb-4 w-11/12 max-w-md p-6 info-card rounded-xl opacity-0 invisible transition-all duration-500" id="construction-card">
<h2 class="text-xl font-bold mb-4 text-pink-300" style="font-family: 'Orbitron', sans-serif;">21-30: Construction</h2>
<p class="text-sm mb-4">Focus on career, establishment of lasting relationships and financial independence. Period of high energy and belief in immortality.</p>
<p class="text-xs text-pink-400 font-semibold">Symbolic Risk: Stress and Burnout (Beginning of bad health habits and overwork).</p>
<button class="mt-4 w-full py-2 bg-gradient-to-r from-purple-600 to-blue-500 rounded-lg font-bold text-sm hover:from-purple-700 hover:to-blue-600 transition-all" onclick="closeCard('construction-card')">Close</button>
</div>
<div class="fixed bottom-0 left-0 right-0 mx-auto mb-4 w-11/12 max-w-md p-6 info-card rounded-xl opacity-0 invisible transition-all duration-500" id="balance-card">
<h2 class="text-xl font-bold mb-4 text-orange-300" style="font-family: 'Orbitron', sans-serif;">31-40: Balance</h2>
<p class="text-sm mb-4">Reconciliation between professional, family and personal life. Search for quality of life and stability. Time is already beginning to be valued.</p>
<p class="text-xs text-pink-400 font-semibold">Symbolic Risk: Sedentary Lifestyle and Silent Disease (Diabetes, hypertension, weight gain related to lifestyle).</p>
<button class="mt-4 w-full py-2 bg-gradient-to-r from-purple-600 to-blue-500 rounded-lg font-bold text-sm hover:from-purple-700 hover:to-blue-600 transition-all" onclick="closeCard('balance-card')">Close</button>
</div>
<div class="fixed bottom-0 left-0 right-0 mx-auto mb-4 w-11/12 max-w-md p-6 info-card rounded-xl opacity-0 invisible transition-all duration-500" id="review-card">
<h2 class="text-xl font-bold mb-4 text-red-300" style="font-family: 'Orbitron', sans-serif;">41-50: Review</h2>
<p class="text-sm mb-4">The being reassesses the choices made, questions the purpose and plans the second half of life. Need for renewal and new challenges.</p>
<p class="text-xs text-pink-400 font-semibold">Symbolic Risk: Health Alert (First important chronic diagnoses; need for radical change in habits).</p>
<button class="mt-4 w-full py-2 bg-gradient-to-r from-purple-600 to-blue-500 rounded-lg font-bold text-sm hover:from-purple-700 hover:to-blue-600 transition-all" onclick="closeCard('review-card')">Close</button>
</div>
<div class="fixed bottom-0 left-0 right-0 mx-auto mb-4 w-11/12 max-w-md p-6 info-card rounded-xl opacity-0 invisible transition-all duration-500" id="wisdom-card">
<h2 class="text-xl font-bold mb-4 text-green-300" style="font-family: 'Orbitron', sans-serif;">51-60: Wisdom</h2>
<p class="text-sm mb-4">Period of greatest influence and legacy. The application of knowledge for one's own benefit and that of the community. Consolidation of stability.</p>
<p class="text-xs text-pink-400 font-semibold">Symbolic Risk: Chronic Challenges (Aging-related diseases requiring daily management and focus on treatment).</p>
<button class="mt-4 w-full py-2 bg-gradient-to-r from-purple-600 to-blue-500 rounded-lg font-bold text-sm hover:from-purple-700 hover:to-blue-600 transition-all" onclick="closeCard('wisdom-card')">Close</button>
</div>
<div class="fixed bottom-0 left-0 right-0 mx-auto mb-4 w-11/12 max-w-md p-6 info-card rounded-xl opacity-0 invisible transition-all duration-500" id="freedom-card">
<h2 class="text-xl font-bold mb-4 text-yellow-300" style="font-family: 'Orbitron', sans-serif;">61-70: Freedom</h2>
<p class="text-sm mb-4">Retirement and total dedication to hobbies, travel and social relationships. Period of reduction of obligations and focus on personal satisfaction.</p>
<p class="text-xs text-pink-400 font-semibold">Symbolic Risk: Physical Decline (Higher risk of falls, reduced mobility and impact of pre-existing diseases).</p>
<button class="mt-4 w-full py-2 bg-gradient-to-r from-purple-600 to-blue-500 rounded-lg font-bold text-sm hover:from-purple-700 hover:to-blue-600 transition-all" onclick="closeCard('freedom-card')">Close</button>
</div>
<div class="fixed bottom-0 left-0 right-0 mx-auto mb-4 w-11/12 max-w-md p-6 info-card rounded-xl opacity-0 invisible transition-all duration-500" id="contemplation-card">
<h2 class="text-xl font-bold mb-4 text-teal-300" style="font-family: 'Orbitron', sans-serif;">71-80: Contemplation</h2>
<p class="text-sm mb-4">Focus on memories, health and acceptance of finitude. The being understands its journey and contemplates life in its entirety, with gratitude and peace.</p>
<p class="text-xs text-pink-400 font-semibold">Symbolic Risk: Maximum Fragility (General vulnerability, degenerative and cognitive diseases).</p>
<button class="mt-4 w-full py-2 bg-gradient-to-r from-purple-600 to-blue-500 rounded-lg font-bold text-sm hover:from-purple-700 hover:to-blue-600 transition-all" onclick="closeCard('contemplation-card')">Close</button>
</div>
<script>
// Segment click handlers
document.querySelectorAll('[data-card]').forEach(segment => {
segment.addEventListener('click', () => {
const cardId = segment.getAttribute('data-card') + '-card';
document.querySelectorAll('.fixed').forEach(card => {
card.classList.remove('opacity-100', 'visible');
card.classList.add('opacity-0', 'invisible');
});
document.getElementById(cardId).classList.add('opacity-100', 'visible');
document.getElementById(cardId).classList.remove('opacity-0', 'invisible');
});
});
function closeCard(id) {
document.getElementById(id).classList.remove('opacity-100', 'visible');
document.getElementById(id).classList.add('opacity-0', 'invisible');
}
// Close card when clicking outside
document.addEventListener('click', (e) => {
if (!e.target.closest('[data-card]') && !e.target.closest('.fixed')) {
document.querySelectorAll('.fixed').forEach(card => {
card.classList.remove('opacity-100', 'visible');
card.classList.add('opacity-0', 'invisible');
});
}
});
// Initialize feather icons
feather.replace();
</script>
</body>
</html>