Github

Sidebar

App shell: .shell, .sidebar, .shell-main, .topbar, .shell-body. Always open on desktop. data-collapsed on .shell shrinks the rail to --sidebar-width-icon (icons stay, labels hide). That collapse is desktop only. Below 40rem, data-open on .shell slides the sidebar over a backdrop — icon-collapse does not apply. There is no wrapper. Header is a team dropdown; footer is a user dropdown. Collapsed icon rows use a tooltip via Place.svelte. Hover row actions are omitted so collapsed tooltips keep the hover target. Mobile overlay: Dashboard.

Default

Collapsed

Code

<div class="shell">
	<aside class="sidebar">
		<div class="sidebar-header">
			<button class="sidebar-link" type="button" popovertarget="team" aria-haspopup="menu">
				<span class="login-mark" aria-hidden="true"><!-- mark --></span>
				<span class="stack">Acme Inc. / Enterprise</span>
			</button>
			<div id="team" popover class="menu" role="menu" data-side="end"><!-- teams --></div>
		</div>
		<div class="sidebar-content">
			<input class="input" type="search" placeholder="Search…" aria-label="Search">
			<div class="sidebar-group">
				<div class="sidebar-label">Platform</div>
				<nav class="sidebar-menu" aria-label="Platform">
					<details open>
						<summary class="sidebar-link">
							<!-- icon -->
							<span>Playground</span>
							<svg class="sidebar-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
								<path d="m9 6 6 6-6 6"></path>
							</svg>
						</summary>
						<div class="sidebar-sub">
							<a class="sidebar-link" href="/">History</a>
							<a class="sidebar-link" href="/">Starred</a>
						</div>
					</details>
					<a class="sidebar-link" href="/" data-active>
						<!-- icon -->
						<span>Dashboard</span>
						<span class="badge badge-secondary">8</span>
					</a>
				</nav>
			</div>
		</div>
		<div class="sidebar-footer">
			<button class="sidebar-link" type="button" popovertarget="user" aria-haspopup="menu">
				<span class="avatar">AL</span>
				<span class="stack">Ada Lovelace</span>
			</button>
			<div id="user" popover class="menu" role="menu" data-side="end"><!-- Account, Billing, Log out --></div>
		</div>
	</aside>
	<div class="shell-main">
		<header class="topbar">
			<button class="button button-ghost button-icon shell-fold" type="button">…</button>
			<button class="button button-ghost button-icon shell-menu" type="button">…</button>
			…
		</header>
		<div class="shell-body">…</div>
	</div>
</div>

<!-- Desktop icon-collapse: data-collapsed on .shell. Labels hide; icons remain.
	 Hover icon rows for a .tooltip (Place.svelte). Team + user are .menu popovers.
	 Mobile overlay is unchanged (data-open). See the Dashboard block. -->