Yuyuqt
add: authorized pages, firebase
d8a7fc4
Raw
History Blame Contribute Delete
3.05 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>LibraryLuxe | Management System</title>
<base href="/" />
<link rel="stylesheet" href="css/app.css" />
<link rel="icon" type="image/png" href="favicon.png" />
<link href="BlazorWebAssembly.styles.css" rel="stylesheet" />
<!-- Premium Typography -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700&display=swap" rel="stylesheet">
<!-- Tailwind CSS CDN -->
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: 'var(--primary)',
hover: 'var(--primary-hover)',
main: 'var(--text-main)',
muted: 'var(--text-muted)',
body: 'var(--bg-body)',
card: 'var(--bg-card)',
nav: 'var(--bg-nav)',
border: 'var(--border)',
},
borderRadius: {
'xl': 'var(--border-radius)',
}
}
}
}
</script>
<!-- Anti-Flicker Theme Script -->
<script>
(function() {
const savedTheme = localStorage.getItem('app-theme') || 'light';
document.documentElement.setAttribute('data-theme', savedTheme);
})();
</script>
</head>
<body>
<div id="app">
<div class="loading-container">
<div class="loader"></div>
<p>Entering LibraryLuxe...</p>
</div>
</div>
<div id="blazor-error-ui">
An unhandled error has occurred.
<a href="" class="reload">Reload</a>
<a class="dismiss">๐Ÿ—™</a>
</div>
<script src="_framework/blazor.webassembly.js"></script>
<!-- Firebase Push Notifications -->
<script type="module" src="firebase-init.js"></script>
<script>
window.showToast = function (message, type) {
alert(message); // simple fallback, can be enhanced with UI toast
};
</script>
</body>
<style>
.loading-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
font-family: 'Outfit', sans-serif;
color: #3b82f6;
}
.loader {
border: 4px solid #f3f3f3;
border-top: 4px solid #3b82f6;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
margin-bottom: 1rem;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</html>