File size: 5,715 Bytes
7d44b67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Comic Editor | Comic Frame Factory</title>
    <link rel="stylesheet" href="style.css">
    <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="components/navbar.js"></script>
    <script src="components/footer.js"></script>
    <script src="components/editor-toolbar.js"></script>
</head>
<body class="bg-gray-100">
    <custom-navbar></custom-navbar>
    
    <main class="container mx-auto px-4 py-8">
        <div class="flex justify-between items-center mb-6">
            <h1 class="text-3xl font-bold text-indigo-700">Comic Editor</h1>
            <div class="flex space-x-4">
                <button id="saveBtn" class="bg-gray-200 hover:bg-gray-300 text-gray-800 px-4 py-2 rounded-lg flex items-center">
                    <i data-feather="save" class="mr-2"></i> Save
                </button>
                <button id="exportBtn" class="bg-indigo-600 hover:bg-indigo-700 text-white px-4 py-2 rounded-lg flex items-center">
                    <i data-feather="download" class="mr-2"></i> Export
                </button>
            </div>
        </div>

        <div class="grid grid-cols-1 lg:grid-cols-4 gap-6">
            <div class="lg:col-span-3 bg-white rounded-xl shadow-lg p-6">
                <div id="comicCanvas" class="border-2 border-dashed border-gray-300 rounded-lg min-h-[500px] bg-white">
                    <div class="flex items-center justify-center h-full text-gray-500">
                        <div class="text-center">
                            <i data-feather="image" class="w-12 h-12 mx-auto mb-4"></i>
                            <p>Upload images or choose from templates to start</p>
                        </div>
                    </div>
                </div>
            </div>

            <div class="bg-white rounded-xl shadow-lg p-6">
                <custom-editor-toolbar></custom-editor-toolbar>
                
                <div class="mt-6">
                    <h3 class="text-lg font-semibold mb-3">Elements</h3>
                    <div class="grid grid-cols-2 gap-3">
                        <button class="bg-gray-100 hover:bg-gray-200 p-3 rounded-lg flex flex-col items-center">
                            <i data-feather="message-square" class="text-indigo-600 mb-1"></i>
                            <span class="text-sm">Speech Bubble</span>
                        </button>
                        <button class="bg-gray-100 hover:bg-gray-200 p-3 rounded-lg flex flex-col items-center">
                            <i data-feather="type" class="text-indigo-600 mb-1"></i>
                            <span class="text-sm">Text</span>
                        </button>
                        <button class="bg-gray-100 hover:bg-gray-200 p-3 rounded-lg flex flex-col items-center">
                            <i data-feather="zap" class="text-indigo-600 mb-1"></i>
                            <span class="text-sm">Effect</span>
                        </button>
                        <button class="bg-gray-100 hover:bg-gray-200 p-3 rounded-lg flex flex-col items-center">
                            <i data-feather="image" class="text-indigo-600 mb-1"></i>
                            <span class="text-sm">Image</span>
                        </button>
                    </div>
                </div>
                
                <div class="mt-6">
                    <h3 class="text-lg font-semibold mb-3">Layers</h3>
                    <div class="bg-gray-50 rounded-lg p-3 min-h-40">
                        <p class="text-gray-500 text-center py-8">No layers added yet</p>
                    </div>
                </div>
            </div>
        </div>
    </main>

    <custom-footer></custom-footer>

    <script>
        feather.replace();
        
        document.addEventListener('DOMContentLoaded', () => {
            // Get template from URL
            const urlParams = new URLSearchParams(window.location.search);
            const templateId = urlParams.get('template');
            
            if (templateId) {
                const template = ComicUtils.getTemplateById(templateId);
                if (template) {
                    // Load template into editor
                    document.getElementById('comicCanvas').innerHTML = `
                        <div class="p-4">
                            <h3 class="text-xl font-semibold mb-2">${template.name}</h3>
                            <img src="${template.thumbnail.replace('320x240', '640x360')}" alt="${template.name}" class="w-full rounded-lg">
                        </div>
                    `;
                }
            }
            
            // Save button
            document.getElementById('saveBtn').addEventListener('click', () => {
                const comicData = {
                    id: Date.now(),
                    name: `Comic ${new Date().toLocaleDateString()}`,
                    template: templateId || 'custom',
                    createdAt: new Date().toISOString()
                };
                
                ComicUtils.saveComic(comicData);
                alert('Comic saved successfully!');
            });
            
            // Export button
            document.getElementById('exportBtn').addEventListener('click', () => {
                alert('Export functionality would be implemented here');
            });
        });
    </script>
</body>
</html>