Snippets Animation

Bootstrap 5 Radial Pop-Out Navigation Menu

A radial pop-out menu where six icon buttons fan out around a central toggle with a staggered spring animation.

Bootstrap 5 No jQuery Mar 2020 2.2K views

<section class="wdw-stage">
  <div class="container" style="max-width:560px">
    <div class="wdw-aurora rounded-5 p-4 p-md-5 text-center overflow-hidden">
      <span class="wdw-eyebrow text-white-50">Navigation</span>
      <h2 class="wdw-heading h2 mt-1 mb-2 text-white">Radial menu</h2>
      <p class="mb-4 text-white-50">Tap the centre button to fan out the menu, then pick an icon.</p>
      <nav class="rn mx-auto" id="radialNav" aria-label="Quick navigation">
        <div class="rn-ring" aria-hidden="true"></div>
        <button type="button" class="rn-toggle btn btn-primary rounded-circle p-0" id="rnToggle" aria-expanded="true" aria-controls="rnList" aria-label="Close menu">
          <svg width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" aria-hidden="true"><path d="M5 12h14M12 5v14"/></svg>
        </button>
        <ul class="rn-list list-unstyled m-0" id="rnList">
        <li class="rn-item" style="--i:0"><button type="button" class="rn-link btn btn-light rounded-circle p-0" data-label="Home" aria-label="Home"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 11l9-8 9 8"/><path d="M5 10v10h14V10"/></svg></button></li>
        <li class="rn-item" style="--i:1"><button type="button" class="rn-link btn btn-light rounded-circle p-0" data-label="Search" aria-label="Search"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="M20 20l-4-4"/></svg></button></li>
        <li class="rn-item" style="--i:2"><button type="button" class="rn-link btn btn-light rounded-circle p-0" data-label="Favorites" aria-label="Favorites"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 21s-8-5.5-8-11a4.5 4.5 0 0 1 8-2.8A4.5 4.5 0 0 1 20 10c0 5.5-8 11-8 11z"/></svg></button></li>
        <li class="rn-item" style="--i:3"><button type="button" class="rn-link btn btn-light rounded-circle p-0" data-label="Messages" aria-label="Messages"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12z"/></svg></button></li>
        <li class="rn-item" style="--i:4"><button type="button" class="rn-link btn btn-light rounded-circle p-0" data-label="Settings" aria-label="Settings"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="3"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M4.9 19.1L7 17M17 7l2.1-2.1"/></svg></button></li>
        <li class="rn-item" style="--i:5"><button type="button" class="rn-link btn btn-light rounded-circle p-0" data-label="Profile" aria-label="Profile"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/></svg></button></li>
        </ul>
      </nav>
      <p class="fw-semibold text-white mt-4 mb-0" id="rnLabel" role="status">Choose an item</p>
    </div>
  </div>
</section>

Built on Bootstrap 5.3.8 with plain JavaScript — no jQuery. Supports light and dark mode via data-bs-theme.