panelBar 2 – like an old friend you haven't seen in years!

panelBar for Kirby CMS

We all thought this project is dead, didn’t we? Well, it was – but like a good zombie, it is back and kicking it with version 2.0.0 which has been released today!

Version 2 has been a complete rewrite. Actually, a lot of work and time went into it, turning it into a very modular project with lots of possibilities to add custom elements. For the details, please read the documentation.

As with version 1, panelBar is a plugin that needs to pull quite a few hacks to offer it functionality, which is why compatibility will always be an issue. But I think with Kirby 2.4.1 it should run quite nicely so far (though there are for sure still some bugs hiding).

Given that the project has gotten some stars over the months, there seem to be people who like the idea or maybe are even using it. I would be really happy, if you give it a try, test it – and even more if you have ideas, create your own custom element plugins…

Docs & Download


Wow, that’s just amazing. It definitely shows that a lot of work went into this. It’s super polished already.

One small thing I noticed:
The iframe containing the panel has a default border on my latest Chrome:

Thanks a lot – this project has been a guilty pleasure :smiley:

I have opened an issue for the border on the iframe:

BTW version 2 brings back “making a page visible and sorting” from the panelBar itself. Probably the feature that I love most myself – but for which @bastianallgeier probably hates me, butchering his code :smiley:

Should be fixed on the develop branch now. Would be great if you could check it out.

Version 2.1.0 released

:rotating_light: Custom elements can only be created through element classes
:sparkles: Panel widget to set the active panelBar elements
:sparkles: Config file site/config/panelBar.yml defines element set
:sparkles: Modal component to be used by elements
:sparkles: Content component for easy pre-styled text
:sparkles: New element: navigation (included in default set)
:sparkles: Login icon when user is not signed-in
:balloon: Dropdown pattern: additional CSS classes per dropdown item
:balloon: Added about element as sample for modal and content component
:balloon: Index element: using blueprint page icons
:balloon: Panel integration: respect custom site paths
:balloon: Set key shortcuts per element ($this->key($keycode, $jsfunction))
:bug: Handle element names with -(now stripping -)
:bug: Core translations loading in time to be displayed
:bug: Custom element classes would overwrite pattern classes
:bug: Visibility element: Bug when hiding only child
:bug: Overlay: border on iframe in Chrome
:bug: Images element: responsive grid sizes
:bug: Dropdowns disappeared in responsive mode
:arrow_up: FontAwesome 4.7
:books: MIT License added
:books: Documentation offers more direct links to helpful code examples

Navigation element

Easy modals

Panel widget


Nice! I’ve noticed the 100 updates in my mailbox. :stuck_out_tongue:

Version 2.2.0 released

:sparkles: New element: Google PageSpeed API
:sparkles: Set element float via panel widget
:lipstick: Panel widget: now all pretty
:balloon: Translations now follow the panel user’s language
:balloon: Translations now get passed {$variables} to be more flexible
:poop: Dropped RTL support for the moment

From 2.1.x bugfixes:

:bug: CLI installing to wrong destination
:bug: active elements not considering default element set
:bug: Visibility element: Unhiding numbered pages works again
:bug: Modals: close button works again


Version 2.3.0 released

Moved the panelBar configuration inside the panel from its widget to a custom panel view:

1 Like

i installed the panelbar by cli and added it to the footer. (kirby 2.4.1, multilang setup)

i am wondering about the styles are not available and think the paths are not correct.

shouldn’t the paths go to ip/plugins/panel-bar/assets/… ?
any idea what i’m doing wrong?

No, the URL looks ok, but the route doesn’t seem to be working as it should.

Are you using any additional custom routes, @dennisb?

BTW, I just installed the new panelBar and it is pretty cool, @distantnative :slight_smile:

Only thing, the lang switch does not seem to be working as it should, or what is it supposed to do. Looks like when I’m on the default language, I can switch to the non-default language but not back again?

Thanks :slight_smile:

And no, that is a bug ( – hope that I can fix this one easily. Plugins and languages are still a tricky thing in Kirby.

EDIT: Yea, there is no simple fix. The current language is not yet set when the plugin runs :confused: Same problem:

And let me know if you have any feature requests, suggestions… :wink:

no custom routes.

i tried that on a staging environment and there it works nice! (PHP Version 5.6.30)

so i think it has something to do with my local setup:
is PHP Version 7.0.4 / could that be the reason? i will change that tomorrow.
or it has something to do with gulp-connect-php, which i use to serve my dev

tnx for the mega quick response!

I still have no real clue what’s up with that :confused:

Hey, nice work! I tried this out on a vanilla install of Kirby and it worked great. I then added it to an existing site - no dice. It shows up in the panel just fine, and i can configure the bar but it throws and exception when loading the site in the browser with the panel snippet on the page. Heres the error…

Cannot use Kirby\Panel\Event as Event because the name is already in use

This line is causing the error…


Now, this is a long shot but i have a content section called Event with some event articles in it. Surely thats not anything to do with the error??

This is running on Kirby 2.4.1

i tried dev hosting by mamp, and there it works.
Also with php 7, so i think the php-version is not the problem.
Serving by gulp-connect-php still doesn’t work. also not with php5

gulp.task('connect-sync', function() {
    phpconnect.server({}, function (){
            proxy: '',
		    open: false

Disabling the RewriteBase has also no effect. (My Staging Environment needs RewriteBase /)

The Base of the Project is the current Multilang Starter Kit…

Any idea what else i can check?

What happens if you map a local domain to the folder and go to it directly, rather then through browsersync proxy?

In my experience, MAMP can cause issues. Would suggest using Vagrant instead.