Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
97 lines (94 loc) 路 3.75 KB
/
Copy pathindex.html
File metadata and controls
97 lines (94 loc) 路 3.75 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" class="dark">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>LeoPaint | Visual Synthesis</title>
<!-- Favicon: The "L" Logo -->
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none'%3E%3Ccircle cx='50' cy='50' r='50' fill='%231c1917'/%3E%3Ctext x='50' y='50' font-family='serif' font-style='italic' font-weight='bold' font-size='60' fill='white' text-anchor='middle' dy='.35em'%3EL%3C/text%3E%3C/svg%3E" />
<!-- Fonts: EB Garamond to approximate Claude Garamond, Inter for fallback UI elements -->
<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=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
<!-- Tailwind CSS -->
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
darkMode: 'class',
theme: {
extend: {
fontFamily: {
serif: ['"EB Garamond"', 'serif'],
sans: ['"Inter"', 'sans-serif'],
},
colors: {
noir: {
950: '#050505', // Ultra dark background
900: '#0a0a0a',
800: '#171717',
700: '#262626',
300: '#d6d3d1', // Text primary
500: '#78716c', // Text secondary
}
},
animation: {
'pulse-slow': 'pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite',
}
}
}
}
</script>
<script>
// Polyfill process.env for browser environments to prevent crash on Vercel
window.process = window.process || { env: {} };
</script>
<style>
body {
background-color: #050505;
color: #d6d3d1;
font-family: 'EB Garamond', serif;
-webkit-font-smoothing: antialiased;
transition: background-color 0.5s ease, color 0.5s ease;
}
.light-mode-bg {
background-color: #f5f5f4; /* stone-100 */
color: #1c1917; /* stone-900 */
}
/* Custom Scrollbar for a cleaner look */
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: #57534e;
border-radius: 3px;
}
/* Subtle noise texture */
.bg-noise {
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.03'/%3E%3C/svg%3E");
}
</style>
<script type="importmap">
{
"imports": {
"react": "https://esm.sh/react@18.3.1",
"react/": "https://esm.sh/react@18.3.1/",
"react-dom": "https://esm.sh/react-dom@18.3.1",
"react-dom/": "https://esm.sh/react-dom@18.3.1/",
"lucide-react": "https://esm.sh/lucide-react@0.344.0?external=react",
"framer-motion": "https://esm.sh/framer-motion@11.0.8?external=react,react-dom",
"@gradio/client": "https://esm.sh/@gradio/client@2.0.1",
"@google/genai": "https://esm.sh/@google/genai@1.34.0",
"qrcode.react": "https://esm.sh/qrcode.react@3.1.0?external=react",
"canvas-confetti": "https://esm.sh/canvas-confetti@1.9.2"
}
}
</script>
</head>
<body>
<div id="root"></div>
<script type="module" src="/index.tsx"></script>
</body>
</html>