Diagrammer 1.01
by velo_ninja
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Diagram Editor</title>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/konva.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
/* Reset & Base */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { display: flex; height: 100vh; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: #eef1f5; overflow: hidden; }
:root { --border-radius: 5px; --dark: #2c3e50; --transition: all 0.3s ease; }
/* Toolbar */
#toolbar {
width: 260px;
background: var(--dark);
padding: 20px;
display: flex;
flex-direction: column;
gap: 15px;
box-shadow: 2px 0 10px rgba(0,0,0,0.1);
color: #ecf0f1;
flex-shrink: 0;
}
.tool-section {
display: flex;
flex-direction: column;
gap: 10px;
}
.tool-section h3 {
color: #ecf0f1;
font-size: 16px;
margin-bottom: 5px;
}
#toolbar button {
background: #3498db;
color: #fff;
border: none;
border-radius: var(--border-radius);
padding: 12px;
font-size: 14px;
cursor: pointer;
transition: var(--transition), transform 0.2s ease;
}
#toolbar button:hover {
background: #5dade2;
transform: translateY(-2px);
}
/* Canvas Container */
#container {
flex: 1;
margin: 20px;
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
position: relative;
overflow: hidden;
}
/* Context Menu */
#context-menu {
position: absolute;
display: none;
background: #fff;
border-radius: var(--border-radius);
box-shadow: 0 4px 15px rgba(0,0,0,0.2);
z-index: 1000;
min-width: 180px;
}
...