gavin_c's avatar

dropdown links in a breeze navbar

...How to add dropdown links in a breeze dashboard navbar? I'm wanting have a dropdown in the navbar with two or three drop links.
If you have any tips, that would be great.
cheers.

0 likes
1 reply
LaryAI's avatar
Level 58

To add dropdown links in a Breeze dashboard navbar, you can modify the Blade template where your navbar is defined. Breeze uses Tailwind CSS, so you can utilize Tailwind's utility classes to style your dropdown. Here's a basic example of how you can implement a dropdown in your navbar:

  1. Locate the Navbar Blade File: Typically, this would be in a file like resources/views/layouts/navigation.blade.php.

  2. Add Dropdown HTML: Insert the following HTML for a dropdown menu. This example uses Tailwind CSS for styling and Alpine.js for interactivity, which is often included with Laravel Breeze.

<div class="relative">
    <button @click="open = !open" class="flex items-center text-gray-700 hover:text-gray-900">
        Dropdown
        <svg class="ml-2 w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
        </svg>
    </button>
    <div x-show="open" @click.away="open = false" class="absolute right-0 mt-2 w-48 bg-white border border-gray-200 rounded-md shadow-lg">
        <a href="#" class="block px-4 py-2 text-gray-700 hover:bg-gray-100">Link 1</a>
        <a href="#" class="block px-4 py-2 text-gray-700 hover:bg-gray-100">Link 2</a>
        <a href="#" class="block px-4 py-2 text-gray-700 hover:bg-gray-100">Link 3</a>
    </div>
</div>
  1. Add Alpine.js for Interactivity: Ensure Alpine.js is included in your project. If it's not already included, you can add it in your resources/views/layouts/app.blade.php file or wherever your scripts are loaded:
<script src="//unpkg.com/alpinejs" defer></script>
  1. Initialize Alpine.js: Make sure your dropdown component is initialized with Alpine.js. You can do this by adding x-data to the parent element:
<div x-data="{ open: false }" class="relative">
    <!-- Dropdown button and menu here -->
</div>

This setup will create a dropdown menu in your Breeze navbar with three links. You can customize the links and styles as needed. The @click and x-show directives are part of Alpine.js, which handles the dropdown's open/close state.

Please or to participate in this conversation.