Spaces:
Running
Running
File size: 3,808 Bytes
2d1d74f | 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 | class CustomSidebar extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
<style>
:host {
display: block;
padding: 2rem 1.5rem;
font-family: 'JetBrains Mono', monospace;
}
.nav-group {
margin-bottom: 2rem;
}
.nav-group-title {
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.05em;
color: #888888;
font-weight: 700;
margin-bottom: 1rem;
}
.nav-list {
list-style: none;
padding: 0;
margin: 0;
}
.nav-item {
margin-bottom: 0.25rem;
}
.nav-link {
display: block;
padding: 0.375rem 0;
padding-left: 0.75rem;
color: #888888;
text-decoration: none;
font-size: 0.875rem;
border-left: 2px solid transparent;
transition: all 0.2s ease;
}
.nav-link:hover {
color: #e5e5e5;
background-color: #111111;
}
/* Active State Logic handled by class addition in main JS, but we style the class here */
.nav-link.nav-item-active {
color: #ff6600;
border-left-color: #ff6600;
font-weight: 500;
}
</style>
<div>
<div class="nav-group">
<div class="nav-group-title">Getting Started</div>
<ul class="nav-list">
<li class="nav-item">
<a href="#" class="nav-link nav-item-active">Introduction</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">Installation</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">Configuration</a>
</li>
</ul>
</div>
<div class="nav-group">
<div class="nav-group-title">Core Concepts</div>
<ul class="nav-list">
<li class="nav-item">
<a href="#architecture" class="nav-link sidebar-link">Architecture</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link sidebar-link">Data Flow</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link sidebar-link">Security</a>
</li>
</ul>
</div>
<div class="nav-group">
<div class="nav-group-title">Community</div>
<ul class="nav-list">
<li class="nav-item">
<a href="#" class="nav-link sidebar-link">Contributing</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link sidebar-link">Changelog</a>
</li>
</ul>
</div>
</div>
`;
}
}
customElements.define('custom-sidebar', CustomSidebar); |