承接 fuelviews/laravel-navigation 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

fuelviews/laravel-navigation

最新稳定版本:v2.0.5

Composer 安装命令:

composer require fuelviews/laravel-navigation

包简介

Laravel navigation package

README 文档

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

A comprehensive and flexible Laravel navigation package that provides beautiful, responsive navigation components with Alpine.js interactions and Tailwind CSS styling. Perfect for building modern Laravel applications with professional navigation experiences.

???? Requirements

  • PHP 8.3+
  • Laravel 10.x, 11.x, or 12.x
  • Alpine.js (included with Livewire)
  • Tailwind CSS

???? Installation

Install the package via Composer:

composer require fuelviews/laravel-navigation

Quick Setup

Run the install command for guided setup:

php artisan navigation:install

This will:

  • Publish the configuration file
  • Publish view files for customization
  • Provide setup instructions

Manual Setup

Alternatively, you can manually publish components:

# Publish configuration php artisan vendor:publish --tag="navigation-config" # Publish views (optional) php artisan vendor:publish --tag="navigation-views" # Publish service provider for advanced customization (optional) php artisan vendor:publish --tag="laravel-package-tools-service-provider"

⚙️ Configuration

The package uses a comprehensive configuration file located at config/navigation.php:

Navigation Items

Define your navigation structure with support for simple links and dropdown menus:

'navigation' => [ // Simple link [ 'type' => 'link', 'position' => 0, 'name' => 'Home', 'route' => 'home', ], // Dropdown menu [ 'type' => 'dropdown', 'position' => 1, 'name' => 'Services', 'links' => [ [ 'name' => 'Web Development', 'route' => 'services.web', ], [ 'name' => 'Mobile Apps', 'route' => 'services.mobile', ], ], ], ],

Visual Configuration

// logo config 'default_logo' => '', 'transparency_logo' => '', // navigation config 'top_nav_enabled' => false, 'logo_swap_enabled' => true, 'transparent_nav_background' => true, // logo shape config: 'horizontal', 'vertical', or 'square' 'default_logo_shape' => 'square', 'transparency_logo_shape' => 'horizontal',

Pre-scrolled Routes

Define routes that should have a "scrolled" appearance from page load:

'pre_scrolled_routes' => [ 'careers', 'contact', 'services', 'forms.*', 'sabhero-articles.*', 'portfolio', 'privacy-policy', 'terms-and-conditions', ],

???? Components

Desktop Navigation

<!-- Complete desktop navigation --> <x-navigation::desktop.desktop-navigation /> <!-- Individual dropdown button --> <x-navigation::desktop.desktop-dropdown-button name="Services" :links="$serviceLinks" />

Mobile Navigation

<!-- Mobile navigation menu --> <x-navigation::mobile.mobile-navigation /> <!-- With custom background classes --> <x-navigation::mobile.mobile-navigation :bg-class="['bg-blue-50', 'bg-blue-100']" />

Navigation Wrapper

<!-- Smart navigation that adapts based on route --> <x-navigation::navigation-scroll /> <!-- With transparency control --> <x-navigation::navigation-scroll :is-transparent="false" />

Utility Components

<!-- Top bar for contact info --> <x-navigation::top-bar /> <!-- Footer with navigation links --> <x-navigation::footer.footer /> <!-- Spacing component --> <x-navigation::spacer /> <!-- Phone button --> <x-navigation::phone-button /> <!-- Logo component --> <x-navigation::logo /> <!-- Social media icons --> <x-navigation::social.facebook /> <x-navigation::social.instagram /> <x-navigation::social.linkedin /> <x-navigation::social.youtube />

???? Complete Navigation Example

Here's a complete navigation setup:

<!-- resources/views/layouts/app.blade.php --> <!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <!-- Your head content --> @vite(['resources/css/app.css', 'resources/js/app.js']) </head> <body> <!-- Top bar with contact info --> @if(Navigation::isTopNavEnabled()) <x-navigation::top-bar /> @endif <!-- Main navigation --> <x-navigation::navigation-scroll> <!-- Desktop navigation --> <div class="hidden md:flex"> <x-navigation::logo /> <x-navigation::desktop.desktop-navigation /> <x-navigation::phone-button /> </div> <!-- Mobile navigation toggle --> <div class="md:hidden"> <x-navigation::hamburger-button /> </div> </x-navigation::navigation-scroll> <!-- Mobile navigation menu --> <x-navigation::mobile.mobile-navigation /> <!-- Page content --> <main> {{ $slot }} </main> <!-- Footer --> <x-navigation::footer.footer /> </body> </html>

???? Styling with Tailwind CSS

Add the package views to your tailwind.config.js:

module.exports = { content: [ './resources/**/*.blade.php', './resources/**/*.js', './vendor/fuelviews/laravel-navigation/resources/**/*.blade.php', ], // ... rest of your config }

???? Using the Navigation Facade

Access navigation data programmatically:

use Fuelviews\Navigation\Facades\Navigation; // Get all navigation items $items = Navigation::getNavigationItems(); // Check if dropdown route is active $isActive = Navigation::isDropdownRouteActive($dropdownLinks); // Get configuration values $logo = Navigation::getDefaultLogo(); $phone = Navigation::getPhone(); $isTransparent = Navigation::isTransparentNavBackground(); // Check route states $isPreScrolled = Navigation::isPreScrolledRoute(); $preScrolledString = Navigation::getPreScrolledRoute(); // 'true' or 'false'

????️ Artisan Commands

List Navigation Items

View all configured navigation items:

php artisan navigation:list

Output:

Navigation Items: +----------+----------+---------+--------------+ | Position | Type | Name | Route/Links | +----------+----------+---------+--------------+ | 0 | link | Home | home | | 1 | dropdown | Services| 3 links | | 2 | link | About | about | +----------+----------+---------+--------------+ 

Validate Configuration

Validate your navigation configuration:

php artisan navigation:validate

This command checks for:

  • Required fields (type, position, name)
  • Valid navigation types
  • Route existence
  • Duplicate positions
  • Dropdown structure integrity

????️ Advanced Usage

Custom Navigation Items

Add navigation items programmatically:

// In a service provider config([ 'navigation.navigation' => array_merge( config('navigation.navigation'), [ [ 'type' => 'link', 'position' => 99, 'name' => 'Admin', 'route' => 'admin.dashboard', ] ] ) ]);

Custom View Components

Extend the package with your own components:

// Create custom component class CustomNavigationLink extends Component { public function render() { return view('components.custom-navigation-link'); } } // Register in AppServiceProvider Blade::component('custom-nav-link', CustomNavigationLink::class);

???? Testing

The package includes comprehensive tests. Run them with:

# In the package directory composer test # Code style composer format

Testing Your Navigation

Test navigation in your application:

// Feature test example public function test_navigation_renders_correctly() { $response = $this->get('/'); $response->assertSeeLivewire(DesktopNavigation::class); $response->assertSee('Home'); $response->assertSee('Services'); }

???? Customization Examples

Custom Dropdown Styling

<!-- Override dropdown component --> <x-navigation::desktop.desktop-dropdown align="right" width="48"> <x-slot name="trigger"> <button class="custom-dropdown-button"> Services </button> </x-slot> <x-slot name="content"> <!-- Custom dropdown content --> </x-slot> </x-navigation::desktop.desktop-dropdown>

???? Contributing

We welcome contributions! Please see CONTRIBUTING.md for details.

Development Setup

git clone https://github.com/fuelviews/laravel-navigation.git cd laravel-navigation composer install composer test

???? Changelog

Please see CHANGELOG for more information on what has changed recently.

???? Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

????‍???? Credits

???? License

The MIT License (MIT). Please see License File for more information.

Built with ❤️ by the Fuelviews team

⭐ Star us on GitHub???? View on Packagist

统计信息

  • 总下载量: 1.25k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • 开发语言: Blade

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固