πŸ—ΊοΈ Image Map Builder | Link & Embed

πŸŸ₯ Merah = Link | 🟦 Biru = Embed (langsung tampil)
body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: #1a1a2e; color: #eee; padding: 20px; } .container { max-width: 1400px; margin: 0 auto; } .header { margin-bottom: 20px; padding: 15px 20px; background: #16213e; border-radius: 10px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; } h1 { font-size: 1.4rem; color: #00d4ff; } .main-layout { display: grid; grid-template-columns: 1fr 360px; gap: 20px; } .canvas-area { background: #0f0f1a; border-radius: 10px; padding: 20px; border: 1px solid #2a2a4a; } .canvas-title { margin-bottom: 15px; font-weight: 600; color: #888; text-align: center; } .image-container { background: #0a0a12; border-radius: 8px; overflow: auto; text-align: center; position: relative; } #imageCanvas { position: relative; display: inline-block; } #mainImage { max-width: 100%; height: auto; display: block; } .editor-hotspot-link { position: absolute; border: 2px solid #ff6b6b; background: rgba(255, 107, 107, 0.3); cursor: pointer; box-sizing: border-box; z-index: 10; } .editor-hotspot-link:hover { background: rgba(255, 107, 107, 0.6); border-color: #ffd93d; } .editor-hotspot-link.selected { border-color: #ffd93d; background: rgba(255, 217, 61, 0.3); border-width: 3px; } .editor-hotspot-embed { position: absolute; border: 2px solid #00d4ff; background: rgba(0, 212, 255, 0.2); cursor: pointer; box-sizing: border-box; overflow: hidden; z-index: 10; } .editor-hotspot-embed:hover { border-color: #ffd93d; background: rgba(0, 212, 255, 0.3); } .editor-hotspot-embed.selected { border-color: #ffd93d; background: rgba(0, 212, 255, 0.3); border-width: 3px; } .editor-hotspot-embed iframe { width: 100%; height: 100%; border: none; pointer-events: none; } .embed-fallback { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: #0f0f1a; color: #888; font-size: 11px; text-align: center; padding: 10px; } .sidebar { background: #16213e; border-radius: 10px; padding: 20px; display: flex; flex-direction: column; gap: 20px; } .upload-section, .page-name-section { border-bottom: 1px solid #2a2a4a; padding-bottom: 15px; } .upload-label { display: block; margin-bottom: 10px; font-weight: 600; } input[type="file"] { width: 100%; padding: 10px; background: #0f0f1a; border: 1px solid #2a2a4a; border-radius: 5px; color: #eee; cursor: pointer; } input[type="text"], textarea { width: 100%; padding: 8px; background: #0f0f1a; border: 1px solid #2a2a4a; border-radius: 5px; color: #eee; } textarea { font-family: monospace; font-size: 0.7rem; resize: vertical; } .group-section { margin-bottom: 15px; border: 1px solid #2a2a4a; border-radius: 8px; overflow: hidden; } .group-header { display: flex; align-items: center; gap: 10px; padding: 12px; background: #0f0f1a; cursor: pointer; transition: background 0.2s; } .group-header:hover { background: #1a1a2e; } .group-header .toggle-icon { font-size: 1rem; } .group-header .group-checkbox { width: 18px; height: 18px; cursor: pointer; margin: 0; } .group-header .group-title { flex: 1; font-weight: 600; } .group-header .group-badge { font-size: 0.7rem; padding: 2px 8px; border-radius: 20px; } .group-badge.link { background: #ff6b6b20; color: #ff6b6b; border: 1px solid #ff6b6b; } .group-badge.embed { background: #00d4ff20; color: #00d4ff; border: 1px solid #00d4ff; } .group-content { padding: 10px; background: #0a0a12; border-top: 1px solid #2a2a4a; } .hotspot-item { background: #0f0f1a; padding: 8px; margin-bottom: 8px; border-radius: 5px; border-left: 3px solid; } .hotspot-item.link-type { border-left-color: #ff6b6b; } .hotspot-item.embed-type { border-left-color: #00d4ff; } .hotspot-item.selected { background: #00d4ff20; } .hotspot-label-input { width: 100%; padding: 5px; margin-bottom: 5px; background: #1a1a2e; border: 1px solid #2a2a4a; color: #eee; border-radius: 3px; font-size: 0.8rem; } .mode-selector { display: flex; gap: 8px; margin: 5px 0; } .mode-btn { flex: 1; padding: 5px; background: #2a2a4a; border: none; border-radius: 3px; color: #eee; cursor: pointer; font-size: 0.7rem; } .mode-btn.active { background: #00d4ff; color: #1a1a2e; } .embed-url-input, .embed-code-input { width: 100%; padding: 5px; margin-bottom: 5px; background: #1a1a2e; border: 1px solid #2a2a4a; color: #eee; border-radius: 3px; font-size: 0.7rem; } .embed-code-input { font-family: monospace; } .hotspot-actions { display: flex; gap: 5px; margin-top: 5px; } .btn-small { padding: 3px 8px; font-size: 0.7rem; background: #2a2a4a; color: #eee; border: none; border-radius: 3px; cursor: pointer; } .btn-small.danger { background: #ff4757; } .btn-small.primary { background: #00d4ff; color: #1a1a2e; } button { padding: 10px 15px; border: none; border-radius: 5px; cursor: pointer; font-weight: 600; } .btn-primary { background: #00d4ff; color: #1a1a2e; width: 100%; } .btn-secondary { background: #2a2a4a; color: #eee; } .add-btn { border: none; padding: 8px; border-radius: 5px; cursor: pointer; margin-top: 10px; width: 100%; font-weight: 600; } .add-link-btn { background: #ff6b6b20; color: #ff6b6b; border: 1px solid #ff6b6b; } .add-embed-btn { background: #00d4ff20; color: #00d4ff; border: 1px solid #00d4ff; } .info-text { font-size: 0.75rem; color: #888; text-align: center; } .embed-mode-hint { font-size: 0.6rem; color: #00d4ff; margin-top: 3px; }

πŸ—ΊοΈ Image Map Builder | Link & Embed (2 Mode)

πŸŸ₯ Merah = Link | 🟦 Biru = Embed (langsung tampil)