Dashboard Temp Share Shortlinks Frames API

HTMLify

index.html
Views: 54 | Author: devwajahat
  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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>DocGenius</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Poppins:wght@600;700;800&display=swap" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/@editorjs/editorjs@latest"></script>
    <script src="https://cdn.jsdelivr.net/npm/@editorjs/header@latest"></script>
    <script src="https://cdn.jsdelivr.net/npm/@editorjs/list@latest"></script>
    <script src="https://cdn.jsdelivr.net/npm/@editorjs/code@latest"></script>
    <script src="https://cdn.jsdelivr.net/npm/@editorjs/image@latest"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
    <style>
        body { margin: 0; padding: 0; font-family: 'Inter', sans-serif; }
        
        .ce-block__content, .ce-toolbar__content { max-width: 850px; color: #e2e8f0; }
        
        /* Dark Editor Canvas */
        .codex-editor { 
            background: rgba(17, 24, 39, 0.7); 
            padding: 4rem 3rem; 
            border-radius: 0.75rem; 
            min-height: 75vh; 
            box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3);
            border: 1px solid rgba(255, 255, 255, 0.05);
            backdrop-filter: blur(8px);
        }
        
        /* Typography overrides for dark mode */
        .ce-paragraph { font-size: 1.125rem; line-height: 1.8; color: #cbd5e1; margin-bottom: 1.5rem; letter-spacing: -0.01em; }
       h1.ce-header, h2.ce-header, h3.ce-header,
        h4.ce-header, h5.ce-header, h6.ce-header { 
            font-family: 'Poppins', sans-serif; 
            color: #f8fafc; 
            font-weight: 700; 
            margin-top: 2.5rem; 
            margin-bottom: 1rem; 
            letter-spacing: -0.02em; 
        }
        h1.ce-header { font-size: 2.5rem; line-height: 1.2; }
        h2.ce-header { font-size: 2rem; line-height: 1.3; }
        h3.ce-header { font-size: 1.5rem; line-height: 1.4; }
        h4.ce-header { font-size: 1.25rem; line-height: 1.5; }
        h5.ce-header { font-size: 1.125rem; line-height: 1.6; }
        h6.ce-header { font-size: 1rem; line-height: 1.7; text-transform: uppercase; letter-spacing: 0.05em; color: #cbd5e1; }
        .ce-list { font-size: 1.125rem; line-height: 1.8; color: #cbd5e1; margin-bottom: 1.5rem; }
        .ce-list__item { padding-left: 0.5rem; margin-bottom: 0.5rem; }
        .ce-code__textarea { background-color: #020617; color: #a5b4fc; border-radius: 0.5rem; padding: 1.5rem; font-family: monospace; font-size: 0.95rem; border: 1px solid #1e293b; }

        /* Dark mode toolbars and popovers */
        .ce-toolbar__plus, .ce-toolbar__settings-btn { color: #cbd5e1; background-color: #1e293b; }
        .ce-toolbar__plus:hover, .ce-toolbar__settings-btn:hover { background-color: #b300ff; color: white; }
        .ce-popover { background-color: #1e293b; border: 1px solid rgba(179, 0, 255, 0.4); color: #fff; box-shadow: 0 10px 25px rgba(0,0,0,0.8); }
        .ce-popover__item:hover { background-color: rgba(179, 0, 255, 0.8) !important; color: white !important; }
        .ce-popover__item-icon { background-color: #0f172a; color: #fff; border: none; }
        .ce-inline-toolbar { background-color: #1e293b; border: 1px solid rgba(179, 0, 255, 0.4); color: #fff; }
        .ce-inline-tool:hover, .ce-inline-toolbar__dropdown:hover { background-color: rgba(179, 0, 255, 0.8); }
        .cdx-search-field { background-color: #0f172a; color: #fff; border: 1px solid #333; }
        .cdx-input { background-color: #0f172a; color: #fff; border: 1px solid rgba(179, 0, 255, 0.3); }

        ::selection { background: #b300ff; color: #fff; }
        .zoom-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0,0,0,0.9); display: none; justify-content: center; align-items: center; z-index: 50; cursor: zoom-out; }
        .zoom-overlay img { max-width: 90%; max-height: 90%; border-radius: 8px; box-shadow: 0 25px 50px -12px rgba(179, 0, 255, 0.25); }
        .image-tool__image-picture { cursor: zoom-in; border-radius: 0.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.4); }
        .hidden { display: none !important; }
    </style>
    
</head>
<body class="h-screen flex overflow-hidden bg-gradient-to-br from-black to-[#b300ff] text-white">

    <aside class="w-72 bg-black/70 backdrop-blur-md border-r border-[#b300ff]/30 flex flex-col h-full shadow-[4px_0_24px_rgba(0,0,0,0.5)] z-10">
        <div class="p-6 border-b border-[#b300ff]/30">
            <h1 class="text-2xl font-bold text-white tracking-wide font-['Poppins']">DocGenius</h1>
        </div>
        <div class="p-4 flex-1 overflow-y-auto" id="sidebarNav">
        </div>
        <div class="p-6 border-t border-[#b300ff]/30">
            <button id="btnNewProject" class="w-full bg-[#b300ff] hover:bg-purple-500 text-white font-bold py-3 px-4 rounded-lg transition shadow-[0_0_15px_rgba(179,0,255,0.4)]">
                + New Project
            </button>
        </div>
    </aside>

    <main class="flex-1 flex flex-col h-full bg-transparent overflow-y-auto relative">
        <div id="editorHeader" class="px-12 py-6 flex justify-between items-end hidden">
            <div>
                <p id="currentProjectTitle" class="text-purple-300 uppercase tracking-widest text-sm font-bold mb-1"></p>
                <h2 id="currentDocTitle" class="text-4xl font-extrabold text-white drop-shadow-lg font-['Poppins']"></h2>
            </div>
            <button id="btnSaveDoc" class="bg-emerald-500 hover:bg-emerald-400 text-white font-bold py-2 px-8 rounded-lg transition shadow-[0_0_15px_rgba(16,185,129,0.4)]">
                Save Document
            </button>
        </div>

        <div id="editorContainer" class="px-12 pb-12 hidden">
            <div id="editorjs"></div>
        </div>
        
        <div id="emptyState" class="flex-1 flex items-center justify-center text-purple-200 flex-col">
            <svg class="w-20 h-20 mb-6 opacity-40" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M9 13h6m-3-3v6m5 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg>
            <p class="text-xl font-medium tracking-wide">Select or create a document</p>
        </div>
    </main>

    <aside class="w-64 bg-black/70 backdrop-blur-md border-l border-[#b300ff]/30 p-6 h-full overflow-y-auto hidden shadow-[-4px_0_24px_rgba(0,0,0,0.5)] z-10" id="tocSidebar">
        <h3 class="text-xs uppercase tracking-widest text-purple-400 font-bold mb-6">On this page</h3>
        <ul id="tocList" class="space-y-3 text-sm text-gray-300">
        </ul>
    </aside>

    <div id="modalNewProject" class="fixed inset-0 bg-black/80 backdrop-blur-sm hidden flex items-center justify-center z-40">
        <div class="bg-gray-900 p-8 rounded-xl w-96 shadow-[0_0_40px_rgba(179,0,255,0.4)] border border-[#b300ff]/40">
            <h3 class="text-2xl text-white font-bold mb-6 font-['Poppins']">Create Project</h3>
            <input type="text" id="inputProjectName" class="w-full bg-black text-white border border-gray-700 rounded-lg p-3 focus:outline-none focus:border-[#b300ff] mb-6 placeholder-gray-600 text-lg" placeholder="Project Name">
            <div class="flex justify-end gap-3">
                <button id="btnCancelProject" class="px-5 py-2 text-gray-400 hover:text-white transition">Cancel</button>
                <button id="btnConfirmProject" class="px-5 py-2 bg-[#b300ff] hover:bg-purple-500 text-white rounded-lg transition font-medium">Create</button>
            </div>
        </div>
    </div>

    <div id="modalNewDoc" class="fixed inset-0 bg-black/80 backdrop-blur-sm hidden flex items-center justify-center z-40">
        <div class="bg-gray-900 p-8 rounded-xl w-96 shadow-[0_0_40px_rgba(179,0,255,0.4)] border border-[#b300ff]/40">
            <h3 class="text-2xl text-white font-bold mb-6 font-['Poppins']">New Document</h3>
            <input type="hidden" id="hiddenProjectName">
            <input type="text" id="inputDocName" class="w-full bg-black text-white border border-gray-700 rounded-lg p-3 focus:outline-none focus:border-[#b300ff] mb-6 placeholder-gray-600 text-lg" placeholder="Document Name">
            <div class="flex justify-end gap-3">
                <button id="btnCancelDoc" class="px-5 py-2 text-gray-400 hover:text-white transition">Cancel</button>
                <button id="btnConfirmDoc" class="px-5 py-2 bg-[#b300ff] hover:bg-purple-500 text-white rounded-lg transition font-medium">Create</button>
            </div>
        </div>
    </div>

    <div class="zoom-overlay" id="imageZoomOverlay">
        <img id="zoomedImage" src="" alt="Zoomed">
    </div>

    <script src="app.js"></script>
</body>
</html>