-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
97 lines (87 loc) · 5.3 KB
/
index.html
File metadata and controls
97 lines (87 loc) · 5.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" href="/favicon.png">
<link rel="apple-touch-icon" href="/favicon.png" />
<link rel="manifest" href="/manifest.json" />
<meta name="theme-color" content="#0a0a0f" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, maximum-scale=5" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="mobile-web-app-capable" content="yes" />
<meta http-equiv="X-Content-Type-Options" content="nosniff" />
<meta name="referrer" content="strict-origin-when-cross-origin" />
<title>Bibue</title>
<meta name="description" content="Discover your next favorite manga with Bibue. Track your watchlist, explore trending titles, get personalized recommendations, and connect with the community.">
<meta name="author" content="Bibue" />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://bibue.net/og-image.jpg">
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@Bibue" />
<meta name="twitter:image" content="https://bibue.net/og-image.jpg">
<!-- Preconnect to critical origins (max 4) -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="preconnect" href="https://s4.anilist.co" crossorigin />
<link rel="preconnect" href="https://dsquhilpqcwqydsfhooi.supabase.co" />
<!-- DNS-prefetch for secondary origins -->
<link rel="dns-prefetch" href="https://graphql.anilist.co" />
<link rel="dns-prefetch" href="https://cdn.myanimelist.net" />
<link rel="dns-prefetch" href="https://api.jikan.moe" />
<link rel="dns-prefetch" href="https://uploads.mangadex.org" />
<!-- Preload critical font (Inter 400/500/700) for faster FCP -->
<link
rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap"
as="style"
onload="this.onload=null;this.rel='stylesheet'"
/>
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap" /></noscript>
<!-- Non-critical font loaded async -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&display=swap" media="print" onload="this.media='all'" />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&display=swap" /></noscript>
<!-- Google AdSense - deferred well after interactive -->
<script>
function loadAds(){var s=document.createElement('script');s.src='https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2458670095989987';s.crossOrigin='anonymous';s.async=true;document.head.appendChild(s);}
if('requestIdleCallback' in window){requestIdleCallback(loadAds,{timeout:8000});}else{setTimeout(loadAds,8000);}
</script>
<!-- Inline critical CSS for instant first paint -->
<style>
#root { min-height: 100vh; }
body { margin: 0; font-family: 'Inter', system-ui, -apple-system, sans-serif; background: #0a0a0f; color: #e2e2e2; }
.app-shell { max-width: 100%; min-height: 100vh; }
.app-shell-nav { height: 56px; background: #0a0a0f; border-bottom: 1px solid rgba(255,255,255,0.06); display: flex; align-items: center; padding: 0 16px; }
.app-shell-nav .logo { font-size: 20px; font-weight: 700; color: #e2e2e2; }
.app-shell-hero { width: 100%; height: 70vh; position: relative; overflow: hidden; }
.sk {
background: linear-gradient(90deg, #1a1a2e 25%, #2a2a3e 50%, #1a1a2e 75%);
background-size: 200% 100%;
animation: shimmer 1.5s infinite;
border-radius: 8px;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
</style>
<meta property="og:title" content="Bibue">
<meta name="twitter:title" content="Bibue">
<meta property="og:description" content="Discover your next favorite manga with Bibue. Track your watchlist, explore trending titles, get personalized recommendations, and connect with the community.">
<meta name="twitter:description" content="Discover your next favorite manga with Bibue. Track your watchlist, explore trending titles, get personalized recommendations, and connect with the community.">
</head>
<body>
<div id="root">
<!-- SSR-like shell for instant FCP – React replaces this on mount -->
<div class="app-shell" aria-hidden="true">
<nav class="app-shell-nav"><span class="logo">Bibue</span></nav>
<div class="app-shell-hero sk"></div>
<div style="padding:16px;display:flex;gap:12px;overflow:hidden;">
<div class="sk" style="width:128px;height:192px;flex-shrink:0;"></div>
<div class="sk" style="width:128px;height:192px;flex-shrink:0;"></div>
<div class="sk" style="width:128px;height:192px;flex-shrink:0;"></div>
</div>
</div>
</div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>