| class CustomNavbar extends HTMLElement { |
| connectedCallback() { |
| this.attachShadow({ mode: 'open' }); |
| this.shadowRoot.innerHTML = ` |
| <style> |
| .navbar { |
| height: 48px; |
| display: flex; |
| align-items: center; |
| padding: 0 16px; |
| background-color: var(--navbar-bg, #1E293B); |
| color: var(--navbar-text, #F8FAFC); |
| border-bottom: 1px solid var(--navbar-border, #334155); |
| } |
| |
| .nav-item { |
| padding: 8px 12px; |
| border-radius: 4px; |
| transition: background-color 0.2s; |
| cursor: pointer; |
| } |
| |
| .nav-item:hover { |
| background-color: var(--navbar-hover, #334155); |
| } |
| |
| .logo { |
| font-weight: 600; |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| } |
| |
| .logo-icon { |
| color: #3DDC84; |
| } |
| </style> |
| <div class="navbar"> |
| <div class="flex items-center space-x-6"> |
| <div class="logo"> |
| <i data-feather="code" class="logo-icon"></i> |
| <span>CodeNest</span> |
| </div> |
| <div class="flex space-x-1"> |
| <div class="nav-item">File</div> |
| <div class="nav-item">Edit</div> |
| <div class="nav-item">View</div> |
| <div class="nav-item">Navigate</div> |
| <div class="nav-item">Code</div> |
| <div class="nav-item">Run</div> |
| <div class="nav-item">Tools</div> |
| <div class="nav-item">Help</div> |
| </div> |
| </div> |
| <div class="ml-auto flex items-center space-x-4"> |
| <button id="theme-toggle" class="p-2 rounded-full hover:bg-gray-700"> |
| <i data-feather="moon"></i> |
| </button> |
| <button id="build-button" class="px-3 py-1 rounded-md bg-primary-500 hover:bg-primary-600 text-white text-sm flex items-center gap-2"> |
| <i data-feather="play" class="w-4 h-4"></i> |
| Run |
| </button> |
| </div> |
| </div> |
| `; |
| } |
| } |
| customElements.define('custom-navbar', CustomNavbar); |