Automatically highlight nav links when exact URL matches, or pass a path or route name pattern.
A Blade component with request and CSS classes helpers makes it ridiculously simple to show active/inactive state.
class NavLink extends Component{ public function __construct($href, $active = null) { $this->href = $href; $this->active = $active ?? $href; } public function render(): View { $classes = ['font-medium', 'py-2', 'text-primary' => $this->isActive()]; return view('components.nav-link', [ 'class' => Arr::toCssClasses($classes); ]); } protected function isActive(): bool { if (is_bool($this->active)) { return $this->active; } if (request()->is($this->active)) { return true; } if (request()->fullUrlIs($this->active)) { return true; } return request()->routeIs($this->active); }}
<a href="{{ $href }}" {{ $attributes->class($class) }}> {{ $slot }}</a>
<x-nav-link :href="route('projects.index')">Projects</x-nav-link><x-nav-link :href="route('projects.index')" active="projects.*">Projects</x-nav-link><x-nav-link :href="route('projects.index')" active="projects/*">Projects</x-nav-link><x-nav-link :href="route('projects.index')" :active="$tab = 'projects'">Projects</x-nav-link>
Tip given by @mpskovvang
Enjoyed This Tip?
Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.
Recent Courses
Laravel Coding with AI Agents: Cursor, Claude Code, Codex
5 lessons
1 h 01 min
Laravel 12 For Beginners: Your First Project
15 lessons
1 h 32 min
Filament 4 From Scratch
28 lessons
2 h 25 min