-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
114 lines (113 loc) · 4.33 KB
/
index.html
File metadata and controls
114 lines (113 loc) · 4.33 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/icon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="rgb(var(--color-primary-start))">
<link rel="manifest" href="/manifest.json">
<title>Apna Code Reviewer</title>
<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=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
darkMode: 'class',
theme: {
extend: {
colors: {
background: 'rgb(var(--color-background) / <alpha-value>)',
surface: 'rgb(var(--color-surface) / <alpha-value>)',
primary: 'rgb(var(--color-text-primary) / <alpha-value>)',
secondary: 'rgb(var(--color-text-secondary) / <alpha-value>)',
'primary-start': 'rgb(var(--color-primary-start) / <alpha-value>)',
'primary-end': 'rgb(var(--color-primary-end) / <alpha-value>)',
'btn-secondary-bg': 'rgb(var(--color-btn-secondary-bg) / <alpha-value>)',
'btn-secondary-hover-bg': 'rgb(var(--color-btn-secondary-hover-bg) / <alpha-value>)',
'border-default': 'rgb(var(--color-border-default) / <alpha-value>)',
'severity-critical': 'rgb(var(--color-severity-critical) / <alpha-value>)',
'severity-warning': 'rgb(var(--color-severity-warning) / <alpha-value>)',
'severity-suggestion': 'rgb(var(--color-severity-suggestion) / <alpha-value>)',
},
fontFamily: {
sans: ['Inter', 'sans-serif'],
mono: ['JetBrains Mono', 'monospace'],
},
animation: {
'fade-in': 'fadeIn 0.5s ease-out forwards',
'gradient-bg': 'gradient-bg 15s ease infinite',
},
keyframes: {
fadeIn: {
'0%': { opacity: 0, transform: 'translateY(10px)' },
'100%': { opacity: 1, transform: 'translateY(0)' },
},
'gradient-bg': {
'0%': { backgroundPosition: '0% 50%' },
'50%': { backgroundPosition: '100% 50%' },
'100%': { backgroundPosition: '0% 50%' },
}
}
}
}
}
</script>
<style>
body::before {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
background: linear-gradient(-45deg, var(--gradient-1), var(--gradient-2), var(--gradient-3), var(--gradient-4));
background-size: 400% 400%;
animation: gradient-bg 15s ease infinite;
transition: opacity 0.5s linear;
}
.custom-scrollbar::-webkit-scrollbar {
width: 8px;
}
.custom-scrollbar::-webkit-scrollbar-track {
background: transparent;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
background-color: rgba(148, 163, 184, 0.4);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
background-color: rgba(148, 163, 184, 0.6);
}
</style>
<script type="importmap">
{
"imports": {
"react/": "https://esm.sh/react@^19.1.1/",
"react": "https://esm.sh/react@^19.1.1",
"react-dom/": "https://esm.sh/react-dom@^19.1.1/",
"@google/genai": "https://esm.sh/@google/genai@^1.15.0"
}
}
</script>
<link rel="stylesheet" href="/index.css">
</head>
<body class="bg-background text-primary">
<div id="root"></div>
<script type="module" src="/index.tsx"></script>
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/sw.js').then(registration => {
console.log('SW registered: ', registration);
}).catch(registrationError => {
console.log('SW registration failed: ', registrationError);
});
});
}
</script>
</body>
</html>