Class_Of_Learners / cast /CastFlow.html
NeelAniGamer's picture
Updated favicons, dark mode logo, and completely resolved large files via LFS
a4fb0f8
Raw
History Blame Contribute Delete
7.45 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CastFlow | Premium Casting</title>
<link rel="manifest" href="manifest.json">
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&family=Work+Sans:wght@300;400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="styles.css">
<!-- Lucide Icons -->
<script src="https://unpkg.com/lucide@latest"></script>
<script src="app.js" defer></script>
</head>
<body>
<!-- Animated Ambient Background -->
<div class="ambient-bg"></div>
<!-- UI Overlay -->
<div id="desktop">
<!-- Glassmorphism Top Bar -->
<header id="top-bar" class="glass-element">
<div class="logo">
<i data-lucide="cast" class="logo-icon-svg"></i>
CastFlow
</div>
<nav class="nav-tabs">
<button class="nav-btn active focusable" data-target="panel-about">About</button>
<button class="nav-btn focusable" data-target="panel-cast">Cast Viewer</button>
<button class="nav-btn focusable" data-target="panel-share">File Share</button>
</nav>
<div class="connection-module">
<!-- Clock Toggle Button -->
<button id="clock-toggle-btn" class="nav-btn focusable" title="Toggle Clock Overlay">
<i data-lucide="clock"></i>
</button>
<div id="connection-status" class="status-disconnected">
<span class="pulse-dot"></span> <span id="status-text">Disconnected</span>
</div>
<div class="controls">
<input type="text" id="target-ip" class="glass-input" placeholder="Device IP (e.g. 192.168.1.5)">
<button id="connect-btn" class="glass-btn primary focusable">Connect</button>
</div>
</div>
</header>
<!-- Fullscreen Clock Overlay -->
<div id="clock-overlay" style="display: none;">
<button id="close-clock-btn" class="clock-close-btn" title="Close Clock">
<i data-lucide="x"></i>
</button>
<div class="clock-display">
<span id="clock-time">12:00:00</span>
<span id="clock-period">am</span>
</div>
</div>
<!-- Main Content Area -->
<main id="main-content">
<!-- Panel: About & Download -->
<section id="panel-about" class="glass-panel active">
<div class="about-layout">
<div class="hero-content">
<h1>Seamlessly Cast & Share.</h1>
<p>Experience the most premium way to share files, cast screens, and control your device locally.</p>
<div class="action-buttons">
<button class="glass-btn primary big focusable">
<i data-lucide="download"></i> Download APK
</button>
<button class="glass-btn secondary big focusable" id="show-qr-btn">
<i data-lucide="qr-code"></i> Show QR Code
</button>
</div>
</div>
<div class="hero-mockup glass-card">
<i data-lucide="smartphone" class="mockup-icon"></i>
<p>Scan to Connect</p>
<!-- QR Code placeholder -->
<div id="qr-code-container" class="qr-placeholder"></div>
</div>
</div>
</section>
<!-- Panel: Cast Viewer -->
<section id="panel-cast" class="glass-panel">
<div class="panel-layout">
<!-- Stream Container -->
<div id="screen-container">
<img id="stream-img" src="" style="display:none;" />
<div id="placeholder" class="glass-card">
<i data-lucide="monitor-smartphone" class="placeholder-icon"></i>
<h2>Ready to Connect</h2>
<p>Enter your phone's IP address to begin casting.</p>
</div>
</div>
<!-- Remote Control Sidebar -->
<aside id="remote-control" class="glass-sidebar">
<h3>TV Remote</h3>
<div class="d-pad">
<button class="d-btn up focusable" data-key="up"><i data-lucide="chevron-up"></i></button>
<div class="d-row">
<button class="d-btn left focusable" data-key="left"><i data-lucide="chevron-left"></i></button>
<button class="d-btn ok focusable" data-key="ok">OK</button>
<button class="d-btn right focusable" data-key="right"><i data-lucide="chevron-right"></i></button>
</div>
<button class="d-btn down focusable" data-key="down"><i data-lucide="chevron-down"></i></button>
</div>
<div class="d-actions">
<button class="action-btn focusable" data-key="home"><i data-lucide="home"></i> Home</button>
<button class="action-btn focusable" data-key="back"><i data-lucide="arrow-left"></i> Back</button>
</div>
</aside>
</div>
</section>
<!-- Panel: Share Files -->
<section id="panel-share" class="glass-panel">
<div class="share-layout">
<div class="share-card upload-zone glass-card" id="drop-zone">
<i data-lucide="upload-cloud" class="upload-icon"></i>
<h2>Send to Phone</h2>
<p>Drag & drop files here</p>
<span class="or-divider">or</span>
<button class="glass-btn primary focusable" onclick="document.getElementById('file-input').click()">Browse Files</button>
<input type="file" id="file-input" style="display: none;" multiple>
</div>
<div class="share-card download-list glass-card">
<h2>Available Files</h2>
<p class="subtitle">Shared from your phone</p>
<div id="shared-files-container" class="file-list">
<div class="empty-state">
<i data-lucide="folder-open"></i>
<p>No files currently shared.</p>
</div>
</div>
</div>
</div>
</section>
</main>
</div>
<!-- QR Code Script (to generate QR dynamically if needed) -->
<script src="https://cdn.rawgit.com/davidshimjs/qrcodejs/gh-pages/qrcode.min.js"></script>
<script>
lucide.createIcons();
</script>
</body>
</html>