Files
PlexPlaylistSync/sample-front-end/index.html
T
Koha9 bc04867950 Add a manual sync button to the UI, along with a sync status indicator bar.
Merge commit '4158d999dec87b73f59b3ee5d51e2f3296ee3ad7'
2025-11-29 03:53:38 +09:00

75 lines
2.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PlexSync Manager</title>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
plex: {
orange: '#e5a00d',
dark: '#1f2937',
darker: '#111827',
card: '#374151'
}
},
animation: {
'scroll-out-left': 'scroll-out-left 1s linear infinite',
'scroll-out-right': 'scroll-out-right 1s linear infinite',
}
}
}
}
</script>
<style>
/* Custom scrollbar for webkit to match dark theme */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: #111827;
}
::-webkit-scrollbar-thumb {
background: #4b5563;
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: #6b7280;
}
/*
Symmetrical Diagonal Scroll Animations
Pattern width: 40px (20px color + 20px transparent).
Diagonal length: 40 * sqrt(2) ≈ 56.57px.
Left Side: Anchored to Right (Center). Moves Left (increases right offset).
Right Side: Anchored to Left (Center). Moves Right (increases left offset).
*/
@keyframes scroll-out-left {
0% { background-position: right 0 top 0; }
100% { background-position: right 56.57px top 0; }
}
@keyframes scroll-out-right {
0% { background-position: left 0 top 0; }
100% { background-position: left 56.57px top 0; }
}
</style>
<script type="importmap">
{
"imports": {
"lucide-react": "https://aistudiocdn.com/lucide-react@^0.555.0",
"react/": "https://aistudiocdn.com/react@^19.2.0/",
"react": "https://aistudiocdn.com/react@^19.2.0",
"react-dom/": "https://aistudiocdn.com/react-dom@^19.2.0/"
}
}
</script>
</head>
<body class="bg-gray-900 text-gray-100 antialiased min-h-screen">
<div id="root"></div>
</body>
</html>