azozm / index.html
azouzC's picture
Add 3 files
0808008 verified
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>عزوز - قارئ ملفات EQUP</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.11.4/dist/gsap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
@import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@400;700;900&display=swap');
body {
font-family: 'Tajawal', sans-serif;
overflow: hidden;
touch-action: manipulation;
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
}
.welcome-text {
text-shadow: 0 0 15px rgba(255, 105, 180, 0.7);
animation: pulse 2s infinite alternate;
}
.glossy-card {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border-radius: 20px;
box-shadow: 0 8px 32px 0 rgba(255, 105, 180, 0.37);
border: 1px solid rgba(255, 255, 255, 0.18);
}
.sparkle {
position: absolute;
width: 4px;
height: 4px;
background: white;
border-radius: 50%;
filter: blur(1px);
animation: sparkle-fall linear infinite;
}
@keyframes pulse {
0% { transform: scale(1); opacity: 1; }
100% { transform: scale(1.05); opacity: 0.9; }
}
@keyframes sparkle-fall {
0% { transform: translateY(-10px); opacity: 0; }
10% { opacity: 1; }
90% { opacity: 1; }
100% { transform: translateY(100vh); opacity: 0; }
}
.content-view {
background: linear-gradient(135deg, rgba(26, 26, 46, 0.9) 0%, rgba(22, 33, 62, 0.9) 50%, rgba(15, 52, 96, 0.9) 100%);
}
.text-content {
line-height: 2;
text-align: right;
font-size: 1.1rem;
}
.scrollbar-hide::-webkit-scrollbar {
display: none;
}
.scrollbar-hide {
-ms-overflow-style: none;
scrollbar-width: none;
}
.fade-in {
animation: fadeIn 0.5s ease-in-out;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.floating {
animation: floating 3s ease-in-out infinite;
}
@keyframes floating {
0% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
100% { transform: translateY(0px); }
}
</style>
</head>
<body class="h-screen w-full text-white relative overflow-hidden">
<!-- Welcome Screen -->
<div id="welcomeScreen" class="absolute inset-0 flex flex-col items-center justify-center z-50 transition-opacity duration-1000">
<div id="canvasContainer" class="absolute inset-0"></div>
<div class="glossy-card p-8 flex flex-col items-center justify-center relative overflow-hidden">
<div class="absolute inset-0 overflow-hidden">
<!-- Sparkle effects -->
<div id="sparkles"></div>
</div>
<div class="w-24 h-24 rounded-full bg-gradient-to-br from-pink-500 to-purple-600 flex items-center justify-center shadow-lg floating mb-6">
<i class="fas fa-book-open text-3xl text-white"></i>
</div>
<h1 class="welcome-text text-4xl font-bold mb-2 text-center">مرحبا بكم، عزوز 💗</h1>
<p class="text-pink-200 opacity-80">جاري تحميل ملفك...</p>
<div class="w-full bg-gray-700 rounded-full h-2.5 mt-6">
<div id="progressBar" class="bg-gradient-to-r from-pink-500 to-purple-600 h-2.5 rounded-full" style="width: 0%"></div>
</div>
</div>
</div>
<!-- Content Screen -->
<div id="contentScreen" class="absolute inset-0 opacity-0 pointer-events-none transition-opacity duration-1000 content-view">
<div class="container mx-auto p-6 h-full flex flex-col">
<div class="flex items-center justify-between mb-6">
<h2 class="text-2xl font-bold text-pink-400">ملف EQUP الخاص بك</h2>
<div class="w-10 h-10 rounded-full bg-gradient-to-br from-pink-500 to-purple-600 flex items-center justify-center shadow-lg">
<i class="fas fa-bookmark text-white"></i>
</div>
</div>
<div id="fileContent" class="flex-1 overflow-y-auto scrollbar-hide glossy-card p-6 text-content">
<!-- Content will be loaded here -->
</div>
<div class="mt-4 text-center text-pink-200 text-sm opacity-70">
<p>تم التحميل بنجاح <span id="filePath" class="font-bold">/path/to/your/file.equb</span></p>
</div>
</div>
</div>
<script>
// Initialize 3D scene
const welcomeScreen = document.getElementById('welcomeScreen');
const contentScreen = document.getElementById('contentScreen');
const fileContent = document.getElementById('fileContent');
const filePath = document.getElementById('filePath');
const sparklesContainer = document.getElementById('sparkles');
const progressBar = document.getElementById('progressBar');
// Create sparkles
function createSparkles() {
for (let i = 0; i < 30; i++) {
const sparkle = document.createElement('div');
sparkle.className = 'sparkle';
sparkle.style.left = `${Math.random() * 100}%`;
sparkle.style.animationDuration = `${3 + Math.random() * 5}s`;
sparkle.style.animationDelay = `${Math.random() * 3}s`;
sparkle.style.width = `${2 + Math.random() * 3}px`;
sparkle.style.height = sparkle.style.width;
sparklesContainer.appendChild(sparkle);
}
}
// Initialize 3D background
function init3DBackground() {
const container = document.getElementById('canvasContainer');
const canvas = document.createElement('canvas');
container.appendChild(canvas);
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer({ canvas, alpha: true });
renderer.setSize(window.innerWidth, window.innerHeight);
// Create a floating cube
const geometry = new THREE.BoxGeometry(1.5, 1.5, 1.5);
const material = new THREE.MeshPhongMaterial({
color: 0xff69b4,
emissive: 0xff1493,
specular: 0xffffff,
shininess: 100,
transparent: true,
opacity: 0.7,
wireframe: false
});
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
// Add lights
const ambientLight = new THREE.AmbientLight(0x404040);
scene.add(ambientLight);
const directionalLight = new THREE.DirectionalLight(0xffffff, 1);
directionalLight.position.set(1, 1, 1);
scene.add(directionalLight);
camera.position.z = 3;
// Animation loop
function animate() {
requestAnimationFrame(animate);
cube.rotation.x += 0.005;
cube.rotation.y += 0.01;
renderer.render(scene, camera);
}
animate();
// Handle resize
window.addEventListener('resize', () => {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
});
}
// Simulate loading and transition
function simulateLoading() {
let progress = 0;
const interval = setInterval(() => {
progress += 5;
progressBar.style.width = `${progress}%`;
if (progress >= 100) {
clearInterval(interval);
// Animate welcome screen out
gsap.to(welcomeScreen, {
opacity: 0,
duration: 0.8,
onComplete: () => {
welcomeScreen.classList.add('hidden');
welcomeScreen.classList.remove('flex');
// Animate content screen in
contentScreen.classList.remove('opacity-0', 'pointer-events-none');
contentScreen.classList.add('opacity-100', 'pointer-events-auto');
// Load the .equb file
loadEqubFile();
}
});
}
}, 100);
}
// Function to load the .equb file
function loadEqubFile() {
// In a real app, you would fetch the file from the specified path
// For this demo, we'll use sample content
// Replace this with your actual file path
const path = "/storage/emulated/0/Documents/special.equb";
filePath.textContent = path;
// Sample content - replace with actual file content
const sampleContent = `
<h3 class="text-xl font-bold text-pink-400 mb-4">ملف EQUB الخاص بي</h3>
<p>هذا هو محتوى ملفك الشخصي. يمكنك رؤية كل التفاصيل هنا بطريقة أنيقة وسلسة.</p>
<p class="mt-4">المعلومات المهمة:</p>
<ul class="list-disc pr-5 mt-2 space-y-2">
<li>التاريخ: ${new Date().toLocaleDateString('ar-EG')}</li>
<li>الحالة: نشط</li>
<li>الإصدار: 1.0.0</li>
</ul>
<p class="mt-4">يمكنك التمرير لأسفل لرؤية المزيد من المحتوى إذا كان هناك المزيد من البيانات في ملفك.</p>
<div class="mt-6 p-4 bg-gradient-to-r from-pink-500/20 to-purple-600/20 rounded-lg border border-pink-400/30">
<p class="font-bold text-pink-300">ملاحظة:</p>
<p>هذا التطبيق مصمم خصيصًا لعرض ملف EQUB الخاص بك بطريقة أنيقة وسهلة القراءة.</p>
</div>
`;
fileContent.innerHTML = sampleContent;
// Add fade-in effect to content
gsap.from(fileContent, {
opacity: 0,
y: 20,
duration: 0.8,
ease: "power2.out"
});
}
// Initialize everything when DOM is loaded
document.addEventListener('DOMContentLoaded', () => {
createSparkles();
init3DBackground();
// Start loading simulation after a brief delay
setTimeout(simulateLoading, 500);
});
</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=azouzC/azozm" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>