Loading...
βββββββββββββββββββββββββββββββ
β βΊ GETTING STARTED β β Click to expand
βββββββββββββββββββββββββββββββ€
β βΊ ARCHITECTURE β
βββββββββββββββββββββββββββββββ€
β βΊ DEVELOPMENT β
βββββββββββββββββββββββββββββββ€
β βΊ DEPLOYMENT β
βββββββββββββββββββββββββββββββ€
β v0.1.2 β
βββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββ
β βΌ GETTING STARTED β β Now expanded (highlighted)
β ββ Introduction β β With left border
β ββ Installation β
βββββββββββββββββββββββββββββββ€
β βΊ ARCHITECTURE β
βββββββββββββββββββββββββββββββ€
β βΊ DEVELOPMENT β
βββββββββββββββββββββββββββββββ€
β βΊ DEPLOYMENT β
βββββββββββββββββββββββββββββββ€
β v0.1.2 β
βββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββ
β βΌ GETTING STARTED β β Auto-expanded (contains current page)
β ββ Introduction β ACTIVE β β Highlighted in primary color
β ββ Installation β
βββββββββββββββββββββββββββββββ€
β βΊ ARCHITECTURE β
βββββββββββββββββββββββββββββββ€
β βΊ DEVELOPMENT β
βββββββββββββββββββββββββββββββ€
β βΊ DEPLOYMENT β
βββββββββββββββββββββββββββββββ€
β v0.1.2 β
βββββββββββββββββββββββββββββββ
ββββββββββββββββββββ
β NAVBAR [β° MENU] β
ββββββββββββββββββββ€
β β
β FULL WIDTH β
β CONTENT PAGE β
β β
β β
ββββββββββββββββββββ
ββββββββββββββββββββ
β NAVBAR [β] β
ββββββββββββββββββββ€
β π Search... β
β β
β Getting Started β
β Architecture β
β Development β
β Deployment β
β β
β v0.1.2 β
ββββββββββββββββββββ
bg-transparent
text-foreground/60
hover:text-foreground
hover:bg-foreground/5
bg-primary/10
text-primary
font-semibold
hidden
(only visible when parent is expanded)
block
text-foreground/60
hover:text-foreground
hover:bg-foreground/5
border-l-2 border-primary/20
bg-primary/20
text-primary
font-medium
Closed: βΌ (pointing down, 0deg rotation)
β (rotate to 180deg)
Open: β² (pointing up, 180deg rotation)
CSS Transition:
transition-transform
duration-200ms
Closed Section: text-foreground/60 (#6B7280)
Hover: text-foreground, bg-foreground/5
Open Section: bg-primary/10 (#E0F2FE), text-primary (#0284C7)
Active Item: bg-primary/20 (#BAE6FD), text-primary
Left Border: border-primary/20 (#7DD3FC)
Closed Section: text-foreground/60 (#A1A1AA)
Hover: text-foreground, bg-foreground/5
Open Section: bg-primary/10 (#164E63), text-primary (#06B6D4)
Active Item: bg-primary/20 (#06B6D4), text-primary
Left Border: border-primary/20 (#2DD4BF)
βββββββββββββββββββ
β COLLAPSED β
ββββββββββ¬βββββββββ
β
user clicks "βΌ"
β
βΌ
βββββββββββββββββββ
βββββββββββββββ€ EXPANDED βββββββββββββββ
β ββββββββββ¬βββββββββ β
β β β
β user clicks "βΌ" β
β β β
β βΌ β
β βββββββββββββββββββ β
β β COLLAPSED β β
β βββββββββββββββββββ β
β β
β page navigation to item β
β in this section β
β (auto-expand happens) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββ
<nav className="space-y-2 text-sm flex-1">
{sections.map((section) => {
const isExpanded = expandedSections.has(section.title);
return (
<div key={section.title} className="space-y-0">
{/* Section Header Button */}
<button
type="button"
onClick={() => toggleSection(section.title)}
className={`${isExpanded ? 'bg-primary/10 text-primary' : 'text-foreground/60'}`}
>
<span>{section.title}</span>
<ChevronDown className={isExpanded ? 'rotate-180' : ''} />
</button>
{/* Expandable Items */}
{isExpanded && (
<ul className="space-y-1 pl-2 border-l-2 border-primary/20">
{section.items.map((item) => (
<li key={item.href}>
<Link href={`/docs/${item.href}`}>
{item.label}
</Link>
</li>
))}
</ul>
)}
</div>
);
})}
</nav>
βββββββββββββββββββββββββββββββββββ
β App loads β
βββββββββββββββββββββββββββββββββββ€
β Current pathname checked β
βββββββββββββββββββββββββββββββββββ€
β Auto-expand section containing β
β current page (if found) β
βββββββββββββββββββββββββββββββββββ€
β Sidebar rendered with: β
β β Expanded section highlighted β
β β Active item highlighted β
β β Collapsed other sections β
βββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββ
β User clicks nav link β
ββββββββββββββββββββββββββ€
β Router pushes new page β
ββββββββββββββββββββββββββ€
β useEffect runs β
ββββββββββββββββββββββββββ€
β New section detected β
ββββββββββββββββββββββββββ€
β Auto-expand new sectionβ
ββββββββββββββββββββββββββ€
β Sidebar updates state β
ββββββββββββββββββββββββββ
expandedSections SetSidebar visible
βββ Accordion sections
βββ Expandable items
βββ Auto-expand on navigate
Sidebar hidden (md:flex)
Navigation in:
βββ Mobile menu
βββ Full width list
βββ Same accordion concept
Desktop:
Mobile:
Search:
| Browser | Support | Notes |
|---|---|---|
| Chrome | β Full | All features work |
| Firefox | β Full | All features work |
| Safari | β Full | All features work |
| Edge | β Full | All features work |
| Mobile | β Full | Touch-friendly |
Pattern: Accordion (Collapsible Sections)
Library: HeroUI + Tailwind CSS
Framework: React + Next.js
Version: v0.1.2