Files
xtremflow/web/index.html
T
MichaelandClaude Fable 5 e332895d7d feat(design): Projector Noir theme - tungsten amber on film-black
Full visual refonte replacing the generic neon-blue glass look:

- palette: warm film-black surface ladder, tungsten amber primary,
  warm taupe secondary, verdigris teal tertiary; semantic and
  category colors retuned to match (coral live, gold movies)
- typography: Syne (display/headlines) + Instrument Sans (body/UI)
  replace Space Grotesk/Inter/Outfit across all screens
- glassmorphism tokens warmed (amber inner glow, warm-white borders)
- web player theme.css + index.html loader mirror the new tokens
- hardcoded Colors.blue* in streaming settings and recordings tabs
  now use AppColors tokens
- DESIGN_SYSTEM.md updated to v3.0 Projector Noir

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 14:52:45 +02:00

114 lines
2.8 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<base href="$FLUTTER_BASE_HREF">
<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="XtremFlow - Modern IPTV Streaming Application">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="apple-mobile-web-app-title" content="XtremFlow">
<meta name="theme-color" content="#0A0E1A">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>XtremFlow IPTV</title>
<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png">
<link rel="apple-touch-icon" href="icons/Icon-192.png">
<link rel="manifest" href="manifest.json">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background: linear-gradient(135deg, #0B0A08 0%, #1B1812 100%);
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
font-family: 'Inter', 'Roboto', sans-serif;
overflow: hidden;
}
/* Fullscreen mode - prevent scrollbars */
:fullscreen,
::backdrop {
overflow: hidden !important;
}
*:fullscreen,
*:fullscreen * {
overflow: hidden !important;
}
.loading-container {
text-align: center;
animation: fadeIn 0.5s ease-out;
}
.logo {
font-size: 48px;
font-weight: 700;
background: linear-gradient(135deg, #E8941A 0%, #FFC36A 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 24px;
letter-spacing: -1px;
}
.spinner {
width: 40px;
height: 40px;
margin: 0 auto 16px;
border: 3px solid rgba(243, 154, 31, 0.2);
border-top-color: #F39A1F;
border-radius: 50%;
animation: spin 1s linear infinite;
}
.loading-text {
color: rgba(255, 255, 255, 0.7);
font-size: 14px;
font-weight: 500;
font-family: 'Outfit', sans-serif;
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
</style>
</head>
<body>
<div class="loading-container">
<div class="logo">XtremFlow</div>
<div class="spinner"></div>
<div class="loading-text">Loading...</div>
</div>
<!-- HLS.js for HLS video playback on Chrome/Firefox (vendored, pinned) -->
<script src="vendor/hls.min.js"></script>
<script src="flutter_bootstrap.js" async></script>
</body>
</html>