PHPackages                             eseperio/yii2-bigmenu-widget - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. eseperio/yii2-bigmenu-widget

ActiveYii2-widget[Utility &amp; Helpers](/categories/utility)

eseperio/yii2-bigmenu-widget
============================

A yii2 pure CSS multilevel menu. With option to load views inside menu via ajax.

1.3.3(4y ago)5653↓33.3%1MITSCSS

Since Sep 4Pushed 4y ago1 watchersCompare

[ Source](https://github.com/Eseperio/yii2-bigmenu-widget)[ Packagist](https://packagist.org/packages/eseperio/yii2-bigmenu-widget)[ Docs](https://github.com/Eseperio/yii2-bigmenu-widget)[ RSS](/packages/eseperio-yii2-bigmenu-widget/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (7)DependenciesVersions (8)Used By (0)

Yii2 bigmenu widget. Multilevel menu, PURE CSS
==============================================

[](#yii2-bigmenu-widget-multilevel-menu-pure-css)

> Any code contribution is welcome

Bigmenu renders a PURE CSS multilevel menu with advanced functions. It works like default nav widget, but dropdowns are pure css. It also **allows large menu items loaded vía ajax** using `page` parameter. It has no limit on levels, but be careful. A lot of levels are uncomfortable for users.

Installation
------------

[](#installation)

`composer require eseperio/yii2-bigmenu-widget`

When an item have `page` property and `items`, the first one will be available on medium-large devices meanwhile on second will be available on mobile devices.

[Screenshots](#screenshots)

```
  echo Bigmenu::widget([
      'items' => [
          [
              'label' => 'Home',
              'url' => ['site/index'],
              'linkOptions' => [...],
          ],
          [
              'label' => 'Multilevel',
              'items' => [
                   ['label' => 'Level 1 - Dropdown A', 'url' => '#'],
                   '',
                   'Dropdown Header',
                   ['label' => 'Level 1 - Dropdown B', 'url' => '#'],
              ],
          ],
          [
              'label' => 'Login',
              'url' => ['site/login'],
              'visible' => Yii::$app->user->isGuest
          ],
          [
              'label' => 'Login',
              'url' => ['site/login'],
              'visible' => Yii::$app->user->isGuest,
              'page' => ['site/menu']
          ],
      ],
      'options' => ['class' =>'nav-pills'], // set this to nav-tab to get tab-styled navigation
      'jsOptions' => ['widthToEnableResponsive'=> 768], // set this to override the options used in js
  ]);
```

How to use
----------

[](#how-to-use)

This widget is based on yii/bootstrap/nav widget [yii\\bootstrap\\nav](http://www.yiiframework.com/doc-2.0/yii-bootstrap-nav.html). The main differences are:

1. Allows infinite multilevel. For a better usability don´t use more than 3 levels.
2. Allow render a page as a menu panel. With this you are free to make complex and advanced dropdowns menus.
3. Render of pages in menu is made with ajax, and only one request is made per panel.

To use as simple multilevel pass an array to `items` property. See `yii\bootstrap\nav` documentation.

### Dynamic panels

[](#dynamic-panels)

To use dynamic panels add to the menu item the property "page". This must be a link to the action that renders the page.

```
Bigmenu::widget([
   'hamburger' => "slide",
   'items' => [
      ['label'=>"Dynamic content", "url"=>["site/index"], "page"=>["site/samplemenupage"] ],
      ...
   ]
])

```

In your controller use eseperio\\yii2-bigmenu\\widget\\BigmenuTrait. Then in your action, to render content call `$this->renderBigmenu($view,$options)`.

Note: The trait only simplifies the task of differenciating render method, between `render` and `renderAjax`. So you can do this in your own controller if you don´t want to use traits.

Change hamburger
----------------

[](#change-hamburger)

This widget implements [Hamburgers by jonsuh](https://jonsuh.com/hamburgers/). You can change the hamburger like this

```
Bigmenu::widget([
   'hamburger' => "slide",
   'items' => [...]
])

```

Change width to enable responsive
---------------------------------

[](#change-width-to-enable-responsive)

If you want custom the with of the responsive devise, you must set the property jsOptions

```
Bigmenu::widget([
  'jsOptions' => ['widthToEnableResponsive'=> 992],
   'items' => [...]
])

```

Screenshots
-----------

[](#screenshots)

This first screenshot shows a view rendered and loaded vía ajax automatically with this widget. [![Bigmenu screenshot](https://github.com/Eseperio/yii2-bigmenu-widget/raw/master/Captura%20de%20pantalla%202017-09-04%20a%20las%201.32.02.png?raw=true)](https://github.com/Eseperio/yii2-bigmenu-widget/blob/master/Captura%20de%20pantalla%202017-09-04%20a%20las%201.32.02.png?raw=true)[![Bigmenu screenshot](https://github.com/Eseperio/yii2-bigmenu-widget/raw/master/Captura%20de%20pantalla%202017-09-04%20a%20las%201.31.54.png?raw=true)](https://github.com/Eseperio/yii2-bigmenu-widget/blob/master/Captura%20de%20pantalla%202017-09-04%20a%20las%201.31.54.png?raw=true)Mobile friendly [![Bigmenu screenshot](https://github.com/Eseperio/yii2-bigmenu-widget/raw/master/Captura%20de%20pantalla%202017-09-04%20a%20las%201.33.08.png?raw=true)](https://github.com/Eseperio/yii2-bigmenu-widget/blob/master/Captura%20de%20pantalla%202017-09-04%20a%20las%201.33.08.png?raw=true)

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 95.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~273 days

Recently: every ~35 days

Total

7

Last Release

1531d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b1e173755eb4a5abae378ed4c8a8e8066f578c3192105c5e3f9b8ea3ef0086e7?d=identicon)[Eseperio](/maintainers/Eseperio)

---

Top Contributors

[![Eseperio](https://avatars.githubusercontent.com/u/5459366?v=4)](https://github.com/Eseperio "Eseperio (23 commits)")[![SHI1989](https://avatars.githubusercontent.com/u/22391106?v=4)](https://github.com/SHI1989 "SHI1989 (1 commits)")

---

Tags

csshtmlmenuyii2ajaxwidgetbigmultilevel

### Embed Badge

![Health badge](/badges/eseperio-yii2-bigmenu-widget/health.svg)

```
[![Health](https://phpackages.com/badges/eseperio-yii2-bigmenu-widget/health.svg)](https://phpackages.com/packages/eseperio-yii2-bigmenu-widget)
```

###  Alternatives

[kartik-v/yii2-widget-sidenav

An enhanced side navigation menu styled for bootstrap (sub repo split from yii2-widgets)

364.0M8](/packages/kartik-v-yii2-widget-sidenav)[kartik-v/yii2-nav-x

An extended bootstrap Nav widget for Yii 2 with submenu drilldown.

27564.8k6](/packages/kartik-v-yii2-nav-x)[bizley/contenttools

ContentTools editor implementation for Yii 2.

8016.7k](/packages/bizley-contenttools)[bizley/ajaxdropdown

Bootstrap dropdown list with AJAX data.

1524.8k](/packages/bizley-ajaxdropdown)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
