xxshna.ui
V 1.1.0Get started ↗
Components/Navigation

Collapsible navigation

Reduce navigation density with semantically expandable groups.

Catalog · 1.1HTML, CSS & optional JSNo runtime dependencies

Live preview

Interactive exampleOpen playground ↗
HTML
<nav class="xsh-collapsible-nav" aria-label="Project administration">
<details open>
<summary>Workspace settings</summary>
<a href="../../guides/theming/index.html">Appearance</a>
<a href="../../guides/accessibility/index.html">Accessibility</a>
</details>
<details>
<summary>Developer resources</summary>
<a href="../../guides/javascript/index.html">JavaScript API</a>
<a href="../../playground/index.html">Playground</a>
</details>
</nav>

Installation & markup

Include the local stylesheet and script once on the page, then place the component inside a data-xsh-ui root. The example above works without a build system.

<link rel="stylesheet" href="/dist/xshna-ui.css">
<div data-xsh-ui>
  <!-- Add the HTML example above -->
</div>
<script defer src="/dist/xshna-ui.js"></script>

Component API

Public classes, attributes and hooks used by this example. Keep the xsh- prefix intact.

IdentifierContract
xsh-collapsible-navUsed by the example markup and component styles or behavior.
detailsUsed by the example markup and component styles or behavior.
summaryUsed by the example markup and component styles or behavior.

Accessibility & keyboard

Use Enter or Space to expand each native disclosure.

Implementation note. Do not place critical headings in collapsed content without a visible cue.

Interaction contract

Behavioral components use the shared delegated runtime; visual-only primitives rely on semantic HTML and CSS. Runtime controls emit bubbling xsh:* CustomEvents; bind application handlers to those events when server persistence, API data or navigation is required.