|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>Kode1 - Collaborative IDE</title> |
|
|
<link rel="icon" type="image/x-icon" href="/static/favicon.ico"> |
|
|
<script src="https://cdn.tailwindcss.com"></script> |
|
|
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> |
|
|
<script src="https://unpkg.com/feather-icons"></script> |
|
|
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.globe.min.js"></script> |
|
|
<style> |
|
|
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); |
|
|
body { |
|
|
font-family: 'Inter', sans-serif; |
|
|
background-color: #0f172a; |
|
|
} |
|
|
.editor-container { |
|
|
height: calc(100vh - 120px); |
|
|
} |
|
|
.collaborator-cursor { |
|
|
position: absolute; |
|
|
width: 2px; |
|
|
height: 20px; |
|
|
} |
|
|
.collaborator-label { |
|
|
position: absolute; |
|
|
top: -20px; |
|
|
left: -2px; |
|
|
font-size: 12px; |
|
|
padding: 2px 6px; |
|
|
border-radius: 4px; |
|
|
color: white; |
|
|
white-space: nowrap; |
|
|
} |
|
|
</style> |
|
|
</head> |
|
|
<body class="bg-slate-900 text-slate-100"> |
|
|
|
|
|
<nav class="bg-slate-800 border-b border-slate-700 px-6 py-3 flex items-center justify-between"> |
|
|
<div class="flex items-center space-x-2"> |
|
|
<div class="w-8 h-8 rounded-lg bg-indigo-600 flex items-center justify-center"> |
|
|
<i data-feather="code" class="text-white"></i> |
|
|
</div> |
|
|
<span class="text-xl font-bold">Kode1</span> |
|
|
</div> |
|
|
|
|
|
<div class="flex items-center space-x-4"> |
|
|
<button class="flex items-center space-x-1 bg-indigo-600 hover:bg-indigo-700 px-4 py-2 rounded-lg transition"> |
|
|
<i data-feather="plus"></i> |
|
|
<span>New Project</span> |
|
|
</button> |
|
|
<button class="flex items-center space-x-1 bg-slate-700 hover:bg-slate-600 px-4 py-2 rounded-lg transition"> |
|
|
<i data-feather="share-2"></i> |
|
|
<span>Share</span> |
|
|
</button> |
|
|
<div class="w-8 h-8 rounded-full bg-slate-600 flex items-center justify-center"> |
|
|
<i data-feather="user"></i> |
|
|
</div> |
|
|
</div> |
|
|
</nav> |
|
|
|
|
|
|
|
|
<div class="flex h-screen"> |
|
|
|
|
|
<div class="w-64 bg-slate-800 border-r border-slate-700 flex flex-col"> |
|
|
<div class="p-4 border-b border-slate-700"> |
|
|
<h2 class="font-semibold text-lg">Project Files</h2> |
|
|
</div> |
|
|
<div class="flex-1 overflow-y-auto p-2"> |
|
|
<div class="space-y-1"> |
|
|
<div class="flex items-center p-2 rounded hover:bg-slate-700 cursor-pointer"> |
|
|
<i data-feather="folder" class="mr-2 text-amber-400"></i> |
|
|
<span>src</span> |
|
|
</div> |
|
|
<div class="ml-6 flex items-center p-2 rounded hover:bg-slate-700 cursor-pointer"> |
|
|
<i data-feather="file-text" class="mr-2 text-blue-400"></i> |
|
|
<span>App.js</span> |
|
|
</div> |
|
|
<div class="ml-6 flex items-center p-2 rounded hover:bg-slate-700 cursor-pointer"> |
|
|
<i data-feather="file-text" class="mr-2 text-blue-400"></i> |
|
|
<span>index.js</span> |
|
|
</div> |
|
|
<div class="flex items-center p-2 rounded hover:bg-slate-700 cursor-pointer"> |
|
|
<i data-feather="folder" class="mr-2 text-amber-400"></i> |
|
|
<span>public</span> |
|
|
</div> |
|
|
<div class="ml-6 flex items-center p-2 rounded hover:bg-slate-700 cursor-pointer"> |
|
|
<i data-feather="file-text" class="mr-2 text-blue-400"></i> |
|
|
<span>index.html</span> |
|
|
</div> |
|
|
<div class="flex items-center p-2 rounded hover:bg-slate-700 cursor-pointer"> |
|
|
<i data-feather="file-text" class="mr-2 text-green-400"></i> |
|
|
<span>package.json</span> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="p-4 border-t border-slate-700"> |
|
|
<div class="flex items-center justify-between"> |
|
|
<h3 class="font-medium">Collaborators</h3> |
|
|
<span class="bg-green-500 w-2 h-2 rounded-full"></span> |
|
|
</div> |
|
|
<div class="mt-2 space-y-2"> |
|
|
<div class="flex items-center"> |
|
|
<div class="w-6 h-6 rounded-full bg-purple-500 mr-2"></div> |
|
|
<span class="text-sm">Alex Morgan</span> |
|
|
</div> |
|
|
<div class="flex items-center"> |
|
|
<div class="w-6 h-6 rounded-full bg-amber-500 mr-2"></div> |
|
|
<span class="text-sm">Taylor Kim</span> |
|
|
</div> |
|
|
<div class="flex items-center"> |
|
|
<div class="w-6 h-6 rounded-full bg-emerald-500 mr-2"></div> |
|
|
<span class="text-sm">Jordan Smith</span> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="flex-1 flex flex-col"> |
|
|
<div class="border-b border-slate-700 px-4 py-2 flex items-center"> |
|
|
<div class="flex space-x-1"> |
|
|
<button class="px-3 py-1 rounded hover:bg-slate-700">File</button> |
|
|
<button class="px-3 py-1 rounded hover:bg-slate-700">Edit</button> |
|
|
<button class="px-3 py-1 rounded hover:bg-slate-700">View</button> |
|
|
<button class="px-3 py-1 rounded hover:bg-slate-700">Run</button> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="flex-1 editor-container relative"> |
|
|
|
|
|
<div id="editor" class="absolute inset-0 bg-slate-900"></div> |
|
|
|
|
|
|
|
|
<div class="absolute" style="top: 120px; left: 320px;"> |
|
|
<div class="collaborator-cursor bg-purple-500"> |
|
|
<div class="collaborator-label bg-purple-500">Alex</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="absolute" style="top: 240px; left: 480px;"> |
|
|
<div class="collaborator-cursor bg-amber-500"> |
|
|
<div class="collaborator-label bg-amber-500">Taylor</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="w-80 bg-slate-800 border-l border-slate-700 flex flex-col"> |
|
|
<div class="p-4 border-b border-slate-700"> |
|
|
<h2 class="font-semibold text-lg">Output</h2> |
|
|
</div> |
|
|
<div class="flex-1 p-4"> |
|
|
<div class="bg-slate-900 rounded-lg p-4 h-full font-mono text-sm overflow-y-auto"> |
|
|
<div class="text-green-400">$ npm start</div> |
|
|
<div class="text-white">Starting development server...</div> |
|
|
<div class="text-white">Compiled successfully!</div> |
|
|
<div class="text-white">Local: http://localhost:3000</div> |
|
|
<div class="text-white">On Your Network: http://192.168.1.5:3000</div> |
|
|
<div class="text-yellow-400">Note: The development server is running in development mode.</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<script> |
|
|
feather.replace(); |
|
|
|
|
|
|
|
|
VANTA.GLOBE({ |
|
|
el: "#editor", |
|
|
mouseControls: true, |
|
|
touchControls: true, |
|
|
gyroControls: false, |
|
|
minHeight: 200.00, |
|
|
minWidth: 200.00, |
|
|
scale: 1.00, |
|
|
scaleMobile: 1.00, |
|
|
color: 0x3366ff, |
|
|
color2: 0x000000, |
|
|
backgroundColor: 0x0f172a, |
|
|
size: 1.00, |
|
|
lineHeight: 18.50, |
|
|
spacing: 17.00, |
|
|
speed: 0.70 |
|
|
}); |
|
|
</script> |
|
|
</body> |
|
|
</html> |
|
|
|